xref: /openbmc/linux/net/batman-adv/Kconfig (revision 016fd285)
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
2595a066d8SSven Eckelmann	select LIBCRC32C
2610e3cd6aSAntonio Quartulli	help
27c6c8fea2SSven Eckelmann          B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
28c6c8fea2SSven Eckelmann          a routing protocol for multi-hop ad-hoc mesh networks. The
29c6c8fea2SSven Eckelmann          networks may be wired or wireless. See
307b5e7396SSven Eckelmann          https://www.open-mesh.org/ for more information and user space
31c6c8fea2SSven Eckelmann          tools.
32c6c8fea2SSven Eckelmann
33d6f94d91SLinus Luessingconfig BATMAN_ADV_BATMAN_V
34951a06e7SSven Eckelmann	bool "B.A.T.M.A.N. V protocol"
350566df30SLinus Lüssing	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
3618cfb44cSMarek Lindner	default y
37d6f94d91SLinus Luessing	help
38d6f94d91SLinus Luessing	  This option enables the B.A.T.M.A.N. V protocol, the successor
39d6f94d91SLinus Luessing	  of the currently used B.A.T.M.A.N. IV protocol. The main
40d6f94d91SLinus Luessing	  changes include splitting of the OGM protocol into a neighbor
41d6f94d91SLinus Luessing	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
42d6f94d91SLinus Luessing	  Protocol OGMv2 for flooding protocol information through the
43d6f94d91SLinus Luessing	  network, as well as a throughput based metric.
44d6f94d91SLinus Luessing	  B.A.T.M.A.N. V is currently considered experimental and not
45d6f94d91SLinus Luessing	  compatible to B.A.T.M.A.N. IV networks.
46d6f94d91SLinus Luessing
477a5cc242SSimon Wunderlichconfig BATMAN_ADV_BLA
487a5cc242SSimon Wunderlich	bool "Bridge Loop Avoidance"
4917224474SAntonio Quartulli	depends on BATMAN_ADV && INET
50fb939135SSven Eckelmann	select CRC16
517a5cc242SSimon Wunderlich	default y
527a5cc242SSimon Wunderlich	help
537a5cc242SSimon Wunderlich	  This option enables BLA (Bridge Loop Avoidance), a mechanism
547a5cc242SSimon Wunderlich	  to avoid Ethernet frames looping when mesh nodes are connected
557a5cc242SSimon Wunderlich	  to both the same LAN and the same mesh. If you will never use
567a5cc242SSimon Wunderlich	  more than one mesh node in the same LAN, you can safely remove
577a5cc242SSimon Wunderlich	  this feature and save some space.
5810e3cd6aSAntonio Quartulli
5917224474SAntonio Quartulliconfig BATMAN_ADV_DAT
6017224474SAntonio Quartulli	bool "Distributed ARP Table"
6117224474SAntonio Quartulli	depends on BATMAN_ADV && INET
62ab4e5853SAntonio Quartulli	default y
6317224474SAntonio Quartulli	help
6417224474SAntonio Quartulli	  This option enables DAT (Distributed ARP Table), a DHT based
6517224474SAntonio Quartulli	  mechanism that increases ARP reliability on sparse wireless
6617224474SAntonio Quartulli	  mesh networks. If you think that your network does not need
6717224474SAntonio Quartulli	  this option you can safely remove it and save some space.
6817224474SAntonio Quartulli
69d353d8d4SMartin Hundebøllconfig BATMAN_ADV_NC
70d353d8d4SMartin Hundebøll	bool "Network Coding"
71d353d8d4SMartin Hundebøll	depends on BATMAN_ADV
72d353d8d4SMartin Hundebøll	help
73d353d8d4SMartin Hundebøll	  This option enables network coding, a mechanism that aims to
74d353d8d4SMartin Hundebøll	  increase the overall network throughput by fusing multiple
75d353d8d4SMartin Hundebøll	  packets in one transmission.
76d353d8d4SMartin Hundebøll	  Note that interfaces controlled by batman-adv must be manually
77d353d8d4SMartin Hundebøll	  configured to have promiscuous mode enabled in order to make
78d353d8d4SMartin Hundebøll	  network coding work.
79d353d8d4SMartin Hundebøll	  If you think that your network does not need this feature you
80d353d8d4SMartin Hundebøll	  can safely disable it and save some space.
81d353d8d4SMartin Hundebøll
82c5caf4efSLinus Lüssingconfig BATMAN_ADV_MCAST
83c5caf4efSLinus Lüssing	bool "Multicast optimisation"
84687937abSLinus Lüssing	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
85*016fd285SLinus Lüssing	default y
86c5caf4efSLinus Lüssing	help
87c5caf4efSLinus Lüssing	  This option enables the multicast optimisation which aims to
88c5caf4efSLinus Lüssing	  reduce the air overhead while improving the reliability of
89c5caf4efSLinus Lüssing	  multicast messages.
90c5caf4efSLinus Lüssing
91dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUGFS
92dc1cbd14SSven Eckelmann	bool "batman-adv debugfs entries"
9310e3cd6aSAntonio Quartulli	depends on BATMAN_ADV
9495353956SMarkus Pargmann	depends on DEBUG_FS
95dc1cbd14SSven Eckelmann	help
96dc1cbd14SSven Eckelmann	  Enable this to export routing related debug tables via debugfs.
97dc1cbd14SSven Eckelmann	  The information for each soft-interface and used hard-interface can be
98dc1cbd14SSven Eckelmann	  found under batman_adv/
99dc1cbd14SSven Eckelmann
1001ba93211SSven Eckelmann	  If unsure, say N.
101dc1cbd14SSven Eckelmann
102dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUG
103dc1cbd14SSven Eckelmann	bool "B.A.T.M.A.N. debugging"
1040dacc7faSSven Eckelmann	depends on BATMAN_ADV
10510e3cd6aSAntonio Quartulli	help
106c6c8fea2SSven Eckelmann	  This is an option for use by developers; most people should
107c6c8fea2SSven Eckelmann	  say N here. This enables compilation of support for
108694127c1SSven Eckelmann	  outputting debugging information to the debugfs log or tracing
109694127c1SSven Eckelmann	  buffer. The output is controlled via the batadv netdev specific
110694127c1SSven Eckelmann	  log_level setting.
111d331a739SSven Eckelmann
112d331a739SSven Eckelmannconfig BATMAN_ADV_TRACING
113d331a739SSven Eckelmann	bool "B.A.T.M.A.N. tracing support"
114d331a739SSven Eckelmann	depends on BATMAN_ADV
115d331a739SSven Eckelmann	depends on EVENT_TRACING
116d331a739SSven Eckelmann	help
117d331a739SSven Eckelmann	  This is an option for use by developers; most people should
118d331a739SSven Eckelmann	  say N here. Select this option to gather traces like the debug
119d331a739SSven Eckelmann	  messages using the generic tracing infrastructure of the kernel.
120d331a739SSven Eckelmann	  BATMAN_ADV_DEBUG must also be selected to get trace events for
121d331a739SSven Eckelmann	  batadv_dbg.
122