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