Re: DSA and underlying 802.1Q encapsulation
From: Guenter Roeck <linux@roeck-us.net>
Date: 2015-05-26 22:51:47
On Tue, May 26, 2015 at 06:29:57PM -0400, Vivien Didelot wrote:
Hi,
I'm doing tests with VLAN support in DSA and I noticed that the EDSA
frame is prepended with a 802.1q header once queued to the underlying
network device, in net/dsa/tag_edsa.c:
skb->dev = p->parent->dst->master_netdev;
dev_queue_xmit(skb);
This issue can be observed with the following dump:
curl -s http://ix.io/iIv | tcpdump -en -r -
I suspect that the DSA code must clear some VLAN flags in the skb
structure, in order to prevent the additional encapsulation by the lower
level. Does this make sense?Hi Vivien, Interesting question. Does the underlying network device support VLAN HW acceleration (NETIF_F_HW_VLAN_CTAG_RX, NETIF_F_HW_VLAN_CTAG_TX) ? If yes, the dsa code may need to move the tag into the header. If we are lucky, a call to vlan_hwaccel_push_inside() might do it. Do you have some vlan dsa code to share, by any chance ? That might save me some time, as I am looking into it as well. Thanks, Guenter