Message ID | 20120928123258.9454.95197.stgit@localhost.localdomain |
---|---|
State | Rejected, archived |
Delegated to: | David Miller |
Headers | show |
On 09/28/2012 03:32 PM, Paulius Zaleckas wrote: > vconfig help tells that vlan_id should be 0-4095, but fails > with 4095. > > There is an off-by-one bug while evaluating vlan_id. > Fix it by evaluating against count(4096), not mask(0x0fff = 4095). On the other hand 4095 is reserved by 802.1Q... http://en.wikipedia.org/wiki/IEEE_802.1Q VLAN Identifier (VID): a 12-bit field specifying the VLAN to which the frame belongs. The hexadecimal values of 0x000 and 0xFFF are reserved. All other values may be used as VLAN identifiers, allowing up to 4,094 VLANs. The reserved value 0x000 indicates that the frame does not belong to any VLAN; in this case, the 802.1Q tag specifies only a priority and is referred to as a priority tag. So maybe we should fix vconfig help? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Paulius Zaleckas <paulius.zaleckas@gmail.com> Date: Fri, 28 Sep 2012 15:32:58 +0300 > vconfig help tells that vlan_id should be 0-4095, but fails > with 4095. > > There is an off-by-one bug while evaluating vlan_id. > Fix it by evaluating against count(4096), not mask(0x0fff = 4095). > > Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com> Awesome, we don't need VXVLAN any more after this fix. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 2012-09-28 at 13:44 -0400, David Miller wrote: > > Awesome, we don't need VXVLAN any more after this fix. Hey, I guess you meant to send this to G+, not netdev ;) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Friday 2012-09-28 19:44, David Miller wrote: >From: Paulius Zaleckas <paulius.zaleckas@gmail.com> >Date: Fri, 28 Sep 2012 15:32:58 +0300 > >> vconfig help tells that vlan_id should be 0-4095, but fails >> with 4095. >> >> There is an off-by-one bug while evaluating vlan_id. >> Fix it by evaluating against count(4096), not mask(0x0fff = 4095). >> >> Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com> > >Awesome, we don't need VXVLAN any more after this fix. You mean because the special 0xfff value could indicate "here's more headers"? Sounds like a plan. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 11/12/2012 10:42 AM, Jan Engelhardt wrote: > On Friday 2012-09-28 19:44, David Miller wrote: > >> From: Paulius Zaleckas <paulius.zaleckas@gmail.com> >> Date: Fri, 28 Sep 2012 15:32:58 +0300 >> >>> vconfig help tells that vlan_id should be 0-4095, but fails >>> with 4095. >>> >>> There is an off-by-one bug while evaluating vlan_id. >>> Fix it by evaluating against count(4096), not mask(0x0fff = 4095). >>> >>> Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com> >> >> Awesome, we don't need VXVLAN any more after this fix. > > You mean because the special 0xfff value could indicate "here's more > headers"? Sounds like a plan. You can't just use reserved values...they are for the standards writers in case they ever need to officially extend the 802.1q spec somehow. If you use it for non-standard purposes, you can set up conflicts with future standards. Thanks, Ben
On Monday 2012-11-12 20:01, Ben Greear wrote: >>> >>> Awesome, we don't need VXVLAN any more after this fix. >> >> You mean because the special 0xfff value could indicate "here's more >> headers"? Sounds like a plan. > > You can't just use reserved values... Indeed not; I was just implicitly thinking of the 802.1Q standard comittee getting an impetus from the public disgust against VXVLAN to define 0xfff with extensions that allow for e.g. stacking, making VXVLAN redundant and obsolete. :) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c index 9096bcb..9e528bf 100644 --- a/net/8021q/vlan.c +++ b/net/8021q/vlan.c @@ -199,7 +199,7 @@ static int register_vlan_device(struct net_device *real_dev, u16 vlan_id) char name[IFNAMSIZ]; int err; - if (vlan_id >= VLAN_VID_MASK) + if (vlan_id >= VLAN_N_VID) return -ERANGE; err = vlan_check_real_dev(real_dev, vlan_id);
vconfig help tells that vlan_id should be 0-4095, but fails with 4095. There is an off-by-one bug while evaluating vlan_id. Fix it by evaluating against count(4096), not mask(0x0fff = 4095). Signed-off-by: Paulius Zaleckas <paulius.zaleckas@gmail.com> --- net/8021q/vlan.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html