xref: /openbmc/linux/net/batman-adv/Kconfig (revision d331a739)
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
2710e3cd6aSAntonio Quartulli	help
28c6c8fea2SSven Eckelmann          B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
29c6c8fea2SSven Eckelmann          a routing protocol for multi-hop ad-hoc mesh networks. The
30c6c8fea2SSven Eckelmann          networks may be wired or wireless. See
317b5e7396SSven Eckelmann          https://www.open-mesh.org/ for more information and user space
32c6c8fea2SSven Eckelmann          tools.
33c6c8fea2SSven Eckelmann
34d6f94d91SLinus Luessingconfig BATMAN_ADV_BATMAN_V
35951a06e7SSven Eckelmann	bool "B.A.T.M.A.N. V protocol"
360566df30SLinus Lüssing	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
3718cfb44cSMarek Lindner	default y
38d6f94d91SLinus Luessing	help
39d6f94d91SLinus Luessing	  This option enables the B.A.T.M.A.N. V protocol, the successor
40d6f94d91SLinus Luessing	  of the currently used B.A.T.M.A.N. IV protocol. The main
41d6f94d91SLinus Luessing	  changes include splitting of the OGM protocol into a neighbor
42d6f94d91SLinus Luessing	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
43d6f94d91SLinus Luessing	  Protocol OGMv2 for flooding protocol information through the
44d6f94d91SLinus Luessing	  network, as well as a throughput based metric.
45d6f94d91SLinus Luessing	  B.A.T.M.A.N. V is currently considered experimental and not
46d6f94d91SLinus Luessing	  compatible to B.A.T.M.A.N. IV networks.
47d6f94d91SLinus Luessing
487a5cc242SSimon Wunderlichconfig BATMAN_ADV_BLA
497a5cc242SSimon Wunderlich	bool "Bridge Loop Avoidance"
5017224474SAntonio Quartulli	depends on BATMAN_ADV && INET
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)
85c5caf4efSLinus Lüssing	help
86c5caf4efSLinus Lüssing	  This option enables the multicast optimisation which aims to
87c5caf4efSLinus Lüssing	  reduce the air overhead while improving the reliability of
88c5caf4efSLinus Lüssing	  multicast messages.
89c5caf4efSLinus Lüssing
90dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUGFS
91dc1cbd14SSven Eckelmann	bool "batman-adv debugfs entries"
9210e3cd6aSAntonio Quartulli	depends on BATMAN_ADV
9395353956SMarkus Pargmann	depends on DEBUG_FS
94dc1cbd14SSven Eckelmann	help
95dc1cbd14SSven Eckelmann	  Enable this to export routing related debug tables via debugfs.
96dc1cbd14SSven Eckelmann	  The information for each soft-interface and used hard-interface can be
97dc1cbd14SSven Eckelmann	  found under batman_adv/
98dc1cbd14SSven Eckelmann
991ba93211SSven Eckelmann	  If unsure, say N.
100dc1cbd14SSven Eckelmann
101dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUG
102dc1cbd14SSven Eckelmann	bool "B.A.T.M.A.N. debugging"
103dc1cbd14SSven Eckelmann	depends on BATMAN_ADV_DEBUGFS
10410e3cd6aSAntonio Quartulli	help
105c6c8fea2SSven Eckelmann	  This is an option for use by developers; most people should
106c6c8fea2SSven Eckelmann	  say N here. This enables compilation of support for
107c6c8fea2SSven Eckelmann	  outputting debugging information to the kernel log. The
108c6c8fea2SSven Eckelmann	  output is controlled via the module parameter debug.
109d331a739SSven Eckelmann
110d331a739SSven Eckelmannconfig BATMAN_ADV_TRACING
111d331a739SSven Eckelmann	bool "B.A.T.M.A.N. tracing support"
112d331a739SSven Eckelmann	depends on BATMAN_ADV
113d331a739SSven Eckelmann	depends on EVENT_TRACING
114d331a739SSven Eckelmann	help
115d331a739SSven Eckelmann	  This is an option for use by developers; most people should
116d331a739SSven Eckelmann	  say N here. Select this option to gather traces like the debug
117d331a739SSven Eckelmann	  messages using the generic tracing infrastructure of the kernel.
118d331a739SSven Eckelmann	  BATMAN_ADV_DEBUG must also be selected to get trace events for
119d331a739SSven Eckelmann	  batadv_dbg.
120