netdev-afxdp supports different configuration modes, with different limitations. The patch adds configuration and end-to-end tests using veth/tap devices.
Signed-off-by: William Tu <u9012...@gmail.com> --- This patch depends on [PATCHv2] netdev-afxdp: Best-effort configuration of XDP mode. --- tests/automake.mk | 3 +- tests/system-afxdp-testsuite.at | 1 + tests/system-afxdp.at | 89 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 tests/system-afxdp.at diff --git a/tests/automake.mk b/tests/automake.mk index 4bf8f00d5740..529eab54eb44 100644 --- a/tests/automake.mk +++ b/tests/automake.mk @@ -156,7 +156,8 @@ SYSTEM_USERSPACE_TESTSUITE_AT = \ SYSTEM_AFXDP_TESTSUITE_AT = \ tests/system-userspace-macros.at \ tests/system-afxdp-testsuite.at \ - tests/system-afxdp-macros.at + tests/system-afxdp-macros.at \ + tests/system-afxdp.at SYSTEM_TESTSUITE_AT = \ tests/system-common-macros.at \ diff --git a/tests/system-afxdp-testsuite.at b/tests/system-afxdp-testsuite.at index 9b7a29066614..01c1bf50c44f 100644 --- a/tests/system-afxdp-testsuite.at +++ b/tests/system-afxdp-testsuite.at @@ -23,4 +23,5 @@ m4_include([tests/system-common-macros.at]) m4_include([tests/system-userspace-macros.at]) m4_include([tests/system-afxdp-macros.at]) +m4_include([tests/system-afxdp.at]) m4_include([tests/system-traffic.at]) diff --git a/tests/system-afxdp.at b/tests/system-afxdp.at new file mode 100644 index 000000000000..cc0cb522fd35 --- /dev/null +++ b/tests/system-afxdp.at @@ -0,0 +1,89 @@ +AT_BANNER([afxdp-config]) + +AT_SETUP([afxdp veth best-effort]) +OVS_TRAFFIC_VSWITCHD_START() + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") + +AT_CHECK([ovs-vsctl -- set int ovs-p0 type="afxdp" options:xdp-mode=best-effort]) +AT_CHECK([ovs-vsctl -- set int ovs-p1 type="afxdp" options:xdp-mode=best-effort]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.1.1.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([afxdp veth native]) +OVS_TRAFFIC_VSWITCHD_START() + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) + +ADD_NAMESPACES(at_ns0, at_ns1) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") + +AT_CHECK([ovs-vsctl -- set int ovs-p0 type="afxdp" options:xdp-mode=native]) +AT_CHECK([ovs-vsctl -- set int ovs-p1 type="afxdp" options:xdp-mode=native]) + +NETNS_DAEMONIZE([at_ns0], [nc -l -k 1234 > /dev/null], [nc0.pid]) +NS_CHECK_EXEC([at_ns1], [echo "foobar" | nc $NC_EOF_OPT 10.1.1.1 1234]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([afxdp veth native and br-tap]) +OVS_TRAFFIC_VSWITCHD_START() + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) + +ADD_NAMESPACES(at_ns0) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +AT_CHECK([ovs-vsctl -- set int ovs-p0 type="afxdp" options:xdp-mode=native]) + +AT_CHECK([ip link set dev br0 up]) +AT_CHECK([ip addr add 10.1.1.2/24 dev br0]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.1.1.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +NETNS_DAEMONIZE([at_ns0], [nc -l -k 1234 > /dev/null], [nc0.pid]) +AT_CHECK([echo "foobar" | nc $NC_EOF_OPT 10.1.1.1 1234]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + +AT_SETUP([afxdp veth native and tap]) +OVS_TRAFFIC_VSWITCHD_START() + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) + +ADD_NAMESPACES(at_ns0) + +ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") +AT_CHECK([ovs-vsctl -- set int ovs-p0 type="afxdp" options:xdp-mode=native]) + +AT_CHECK([ovs-vsctl add-port br0 tap0 -- set int tap0 type=tap]) + +AT_CHECK([ip link set dev tap0 up]) +AT_CHECK([ip addr add 10.1.1.2/24 dev tap0]) + +NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.1.1.2 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms +]) + +NETNS_DAEMONIZE([at_ns0], [nc -l -k 1234 > /dev/null], [nc0.pid]) +AT_CHECK([echo "foobar" | nc $NC_EOF_OPT 10.1.1.1 1234]) + +OVS_TRAFFIC_VSWITCHD_STOP +AT_CLEANUP + -- 2.7.4 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev