xref: /openbmc/linux/net/batman-adv/Kconfig (revision f79e4d5f)
1# SPDX-License-Identifier: GPL-2.0
2# Copyright (C) 2007-2018  B.A.T.M.A.N. contributors:
3#
4# Marek Lindner, Simon Wunderlich
5#
6# This program is free software; you can redistribute it and/or
7# modify it under the terms of version 2 of the GNU General Public
8# License as published by the Free Software Foundation.
9#
10# This program is distributed in the hope that it will be useful, but
11# WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13# General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; if not, see <http://www.gnu.org/licenses/>.
17
18#
19# B.A.T.M.A.N meshing protocol
20#
21
22config BATMAN_ADV
23	tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
24	depends on NET
25	select CRC16
26	select LIBCRC32C
27        default n
28	help
29          B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
30          a routing protocol for multi-hop ad-hoc mesh networks. The
31          networks may be wired or wireless. See
32          https://www.open-mesh.org/ for more information and user space
33          tools.
34
35config BATMAN_ADV_BATMAN_V
36	bool "B.A.T.M.A.N. V protocol (experimental)"
37	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
38	default y
39	help
40	  This option enables the B.A.T.M.A.N. V protocol, the successor
41	  of the currently used B.A.T.M.A.N. IV protocol. The main
42	  changes include splitting of the OGM protocol into a neighbor
43	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
44	  Protocol OGMv2 for flooding protocol information through the
45	  network, as well as a throughput based metric.
46	  B.A.T.M.A.N. V is currently considered experimental and not
47	  compatible to B.A.T.M.A.N. IV networks.
48
49config BATMAN_ADV_BLA
50	bool "Bridge Loop Avoidance"
51	depends on BATMAN_ADV && INET
52	default y
53	help
54	  This option enables BLA (Bridge Loop Avoidance), a mechanism
55	  to avoid Ethernet frames looping when mesh nodes are connected
56	  to both the same LAN and the same mesh. If you will never use
57	  more than one mesh node in the same LAN, you can safely remove
58	  this feature and save some space.
59
60config BATMAN_ADV_DAT
61	bool "Distributed ARP Table"
62	depends on BATMAN_ADV && INET
63	default n
64	help
65	  This option enables DAT (Distributed ARP Table), a DHT based
66	  mechanism that increases ARP reliability on sparse wireless
67	  mesh networks. If you think that your network does not need
68	  this option you can safely remove it and save some space.
69
70config BATMAN_ADV_NC
71	bool "Network Coding"
72	depends on BATMAN_ADV
73	default n
74	help
75	  This option enables network coding, a mechanism that aims to
76	  increase the overall network throughput by fusing multiple
77	  packets in one transmission.
78	  Note that interfaces controlled by batman-adv must be manually
79	  configured to have promiscuous mode enabled in order to make
80	  network coding work.
81	  If you think that your network does not need this feature you
82	  can safely disable it and save some space.
83
84config BATMAN_ADV_MCAST
85	bool "Multicast optimisation"
86	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
87	default n
88	help
89	  This option enables the multicast optimisation which aims to
90	  reduce the air overhead while improving the reliability of
91	  multicast messages.
92
93config BATMAN_ADV_DEBUGFS
94	bool "batman-adv debugfs entries"
95	depends on BATMAN_ADV
96	depends on DEBUG_FS
97	default n
98	help
99	  Enable this to export routing related debug tables via debugfs.
100	  The information for each soft-interface and used hard-interface can be
101	  found under batman_adv/
102
103	  If unsure, say N.
104
105config BATMAN_ADV_DEBUG
106	bool "B.A.T.M.A.N. debugging"
107	depends on BATMAN_ADV_DEBUGFS
108	help
109	  This is an option for use by developers; most people should
110	  say N here. This enables compilation of support for
111	  outputting debugging information to the kernel log. The
112	  output is controlled via the module parameter debug.
113