This series of patches is a request for comments on the redesigned bridge loop avoidance. The general concept is described in the wiki [1]. I've already performed a few testcases [2] which worked fine in my kvm environment. No crashes while running or unloading the extension either.
The last patch in the series uses the cached address of the primary interface (the originator address known through the mesh) to save some code at various positions, there may be side effects I don't see however (e.g. implicit checking whether the module was configured correctly was removed).
Marek already pointed quite a few issues out, these changes are reflected in the respective commit logs. These commit comments will be removed in the final version.
Any comments and suggestions are appreciated.
Thanks Simon
[1] http://www.open-mesh.org/wiki/batman-adv/Bridge-loop-avoidance-II [2] http://www.open-mesh.org/wiki/batman-adv/Bridge-loop-avoidance-Testcases
Simon Wunderlich (11): batman-adv: remove old bridge loop avoidance code batman-adv: add basic bridge loop avoidance code batman-adv: make bridge loop avoidance switchable batman-adv: export claim tables through debugfs batman-adv: allow multiple entries in tt_global_entries batman-adv: don't let backbone gateways exchange tt entries batman-adv: add broadcast duplicate check batman-adv: drop STP over batman batman-adv: form groups in the bridge loop avoidance batman-adv: Update README and sysfs description [RFC] batman-adv: get primaries address through bat_priv->own_orig
Makefile.kbuild | 1 + README | 28 +- bat_debugfs.c | 18 +- bat_sysfs.c | 4 +- bridge_loop_avoidance.c | 1509 +++++++++++++++++++++++++++++++++++++++++++++++ bridge_loop_avoidance.h | 34 ++ compat.c | 16 +- compat.h | 3 +- hard-interface.c | 8 +- icmp_socket.c | 12 +- main.c | 9 +- main.h | 9 +- originator.c | 3 +- packet.h | 16 + routing.c | 41 +- soft-interface.c | 490 +--------------- soft-interface.h | 2 - sysfs-class-net-mesh | 9 + translation-table.c | 366 ++++++++---- types.h | 70 ++- unicast.c | 9 +- vis.c | 20 +- 22 files changed, 1965 insertions(+), 712 deletions(-) create mode 100644 bridge_loop_avoidance.c create mode 100644 bridge_loop_avoidance.h