Double stacked VLANs (was Re: [VLAN] Question on header check)
Alex Zeffertt
ajz at cambridgebroadband.com
Mon Jun 19 01:46:39 PDT 2006
Frederik Deweerdt wrote:
> On Fri, Jun 16, 2006 at 01:12:06PM +0100, Alex Zeffertt wrote:
>>>> Another possible problem: what if you are trying to encapsulate vlan 7 inside
>>>> of vlan 7. How do you know to double-encapsulate? What if user-space is sending
>>>> a pre-built VLAN frame with a raw socket? I'm not sure there is enough info as to
>>>> the intent to encapsulate or not once the VLAN code receives the packet.
>>> I see how my proposal was wrong. Let me wild guess again :). I wondered if the following
>>> code could be better. The idea being that the code could determine the need for
>>> encapsulating or not from the interface's nesting level and the actual number of VLAN tags in the packet.
>>
>>
>> I think we've had this conversation before. Search the list archives for "vlan Q in Q"
> Thanks for the pointer. Do you know why your patch didn't get merged into mainline?
>
A couple of reasons. Firstly the patch means that the REORDER_HEADER flag (which is set by
default) cannot be unset. Unsetting this flag provides a slight performance enhancement
when bridging between two interfaces and keeping the same tag.
Secondly, the current code allows you to send either untagged or tagged frames to a raw
socket and the result is the same, a tagged frame is sent. The patch however, always
adds a tag irrespective of whether the frame was already tagged. (This functionality
*had* to be ditched because if you allow q-in-q then you may *want* your frame double tagged.)
IMHO, raw sockets *should* always tag, rather than tag or not tag depending on whether the
frame is already tagged. It just seems more logical and consistent.
Ciao,
Alex
More information about the Vlan
mailing list