xref: /openbmc/linux/net/batman-adv/Kconfig (revision 1ba93211)
19969ffa8SSven Eckelmann# SPDX-License-Identifier: GPL-2.0
26b1aea8cSSven Eckelmann# Copyright (C) 2007-2018  B.A.T.M.A.N. contributors:
39969ffa8SSven Eckelmann#
49969ffa8SSven Eckelmann# Marek Lindner, Simon Wunderlich
59969ffa8SSven Eckelmann#
69969ffa8SSven Eckelmann# This program is free software; you can redistribute it and/or
79969ffa8SSven Eckelmann# modify it under the terms of version 2 of the GNU General Public
89969ffa8SSven Eckelmann# License as published by the Free Software Foundation.
99969ffa8SSven Eckelmann#
109969ffa8SSven Eckelmann# This program is distributed in the hope that it will be useful, but
119969ffa8SSven Eckelmann# WITHOUT ANY WARRANTY; without even the implied warranty of
129969ffa8SSven Eckelmann# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
139969ffa8SSven Eckelmann# General Public License for more details.
149969ffa8SSven Eckelmann#
159969ffa8SSven Eckelmann# You should have received a copy of the GNU General Public License
169969ffa8SSven Eckelmann# along with this program; if not, see <http://www.gnu.org/licenses/>.
179969ffa8SSven Eckelmann
18c6c8fea2SSven Eckelmann#
19c6c8fea2SSven Eckelmann# B.A.T.M.A.N meshing protocol
20c6c8fea2SSven Eckelmann#
21c6c8fea2SSven Eckelmann
22c6c8fea2SSven Eckelmannconfig BATMAN_ADV
23c6c8fea2SSven Eckelmann	tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
2417224474SAntonio Quartulli	depends on NET
25a73105b8SAntonio Quartulli	select CRC16
2695a066d8SSven Eckelmann	select LIBCRC32C
27c6c8fea2SSven Eckelmann        default n
2810e3cd6aSAntonio Quartulli	help
29c6c8fea2SSven Eckelmann          B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
30c6c8fea2SSven Eckelmann          a routing protocol for multi-hop ad-hoc mesh networks. The
31c6c8fea2SSven Eckelmann          networks may be wired or wireless. See
327b5e7396SSven Eckelmann          https://www.open-mesh.org/ for more information and user space
33c6c8fea2SSven Eckelmann          tools.
34c6c8fea2SSven Eckelmann
35d6f94d91SLinus Luessingconfig BATMAN_ADV_BATMAN_V
36d6f94d91SLinus Luessing	bool "B.A.T.M.A.N. V protocol (experimental)"
370566df30SLinus Lüssing	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
38d6f94d91SLinus Luessing	default n
39d6f94d91SLinus Luessing	help
40d6f94d91SLinus Luessing	  This option enables the B.A.T.M.A.N. V protocol, the successor
41d6f94d91SLinus Luessing	  of the currently used B.A.T.M.A.N. IV protocol. The main
42d6f94d91SLinus Luessing	  changes include splitting of the OGM protocol into a neighbor
43d6f94d91SLinus Luessing	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
44d6f94d91SLinus Luessing	  Protocol OGMv2 for flooding protocol information through the
45d6f94d91SLinus Luessing	  network, as well as a throughput based metric.
46d6f94d91SLinus Luessing	  B.A.T.M.A.N. V is currently considered experimental and not
47d6f94d91SLinus Luessing	  compatible to B.A.T.M.A.N. IV networks.
48d6f94d91SLinus Luessing
497a5cc242SSimon Wunderlichconfig BATMAN_ADV_BLA
507a5cc242SSimon Wunderlich	bool "Bridge Loop Avoidance"
5117224474SAntonio Quartulli	depends on BATMAN_ADV && INET
527a5cc242SSimon Wunderlich	default y
537a5cc242SSimon Wunderlich	help
547a5cc242SSimon Wunderlich	  This option enables BLA (Bridge Loop Avoidance), a mechanism
557a5cc242SSimon Wunderlich	  to avoid Ethernet frames looping when mesh nodes are connected
567a5cc242SSimon Wunderlich	  to both the same LAN and the same mesh. If you will never use
577a5cc242SSimon Wunderlich	  more than one mesh node in the same LAN, you can safely remove
587a5cc242SSimon Wunderlich	  this feature and save some space.
5910e3cd6aSAntonio Quartulli
6017224474SAntonio Quartulliconfig BATMAN_ADV_DAT
6117224474SAntonio Quartulli	bool "Distributed ARP Table"
6217224474SAntonio Quartulli	depends on BATMAN_ADV && INET
6317224474SAntonio Quartulli	default n
6417224474SAntonio Quartulli	help
6517224474SAntonio Quartulli	  This option enables DAT (Distributed ARP Table), a DHT based
6617224474SAntonio Quartulli	  mechanism that increases ARP reliability on sparse wireless
6717224474SAntonio Quartulli	  mesh networks. If you think that your network does not need
6817224474SAntonio Quartulli	  this option you can safely remove it and save some space.
6917224474SAntonio Quartulli
70d353d8d4SMartin Hundebøllconfig BATMAN_ADV_NC
71d353d8d4SMartin Hundebøll	bool "Network Coding"
72d353d8d4SMartin Hundebøll	depends on BATMAN_ADV
73d353d8d4SMartin Hundebøll	default n
74d353d8d4SMartin Hundebøll	help
75d353d8d4SMartin Hundebøll	  This option enables network coding, a mechanism that aims to
76d353d8d4SMartin Hundebøll	  increase the overall network throughput by fusing multiple
77d353d8d4SMartin Hundebøll	  packets in one transmission.
78d353d8d4SMartin Hundebøll	  Note that interfaces controlled by batman-adv must be manually
79d353d8d4SMartin Hundebøll	  configured to have promiscuous mode enabled in order to make
80d353d8d4SMartin Hundebøll	  network coding work.
81d353d8d4SMartin Hundebøll	  If you think that your network does not need this feature you
82d353d8d4SMartin Hundebøll	  can safely disable it and save some space.
83d353d8d4SMartin Hundebøll
84c5caf4efSLinus Lüssingconfig BATMAN_ADV_MCAST
85c5caf4efSLinus Lüssing	bool "Multicast optimisation"
86687937abSLinus Lüssing	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
87c5caf4efSLinus Lüssing	default n
88c5caf4efSLinus Lüssing	help
89c5caf4efSLinus Lüssing	  This option enables the multicast optimisation which aims to
90c5caf4efSLinus Lüssing	  reduce the air overhead while improving the reliability of
91c5caf4efSLinus Lüssing	  multicast messages.
92c5caf4efSLinus Lüssing
93dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUGFS
94dc1cbd14SSven Eckelmann	bool "batman-adv debugfs entries"
9510e3cd6aSAntonio Quartulli	depends on BATMAN_ADV
9695353956SMarkus Pargmann	depends on DEBUG_FS
971ba93211SSven Eckelmann	default n
98dc1cbd14SSven Eckelmann	help
99dc1cbd14SSven Eckelmann	  Enable this to export routing related debug tables via debugfs.
100dc1cbd14SSven Eckelmann	  The information for each soft-interface and used hard-interface can be
101dc1cbd14SSven Eckelmann	  found under batman_adv/
102dc1cbd14SSven Eckelmann
1031ba93211SSven Eckelmann	  If unsure, say N.
104dc1cbd14SSven Eckelmann
105dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUG
106dc1cbd14SSven Eckelmann	bool "B.A.T.M.A.N. debugging"
107dc1cbd14SSven Eckelmann	depends on BATMAN_ADV_DEBUGFS
10810e3cd6aSAntonio Quartulli	help
109c6c8fea2SSven Eckelmann	  This is an option for use by developers; most people should
110c6c8fea2SSven Eckelmann	  say N here. This enables compilation of support for
111c6c8fea2SSven Eckelmann	  outputting debugging information to the kernel log. The
112c6c8fea2SSven Eckelmann	  output is controlled via the module parameter debug.
113