* [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP
@ 2025-02-20 8:41 Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions Tushar Vyavahare
` (5 more replies)
0 siblings, 6 replies; 13+ messages in thread
From: Tushar Vyavahare @ 2025-02-20 8:41 UTC (permalink / raw)
To: bpf
Cc: netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel,
tushar.vyavahare
This patch series adds tests to validate the XDP tail adjustment
functionality, focusing on its use within the AF_XDP context. The tests
verify dynamic packet size manipulation using the bpf_xdp_adjust_tail()
helper function, covering both single and multi-buffer scenarios.
---
Patch Summary:
1. Add functions to replace packet streams for ifobjects and test_spec.
2. Introduce xsk_xdp_adjust_tail to adjust packet tails dynamically.
3. Add userspace function to adjust packet tails using XDP program.
4. Add function to check if bpf_xdp_adjust_tail() is supported.
5. Add function to test packet resizing using bpf_xdp_adjust_tail.
6. Introduce test shrinking and growing packets using
bpf_xdp_adjust_tail(), and cover multi-buffer scenarios when used with
AF_XDP.
---
Tushar Vyavahare (6):
selftests/xsk: Add packet stream replacement functions
selftests/xsk: Add tail adjustment functionality to XDP
selftests/xsk: Add testapp_xdp_adjust_tail function to userspace for
packet tail adjustment
selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in
xskxceiver
selftests/xsk: Implement packet resizing test with bpf_xdp_adjust_tail
selftests/xsk: Add packet resizing tests with bpf_xdp_adjust_tail for
AF_XDP
Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
.../selftests/bpf/progs/xsk_xdp_progs.c | 48 ++++++
tools/testing/selftests/bpf/xsk_xdp_common.h | 1 +
tools/testing/selftests/bpf/xskxceiver.c | 147 ++++++++++++++++--
tools/testing/selftests/bpf/xskxceiver.h | 2 +
4 files changed, 183 insertions(+), 15 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions
2025-02-20 8:41 [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP Tushar Vyavahare
@ 2025-02-20 8:41 ` Tushar Vyavahare
2025-02-20 17:45 ` Stanislav Fomichev
2025-02-20 8:41 ` [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP Tushar Vyavahare
` (4 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Tushar Vyavahare @ 2025-02-20 8:41 UTC (permalink / raw)
To: bpf
Cc: netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel,
tushar.vyavahare
Add pkt_stream_replace function to replace the packet stream for a given
ifobject. Add pkt_stream_replace_both function to replace the packet
streams for both transmit and receive ifobject in test_spec. Enhance test
framework to handle packet stream replacements efficiently.
Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
---
tools/testing/selftests/bpf/xskxceiver.c | 29 +++++++++++++-----------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index 11f047b8af75..1d9b03666ee6 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -757,14 +757,15 @@ static struct pkt_stream *pkt_stream_clone(struct pkt_stream *pkt_stream)
return pkt_stream_generate(pkt_stream->nb_pkts, pkt_stream->pkts[0].len);
}
-static void pkt_stream_replace(struct test_spec *test, u32 nb_pkts, u32 pkt_len)
+static void pkt_stream_replace(struct ifobject *ifobj, u32 nb_pkts, u32 pkt_len)
{
- struct pkt_stream *pkt_stream;
+ ifobj->xsk->pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
+}
- pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
- test->ifobj_tx->xsk->pkt_stream = pkt_stream;
- pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
- test->ifobj_rx->xsk->pkt_stream = pkt_stream;
+static void pkt_stream_replace_both(struct test_spec *test, u32 nb_pkts, u32 pkt_len)
+{
+ pkt_stream_replace(test->ifobj_tx, nb_pkts, pkt_len);
+ pkt_stream_replace(test->ifobj_rx, nb_pkts, pkt_len);
}
static void __pkt_stream_replace_half(struct ifobject *ifobj, u32 pkt_len,
@@ -2052,7 +2053,8 @@ static int testapp_stats_tx_invalid_descs(struct test_spec *test)
static int testapp_stats_rx_full(struct test_spec *test)
{
- pkt_stream_replace(test, DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS / 2, MIN_PKT_SIZE);
+ pkt_stream_replace_both(test, DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS / 2,
+ MIN_PKT_SIZE);
test->ifobj_rx->xsk->pkt_stream = pkt_stream_generate(DEFAULT_UMEM_BUFFERS, MIN_PKT_SIZE);
test->ifobj_rx->xsk->rxqsize = DEFAULT_UMEM_BUFFERS;
@@ -2063,7 +2065,8 @@ static int testapp_stats_rx_full(struct test_spec *test)
static int testapp_stats_fill_empty(struct test_spec *test)
{
- pkt_stream_replace(test, DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS / 2, MIN_PKT_SIZE);
+ pkt_stream_replace_both(test, DEFAULT_UMEM_BUFFERS + DEFAULT_UMEM_BUFFERS / 2,
+ MIN_PKT_SIZE);
test->ifobj_rx->xsk->pkt_stream = pkt_stream_generate(DEFAULT_UMEM_BUFFERS, MIN_PKT_SIZE);
test->ifobj_rx->use_fill_ring = false;
@@ -2086,7 +2089,7 @@ static int testapp_send_receive_unaligned_mb(struct test_spec *test)
test->mtu = MAX_ETH_JUMBO_SIZE;
test->ifobj_tx->umem->unaligned_mode = true;
test->ifobj_rx->umem->unaligned_mode = true;
- pkt_stream_replace(test, DEFAULT_PKT_CNT, MAX_ETH_JUMBO_SIZE);
+ pkt_stream_replace_both(test, DEFAULT_PKT_CNT, MAX_ETH_JUMBO_SIZE);
return testapp_validate_traffic(test);
}
@@ -2101,7 +2104,7 @@ static int testapp_single_pkt(struct test_spec *test)
static int testapp_send_receive_mb(struct test_spec *test)
{
test->mtu = MAX_ETH_JUMBO_SIZE;
- pkt_stream_replace(test, DEFAULT_PKT_CNT, MAX_ETH_JUMBO_SIZE);
+ pkt_stream_replace_both(test, DEFAULT_PKT_CNT, MAX_ETH_JUMBO_SIZE);
return testapp_validate_traffic(test);
}
@@ -2252,7 +2255,7 @@ static int testapp_poll_txq_tmout(struct test_spec *test)
test->ifobj_tx->use_poll = true;
/* create invalid frame by set umem frame_size and pkt length equal to 2048 */
test->ifobj_tx->umem->frame_size = 2048;
- pkt_stream_replace(test, 2 * DEFAULT_PKT_CNT, 2048);
+ pkt_stream_replace_both(test, 2 * DEFAULT_PKT_CNT, 2048);
return testapp_validate_traffic_single_thread(test, test->ifobj_tx);
}
@@ -2389,7 +2392,7 @@ static int testapp_send_receive_2k_frame(struct test_spec *test)
{
test->ifobj_tx->umem->frame_size = 2048;
test->ifobj_rx->umem->frame_size = 2048;
- pkt_stream_replace(test, DEFAULT_PKT_CNT, MIN_PKT_SIZE);
+ pkt_stream_replace_both(test, DEFAULT_PKT_CNT, MIN_PKT_SIZE);
return testapp_validate_traffic(test);
}
@@ -2511,7 +2514,7 @@ static int testapp_hw_sw_max_ring_size(struct test_spec *test)
*/
test->ifobj_tx->xsk->batch_size = test->ifobj_tx->ring.tx_max_pending - 8;
test->ifobj_rx->xsk->batch_size = test->ifobj_tx->ring.tx_max_pending - 8;
- pkt_stream_replace(test, max_descs, MIN_PKT_SIZE);
+ pkt_stream_replace_both(test, max_descs, MIN_PKT_SIZE);
return testapp_validate_traffic(test);
}
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP
2025-02-20 8:41 [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions Tushar Vyavahare
@ 2025-02-20 8:41 ` Tushar Vyavahare
2025-02-20 17:46 ` Stanislav Fomichev
2025-02-20 8:41 ` [PATCH bpf-next 3/6] selftests/xsk: Add testapp_xdp_adjust_tail function to userspace for packet tail adjustment Tushar Vyavahare
` (3 subsequent siblings)
5 siblings, 1 reply; 13+ messages in thread
From: Tushar Vyavahare @ 2025-02-20 8:41 UTC (permalink / raw)
To: bpf
Cc: netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel,
tushar.vyavahare
Introduce a new function, xsk_xdp_adjust_tail, within the XDP program to
adjust the tail of packets. This function utilizes bpf_xdp_adjust_tail to
modify the packet size dynamically based on the 'count' variable.
If the adjustment fails, the packet is dropped using XDP_DROP to ensure
processing of only correctly modified packets.
Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
---
.../selftests/bpf/progs/xsk_xdp_progs.c | 48 +++++++++++++++++++
tools/testing/selftests/bpf/xsk_xdp_common.h | 1 +
2 files changed, 49 insertions(+)
diff --git a/tools/testing/selftests/bpf/progs/xsk_xdp_progs.c b/tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
index ccde6a4c6319..2e8e2faf17e0 100644
--- a/tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
+++ b/tools/testing/selftests/bpf/progs/xsk_xdp_progs.c
@@ -4,6 +4,8 @@
#include <linux/bpf.h>
#include <bpf/bpf_helpers.h>
#include <linux/if_ether.h>
+#include <linux/ip.h>
+#include <linux/errno.h>
#include "xsk_xdp_common.h"
struct {
@@ -70,4 +72,50 @@ SEC("xdp") int xsk_xdp_shared_umem(struct xdp_md *xdp)
return bpf_redirect_map(&xsk, idx, XDP_DROP);
}
+SEC("xdp.frags") int xsk_xdp_adjust_tail(struct xdp_md *xdp)
+{
+ __u32 buff_len, curr_buff_len;
+ int ret;
+
+ buff_len = bpf_xdp_get_buff_len(xdp);
+ if (buff_len == 0)
+ return XDP_DROP;
+
+ ret = bpf_xdp_adjust_tail(xdp, count);
+ if (ret < 0) {
+ /* Handle unsupported cases */
+ if (ret == -EOPNOTSUPP) {
+ /* Set count to -EOPNOTSUPP to indicate to userspace that this case is
+ * unsupported
+ */
+ count = -EOPNOTSUPP;
+ return bpf_redirect_map(&xsk, 0, XDP_DROP);
+ }
+
+ return XDP_DROP;
+ }
+
+ curr_buff_len = bpf_xdp_get_buff_len(xdp);
+ if (curr_buff_len != buff_len + count)
+ return XDP_DROP;
+
+ if (curr_buff_len > buff_len) {
+ __u32 *pkt_data = (void *)(long)xdp->data;
+ __u32 len, words_to_end, seq_num;
+
+ len = curr_buff_len - PKT_HDR_ALIGN;
+ words_to_end = len / sizeof(*pkt_data) - 1;
+ seq_num = words_to_end;
+
+ /* Convert sequence number to network byte order. Store this in the last 4 bytes of
+ * the packet. Use 'count' to determine the position at the end of the packet for
+ * storing the sequence number.
+ */
+ seq_num = __constant_htonl(words_to_end);
+ bpf_xdp_store_bytes(xdp, curr_buff_len - count, &seq_num, sizeof(seq_num));
+ }
+
+ return bpf_redirect_map(&xsk, 0, XDP_DROP);
+}
+
char _license[] SEC("license") = "GPL";
diff --git a/tools/testing/selftests/bpf/xsk_xdp_common.h b/tools/testing/selftests/bpf/xsk_xdp_common.h
index 5a6f36f07383..45810ff552da 100644
--- a/tools/testing/selftests/bpf/xsk_xdp_common.h
+++ b/tools/testing/selftests/bpf/xsk_xdp_common.h
@@ -4,6 +4,7 @@
#define XSK_XDP_COMMON_H_
#define MAX_SOCKETS 2
+#define PKT_HDR_ALIGN (sizeof(struct ethhdr) + 2) /* Just to align the data in the packet */
struct xdp_info {
__u64 count;
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH bpf-next 3/6] selftests/xsk: Add testapp_xdp_adjust_tail function to userspace for packet tail adjustment
2025-02-20 8:41 [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP Tushar Vyavahare
@ 2025-02-20 8:41 ` Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 4/6] selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in xskxceiver Tushar Vyavahare
` (2 subsequent siblings)
5 siblings, 0 replies; 13+ messages in thread
From: Tushar Vyavahare @ 2025-02-20 8:41 UTC (permalink / raw)
To: bpf
Cc: netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel,
tushar.vyavahare
This commit adds the testapp_xdp_adjust_tail function in the userspace
code. The function is responsible for adjusting the tail of packets using
the xsk_xdp_adjust_tail XDP program.
The function performs the following tasks:
1. Retrieves the XDP program objects (skel_rx and skel_tx) from the
test_spec structure.
2. Finds the bpf_map for the XDP program's bss section.
3. Updates the 'count' variable in the XDP program's bss section with the
provided adjust_value.
4. Sets the XDP program (xsk_xdp_adjust_tail) for both RX and TX
interfaces using test_spec_set_xdp_prog.
5. Calls testapp_validate_traffic to validate the traffic after adjusting
the packet tail.
This function allows testing and validating the XDP program's behavior when
adjusting the packet tail using the bpf_xdp_adjust_tail helper function.
Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
---
tools/testing/selftests/bpf/xskxceiver.c | 25 ++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index 1d9b03666ee6..ff3316f6174e 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -2518,6 +2518,31 @@ static int testapp_hw_sw_max_ring_size(struct test_spec *test)
return testapp_validate_traffic(test);
}
+static int testapp_xdp_adjust_tail(struct test_spec *test, int count)
+{
+ struct xsk_xdp_progs *skel_rx = test->ifobj_rx->xdp_progs;
+ struct xsk_xdp_progs *skel_tx = test->ifobj_tx->xdp_progs;
+ struct bpf_map *data_map;
+ int key = 0;
+
+ test_spec_set_xdp_prog(test, skel_rx->progs.xsk_xdp_adjust_tail,
+ skel_tx->progs.xsk_xdp_adjust_tail,
+ skel_rx->maps.xsk, skel_tx->maps.xsk);
+
+ data_map = bpf_object__find_map_by_name(skel_rx->obj, "xsk_xdp_.bss");
+ if (!data_map || !bpf_map__is_internal(data_map)) {
+ ksft_print_msg("Error: could not find bss section of XDP program\n");
+ return TEST_FAILURE;
+ }
+
+ if (bpf_map_update_elem(bpf_map__fd(data_map), &key, &count, BPF_ANY)) {
+ ksft_print_msg("Error: could not update count element\n");
+ return TEST_FAILURE;
+ }
+
+ return testapp_validate_traffic(test);
+}
+
static void run_pkt_test(struct test_spec *test)
{
int ret;
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH bpf-next 4/6] selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in xskxceiver
2025-02-20 8:41 [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP Tushar Vyavahare
` (2 preceding siblings ...)
2025-02-20 8:41 ` [PATCH bpf-next 3/6] selftests/xsk: Add testapp_xdp_adjust_tail function to userspace for packet tail adjustment Tushar Vyavahare
@ 2025-02-20 8:41 ` Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 5/6] selftests/xsk: Implement packet resizing test with bpf_xdp_adjust_tail Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 6/6] selftests/xsk: Add packet resizing tests with bpf_xdp_adjust_tail for AF_XDP Tushar Vyavahare
5 siblings, 0 replies; 13+ messages in thread
From: Tushar Vyavahare @ 2025-02-20 8:41 UTC (permalink / raw)
To: bpf
Cc: netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel,
tushar.vyavahare
Add is_adjust_tail_supported function to check if the
bpf_xdp_adjust_tail() helper is supported when 'adjust_tail' is set in the
test. Look up a specific key in the bss section of the XDP program. If the
key is not found or its value is -EOPNOTSUPP, return false, indicating that
the helper is not supported.
Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
---
tools/testing/selftests/bpf/xskxceiver.c | 36 ++++++++++++++++++++++--
tools/testing/selftests/bpf/xskxceiver.h | 2 ++
2 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index ff3316f6174e..ccf35b73418b 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -524,6 +524,8 @@ static void __test_spec_init(struct test_spec *test, struct ifobject *ifobj_tx,
test->nb_sockets = 1;
test->fail = false;
test->set_ring = false;
+ test->adjust_tail = false;
+ test->adjust_tail_support = false;
test->mtu = MAX_ETH_PKT_SIZE;
test->xdp_prog_rx = ifobj_rx->xdp_progs->progs.xsk_def_prog;
test->xskmap_rx = ifobj_rx->xdp_progs->maps.xsk;
@@ -992,6 +994,31 @@ static bool is_metadata_correct(struct pkt *pkt, void *buffer, u64 addr)
return true;
}
+static bool is_adjust_tail_supported(struct xsk_xdp_progs *skel_rx)
+{
+ struct bpf_map *data_map;
+ int value = 0;
+ int key = 0;
+ int ret;
+
+ data_map = bpf_object__find_map_by_name(skel_rx->obj, "xsk_xdp_.bss");
+ if (!data_map || !bpf_map__is_internal(data_map)) {
+ ksft_print_msg("Error: could not find bss section of XDP program\n");
+ exit_with_error(errno);
+ }
+
+ ret = bpf_map_lookup_elem(bpf_map__fd(data_map), &key, &value);
+ if (ret) {
+ ksft_print_msg("Error: bpf_map_lookup_elem failed with error %d\n", ret);
+ return false;
+ }
+
+ /* Set the 'count' variable to -EOPNOTSUPP in the XDP program if the adjust_tail helper is
+ * not supported. Skip the adjust_tail test case in this scenario.
+ */
+ return value != -EOPNOTSUPP;
+}
+
static bool is_frag_valid(struct xsk_umem_info *umem, u64 addr, u32 len, u32 expected_pkt_nb,
u32 bytes_processed)
{
@@ -1768,8 +1795,13 @@ static void *worker_testapp_validate_rx(void *arg)
if (!err && ifobject->validation_func)
err = ifobject->validation_func(ifobject);
- if (err)
- report_failure(test);
+
+ if (err) {
+ if (test->adjust_tail && !is_adjust_tail_supported(ifobject->xdp_progs))
+ test->adjust_tail_support = false;
+ else
+ report_failure(test);
+ }
pthread_exit(NULL);
}
diff --git a/tools/testing/selftests/bpf/xskxceiver.h b/tools/testing/selftests/bpf/xskxceiver.h
index e46e823f6a1a..67fc44b2813b 100644
--- a/tools/testing/selftests/bpf/xskxceiver.h
+++ b/tools/testing/selftests/bpf/xskxceiver.h
@@ -173,6 +173,8 @@ struct test_spec {
u16 nb_sockets;
bool fail;
bool set_ring;
+ bool adjust_tail;
+ bool adjust_tail_support;
enum test_mode mode;
char name[MAX_TEST_NAME_SIZE];
};
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH bpf-next 5/6] selftests/xsk: Implement packet resizing test with bpf_xdp_adjust_tail
2025-02-20 8:41 [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP Tushar Vyavahare
` (3 preceding siblings ...)
2025-02-20 8:41 ` [PATCH bpf-next 4/6] selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in xskxceiver Tushar Vyavahare
@ 2025-02-20 8:41 ` Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 6/6] selftests/xsk: Add packet resizing tests with bpf_xdp_adjust_tail for AF_XDP Tushar Vyavahare
5 siblings, 0 replies; 13+ messages in thread
From: Tushar Vyavahare @ 2025-02-20 8:41 UTC (permalink / raw)
To: bpf
Cc: netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel,
tushar.vyavahare
Implement a packet resizing test using the bpf_xdp_adjust_tail() function.
Add the testapp_adjust_tail function to test packet resizing capabilities.
Replace packet streams for both transmit and receive with adjusted lengths.
Include logic to skip the test if bpf_xdp_adjust_tail is not supported.
Update the test framework to handle various packet resizing scenarios.
Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
---
tools/testing/selftests/bpf/xskxceiver.c | 25 ++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index ccf35b73418b..52ce0217d3d5 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -2575,6 +2575,31 @@ static int testapp_xdp_adjust_tail(struct test_spec *test, int count)
return testapp_validate_traffic(test);
}
+static int testapp_adjust_tail(struct test_spec *test, u32 value, u32 pkt_len)
+{
+ u32 pkt_cnt = DEFAULT_BATCH_SIZE;
+ int ret;
+
+ test->adjust_tail_support = true;
+ test->adjust_tail = true;
+ test->total_steps = 1;
+
+ pkt_stream_replace(test->ifobj_tx, pkt_cnt, pkt_len);
+ pkt_stream_replace(test->ifobj_rx, pkt_cnt, pkt_len + value);
+
+ ret = testapp_xdp_adjust_tail(test, value);
+ if (ret)
+ return ret;
+
+ if (!test->adjust_tail_support) {
+ ksft_test_result_skip("%s %sResize pkt with bpf_xdp_adjust_tail() not supported\n",
+ mode_string(test), busy_poll_string(test));
+ return TEST_SKIP;
+ }
+
+ return 0;
+}
+
static void run_pkt_test(struct test_spec *test)
{
int ret;
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH bpf-next 6/6] selftests/xsk: Add packet resizing tests with bpf_xdp_adjust_tail for AF_XDP
2025-02-20 8:41 [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP Tushar Vyavahare
` (4 preceding siblings ...)
2025-02-20 8:41 ` [PATCH bpf-next 5/6] selftests/xsk: Implement packet resizing test with bpf_xdp_adjust_tail Tushar Vyavahare
@ 2025-02-20 8:41 ` Tushar Vyavahare
5 siblings, 0 replies; 13+ messages in thread
From: Tushar Vyavahare @ 2025-02-20 8:41 UTC (permalink / raw)
To: bpf
Cc: netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel,
tushar.vyavahare
Add packet resizing tests using the bpf_xdp_adjust_tail()function within
the AF_XDP framework. Implement testapp_adjust_tail_common() to handle
common logic for packet resizing tests, streamlining the testing process.
Allow setting MTU to MAX_ETH_JUMBO_SIZE for specific tests.
Implement testapp_adjust_tail_shrink() and testapp_adjust_tail_shrink_mb()
to test shrinking packets, including multi-buffer scenarios, under AF_XDP.
Implement testapp_adjust_tail_grow() and testapp_adjust_tail_grow_mb() to
test growing packets within the AF_XDP context, utilizing the common logic
function for consistency and efficiency.
Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
---
tools/testing/selftests/bpf/xskxceiver.c | 32 ++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
index 52ce0217d3d5..36f32b7ef31d 100644
--- a/tools/testing/selftests/bpf/xskxceiver.c
+++ b/tools/testing/selftests/bpf/xskxceiver.c
@@ -2600,6 +2600,34 @@ static int testapp_adjust_tail(struct test_spec *test, u32 value, u32 pkt_len)
return 0;
}
+static int testapp_adjust_tail_common(struct test_spec *test, int adjust_value, u32 len,
+ bool set_mtu)
+{
+ if (set_mtu)
+ test->mtu = MAX_ETH_JUMBO_SIZE;
+ return testapp_adjust_tail(test, adjust_value, len);
+}
+
+static int testapp_adjust_tail_shrink(struct test_spec *test)
+{
+ return testapp_adjust_tail_common(test, -4, MIN_PKT_SIZE, false);
+}
+
+static int testapp_adjust_tail_shrink_mb(struct test_spec *test)
+{
+ return testapp_adjust_tail_common(test, -4, XSK_RING_PROD__DEFAULT_NUM_DESCS * 3, true);
+}
+
+static int testapp_adjust_tail_grow(struct test_spec *test)
+{
+ return testapp_adjust_tail_common(test, 4, MIN_PKT_SIZE, false);
+}
+
+static int testapp_adjust_tail_grow_mb(struct test_spec *test)
+{
+ return testapp_adjust_tail_common(test, 4, XSK_RING_PROD__DEFAULT_NUM_DESCS * 3, true);
+}
+
static void run_pkt_test(struct test_spec *test)
{
int ret;
@@ -2706,6 +2734,10 @@ static const struct test_spec tests[] = {
{.name = "TOO_MANY_FRAGS", .test_func = testapp_too_many_frags},
{.name = "HW_SW_MIN_RING_SIZE", .test_func = testapp_hw_sw_min_ring_size},
{.name = "HW_SW_MAX_RING_SIZE", .test_func = testapp_hw_sw_max_ring_size},
+ {.name = "XDP_ADJUST_TAIL_SHRINK", .test_func = testapp_adjust_tail_shrink},
+ {.name = "XDP_ADJUST_TAIL_SHRINK_MULTI_BUFF", .test_func = testapp_adjust_tail_shrink_mb},
+ {.name = "XDP_ADJUST_TAIL_GROW", .test_func = testapp_adjust_tail_grow},
+ {.name = "XDP_ADJUST_TAIL_GROW_MULTI_BUFF", .test_func = testapp_adjust_tail_grow_mb},
};
static void print_tests(void)
--
2.34.1
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions
2025-02-20 8:41 ` [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions Tushar Vyavahare
@ 2025-02-20 17:45 ` Stanislav Fomichev
2025-02-25 15:57 ` Vyavahare, Tushar
0 siblings, 1 reply; 13+ messages in thread
From: Stanislav Fomichev @ 2025-02-20 17:45 UTC (permalink / raw)
To: Tushar Vyavahare
Cc: bpf, netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel
On 02/20, Tushar Vyavahare wrote:
> Add pkt_stream_replace function to replace the packet stream for a given
> ifobject. Add pkt_stream_replace_both function to replace the packet
> streams for both transmit and receive ifobject in test_spec. Enhance test
> framework to handle packet stream replacements efficiently.
>
> Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
> ---
> tools/testing/selftests/bpf/xskxceiver.c | 29 +++++++++++++-----------
> 1 file changed, 16 insertions(+), 13 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/xskxceiver.c b/tools/testing/selftests/bpf/xskxceiver.c
> index 11f047b8af75..1d9b03666ee6 100644
> --- a/tools/testing/selftests/bpf/xskxceiver.c
> +++ b/tools/testing/selftests/bpf/xskxceiver.c
> @@ -757,14 +757,15 @@ static struct pkt_stream *pkt_stream_clone(struct pkt_stream *pkt_stream)
> return pkt_stream_generate(pkt_stream->nb_pkts, pkt_stream->pkts[0].len);
> }
>
> -static void pkt_stream_replace(struct test_spec *test, u32 nb_pkts, u32 pkt_len)
> +static void pkt_stream_replace(struct ifobject *ifobj, u32 nb_pkts, u32 pkt_len)
> {
> - struct pkt_stream *pkt_stream;
> + ifobj->xsk->pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
> +}
>
> - pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
> - test->ifobj_tx->xsk->pkt_stream = pkt_stream;
> - pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
> - test->ifobj_rx->xsk->pkt_stream = pkt_stream;
[..]
> +static void pkt_stream_replace_both(struct test_spec *test, u32 nb_pkts, u32 pkt_len)
> +{
> + pkt_stream_replace(test->ifobj_tx, nb_pkts, pkt_len);
> + pkt_stream_replace(test->ifobj_rx, nb_pkts, pkt_len);
> }
nit: maybe keep existing name pkt_stream_replace here? and add new
helper pkt_stream_replace_ifobject to work on particular ifobject?
static void pkt_stream_replace_both(struct test_spec *test, u32 nb_pkts, u32 pkt_len)
{
pkt_stream_replace_ifobject(test->ifobj_tx, nb_pkts, pkt_len);
pkt_stream_replace_ifobject(test->ifobj_rx, nb_pkts, pkt_len);
}
This should avoid touching existing call sites.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP
2025-02-20 8:41 ` [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP Tushar Vyavahare
@ 2025-02-20 17:46 ` Stanislav Fomichev
2025-02-25 15:58 ` Vyavahare, Tushar
0 siblings, 1 reply; 13+ messages in thread
From: Stanislav Fomichev @ 2025-02-20 17:46 UTC (permalink / raw)
To: Tushar Vyavahare
Cc: bpf, netdev, bjorn, magnus.karlsson, maciej.fijalkowski,
jonathan.lemon, davem, kuba, pabeni, ast, daniel
On 02/20, Tushar Vyavahare wrote:
> Introduce a new function, xsk_xdp_adjust_tail, within the XDP program to
> adjust the tail of packets. This function utilizes bpf_xdp_adjust_tail to
> modify the packet size dynamically based on the 'count' variable.
>
> If the adjustment fails, the packet is dropped using XDP_DROP to ensure
> processing of only correctly modified packets.
>
> Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
Any reason not to combine patches 2..5 into a single one? I looked
through each one briefly and it's a bit hard to follow when trying
to put everything together..
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions
2025-02-20 17:45 ` Stanislav Fomichev
@ 2025-02-25 15:57 ` Vyavahare, Tushar
0 siblings, 0 replies; 13+ messages in thread
From: Vyavahare, Tushar @ 2025-02-25 15:57 UTC (permalink / raw)
To: Stanislav Fomichev
Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, bjorn@kernel.org,
Karlsson, Magnus, Fijalkowski, Maciej, jonathan.lemon@gmail.com,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
ast@kernel.org, daniel@iogearbox.net
> -----Original Message-----
> From: Stanislav Fomichev <stfomichev@gmail.com>
> Sent: Thursday, February 20, 2025 11:16 PM
> To: Vyavahare, Tushar <tushar.vyavahare@intel.com>
> Cc: bpf@vger.kernel.org; netdev@vger.kernel.org; bjorn@kernel.org; Karlsson,
> Magnus <magnus.karlsson@intel.com>; Fijalkowski, Maciej
> <maciej.fijalkowski@intel.com>; jonathan.lemon@gmail.com;
> davem@davemloft.net; kuba@kernel.org; pabeni@redhat.com; ast@kernel.org;
> daniel@iogearbox.net
> Subject: Re: [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement
> functions
>
> On 02/20, Tushar Vyavahare wrote:
> > Add pkt_stream_replace function to replace the packet stream for a
> > given ifobject. Add pkt_stream_replace_both function to replace the
> > packet streams for both transmit and receive ifobject in test_spec.
> > Enhance test framework to handle packet stream replacements efficiently.
> >
> > Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
> > ---
> > tools/testing/selftests/bpf/xskxceiver.c | 29
> > +++++++++++++-----------
> > 1 file changed, 16 insertions(+), 13 deletions(-)
> >
> > diff --git a/tools/testing/selftests/bpf/xskxceiver.c
> > b/tools/testing/selftests/bpf/xskxceiver.c
> > index 11f047b8af75..1d9b03666ee6 100644
> > --- a/tools/testing/selftests/bpf/xskxceiver.c
> > +++ b/tools/testing/selftests/bpf/xskxceiver.c
> > @@ -757,14 +757,15 @@ static struct pkt_stream *pkt_stream_clone(struct
> pkt_stream *pkt_stream)
> > return pkt_stream_generate(pkt_stream->nb_pkts,
> > pkt_stream->pkts[0].len); }
> >
> > -static void pkt_stream_replace(struct test_spec *test, u32 nb_pkts,
> > u32 pkt_len)
> > +static void pkt_stream_replace(struct ifobject *ifobj, u32 nb_pkts,
> > +u32 pkt_len)
> > {
> > - struct pkt_stream *pkt_stream;
> > + ifobj->xsk->pkt_stream = pkt_stream_generate(nb_pkts, pkt_len); }
> >
> > - pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
> > - test->ifobj_tx->xsk->pkt_stream = pkt_stream;
> > - pkt_stream = pkt_stream_generate(nb_pkts, pkt_len);
> > - test->ifobj_rx->xsk->pkt_stream = pkt_stream;
>
> [..]
>
> > +static void pkt_stream_replace_both(struct test_spec *test, u32
> > +nb_pkts, u32 pkt_len) {
> > + pkt_stream_replace(test->ifobj_tx, nb_pkts, pkt_len);
> > + pkt_stream_replace(test->ifobj_rx, nb_pkts, pkt_len);
> > }
>
> nit: maybe keep existing name pkt_stream_replace here? and add new helper
> pkt_stream_replace_ifobject to work on particular ifobject?
>
Will do. Thank you.
> static void pkt_stream_replace_both(struct test_spec *test, u32 nb_pkts, u32
> pkt_len) {
> pkt_stream_replace_ifobject(test->ifobj_tx, nb_pkts, pkt_len);
> pkt_stream_replace_ifobject(test->ifobj_rx, nb_pkts, pkt_len); }
>
> This should avoid touching existing call sites.
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP
2025-02-20 17:46 ` Stanislav Fomichev
@ 2025-02-25 15:58 ` Vyavahare, Tushar
2025-02-25 22:37 ` Stanislav Fomichev
0 siblings, 1 reply; 13+ messages in thread
From: Vyavahare, Tushar @ 2025-02-25 15:58 UTC (permalink / raw)
To: Stanislav Fomichev
Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, bjorn@kernel.org,
Karlsson, Magnus, Fijalkowski, Maciej, jonathan.lemon@gmail.com,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
ast@kernel.org, daniel@iogearbox.net
> -----Original Message-----
> From: Stanislav Fomichev <stfomichev@gmail.com>
> Sent: Thursday, February 20, 2025 11:17 PM
> To: Vyavahare, Tushar <tushar.vyavahare@intel.com>
> Cc: bpf@vger.kernel.org; netdev@vger.kernel.org; bjorn@kernel.org; Karlsson,
> Magnus <magnus.karlsson@intel.com>; Fijalkowski, Maciej
> <maciej.fijalkowski@intel.com>; jonathan.lemon@gmail.com;
> davem@davemloft.net; kuba@kernel.org; pabeni@redhat.com; ast@kernel.org;
> daniel@iogearbox.net
> Subject: Re: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality
> to XDP
>
> On 02/20, Tushar Vyavahare wrote:
> > Introduce a new function, xsk_xdp_adjust_tail, within the XDP program
> > to adjust the tail of packets. This function utilizes
> > bpf_xdp_adjust_tail to modify the packet size dynamically based on the 'count'
> variable.
> >
> > If the adjustment fails, the packet is dropped using XDP_DROP to
> > ensure processing of only correctly modified packets.
> >
> > Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
>
> Any reason not to combine patches 2..5 into a single one? I looked through each
> one briefly and it's a bit hard to follow when trying to put everything together..
Maybe that was too many patches. How about this?
#1: selftests/xsk: Add packet stream replacement function
#2: selftests/xsk: Add tail adjustment test functionality to AF_XDP.
#3: selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in
xskxceiver
#4: selftests/xsk: Implement and test packet resizing with
bpf_xdp_adjust_tail
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP
2025-02-25 15:58 ` Vyavahare, Tushar
@ 2025-02-25 22:37 ` Stanislav Fomichev
2025-02-26 12:23 ` Vyavahare, Tushar
0 siblings, 1 reply; 13+ messages in thread
From: Stanislav Fomichev @ 2025-02-25 22:37 UTC (permalink / raw)
To: Vyavahare, Tushar
Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, bjorn@kernel.org,
Karlsson, Magnus, Fijalkowski, Maciej, jonathan.lemon@gmail.com,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
ast@kernel.org, daniel@iogearbox.net
On 02/25, Vyavahare, Tushar wrote:
>
>
> > -----Original Message-----
> > From: Stanislav Fomichev <stfomichev@gmail.com>
> > Sent: Thursday, February 20, 2025 11:17 PM
> > To: Vyavahare, Tushar <tushar.vyavahare@intel.com>
> > Cc: bpf@vger.kernel.org; netdev@vger.kernel.org; bjorn@kernel.org; Karlsson,
> > Magnus <magnus.karlsson@intel.com>; Fijalkowski, Maciej
> > <maciej.fijalkowski@intel.com>; jonathan.lemon@gmail.com;
> > davem@davemloft.net; kuba@kernel.org; pabeni@redhat.com; ast@kernel.org;
> > daniel@iogearbox.net
> > Subject: Re: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality
> > to XDP
> >
> > On 02/20, Tushar Vyavahare wrote:
> > > Introduce a new function, xsk_xdp_adjust_tail, within the XDP program
> > > to adjust the tail of packets. This function utilizes
> > > bpf_xdp_adjust_tail to modify the packet size dynamically based on the 'count'
> > variable.
> > >
> > > If the adjustment fails, the packet is dropped using XDP_DROP to
> > > ensure processing of only correctly modified packets.
> > >
> > > Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
> >
> > Any reason not to combine patches 2..5 into a single one? I looked through each
> > one briefly and it's a bit hard to follow when trying to put everything together..
>
> Maybe that was too many patches. How about this?
>
> #1: selftests/xsk: Add packet stream replacement function
> #2: selftests/xsk: Add tail adjustment test functionality to AF_XDP.
> #3: selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in
> xskxceiver
> #4: selftests/xsk: Implement and test packet resizing with
> bpf_xdp_adjust_tail
Even that might be too much. #1 is clearly refactoring - keep it separate. The
rest seems like it belongs to the same testcase(s)? I'd put patches 2,3,4,5,6
in the same patch.
For example, you add bpf xsk_xdp_adjust_tail function, but there are
not callers in the same patch, so it's not clear what's the context.
Same for testapp_xdp_adjust_tail - there is no caller, so the reader
needs to go to the next patch to put it all together. Same for
testapp_adjust_tail...
^ permalink raw reply [flat|nested] 13+ messages in thread
* RE: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP
2025-02-25 22:37 ` Stanislav Fomichev
@ 2025-02-26 12:23 ` Vyavahare, Tushar
0 siblings, 0 replies; 13+ messages in thread
From: Vyavahare, Tushar @ 2025-02-26 12:23 UTC (permalink / raw)
To: Stanislav Fomichev
Cc: bpf@vger.kernel.org, netdev@vger.kernel.org, bjorn@kernel.org,
Karlsson, Magnus, Fijalkowski, Maciej, jonathan.lemon@gmail.com,
davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
ast@kernel.org, daniel@iogearbox.net
> -----Original Message-----
> From: Stanislav Fomichev <stfomichev@gmail.com>
> Sent: Wednesday, February 26, 2025 4:07 AM
> To: Vyavahare, Tushar <tushar.vyavahare@intel.com>
> Cc: bpf@vger.kernel.org; netdev@vger.kernel.org; bjorn@kernel.org; Karlsson,
> Magnus <magnus.karlsson@intel.com>; Fijalkowski, Maciej
> <maciej.fijalkowski@intel.com>; jonathan.lemon@gmail.com;
> davem@davemloft.net; kuba@kernel.org; pabeni@redhat.com; ast@kernel.org;
> daniel@iogearbox.net
> Subject: Re: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality
> to XDP
>
> On 02/25, Vyavahare, Tushar wrote:
> >
> >
> > > -----Original Message-----
> > > From: Stanislav Fomichev <stfomichev@gmail.com>
> > > Sent: Thursday, February 20, 2025 11:17 PM
> > > To: Vyavahare, Tushar <tushar.vyavahare@intel.com>
> > > Cc: bpf@vger.kernel.org; netdev@vger.kernel.org; bjorn@kernel.org;
> > > Karlsson, Magnus <magnus.karlsson@intel.com>; Fijalkowski, Maciej
> > > <maciej.fijalkowski@intel.com>; jonathan.lemon@gmail.com;
> > > davem@davemloft.net; kuba@kernel.org; pabeni@redhat.com;
> > > ast@kernel.org; daniel@iogearbox.net
> > > Subject: Re: [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment
> > > functionality to XDP
> > >
> > > On 02/20, Tushar Vyavahare wrote:
> > > > Introduce a new function, xsk_xdp_adjust_tail, within the XDP
> > > > program to adjust the tail of packets. This function utilizes
> > > > bpf_xdp_adjust_tail to modify the packet size dynamically based on the
> 'count'
> > > variable.
> > > >
> > > > If the adjustment fails, the packet is dropped using XDP_DROP to
> > > > ensure processing of only correctly modified packets.
> > > >
> > > > Signed-off-by: Tushar Vyavahare <tushar.vyavahare@intel.com>
> > >
> > > Any reason not to combine patches 2..5 into a single one? I looked
> > > through each one briefly and it's a bit hard to follow when trying to put
> everything together..
> >
> > Maybe that was too many patches. How about this?
> >
> > #1: selftests/xsk: Add packet stream replacement function
> > #2: selftests/xsk: Add tail adjustment test functionality to AF_XDP.
> > #3: selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in
> > xskxceiver
> > #4: selftests/xsk: Implement and test packet resizing with
> > bpf_xdp_adjust_tail
>
> Even that might be too much. #1 is clearly refactoring - keep it separate. The rest
> seems like it belongs to the same testcase(s)? I'd put patches 2,3,4,5,6 in the
> same patch.
>
> For example, you add bpf xsk_xdp_adjust_tail function, but there are not callers
> in the same patch, so it's not clear what's the context.
> Same for testapp_xdp_adjust_tail - there is no caller, so the reader needs to go to
> the next patch to put it all together. Same for testapp_adjust_tail...
Make sense. Will fix it and submit a v2.
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2025-02-26 12:23 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-20 8:41 [PATCH bpf-next 0/6] selftests/xsk: Add tests for XDP tail adjustment in AF_XDP Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 1/6] selftests/xsk: Add packet stream replacement functions Tushar Vyavahare
2025-02-20 17:45 ` Stanislav Fomichev
2025-02-25 15:57 ` Vyavahare, Tushar
2025-02-20 8:41 ` [PATCH bpf-next 2/6] selftests/xsk: Add tail adjustment functionality to XDP Tushar Vyavahare
2025-02-20 17:46 ` Stanislav Fomichev
2025-02-25 15:58 ` Vyavahare, Tushar
2025-02-25 22:37 ` Stanislav Fomichev
2025-02-26 12:23 ` Vyavahare, Tushar
2025-02-20 8:41 ` [PATCH bpf-next 3/6] selftests/xsk: Add testapp_xdp_adjust_tail function to userspace for packet tail adjustment Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 4/6] selftests/xsk: Add support check for bpf_xdp_adjust_tail() helper in xskxceiver Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 5/6] selftests/xsk: Implement packet resizing test with bpf_xdp_adjust_tail Tushar Vyavahare
2025-02-20 8:41 ` [PATCH bpf-next 6/6] selftests/xsk: Add packet resizing tests with bpf_xdp_adjust_tail for AF_XDP Tushar Vyavahare
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).