Hello people,
this is the last patchset of the TT-VLAN series and requires the last one to be applied (per-VLAN TT CRC).
In a few words... These changes enable BLA2 to filter only those TT entries belonging to the VLAN where BLA discovered other backbone nodes. The current code instead assumes that _all_ the local clients are shared among the backbones, despite of the VLAN used to interconnect them.
Example. Imagine 2 nodes having several vlans over the wired connection. Node1 having eth0.1 and eth0.2 Node2 having eth0.1 and eth0.3
Node1 and Node2 are connected using a cable and so they hear each other on eth0.1. Clients connected to eth0.2 and eth0.3 are reachable only through the respective nodes therefore, if Node1 wanted to talk to a client connected to eth0.3 needs to know that it is served by Node2.
In the current implementation this is not possible because BLA would consider all the clients reachable through any node of the LAN and will reject all the global TT entries from any other backbone, so losing this TT information.
With this patchset, instead, BLA will detect that the backbone connection is only over eth0.1 and so will continue to store all the global clients belonging to the other VLANs.
I hope the example did not create more confusion :)
Cheers,
Changes from v1: - fixed kernel doc
Antonio Quartulli (2): batman-adv: make the TT global purge routine VLAN specific batman-adv: make the backbone gw check VLAN specific
bridge_loop_avoidance.c | 23 +++++++++++--------- bridge_loop_avoidance.h | 10 +++++---- originator.c | 2 +- routing.c | 2 +- translation-table.c | 58 ++++++++++++++++++++++--------------------------- translation-table.h | 2 +- 6 files changed, 48 insertions(+), 49 deletions(-)