Messages in this thread | | | Date | Tue, 25 Aug 2015 18:37:45 -0700 | From | Guenter Roeck <> | Subject | Re: [PATCH net] net: dsa: fix EDSA frame from hwaccel frame |
| |
On Tue, Aug 25, 2015 at 06:28:34PM -0700, Florian Fainelli wrote: > Le 08/03/15 23:35, Vivien Didelot a écrit : > > If the underlying network device features NETIF_F_HW_VLAN_CTAG_TX, > > an EDSA frame is prepended with a 802.1q header once queued. > > > > To fix this, push the VLAN tag to the payload if present, before > > checking the frame protocol. > > Makes sense, but you would want Andrew or Guenter to ack this patch. > I'll have to carve out some time soon to see if the current dsa code still works for me. Just don't know when and how to do that :-(
Guenter
> Thanks! > > > > > [note: we may prefer to access directly VLAN TCI from hwaccel frames, > > but this approach is simpler.] > > > > Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> > > --- > > net/dsa/tag_edsa.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/net/dsa/tag_edsa.c b/net/dsa/tag_edsa.c > > index 2288c80..3ada4eb 100644 > > --- a/net/dsa/tag_edsa.c > > +++ b/net/dsa/tag_edsa.c > > @@ -9,6 +9,7 @@ > > */ > > > > #include <linux/etherdevice.h> > > +#include <linux/if_vlan.h> > > #include <linux/list.h> > > #include <linux/slab.h> > > #include "dsa_priv.h" > > @@ -21,6 +22,10 @@ static struct sk_buff *edsa_xmit(struct sk_buff *skb, struct net_device *dev) > > struct dsa_slave_priv *p = netdev_priv(dev); > > u8 *edsa_header; > > > > + skb = vlan_hwaccel_push_inside(skb); > > + if (unlikely(!skb)) > > + return NULL; > > + > > /* > > * Convert the outermost 802.1q tag to a DSA tag and prepend > > * a DSA ethertype field is the packet is tagged, or insert > > > > > -- > Florian
| |