[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20091026.173232.33817336.davem@davemloft.net>
Date: Mon, 26 Oct 2009 17:32:32 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: eric.dumazet@...il.com
Cc: benny+usenet@...rsen.dk, gertjan_hofman@...oo.com,
mcarlson@...adcom.com, netdev@...r.kernel.org, kaber@...sh.net
Subject: Re: [PATCH] vlan: allow VLAN ID 0 to be used
From: Eric Dumazet <eric.dumazet@...il.com>
Date: Mon, 26 Oct 2009 17:13:58 +0100
> [PATCH] vlan: allow VLAN ID 0 to be used
>
> We currently use a 16 bit field (vlan_tci) to store VLAN ID on a skb.
>
> 0 value is used a special value, meaning VLAN ID not set.
> This forbids use of VLAN ID 0
>
> As VLAN ID is 12 bits, we can use high order bit as a flag, and
> allow VLAN ID 0
>
> Reported-by: Gertjan Hofman <gertjan_hofman@...oo.com>
> Signed-off-by: Eric Dumazet <eric.dumazet@...il.com>
This is going to need some more work.
IXGBE is already using the higher bits of ->vlan_tci internally,
your change breaks that.
QLGE explicitly initializes skb->vlan_tci to zero, you'll need to make
sure that's OK.
There is an explicit "if (skb->vlan_tci" (ie. zero vs. non-zero) test
in net/core/dev.c:netif_receive_skb()
net/core/skbuff.c:__copy_skb_header() does a straight copy, you'll
need to make sure that's still OK.
net/packet/af_packet.c:tpacket_rcv() and packet_recvmsg() report the
skb->vlan_tci value to userspace, that's broken now as userspace
doesn't expect that new bit to be there.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists