On Mon, Nov 19, 2018 at 11:07:45AM -0800, David Miller wrote: > From: Ido Schimmel <idosch@xxxxxxxxxxxx> > Date: Mon, 19 Nov 2018 16:11:07 +0000 > > > From: Petr Machata <petrm@xxxxxxxxxxxx> > > > > When a packet is trapped and the corresponding SKB marked as > > already-forwarded, it retains this marking even after it is forwarded > > across veth links into another bridge. There, since it ingresses the > > bridge over veth, which doesn't have offload_fwd_mark, it triggers a > > warning in nbp_switchdev_frame_mark(). > > > > Then nbp_switchdev_allowed_egress() decides not to allow egress from > > this bridge through another veth, because the SKB is already marked, and > > the mark (of 0) of course matches. Thus the packet is incorrectly > > blocked. > > > > Solve by resetting offload_fwd_mark() in skb_scrub_packet(). That > > function is called from tunnels and also from veth, and thus catches the > > cases where traffic is forwarded between bridges and transformed in a > > way that invalidates the marking. > > > > Signed-off-by: Petr Machata <petrm@xxxxxxxxxxxx> > > Suggested-by: Ido Schimmel <idosch@xxxxxxxxxxxx> > > Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxxxx> > > As a bug fix this seems relevant for 'net' instead of 'net-next'. This seemed really obscure/specific to this selftest so I deemed it unnecessary for 'net'. Agree that by the book it is 'net' material, so we'll send it there. Thanks for the feedback