xref: /openbmc/linux/net/batman-adv/Kconfig (revision cfa55c6d)
19969ffa8SSven Eckelmann# SPDX-License-Identifier: GPL-2.0
2*cfa55c6dSSven Eckelmann# Copyright (C) B.A.T.M.A.N. contributors:
39969ffa8SSven Eckelmann#
49969ffa8SSven Eckelmann# Marek Lindner, Simon Wunderlich
59969ffa8SSven Eckelmann
6c6c8fea2SSven Eckelmann#
7c6c8fea2SSven Eckelmann# B.A.T.M.A.N meshing protocol
8c6c8fea2SSven Eckelmann#
9c6c8fea2SSven Eckelmann
10c6c8fea2SSven Eckelmannconfig BATMAN_ADV
11c6c8fea2SSven Eckelmann	tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
1217224474SAntonio Quartulli	select LIBCRC32C
1395a066d8SSven Eckelmann	help
1410e3cd6aSAntonio Quartulli	  B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
15c6c8fea2SSven Eckelmann	  a routing protocol for multi-hop ad-hoc mesh networks. The
16c6c8fea2SSven Eckelmann	  networks may be wired or wireless. See
17c6c8fea2SSven Eckelmann	  https://www.open-mesh.org/ for more information and user space
187b5e7396SSven Eckelmann	  tools.
19c6c8fea2SSven Eckelmann
20c6c8fea2SSven Eckelmannconfig BATMAN_ADV_BATMAN_V
21d6f94d91SLinus Luessing	bool "B.A.T.M.A.N. V protocol"
22951a06e7SSven Eckelmann	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
230566df30SLinus Lüssing	default y
2418cfb44cSMarek Lindner	help
25d6f94d91SLinus Luessing	  This option enables the B.A.T.M.A.N. V protocol, the successor
26d6f94d91SLinus Luessing	  of the currently used B.A.T.M.A.N. IV protocol. The main
27d6f94d91SLinus Luessing	  changes include splitting of the OGM protocol into a neighbor
28d6f94d91SLinus Luessing	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
29d6f94d91SLinus Luessing	  Protocol OGMv2 for flooding protocol information through the
30d6f94d91SLinus Luessing	  network, as well as a throughput based metric.
31d6f94d91SLinus Luessing	  B.A.T.M.A.N. V is currently considered experimental and not
32d6f94d91SLinus Luessing	  compatible to B.A.T.M.A.N. IV networks.
33d6f94d91SLinus Luessing
34d6f94d91SLinus Luessingconfig BATMAN_ADV_BLA
357a5cc242SSimon Wunderlich	bool "Bridge Loop Avoidance"
367a5cc242SSimon Wunderlich	depends on BATMAN_ADV && INET
3717224474SAntonio Quartulli	select CRC16
38fb939135SSven Eckelmann	default y
397a5cc242SSimon Wunderlich	help
407a5cc242SSimon Wunderlich	  This option enables BLA (Bridge Loop Avoidance), a mechanism
417a5cc242SSimon Wunderlich	  to avoid Ethernet frames looping when mesh nodes are connected
427a5cc242SSimon Wunderlich	  to both the same LAN and the same mesh. If you will never use
437a5cc242SSimon Wunderlich	  more than one mesh node in the same LAN, you can safely remove
447a5cc242SSimon Wunderlich	  this feature and save some space.
457a5cc242SSimon Wunderlich
4610e3cd6aSAntonio Quartulliconfig BATMAN_ADV_DAT
4717224474SAntonio Quartulli	bool "Distributed ARP Table"
4817224474SAntonio Quartulli	depends on BATMAN_ADV && INET
4917224474SAntonio Quartulli	default y
50ab4e5853SAntonio Quartulli	help
5117224474SAntonio Quartulli	  This option enables DAT (Distributed ARP Table), a DHT based
5217224474SAntonio Quartulli	  mechanism that increases ARP reliability on sparse wireless
5317224474SAntonio Quartulli	  mesh networks. If you think that your network does not need
5417224474SAntonio Quartulli	  this option you can safely remove it and save some space.
5517224474SAntonio Quartulli
5617224474SAntonio Quartulliconfig BATMAN_ADV_NC
57d353d8d4SMartin Hundebøll	bool "Network Coding"
58d353d8d4SMartin Hundebøll	depends on BATMAN_ADV
59d353d8d4SMartin Hundebøll	help
60d353d8d4SMartin Hundebøll	  This option enables network coding, a mechanism that aims to
61d353d8d4SMartin Hundebøll	  increase the overall network throughput by fusing multiple
62d353d8d4SMartin Hundebøll	  packets in one transmission.
63d353d8d4SMartin Hundebøll	  Note that interfaces controlled by batman-adv must be manually
64d353d8d4SMartin Hundebøll	  configured to have promiscuous mode enabled in order to make
65d353d8d4SMartin Hundebøll	  network coding work.
66d353d8d4SMartin Hundebøll	  If you think that your network does not need this feature you
67d353d8d4SMartin Hundebøll	  can safely disable it and save some space.
68d353d8d4SMartin Hundebøll
69d353d8d4SMartin Hundebøllconfig BATMAN_ADV_MCAST
70c5caf4efSLinus Lüssing	bool "Multicast optimisation"
71c5caf4efSLinus Lüssing	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
72687937abSLinus Lüssing	default y
73016fd285SLinus Lüssing	help
74c5caf4efSLinus Lüssing	  This option enables the multicast optimisation which aims to
75c5caf4efSLinus Lüssing	  reduce the air overhead while improving the reliability of
76c5caf4efSLinus Lüssing	  multicast messages.
77c5caf4efSLinus Lüssing
78c5caf4efSLinus Lüssingconfig BATMAN_ADV_DEBUG
79dc1cbd14SSven Eckelmann	bool "B.A.T.M.A.N. debugging"
80dc1cbd14SSven Eckelmann	depends on BATMAN_ADV
810dacc7faSSven Eckelmann	help
8210e3cd6aSAntonio Quartulli	  This is an option for use by developers; most people should
83c6c8fea2SSven Eckelmann	  say N here. This enables compilation of support for
84c6c8fea2SSven Eckelmann	  outputting debugging information to the tracing buffer. The output is
85aff6f5a6SSven Eckelmann	  controlled via the batadv netdev specific log_level setting.
86aff6f5a6SSven Eckelmann
87d331a739SSven Eckelmannconfig BATMAN_ADV_TRACING
88d331a739SSven Eckelmann	bool "B.A.T.M.A.N. tracing support"
89d331a739SSven Eckelmann	depends on BATMAN_ADV
90d331a739SSven Eckelmann	depends on EVENT_TRACING
91d331a739SSven Eckelmann	help
92d331a739SSven Eckelmann	  This is an option for use by developers; most people should
93d331a739SSven Eckelmann	  say N here. Select this option to gather traces like the debug
94d331a739SSven Eckelmann	  messages using the generic tracing infrastructure of the kernel.
95d331a739SSven Eckelmann	  BATMAN_ADV_DEBUG must also be selected to get trace events for
96d331a739SSven Eckelmann	  batadv_dbg.
97d331a739SSven Eckelmann