From: Andrew Lunn Date: Thu, 9 Nov 2017 21:29:52 +0000 (+0100) Subject: net: dsa: {e}dsa: set offload_fwd_mark on received packets X-Git-Tag: v5.15~9988^2~57^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=13edbdb6ed8b829ab3198a8c7b978c37184317b5;p=platform%2Fkernel%2Flinux-starfive.git net: dsa: {e}dsa: set offload_fwd_mark on received packets The software bridge needs to know if a packet has already been bridged by hardware offload to ports in the same hardware offload, in order that it does not re-flood them, causing duplicates. This is particularly true for broadcast and multicast traffic which the host has requested. By setting offload_fwd_mark in the skb the bridge will only flood to ports in other offloads and other netifs. Set this flag in the DSA and EDSA tag driver. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller --- diff --git a/net/dsa/tag_dsa.c b/net/dsa/tag_dsa.c index dbbcdaf..cd13cfc5 100644 --- a/net/dsa/tag_dsa.c +++ b/net/dsa/tag_dsa.c @@ -141,6 +141,8 @@ static struct sk_buff *dsa_rcv(struct sk_buff *skb, struct net_device *dev, 2 * ETH_ALEN); } + skb->offload_fwd_mark = 1; + return skb; } diff --git a/net/dsa/tag_edsa.c b/net/dsa/tag_edsa.c index f38a626..4083326 100644 --- a/net/dsa/tag_edsa.c +++ b/net/dsa/tag_edsa.c @@ -160,6 +160,8 @@ static struct sk_buff *edsa_rcv(struct sk_buff *skb, struct net_device *dev, 2 * ETH_ALEN); } + skb->offload_fwd_mark = 1; + return skb; }