Skip to content

Commit 919e659

Browse files
LorenzoBianconiMartin KaFai Lau
authored and
Martin KaFai Lau
committed
selftests/bpf: fix xdp_redirect xdp-features selftest for veth driver
xdp-features supported by veth driver are no more static, but they depends on veth configuration (e.g. if GRO is enabled/disabled or TX/RX queue configuration). Take it into account in xdp_redirect xdp-features selftest for veth driver. Fixes: fccca03 ("veth: take into account device reconfiguration for xdp_features flag") Signed-off-by: Lorenzo Bianconi <[email protected]> Link: https://lore.kernel.org/r/bc35455cfbb1d4f7f52536955ded81ad47d8dc54.1680777371.git.lorenzo@kernel.org Signed-off-by: Martin KaFai Lau <[email protected]>
1 parent 738a96c commit 919e659

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

tools/testing/selftests/bpf/prog_tests/xdp_do_redirect.c

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,20 +167,44 @@ void test_xdp_do_redirect(void)
167167

168168
if (!ASSERT_EQ(query_opts.feature_flags,
169169
NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
170-
NETDEV_XDP_ACT_NDO_XMIT | NETDEV_XDP_ACT_RX_SG |
171-
NETDEV_XDP_ACT_NDO_XMIT_SG,
170+
NETDEV_XDP_ACT_RX_SG,
172171
"veth_src query_opts.feature_flags"))
173172
goto out;
174173

175174
err = bpf_xdp_query(ifindex_dst, XDP_FLAGS_DRV_MODE, &query_opts);
176175
if (!ASSERT_OK(err, "veth_dst bpf_xdp_query"))
177176
goto out;
178177

178+
if (!ASSERT_EQ(query_opts.feature_flags,
179+
NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
180+
NETDEV_XDP_ACT_RX_SG,
181+
"veth_dst query_opts.feature_flags"))
182+
goto out;
183+
184+
/* Enable GRO */
185+
SYS("ethtool -K veth_src gro on");
186+
SYS("ethtool -K veth_dst gro on");
187+
188+
err = bpf_xdp_query(ifindex_src, XDP_FLAGS_DRV_MODE, &query_opts);
189+
if (!ASSERT_OK(err, "veth_src bpf_xdp_query gro on"))
190+
goto out;
191+
179192
if (!ASSERT_EQ(query_opts.feature_flags,
180193
NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
181194
NETDEV_XDP_ACT_NDO_XMIT | NETDEV_XDP_ACT_RX_SG |
182195
NETDEV_XDP_ACT_NDO_XMIT_SG,
183-
"veth_dst query_opts.feature_flags"))
196+
"veth_src query_opts.feature_flags gro on"))
197+
goto out;
198+
199+
err = bpf_xdp_query(ifindex_dst, XDP_FLAGS_DRV_MODE, &query_opts);
200+
if (!ASSERT_OK(err, "veth_dst bpf_xdp_query gro on"))
201+
goto out;
202+
203+
if (!ASSERT_EQ(query_opts.feature_flags,
204+
NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
205+
NETDEV_XDP_ACT_NDO_XMIT | NETDEV_XDP_ACT_RX_SG |
206+
NETDEV_XDP_ACT_NDO_XMIT_SG,
207+
"veth_dst query_opts.feature_flags gro on"))
184208
goto out;
185209

186210
memcpy(skel->rodata->expect_dst, &pkt_udp.eth.h_dest, ETH_ALEN);

0 commit comments

Comments
 (0)