Tiago Lam <tiago....@intel.com> writes: > The following tests are added to the DPDK testsuite to add some > coverage for the multi-segment mbufs: > - Check that multi-segment mbufs are disabled by default; > - Check that providing `other_config:dpdk-multi-seg-mbufs=true` indeed > enables mbufs; > - Using a DPDK port, send a random packet out and check that `ofctl > dump-flows` shows the correct amount of packets and bytes sent. > > Signed-off-by: Tiago Lam <tiago....@intel.com> > Acked-by: Eelco Chaudron <echau...@redhat.com> > --- > tests/system-dpdk.at | 65 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 65 insertions(+) > > diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at > index 1da020a..ca66135 100644 > --- a/tests/system-dpdk.at > +++ b/tests/system-dpdk.at > @@ -232,3 +232,68 @@ OVS_VSWITCHD_STOP(["\@does not exist. The Open vSwitch > kernel module is probably > \@EAL: No free hugepages reported in hugepages-1048576kB@d"]) > AT_CLEANUP > dnl > --------------------------------------------------------------------------
Same comment as before with all of these - I think it makes sense to call it for these cases as well. WDYT? > + > +AT_SETUP([Jumbo frames - Multi-segment disabled by default]) > +OVS_DPDK_START() > + > +AT_CHECK([grep "multi-segment mbufs enabled" ovs-vswitchd.log], [1], []) > +OVS_VSWITCHD_STOP("/Global register is changed during/d > +/EAL: No free hugepages reported in hugepages-1048576kB/d > +") > +AT_CLEANUP > + > +AT_SETUP([Jumbo frames - Multi-segment enabled]) > +OVS_DPDK_START([dpdk-multi-seg-mbufs=true]) > +AT_CHECK([grep "multi-segment mbufs enabled" ovs-vswitchd.log], [], [stdout]) > +OVS_VSWITCHD_STOP("/Global register is changed during/d > +/EAL: No free hugepages reported in hugepages-1048576kB/d > +") > +AT_CLEANUP > + > +AT_SETUP([Jumbo frames - Multi-segment mbufs Tx]) > +OVS_DPDK_PRE_CHECK() > +OVS_DPDK_START([per-port-memory=true dpdk-multi-seg-mbufs=true]) > + > +dnl Add userspace bridge and attach it to OVS > +AT_CHECK([ovs-vsctl add-br br10 -- set bridge br10 datapath_type=netdev]) > +AT_CHECK([ovs-vsctl add-port br10 dpdk0 \ > + -- set Interface dpdk0 type=dpdk options:dpdk-devargs=$(cat PCI_ADDR) \ > + -- set Interface dpdk0 mtu_request=9000], [], [stdout], [stderr]) > + > +AT_CHECK([ovs-vsctl show], [], [stdout]) > + > +dnl Add flows to send packets out from the 'dpdk0' port > +AT_CHECK([ > +ovs-ofctl del-flows br10 > +ovs-ofctl add-flow br10 in_port=LOCAL,actions=output:dpdk0 > +], [], [stdout]) > + > +AT_CHECK([ovs-ofctl dump-flows br10], [], [stdout]) > + > +dnl Send packet out, of the 'dpdk0' port > +AT_CHECK([ > +ARP_HEADER="000009000B00000009000A00080600010800060400010000000000010A0000\ > +010000000000020A000002" > +dnl Build a random hex string to append to the ARP_HEADER > +RANDOM_BODY=$(printf '0102030405%.0s' {1..1750}) > +dnl 8792B ARP packet > +RANDOM_ARP="$ARP_HEADER$RANDOM_BODY" > + > +ovs-ofctl packet-out br10 "packet=$RANDOM_ARP,action=resubmit:LOCAL" > +], [], [stdout]) > + > +AT_CHECK([ovs-ofctl dump-flows br10], [0], [stdout]) > + > +dnl Confirm the single packet as been sent with correct size > +AT_CHECK([ovs-ofctl dump-flows br10 | ofctl_strip | grep in_port], [0], [dnl > + n_packets=1, n_bytes=8792, in_port=LOCAL actions=output:1 > +]) > + > +dnl Clean up > +OVS_VSWITCHD_STOP("/does not exist. The Open vSwitch kernel module is > probably not loaded./d > +/Failed to enable flow control/d > +/failed to connect to \/tmp\/dpdkvhostclient0: No such file or directory/d > +/Global register is changed during/d > +/EAL: No free hugepages reported in hugepages-1048576kB/d > +") > +AT_CLEANUP _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev