xref: /openbmc/linux/net/batman-adv/Kconfig (revision d0034a7a4ac7fae708146ac0059b9c47a1543f0d)
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"
1295a066d8SSven Eckelmann	select LIBCRC32C
1310e3cd6aSAntonio Quartulli	help
14c6c8fea2SSven Eckelmann	  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
177b5e7396SSven Eckelmann	  https://www.open-mesh.org/ for more information and user space
18c6c8fea2SSven Eckelmann	  tools.
19c6c8fea2SSven Eckelmann
20d6f94d91SLinus Luessingconfig BATMAN_ADV_BATMAN_V
21951a06e7SSven Eckelmann	bool "B.A.T.M.A.N. V protocol"
220566df30SLinus Lüssing	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
2318cfb44cSMarek Lindner	default y
24d6f94d91SLinus Luessing	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
347a5cc242SSimon Wunderlichconfig BATMAN_ADV_BLA
357a5cc242SSimon Wunderlich	bool "Bridge Loop Avoidance"
3617224474SAntonio Quartulli	depends on BATMAN_ADV && INET
37fb939135SSven Eckelmann	select CRC16
387a5cc242SSimon Wunderlich	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.
4510e3cd6aSAntonio Quartulli
4617224474SAntonio Quartulliconfig BATMAN_ADV_DAT
4717224474SAntonio Quartulli	bool "Distributed ARP Table"
4817224474SAntonio Quartulli	depends on BATMAN_ADV && INET
49ab4e5853SAntonio Quartulli	default y
5017224474SAntonio 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
56d353d8d4SMartin Hundebøllconfig 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
69c5caf4efSLinus Lüssingconfig BATMAN_ADV_MCAST
70c5caf4efSLinus Lüssing	bool "Multicast optimisation"
71687937abSLinus Lüssing	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
72016fd285SLinus Lüssing	default y
73c5caf4efSLinus 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
78dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUG
79dc1cbd14SSven Eckelmann	bool "B.A.T.M.A.N. debugging"
800dacc7faSSven Eckelmann	depends on BATMAN_ADV
8110e3cd6aSAntonio Quartulli	help
82c6c8fea2SSven Eckelmann	  This is an option for use by developers; most people should
83c6c8fea2SSven Eckelmann	  say N here. This enables compilation of support for
84aff6f5a6SSven Eckelmann	  outputting debugging information to the tracing buffer. The output is
85aff6f5a6SSven Eckelmann	  controlled via the batadv netdev specific log_level setting.
86d331a739SSven 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.
97