Mike Pattrick <m...@redhat.com> writes: > On Wed, 2021-12-01 at 14:46 +0100, Eelco Chaudron wrote: >> >> On 29 Nov 2021, at 22:02, Aaron Conole wrote: >> >> > This reverts commit c645550bb249 ("odp-util: Always report >> > ODP_FIT_TOO_LITTLE for IGMP.") >> > >> > Always forcing a slow path action can result in some over-broad >> > flows which swallow all traffic and force them to userspace, as reported >> > in the thread at >> > https://mail.openvswitch.org/pipermail/ovs-dev/2021-September/387706.html >> > and at >> > https://mail.openvswitch.org/pipermail/ovs-dev/2021-September/387689.html >> > >> > Revert the ODP_FIT_TOO_LITTLE return for IGMP specifically. >> > Additionally, remove the userspace wc mask to prevent revalidator from >> > cycling flows. >> > >> > Fixes: c645550bb249 ("odp-util: Always report ODP_FIT_TOO_LITTLE for >> > IGMP.") >> > Signed-off-by: Aaron Conole <acon...@redhat.com> >> > Acked-by: Eelco Chaudron <echau...@redhat.com> >> >> Thanks Aaron for adding the tests! >> >> Acked-by: Eelco Chaudron <echau...@redhat.com> > > Hello Aaron, > > Looks good but I'm having some issues with the "igmp flood for non-snoop > enabled" test. > > I find that it fails for me a small percentage of the time, The > following snippet will reproduce this issue: > > for i in $(seq 1 100); do make check TESTSUITEFLAGS="2379"; if [[ $? > -ne 0 ]]; then echo "Test $i failed"; break; fi; done > > > The diff shows: > > -recirc_id(0),in_port(1),eth(src=aa:55:aa:55:00:01,dst=01:01:00:0c:29:a0),eth_type(0x0800),ipv4(frag=no), > actions:100,2 > -recirc_id(0),in_port(2),eth(src=01:01:00:0c:29:a0,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(frag=no), > actions:1 > +recirc_id(0),in_port(2),eth(src=aa:55:aa:55:00:01,dst=01:01:00:0c:29:a0),eth_type(0x0800),ipv4(frag=no), > actions:100,1 > +recirc_id(0),in_port(1),eth(src=01:01:00:0c:29:a0,dst=aa:55:aa:55:00:01),eth_type(0x0800),ipv4(frag=no), > actions:2 > > > And the logs show: >> 2021-12-06T20:32:20.519Z|00053|bridge|INFO|bridge br0: added interface p1 on >> port 2 >> 2021-12-06T20:32:20.519Z|00054|bridge|INFO|bridge br0: added interface p0 on >> port 1 > > > So it seems like the proper port numbers are being assigned, but the > flow seems to have incorrect port numbers. Not sure what's going on > there, but I also found that splitting the the "ovs-vsctl add-port" > invocations into two commands fixed the issue.
I've dug into this a bit more and want to update the list. I can reproduce this on multiple systems, with multiple compilers - in order to do so, I needed to use '-O2' when compiling. I also see similar problems with other tests in the mcast-snooping.at file (and I haven't tried other test suites to confirm). For example: mcast-snooping.at:165 mcast - delete the port mdb when port destroyed Also fails in this same way. I have done a bit of messing around, and it appears that if I drop ICMP messages from processing, I don't see these issues any longer. It's difficult to hook up -fsanitize=undefined to try and do a quick trim because there are a number of "false" positives there re: pointer casting for the HMAP_FOR_EACH(), et. al. container functions. I would say it might be a good idea to apply this patch anyway, and we can dig into the issue in parallel - after all, it exists whether or not we have this patch applied AFAIK. > Cheers, > M > >> >> _______________________________________________ >> dev mailing list >> d...@openvswitch.org >> https://mail.openvswitch.org/mailman/listinfo/ovs-dev >> _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev