On 5/16/23 15:14, Ales Musil wrote:
> There was a race within packet buffering that could
> result in first packt being dropped. It could happen
> under following conditions and topology:
> S1 == R1 == public == R2 == S2
> SNAT on R1 and DGP on port connecting R1 with public.
> 
> 1) The GARP is sent for the DGP SNAT
> 2) The GARP is delayed on R2 because it's multicast
> 3) The MAC binding is added to SB
> 4) Some traffic that gets buffered on S2
> 5) An ARP is sent as consequence of the buffering
> 6) Response for the ARP is ignored on lflow level,
> because the MAC binding already exists
> 7) The buffered packet is never sent out and times out
> 
> In order to prevent the race add additonal lookup for the
> buffered packets. When the packet is created do initial
> lookup right away as there is a chance that the MAC binding
> is already present in database. In any other case that would
> prevent the tracked loop to provide correct information do
> SB lookup, but only after certain timeout.
> 
> Signed-off-by: Ales Musil <[email protected]>
> ---
> v8: Address comments from Dumitru:
>     Remove the "next_lookup_at_ms" as it is not needed.
> ---

Looks good to me, thanks for addressing all my comments!

Acked-by: Dumitru Ceara <[email protected]>

Regards,
Dumitru

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

Reply via email to