linux/net/batman-adv
Simon Wunderlich 23721387c4 batman-adv: add basic bridge loop avoidance code
This second version of the bridge loop avoidance for batman-adv
avoids loops between the mesh and a backbone (usually a LAN).

By connecting multiple batman-adv mesh nodes to the same ethernet
segment a loop can be created when the soft-interface is bridged
into that ethernet segment. A simple visualization of the loop
involving the most common case - a LAN as ethernet segment:

node1  <-- LAN  -->  node2
  |                   |
wifi   <-- mesh -->  wifi

Packets from the LAN (e.g. ARP broadcasts) will circle forever from
node1 or node2 over the mesh back into the LAN.

With this patch, batman recognizes backbone gateways, nodes which are
part of the mesh and backbone/LAN at the same time. Each backbone
gateway "claims" clients from within the mesh to handle them
exclusively. By restricting that only responsible backbone gateways
may handle their claimed clients traffic, loops are effectively
avoided.

Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
2012-04-11 14:28:58 +02:00
..
Kconfig batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
Makefile batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
bat_algo.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
bat_debugfs.c batman-adv: remove old bridge loop avoidance code 2012-04-11 14:28:58 +02:00
bat_debugfs.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
bat_iv_ogm.c batman-adv: Replace bitarray operations with bitmap 2012-04-11 14:28:58 +02:00
bat_sysfs.c batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
bat_sysfs.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
bitarray.c batman-adv: Replace bitarray operations with bitmap 2012-04-11 14:28:58 +02:00
bitarray.h batman-adv: Replace bitarray operations with bitmap 2012-04-11 14:28:58 +02:00
bridge_loop_avoidance.c batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
bridge_loop_avoidance.h batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
gateway_client.c batman-adv: Ignore 80-chars per line limits for strings 2012-03-11 06:29:44 +08:00
gateway_client.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
gateway_common.c batman-adv: Ignore 80-chars per line limits for strings 2012-03-11 06:29:44 +08:00
gateway_common.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
hard-interface.c batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
hard-interface.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
hash.c batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
hash.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
icmp_socket.c batman-adv: Ignore 80-chars per line limits for strings 2012-03-11 06:29:44 +08:00
icmp_socket.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
main.c batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
main.h batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
originator.c batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
originator.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
packet.h batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
ring_buffer.c batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
ring_buffer.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
routing.c batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
routing.h batman-adv: remove old bridge loop avoidance code 2012-04-11 14:28:58 +02:00
send.c batman-adv: Remove spaces after a cast 2012-03-11 06:29:44 +08:00
send.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
soft-interface.c batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
soft-interface.h batman-adv: remove old bridge loop avoidance code 2012-04-11 14:28:58 +02:00
translation-table.c batman-adv: Remove declaration of only locally used functions 2012-04-11 14:28:58 +02:00
translation-table.h batman-adv: Remove declaration of only locally used functions 2012-04-11 14:28:58 +02:00
types.h batman-adv: add basic bridge loop avoidance code 2012-04-11 14:28:58 +02:00
unicast.c batman-adv: Remove spaces after a cast 2012-03-11 06:29:44 +08:00
unicast.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
vis.c batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00
vis.h batman-adv: Update copyright years 2012-02-17 02:50:21 +08:00