Messages in this thread | | | Date | Wed, 19 Aug 2009 12:29:42 +0200 (CEST) | Subject | dropped packets with bonding and 8021q | From | "Michael Walle" <> |
| |
Hi,
i have some strange bonding and vlan configuration. The bonding interface is in active-standby mode and i want to send and receive raw ethernet frames on _both_ enslaved interfaces. Additionally the frames are tagged with a vlan id. So one config could be:
# modprobe bonding mode=1 # modprobe 8021q # ifenslave bond0 eth1 # ifenslave bond0 eth2 # vconfig add eth1 10 # vconfig add eth2 20 # vconfig add bond0 1000
# [activate bonding active slave etc..]
I use raw/dgram sockets (AF_PACKET) with eth1.10 and eth2.20 (or dump the frames with tcpdump).
As long as i don't use the bonding module everything works as expected. But if the physical interfaces are enslaved, frames received on the standby device will be dropped.
The network driver is e1000. So the hardware acceleration for tagged VLAN frames gets used and the frame gets through __vlan_hwaccel_rx() in the receiving path. And there it seems to get dropped by skb_bond_should_drop().
On the "normal" receive path there was a patch by Joe Eykholt that allows to receive frames on the physical interface even if it is enslaved and not active (git commit 0d7a3681232f545).
Shouldn't __vlan_hwaccel_rx() (in net/8021q/vlan_core.c) be patched in the same way to allow reception on inactive enslaved interfaces?
Thanks, Michael
PS. could you please cc me, as i'm not subscribed to the ml.
| |