xref: /openbmc/linux/net/batman-adv/Kconfig (revision 37744fee)
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_DEBUGFS
80	bool "batman-adv debugfs entries"
81	depends on BATMAN_ADV
82	depends on DEBUG_FS
83	help
84	  Enable this to export routing related debug tables via debugfs.
85	  The information for each soft-interface and used hard-interface can be
86	  found under batman_adv/
87
88	  If unsure, say N.
89
90config BATMAN_ADV_DEBUG
91	bool "B.A.T.M.A.N. debugging"
92	depends on BATMAN_ADV
93	help
94	  This is an option for use by developers; most people should
95	  say N here. This enables compilation of support for
96	  outputting debugging information to the debugfs log or tracing
97	  buffer. The output is controlled via the batadv netdev specific
98	  log_level setting.
99
100config BATMAN_ADV_SYSFS
101	bool "batman-adv sysfs entries"
102	depends on BATMAN_ADV
103	help
104	  Say Y here if you want to enable batman-adv device configuration and
105	  status interface through sysfs attributes. It is replaced by the
106	  batadv generic netlink family but still used by various userspace
107	  tools and scripts.
108
109	  If unsure, say Y.
110
111config BATMAN_ADV_TRACING
112	bool "B.A.T.M.A.N. tracing support"
113	depends on BATMAN_ADV
114	depends on EVENT_TRACING
115	help
116	  This is an option for use by developers; most people should
117	  say N here. Select this option to gather traces like the debug
118	  messages using the generic tracing infrastructure of the kernel.
119	  BATMAN_ADV_DEBUG must also be selected to get trace events for
120	  batadv_dbg.
121