Messages in this thread | | | From | Weiping Pan <> | Subject | [PATCH net V2 0/2] bonding:add aging mechanism to rlb table | Date | Thu, 22 Mar 2012 16:37:49 +0800 |
| |
Jiri Bohac(jbohac@suse.cz) found that once an IP address is recorded in the rlb hash table, it stays there indefinitely. If this IP address is migrated to a different host in the network, bonding still sends out ARP packets that poison other systems' ARP caches with invalid information.
There are some attempts to fix this problem, http://marc.info/?l=linux-netdev&m=133036407906892&w=4 http://marc.info/?l=linux-netdev&m=133057427414043&w=4
But they did not fix the root cause of the problem, that rlb table does not have a aging mechanism, the entry is deemed valid for ever unless it is replaced.
In this patchset I want to add aging mechanism to rlb table.
Assume RLB_MONITOR_DELAY is 2 seconds and RLB_WORK_COUNTER_TIMES is 3, and we can tune them.
Every 6 seconds bonding will make all entries invalid. Every 2 seconds, bonding will send arp requests to its all clients, then if it receives corresponding arp reply, bonding will deem that this entry is valid. And we give a entry 3 opportunities to survive in 6 seconds.
V2: add cover letter
Weiping Pan (2): bonding:delete rlb entry if bond's ip is deleted bonding:delete rlb entry at regular intervals
drivers/net/bonding/bond_alb.c | 130 ++++++++++++++++++++++++++++++++++++--- drivers/net/bonding/bond_alb.h | 9 +++ drivers/net/bonding/bond_main.c | 11 +++- 3 files changed, 138 insertions(+), 12 deletions(-)
-- 1.7.4
| |