xref: /openbmc/linux/net/batman-adv/Kconfig (revision 37b9c7bb)
1# SPDX-License-Identifier: GPL-2.0
2# Copyright (C) 2007-2020  B.A.T.M.A.N. contributors:
3#
4# Marek Lindner, Simon Wunderlich
5
6#
7# B.A.T.M.A.N meshing protocol
8#
9
10config BATMAN_ADV
11	tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
12	depends on NET
13	select LIBCRC32C
14	help
15	  B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
16	  a routing protocol for multi-hop ad-hoc mesh networks. The
17	  networks may be wired or wireless. See
18	  https://www.open-mesh.org/ for more information and user space
19	  tools.
20
21config BATMAN_ADV_BATMAN_V
22	bool "B.A.T.M.A.N. V protocol"
23	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
24	default y
25	help
26	  This option enables the B.A.T.M.A.N. V protocol, the successor
27	  of the currently used B.A.T.M.A.N. IV protocol. The main
28	  changes include splitting of the OGM protocol into a neighbor
29	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
30	  Protocol OGMv2 for flooding protocol information through the
31	  network, as well as a throughput based metric.
32	  B.A.T.M.A.N. V is currently considered experimental and not
33	  compatible to B.A.T.M.A.N. IV networks.
34
35config BATMAN_ADV_BLA
36	bool "Bridge Loop Avoidance"
37	depends on BATMAN_ADV && INET
38	select CRC16
39	default y
40	help
41	  This option enables BLA (Bridge Loop Avoidance), a mechanism
42	  to avoid Ethernet frames looping when mesh nodes are connected
43	  to both the same LAN and the same mesh. If you will never use
44	  more than one mesh node in the same LAN, you can safely remove
45	  this feature and save some space.
46
47config BATMAN_ADV_DAT
48	bool "Distributed ARP Table"
49	depends on BATMAN_ADV && INET
50	default y
51	help
52	  This option enables DAT (Distributed ARP Table), a DHT based
53	  mechanism that increases ARP reliability on sparse wireless
54	  mesh networks. If you think that your network does not need
55	  this option you can safely remove it and save some space.
56
57config BATMAN_ADV_NC
58	bool "Network Coding"
59	depends on BATMAN_ADV
60	help
61	  This option enables network coding, a mechanism that aims to
62	  increase the overall network throughput by fusing multiple
63	  packets in one transmission.
64	  Note that interfaces controlled by batman-adv must be manually
65	  configured to have promiscuous mode enabled in order to make
66	  network coding work.
67	  If you think that your network does not need this feature you
68	  can safely disable it and save some space.
69
70config BATMAN_ADV_MCAST
71	bool "Multicast optimisation"
72	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
73	default y
74	help
75	  This option enables the multicast optimisation which aims to
76	  reduce the air overhead while improving the reliability of
77	  multicast messages.
78
79config BATMAN_ADV_DEBUG
80	bool "B.A.T.M.A.N. debugging"
81	depends on BATMAN_ADV
82	help
83	  This is an option for use by developers; most people should
84	  say N here. This enables compilation of support for
85	  outputting debugging information to the tracing buffer. The output is
86	  controlled via the batadv netdev specific log_level setting.
87
88config BATMAN_ADV_TRACING
89	bool "B.A.T.M.A.N. tracing support"
90	depends on BATMAN_ADV
91	depends on EVENT_TRACING
92	help
93	  This is an option for use by developers; most people should
94	  say N here. Select this option to gather traces like the debug
95	  messages using the generic tracing infrastructure of the kernel.
96	  BATMAN_ADV_DEBUG must also be selected to get trace events for
97	  batadv_dbg.
98