On Mon, 3 Jun 2019 at 00:40, Vladimir Oltean <[email protected]> wrote: > > Although meta frames are configured to be sent at SJA1105_META_DMAC > (01-80-C2-00-00-0E) which is a multicast MAC address that would also be > trapped by the switch to the CPU, were it to receive it on a front-panel > port, meta frames are conceptually not link-local frames, they only > carry their RX timestamps. > > The choice of sending meta frames at a multicast DMAC is a pragmatic > one, to avoid installing an extra entry to the DSA master port's > multicast MAC filter. > > Signed-off-by: Vladimir Oltean <[email protected]> > --- > Changes in v2: > > Patch is new. > > include/linux/dsa/sja1105.h | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/include/linux/dsa/sja1105.h b/include/linux/dsa/sja1105.h > index f3237afed35a..d64e56d6c521 100644 > --- a/include/linux/dsa/sja1105.h > +++ b/include/linux/dsa/sja1105.h > @@ -31,6 +31,8 @@ static inline bool sja1105_is_link_local(const struct > sk_buff *skb) > const struct ethhdr *hdr = eth_hdr(skb); > u64 dmac = ether_addr_to_u64(hdr->h_dest); > > + if (ntohs(hdr->h_proto) == ETH_P_SJA1105_META) > + return false; > if ((dmac & SJA1105_LINKLOCAL_FILTER_A_MASK) == > SJA1105_LINKLOCAL_FILTER_A) > return true; > -- > 2.17.1 >
Please be aware that this patch is misplaced and should be moved after the current 09/10 (doesn't compile as 08/10). I'll bundle this change in v3 with the other feedback I'll hopefully get. Thanks! -Vladimir

