On Thu, May 19, 2022 at 10:11:13AM -0700, Florian Fainelli wrote: > unless we somehow manage to put it in the linear portion of > the SKB to avoid using any control buffer or extension. But how? Essentially the DSA master has to look at a packet and determine whether it came from DSA based on something which non-DSA code could not have done. In fact, I'm looking at the calls to skb_reset_mac_{header,len} from net/core/skbuff.c, specifically at VLAN and MPLS, and I believe (but haven't tested) that pushing such headers would also alter skb->mac_len to some value != ETH_HLEN. So simply having the DSA master check whether DSA was there by checking whether skb->mac_len is ETH_HLEN + DSA tag len could easily confuse DSA with some other protocol of same header size.