From: Ido Schimmel <idosch@xxxxxxxxxxxx> Date: Fri, 1 Sep 2017 12:22:25 +0300 > Commit 6bc506b4fb06 ("bridge: switchdev: Add forward mark support for > stacked devices") added the 'offload_fwd_mark' bit to the skb in order > to allow drivers to indicate to the bridge driver that they already > forwarded the packet in L2. > > In case the bit is set, before transmitting the packet from each port, > the port's mark is compared with the mark stored in the skb's control > block. If both marks are equal, we know the packet arrived from a switch > device that already forwarded the packet and it's not re-transmitted. > > However, if the packet is transmitted from the bridge device itself > (e.g., br0), we should clear the 'offload_fwd_mark' bit as the mark > stored in the skb's control block isn't valid. > > This scenario can happen in rare cases where a packet was trapped during > L3 forwarding and forwarded by the kernel to a bridge device. > > Fixes: 6bc506b4fb06 ("bridge: switchdev: Add forward mark support for stacked devices") > Signed-off-by: Ido Schimmel <idosch@xxxxxxxxxxxx> > Reported-by: Yotam Gigi <yotamg@xxxxxxxxxxxx> > Tested-by: Yotam Gigi <yotamg@xxxxxxxxxxxx> > Reviewed-by: Jiri Pirko <jiri@xxxxxxxxxxxx> Applied and queued up for -stable, thanks.