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

Reply via email to