Bug originally reported here:
VLAN frames are longer, but UML ethernet drivers do not support this (i.e. they
were not written with this in mind, if it worked it would be purely by accident).
I've found at least a bug.
Quoting from my own answer:
this code in
tuntap_read (arch/um/os-Linux/drivers/tuntap_kern.c) does (if you are using
TUNTAP, as you seem to be doing):
static int tuntap_read(int fd, struct sk_buff **skb,
struct uml_net_private *lp)
*skb = ether_adjust_skb(*skb, ETH_HEADER_OTHER);
if(*skb == NULL) return(-ENOMEM);
(*skb)->dev->mtu + ETH_HEADER_OTHER));
The last line is a read for MTU + 14 bytes, and is surely buggy for a VLAN
setup. If you are a C programmer and can add + 4 to that size (obtaining
<....> + ETH_HEADER_OTHER + 4), can you test whether with this change the
described problem disappears?
some in-depth discussion at http://marc.info/?l=user-mode-linux-devel&m=101990155831279&w=2
not sure if this is a solution