Hi Amber, I am seeing a failure in one of the unit tests. Test: 7: OVS-DPDK - MFEX Autovalidator Fuzzy FAILED (system-dpdk.at:289)
More details about the failure: 2022-03-16T16:07:05.234Z|00002|dpif_netdev_extract(pmd-c21/id:101)|ERR|Autovalidation for avx512_dot1q_ipv6_tcp failed in pkt 24, disabling. 2022-03-16T16:07:05.235Z|00003|dpif_netdev_extract(pmd-c21/id:101)|ERR|Autovalidation failure details: MFEX autovalidator pkt 24 Autovalidation blocks failed Good hex: 00000000 00 00 00 00 02 00 00 00-00 00 00 00 00 00 00 00 00000010 e0 ab ce d7 79 62 32 23-2e 12 11 fb 86 dd 00 00 00000020 81 00 3d f3 00 00 00 00-b5 c5 84 90 33 93 17 1d 00000030 24 85 28 05 e3 ce 7a 7d-9b 89 00 4c 4a 1c b9 70 00000040 5a 30 80 14 75 97 a7 ce-00 0a 5e 3c 00 a5 bc 06 00000050 00 00 00 00 04 02 00 00-60 70 d0 2f 00 00 00 00 Test hex: 00000000 00 00 00 00 02 00 00 00-00 00 00 00 00 00 00 00 00000010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 00000020 00 00 3d 00 00 00 00 00-00 00 00 00 00 00 00 00 00000030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 00000040 00 00 00 00 00 00 00 00-00 0a 5e 3c 00 a5 bc 06 00000050 00 00 00 00 04 02 00 00-60 70 d0 2f 00 00 00 00 Autovalidation packet offsets failed Good offsets: l2_pad_size: 0, l2_5_ofs: 65535, l3_ofs: 18, l4_ofs: 58 Test offsets: l2_pad_size: 40, l2_5_ofs: 65535, l3_ofs: 18, l4_ofs: 58 Thanks, Cian > -----Original Message----- > From: Amber, Kumar <[email protected]> > Sent: Tuesday 15 March 2022 04:12 > To: [email protected] > Cc: [email protected]; Ferriter, Cian <[email protected]>; Stokes, Ian > <[email protected]>; > [email protected]; [email protected]; Van Haaren, Harry > <[email protected]>; Amber, Kumar > <[email protected]> > Subject: [PATCH v6 6/6] tests/mfex: Improve pcap script for complex testing > traffic > > The mfex pcap generation script is improved for varied length > traffic and also removes the hard coded mfex_pcap instead uses > the script to generate complex traffic for testing. > > Signed-off-by: Kumar Amber <[email protected]> > --- > tests/automake.mk | 1 - > tests/mfex_fuzzy.py | 57 +++++++++++++++++++++++++------------- > tests/pcap/mfex_test.pcap | Bin 416 -> 0 bytes > tests/system-dpdk.at | 23 ++++++++++----- > 4 files changed, 54 insertions(+), 27 deletions(-) > delete mode 100644 tests/pcap/mfex_test.pcap > > diff --git a/tests/automake.mk b/tests/automake.mk > index 8a9151f81..507da2ee8 100644 > --- a/tests/automake.mk > +++ b/tests/automake.mk > @@ -145,7 +145,6 @@ $(srcdir)/tests/fuzz-regression-list.at: tests/automake.mk > > EXTRA_DIST += $(MFEX_AUTOVALIDATOR_TESTS) > MFEX_AUTOVALIDATOR_TESTS = \ > - tests/pcap/mfex_test.pcap \ > tests/mfex_fuzzy.py > > OVSDB_CLUSTER_TESTSUITE_AT = \ > diff --git a/tests/mfex_fuzzy.py b/tests/mfex_fuzzy.py > index 3efe1152d..d2314d003 100755 > --- a/tests/mfex_fuzzy.py > +++ b/tests/mfex_fuzzy.py > @@ -3,30 +3,49 @@ > import sys > > from scapy.all import RandMAC, RandIP, PcapWriter, RandIP6, RandShort, fuzz > -from scapy.all import IPv6, Dot1Q, IP, Ether, UDP, TCP > +from scapy.all import IPv6, Dot1Q, IP, Ether, UDP, TCP, random > > path = str(sys.argv[1]) + "/pcap/fuzzy.pcap" > +size = int(sys.argv[2]) > +traffic_opt = str(sys.argv[3]) > + > pktdump = PcapWriter(path, append=False, sync=True) > > -for i in range(0, 2000): > +for i in range(0, size): > > - # Generate random protocol bases, use a fuzz() over the combined packet > - # for full fuzzing. > eth = Ether(src=RandMAC(), dst=RandMAC()) > vlan = Dot1Q() > - ipv4 = IP(src=RandIP(), dst=RandIP()) > - ipv6 = IPv6(src=RandIP6(), dst=RandIP6()) > udp = UDP(dport=RandShort(), sport=RandShort()) > - tcp = TCP(dport=RandShort(), sport=RandShort()) > - > - # IPv4 packets with fuzzing > - pktdump.write(fuzz(eth / ipv4 / udp)) > - pktdump.write(fuzz(eth / ipv4 / tcp)) > - pktdump.write(fuzz(eth / vlan / ipv4 / udp)) > - pktdump.write(fuzz(eth / vlan / ipv4 / tcp)) > - > - # IPv6 packets with fuzzing > - pktdump.write(fuzz(eth / ipv6 / udp)) > - pktdump.write(fuzz(eth / ipv6 / tcp)) > - pktdump.write(fuzz(eth / vlan / ipv6 / udp)) > - pktdump.write(fuzz(eth / vlan / ipv6 / tcp)) > + tcp = TCP(dport=RandShort(), sport=RandShort(), flags='S', dataofs=(0, > 20)) > + > + if traffic_opt == "fuzzy": > + > + ipv4 = IP(src=RandIP(), dst=RandIP()) > + ipv6 = IPv6(src=RandIP6(), dst=RandIP6()) > + # IPv4 packets with fuzzing > + pktdump.write(fuzz(eth / ipv4 / udp)) > + pktdump.write(fuzz(eth / ipv4 / tcp)) > + pktdump.write(fuzz(eth / vlan / ipv4 / udp)) > + pktdump.write(fuzz(eth / vlan / ipv4 / tcp)) > + > + # IPv6 packets with fuzzing > + pktdump.write(fuzz(eth / ipv6 / udp)) > + pktdump.write(fuzz(eth / ipv6 / tcp)) > + pktdump.write(fuzz(eth / vlan / ipv6 / udp)) > + pktdump.write(fuzz(eth / vlan / ipv6 / tcp)) > + > + else: > + > + ipv4 = IP(src=RandIP(), dst=RandIP(), len=random.randint(0, 100)) > + ipv6 = IPv6(src=RandIP6(), dst=RandIP6(), plen=random.randint(0, > 100)) > + # IPv4 packets > + pktdump.write(eth / ipv4 / udp) > + pktdump.write(eth / ipv4 / tcp) > + pktdump.write(eth / vlan / ipv4 / udp) > + pktdump.write(eth / vlan / ipv4 / tcp) > + > + # IPv6 packets > + pktdump.write(eth / ipv6 / udp) > + pktdump.write(eth / ipv6 / tcp) > + pktdump.write(eth / vlan / ipv6 / udp) > + pktdump.write(eth / vlan / ipv6 / tcp) > diff --git a/tests/pcap/mfex_test.pcap b/tests/pcap/mfex_test.pcap > deleted file mode 100644 > index > 1aac67b8d643ecb016c758cba4cc32212a80f52a..0000000000000000000000000000000000000000 > GIT binary patch > literal 0 > HcmV?d00001 > > literal 416 > zcmca|c+)~A1{MYw`2U}Qff2}Q<eHVR>K`M68ITRa|G@yFii5$Gfk6YL%z>@uY&}o| > z2s4N<1VH2&7y^V87$)XGOtD~MV$cFgfG~zBGGJ2#YtF$<F=a4i;9x8Q*<ZrSM6Ufz > xK>KST_NTIwYriok6N4Vm)gX-Q@<yO<!C`>c^{cp<7_5LgK^UuU{2>VS0RZ!RQ+EIW > > diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at > index 7d2715c4a..1476e470c 100644 > --- a/tests/system-dpdk.at > +++ b/tests/system-dpdk.at > @@ -226,12 +226,13 @@ dnl > -------------------------------------------------------------------------- > dnl Add standard DPDK PHY port > AT_SETUP([OVS-DPDK - MFEX Autovalidator]) > AT_KEYWORDS([dpdk]) > - > +AT_SKIP_IF([! $PYTHON3 -c "import scapy"], [], []) > +AT_CHECK([$PYTHON3 $srcdir/mfex_fuzzy.py $srcdir 2000 0], [], [stdout]) > OVS_DPDK_START() > > dnl Add userspace bridge and attach it to OVS > AT_CHECK([ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev]) > -AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=dpdk > options:dpdk- > devargs=net_pcap1,rx_pcap=$srcdir/pcap/mfex_test.pcap,infinite_rx=1], [], > [stdout], [stderr]) > +AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=dpdk > options:dpdk- > devargs=net_pcap1,rx_pcap=$srcdir/pcap/fuzzy.pcap,infinite_rx=1], [], > [stdout], [stderr]) > AT_CHECK([ovs-vsctl show], [], [stdout]) > > AT_SKIP_IF([! ovs-appctl dpif-netdev/miniflow-parser-get | sed 1,4d | grep > "True"], [], [dnl > @@ -245,11 +246,15 @@ AT_CHECK([ovs-appctl dpif-netdev/miniflow-parser-set > autovalidator], [0], [dnl > Miniflow extract implementation set to autovalidator. > ]) > > -OVS_WAIT_UNTIL([test `ovs-vsctl get interface p1 statistics | grep -oP > 'rx_packets=\s*\K\d+'` -ge > 1000]) > +OVS_WAIT_UNTIL([test `ovs-vsctl get interface p1 statistics | grep -oP > 'rx_packets=\s*\K\d+'` -ge > 16000]) > > dnl Clean up > AT_CHECK([ovs-vsctl del-port br0 p1], [], [stdout], [stderr]) > -OVS_VSWITCHD_STOP("[SYSTEM_DPDK_ALLOWED_LOGS]") > +OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [ > +\@upcall: datapath reached the dynamic limit of .* flows.@d > +\@received packet on unknown port .* on bridge br0 while processing@d > +\@upcall_cb failure: ukey installation fails@d > +])") > AT_CLEANUP > dnl > -------------------------------------------------------------------------- > > @@ -258,7 +263,7 @@ dnl Add standard DPDK PHY port > AT_SETUP([OVS-DPDK - MFEX Autovalidator Fuzzy]) > AT_KEYWORDS([dpdk]) > AT_SKIP_IF([! $PYTHON3 -c "import scapy"], [], []) > -AT_CHECK([$PYTHON3 $srcdir/mfex_fuzzy.py $srcdir], [], [stdout]) > +AT_CHECK([$PYTHON3 $srcdir/mfex_fuzzy.py $srcdir 2000 fuzzy], [], [stdout]) > OVS_DPDK_START() > > dnl Add userspace bridge and attach it to OVS > @@ -277,12 +282,14 @@ AT_CHECK([ovs-appctl dpif-netdev/miniflow-parser-set > autovalidator], [0], [dnl > Miniflow extract implementation set to autovalidator. > ]) > > -OVS_WAIT_UNTIL([test `ovs-vsctl get interface p1 statistics | grep -oP > 'rx_packets=\s*\K\d+'` -ge > 100000]) > +OVS_WAIT_UNTIL([test `ovs-vsctl get interface p1 statistics | grep -oP > 'rx_packets=\s*\K\d+'` -ge > 16000]) > > dnl Clean up > AT_CHECK([ovs-vsctl del-port br0 p1], [], [stdout], [stderr]) > OVS_VSWITCHD_STOP("m4_join([], [SYSTEM_DPDK_ALLOWED_LOGS], [ > \@upcall: datapath reached the dynamic limit of .* flows.@d > +\@received packet on unknown port .* on bridge br0 while processing@d > +\@upcall_cb failure: ukey installation fails@d > ])") > AT_CLEANUP > dnl > -------------------------------------------------------------------------- > @@ -290,11 +297,13 @@ dnl > -------------------------------------------------------------------------- > dnl > -------------------------------------------------------------------------- > AT_SETUP([OVS-DPDK - MFEX Configuration]) > AT_KEYWORDS([dpdk]) > +AT_SKIP_IF([! $PYTHON3 -c "import scapy"], [], []) > +AT_CHECK([$PYTHON3 $srcdir/mfex_fuzzy.py $srcdir 1 fuzzy], [], [stdout]) > OVS_DPDK_START() > AT_CHECK([ovs-vsctl --no-wait set Open_vSwitch . > other_config:pmd-cpu-mask=0xC]) > dnl Add userspace bridge and attach it to OVS > AT_CHECK([ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev]) > -AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=dpdk > options:dpdk- > devargs=net_pcap1,rx_pcap=$srcdir/pcap/mfex_test.pcap,infinite_rx=1], [], > [stdout], [stderr]) > +AT_CHECK([ovs-vsctl add-port br0 p1 -- set Interface p1 type=dpdk > options:dpdk- > devargs=net_pcap1,rx_pcap=$srcdir/pcap/fuzzy.pcap,infinite_rx=1], [], > [stdout], [stderr]) > AT_CHECK([ovs-vsctl show], [], [stdout]) > > AT_CHECK([ovs-appctl dpif-netdev/miniflow-parser-set scalar 1], [2], > -- > 2.25.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
