Thread (32 messages) 32 messages, 6 authors, 2015-06-02

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help