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
