How can I implement intermediate layer between L3 and L2 in the current
kernel? This is what VLAN is all about. The only way to do it today is to
pretend to be a network device for L3, do your job (adding VLAN header) and
the job of L2 (build ethernet header) and queue packet to master device for
transition. This is what ipip module does, this is what bonding module does
and many others. And this is because L1 and L2 coupled too tightly together in
the kernel now. In fact it is almost impossible to implement new L2 protocol without
changing net_device structure. Something should be done about L1+L2 design till then
pretend to be the net_device is the only solution if you want VLAN to be transparent
for L3 protocols. If you want to implement VLANs only for IP layer this can be done
differently of course.
P.S: This topic was already discussed on netdev list before (and not once I think :)).
-- Gleb. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/