Double stacked VLANs (was Re: [VLAN] Question on header check)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?

If I remember right, it had the same issues with bridging and raw packets.

I don't have a lot of time to work on vlan code at the moment, but you all
can work on patches and if we get something that works, I'll review it and
see if netdev will merge it.

Here are some test cases to think about:

# This all works today and should continue to function as is.
bridge eth0.7 to eth1.7
bridge eth0.7 to eth1.8
bridge eth0.7 to eth0.8
bridge eth0 to eth0.7
bridge eth0 to eth1.7
sending raw ethernet frame with PACKET_SOCKET to eth0.7 and have it
leave encapsulated on VLAN 7
sending raw vlan packet (vid 7) with PACKET_SOCKET to eth0.7 and have
it leave encapsulated on VLAN 7.
Support re-order header flag to present a de-encapsulated frame to user-space
(or next higher network layer on receive).

Currently, if you send a raw VLAN packet with vid == 8 on eth0.7, the
VID tag will be converted to vlan 7.  I think we could break this particular
'feature' if we wanted to..either having the result be a failure to send,
or an encapsulation of vlan 8 inside of vlan 7. (q in q).


# With Q in Q, these new test cases also appear:

#  I think these should all work if we want to keep interfaces
# completely transparent..but perhaps we could ignore some of these
# since it is a new feature.
support basic q in q vlan devices.
bridge eth0.7.8 to eth0.7
bridge eth0.7.8 to eth0.7.9
bridge eth0.7.8 to eth1
bridge eth0.7.8 to eth0
bridge eth0.7.8 to eth1.7
bridge eth0.7.8 to eth1.7.8

Figure out how to treat PACKET_SOCKET frames sent by user-space
if they have tags embedded.

If your code can not break the first set, and accomplish at least some
of the second set, then it is a net gain and can be considered.

Thanks,
Ben

> 
> Thanks,
> Frederik
> _______________________________________________
> Vlan mailing list
> Vlan@xxxxxxxxxxxxxxx
> http://www.candelatech.com/mailman/listinfo/vlan
> 


-- 
Ben Greear <greearb@xxxxxxxxxxxxxxx>
Candela Technologies Inc  http://www.candelatech.com


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux