This patchset adds the network wide multi interface optimization as proposed in our wiki [1] for BATMAN IV. The main purpose is to do interface alternating and bonding by considering multi interface capabilities globally and not just for the (next) link, otherwise non-optimal links may be chosen.
This patchset needs to change a lot of core data structures and routing, please review it carefully. A local development branch exists on the public git repo [2].
Changes from PATCH series earlier this month (thanks Marek and Antonio for suggestions) are: * change locking from implicit rcu locking to refcount based locking * add debugfs folder for hardif (new patch 7) and use separate tables per interface * split *ifinfo_get() functions into ifinfo_new() and ifinfo_get() * simplify function names and change to new naming scheme * review bonding locking * various kerneldoc/style/comment improvements * rebase on latest master * ... and some more in the changelog of the individual patches
I've tested the patchset in my VMs to confirm that bonding and alternating works as expected. Patches should be checkpatch and sparse clean.
As always, any comments are appreciated!
Thanks, Simon
[1] http://www.open-mesh.org/projects/batman-adv/wiki/network-wide-multi-link-op... [2] http://git.open-mesh.org/batman-adv.git/shortlog/refs/heads/simon/network-wi...
Simon Wunderlich (8): batman-adv: remove bonding and interface alternating batman-adv: split tq information in neigh_node struct batman-adv: split out router from orig_node batman-adv: add WiFi penalty batman-adv: consider outgoing interface in OGM sending batman-adv: add bonding again batman-adv: add debugfs structure for information per interface batman-adv: add debugfs support to view multiif tables
bat_iv_ogm.c | 855 +++++++++++++++++++++++++++++++---------------- debugfs.c | 83 +++++ debugfs.h | 3 + distributed-arp-table.c | 3 +- gateway_client.c | 83 ++++- hard-interface.c | 9 + hard-interface.h | 18 + icmp_socket.c | 3 +- main.h | 5 + network-coding.c | 9 +- originator.c | 501 ++++++++++++++++++++++++--- originator.h | 20 +- routing.c | 426 ++++++++--------------- routing.h | 12 +- send.c | 19 +- soft-interface.c | 2 +- translation-table.c | 6 +- types.h | 129 ++++--- 18 files changed, 1498 insertions(+), 688 deletions(-)