diff options
author | Veaceslav Falico <vfalico@redhat.com> | 2013-08-29 01:25:10 +0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-30 00:19:42 +0400 |
commit | 27bc11e63888c7cb0bd6d443e98775254cf7dbdd (patch) | |
tree | a0d7787f1a187f6bd0f949a8bf5bc511537dbf10 /net/ethernet | |
parent | c752af2c555617017dbb3a66f81e974b66ad5e2d (diff) | |
download | linux-27bc11e63888c7cb0bd6d443e98775254cf7dbdd.tar.xz |
bonding: make bond_arp_send_all use upper device list
Currently, bond_arp_send_all() is aware only of vlans, which breaks
configurations like bond <- bridge (or any other 'upper' device) with IP
(which is quite a common scenario for virt setups).
To fix this we convert the bond_arp_send_all() to first verify if the rt
device is the bond itself, and if not - to go through its list of upper
vlans and their respectiv upper devices (if the vlan's upper device matches
- tag the packet), if still not found - go through all of our upper list
devices to see if any of them match the route device for the target. If the
match is a vlan device - we also save its vlan_id and tag it in
bond_arp_send().
Also, clean the function a bit to be more readable.
CC: Vlad Yasevich <vyasevic@redhat.com>
CC: Jay Vosburgh <fubar@us.ibm.com>
CC: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: Veaceslav Falico <vfalico@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ethernet')
0 files changed, 0 insertions, 0 deletions