This patchset introduces optimizations for batman-adv in setups having several gateways into a common (switched) Ethernet backbone network especially if dat is additionally enabled.
Using the current implementation with bla and dat enabled, several problems can be observed in a real setup: 1. Multiplication of ARP replies from dat enabled gateways and dat enabled mesh nodes leading to an "ARP reply storm" in the common backbone network. 2. In rare corner cases bla does not fully prevent looping of unicast frames in the direction Backbone --> mesh --> backbone and looping of multicast frames in the direction mesh --> backbone --> mesh. The latter can lead to temporary confusion in the switched backbone resulting in packet loss and communication timeouts.
The observed problems are solved by introduction of additional rules for the dat handling, bla packet forwarding and bla claiming/unclaiming of clients.
v5: - changed function name to batadv_bla_check_claim - put added include file in alphabetical order - added check to exclude ip address 0.0.0.0 from snooping
v4: - removed unnecessary include in soft-interface.c - solved issue with double-use and refcounting of pointers in routing.c
v3:
- rebased patchset - moved snooping of ip addresses for dat speed up into separate function - removed "patch of a patch" - removed automatic claiming during check of a claim - fixed issues of the patchset not being compiled due to chosen batman options
Kind regards, Andreas
Andreas Pape (6): batman-adv: prevent multiple ARP replies sent by gateways if dat enbled batman-adv: speed up dat by snooping received ip traffic batman-adv: prevent duplication of ARP replies when DAT is used batman-adv: drop unicast packets from other backbone gw batman-adv: changed debug messages for easier bla debugging batman-adv: handle race condition for claims between gateways
net/batman-adv/bridge_loop_avoidance.c | 87 ++++++++++++++++++++++++--- net/batman-adv/bridge_loop_avoidance.h | 11 ++++ net/batman-adv/distributed-arp-table.c | 102 ++++++++++++++++++++++++++++++++ net/batman-adv/distributed-arp-table.h | 9 +++- net/batman-adv/routing.c | 25 +++++++- net/batman-adv/soft-interface.c | 3 + 6 files changed, 225 insertions(+), 12 deletions(-)
.................................................................. PHOENIX CONTACT ELECTRONICS GmbH
Sitz der Gesellschaft / registered office of the company: 31812 Bad Pyrmont USt-Id-Nr.: DE811742156 Amtsgericht Hannover HRB 100528 / district court Hannover HRB 100528 Geschäftsführer / Executive Board: Roland Bent, Dr. Martin Heubeck ___________________________________________________________________ Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren, jegliche anderweitige Verwendung sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet. ---------------------------------------------------------------------------------------------------- This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure, distribution or other use of the material or parts thereof is strictly forbidden. ___________________________________________________________________