Bug#697357: bridging broken over bond interfaces
I'm having similar issues, and in my case it is the intel igb driver.
I have the following setup:
==========
# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.0025906bde00 no bond0
kvm01tap0
-----
# ip addr show
...
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:25:90:6b:de:00 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
link/ether 00:25:90:6b:de:00 brd ff:ff:ff:ff:ff:ff
5: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000
link/ether 00:25:90:6b:de:00 brd ff:ff:ff:ff:ff:ff
7: kvm01tap0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 500
link/ether 52:fa:04:aa:fb:f1 brd ff:ff:ff:ff:ff:ff
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 00:25:90:6b:de:00 brd ff:ff:ff:ff:ff:ff
inet 213.145.98.98/24 brd 213.145.98.255 scope global br0
valid_lft forever preferred_lft forever
==========
I.e. eth0 & eth1 are part of bond0, which in turn is joined into br0 together with tap0. Ethernet hw is Intel I350 using igb driver.
This setup works with Linux kernel 2.6.32 & 3.2.9, but does not work with 3.2.0.
It works with 3.2.0 if I manually turn promiscuous mode on for eth0 like this:
==========
# ip link set dev eth0 promisc on
==========
I've compiled igb.ko from http://sourceforge.net/projects/e1000/files/igb%20stable/3.4.7/ and it works fine.
So, this driver (from 3.2.0 kernel) does not work:
==========
# modinfo tmp/igb-k3.2.0.ko |grep ^version:
version: 3.2.10-k
==========
While this one from sourceforge works:
==========
# modinfo tmp/igb-3.4.7.ko |grep ^version:
version: 3.4.7
==========
HTH
--
Teodor Milkov | System Administrator | ICDSoft Ltd.
Reply to: