Commit 3e730fe2 authored by Tushar Vyavahare's avatar Tushar Vyavahare Committed by Martin KaFai Lau
Browse files

selftests/xsk: Add packet stream replacement function



Add pkt_stream_replace_ifobject function to replace the packet stream for
a given ifobject.

Enable separate TX and RX packet replacement, allowing RX side packet
length adjustments using bpf_xdp_adjust_tail() in the upcoming patch.
Currently, pkt_stream_replace() works on both TX and RX packet streams,
and this new function provides the ability to modify one of them.

Reviewed-by: default avatarMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: default avatarTushar Vyavahare <tushar.vyavahare@intel.com>
Signed-off-by: default avatarMartin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20250410033116.173617-2-tushar.vyavahare@intel.com
parent 0f681b0e
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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_ifobject(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(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);
}

static void __pkt_stream_replace_half(struct ifobject *ifobj, u32 pkt_len,