On Mon, 13 Jul 2026 at 14:32, Ilya Maximets <[email protected]> wrote:
>
> On 7/13/26 1:52 PM, David Marchand wrote:
> > On Fri, 10 Jul 2026 at 09:09, David Marchand via dev
> > <[email protected]> wrote:
> >>
> >> Instead of dropping we can switch to software segmentation before
> >> encapsulating packets already encapsulated in a tunnel.
> >>
> >> Signed-off-by: David Marchand <[email protected]>
> >
> > Recheck-request: github-robot
>
> FWIW, while the test failure is sort of related to the set, the
> issue is in the test.  AFAIU, what happened is an icmp6 packet
> entered OpenFlow pipeline before all the rules were installed
> and hit a bunch of resubmits with the output to local port
> without reaching the resubmit limit creating the datapath flow
> with a ton of output actions to the same local port, resulting
> in the large number of clones queued for output to the same
> port, which was reflected in the output batch growing.
>
> The solution here would be to properly allow icmpv6 packets
> to flow via normal action, setting correct priorities and using
> a bundle to avoid partial pipeline execution.
>
> Something like this:
>
> diff --git a/tests/system-traffic.at b/tests/system-traffic.at
> index 62567028e..6550f90d9 100644
> --- a/tests/system-traffic.at
> +++ b/tests/system-traffic.at
> @@ -2538,14 +2538,17 @@ ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24")
>  ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24")
>
>  dnl Exceed the max number of resubmits.
> -(echo "dl_type=0x806, actions=normal"
> +(
> +echo "priority=100, arp, actions=normal"
> +echo "priority=100, icmp6, actions=normal"
> +
>  for i in $(seq 1 64); do
>       j=$(expr $i + 1)
> -     echo "in_port=$i, actions=resubmit:$j, resubmit:$j, local"
> - done
> - echo "in_port=65, actions=local"
> +     echo "priority=0, in_port=$i, actions=resubmit:$j, resubmit:$j, local"
> +done
> +echo "priority=0, in_port=65, actions=local"
>  ) > flows.txt
> -AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
> +AT_CHECK([ovs-ofctl add-flows --bundle br0 flows.txt])
>
>  dnl Generate some traffic.
>  NS_CHECK_EXEC([at_ns0], [ping -q -c 10 -i 0.1 -w 2 10.1.1.2], [1], [ignore])
> --
>
> I'll do some more testing and send this as a separate fix.

I was quite skeptical about the value I saw in the test output files.
Thanks for the explanation.


This series may end up uncovering various test issues, but I think it
is worth keeping the check in OVS_VSWITCHD_STOP.
It forces us to have a good understanding of what is actually tested.


-- 
David Marchand

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to