[Soekris] VLANs on Linux

Robert Woodcock rwoodcock at printinc.com
Fri Sep 3 16:39:10 UTC 2004


I'd like to be able to use VLANs on a 4501 and a 4801 to talk to a Cisco
4006 switch. I'm running Linux 2.4.26 on these routers.

The stock natsemi driver does not receive 1504-byte packets (1500 bytes
+ 4 byte 802.1q tag) from the switch. It silently discards them because
they exceed the 1500-byte MTU. The stock driver does not allow one to set
the MTU to anything over 1500 bytes.

With Donald Becker's latest natsemi driver, 1.17b, and a one-liner change
to net_init.c, I'm able to set the MTU to 1504 bytes. However, that
increased MTU is used for outgoing untagged packets from the router as
well as for OSPF, breaking a lot of things. Also it tickles a bad bug in
either the hardware or the driver, because under heavy load it gets stuck
with lots of "Rx overflow" messages in dmesg, or alternatively causes 
5-10% packet loss.

In my research I've noticed mailing list posts dating back to 2002 where
the 802.1q maintainer and several other people insist that the right way
to do things is to change the drivers so that VLAN-enabled interfaces
silently accept packets up to four bytes larger than the configured MTU,
and not publish that new limit to any higher level. I agree, but I'm kind
of wondering where the code is... :)

Does anyone have 802.1q VLANs working well on a Soekris with Linux 2.4.x?
What kernel and network driver did you use? Were you still able to
effectively use the native vlan ("eth0" as opposed to "eth0.xyz")?

Or alternatively, did 2.6.x work any better for anyone? I noticed it has
the same natsemi driver version as 2.4.x.



More information about the Soekris-tech mailing list