23721387c4
This second version of the bridge loop avoidance for batman-adv avoids loops between the mesh and a backbone (usually a LAN). By connecting multiple batman-adv mesh nodes to the same ethernet segment a loop can be created when the soft-interface is bridged into that ethernet segment. A simple visualization of the loop involving the most common case - a LAN as ethernet segment: node1 <-- LAN --> node2 | | wifi <-- mesh --> wifi Packets from the LAN (e.g. ARP broadcasts) will circle forever from node1 or node2 over the mesh back into the LAN. With this patch, batman recognizes backbone gateways, nodes which are part of the mesh and backbone/LAN at the same time. Each backbone gateway "claims" clients from within the mesh to handle them exclusively. By restricting that only responsible backbone gateways may handle their claimed clients traffic, loops are effectively avoided. Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Signed-off-by: Antonio Quartulli <ordex@autistici.org>
40 lines
1.3 KiB
Makefile
40 lines
1.3 KiB
Makefile
#
|
|
# Copyright (C) 2007-2012 B.A.T.M.A.N. contributors:
|
|
#
|
|
# Marek Lindner, Simon Wunderlich
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of version 2 of the GNU General Public
|
|
# License as published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
# 02110-1301, USA
|
|
#
|
|
|
|
obj-$(CONFIG_BATMAN_ADV) += batman-adv.o
|
|
batman-adv-y += bat_debugfs.o
|
|
batman-adv-y += bat_iv_ogm.o
|
|
batman-adv-y += bat_sysfs.o
|
|
batman-adv-y += bitarray.o
|
|
batman-adv-y += bridge_loop_avoidance.o
|
|
batman-adv-y += gateway_client.o
|
|
batman-adv-y += gateway_common.o
|
|
batman-adv-y += hard-interface.o
|
|
batman-adv-y += hash.o
|
|
batman-adv-y += icmp_socket.o
|
|
batman-adv-y += main.o
|
|
batman-adv-y += originator.o
|
|
batman-adv-y += ring_buffer.o
|
|
batman-adv-y += routing.o
|
|
batman-adv-y += send.o
|
|
batman-adv-y += soft-interface.o
|
|
batman-adv-y += translation-table.o
|
|
batman-adv-y += unicast.o
|
|
batman-adv-y += vis.o
|