OSDN Git Service

net: dsa: ksz: Add STP multicast handling
authorMarek Vasut <marex@denx.de>
Sat, 15 Dec 2018 00:58:06 +0000 (01:58 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sun, 16 Dec 2018 22:23:33 +0000 (14:23 -0800)
In case the destination address is link local, add override bit into the
switch tag to let such a packet through the switch even if the port is
blocked.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Tristram Ha <Tristram.Ha@microchip.com>
Cc: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Cc: Woojung Huh <woojung.huh@microchip.com>
Cc: David S. Miller <davem@davemloft.net>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/tag_ksz.c

index c98b53f..da71b9e 100644 (file)
@@ -110,6 +110,10 @@ static struct sk_buff *ksz9477_xmit(struct sk_buff *skb,
        addr = skb_mac_header(nskb);
 
        *tag = BIT(dp->index);
+
+       if (is_link_local_ether_addr(addr))
+               *tag |= KSZ9477_TAIL_TAG_OVERRIDE;
+
        *tag = cpu_to_be16(*tag);
 
        return nskb;