[B.A.T.M.A.N.] [PATCH v4 0/6] batman-adv: Optimizations for setups running dat and bla

Andreas Pape
2016-05-12T06:31:31Z

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.

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 | 97 ++++++++++++++++++++++++++++++++
net/batman-adv/distributed-arp-table.h | 9 +++-
net/batman-adv/routing.c | 25 +++++++-
net/batman-adv/soft-interface.c | 3 +
6 files changed, 220 insertions(+), 12 deletions(-)