xref: /openbmc/linux/net/batman-adv/Kconfig (revision 0566df30)
1c6c8fea2SSven Eckelmann#
2c6c8fea2SSven Eckelmann# B.A.T.M.A.N meshing protocol
3c6c8fea2SSven Eckelmann#
4c6c8fea2SSven Eckelmann
5c6c8fea2SSven Eckelmannconfig BATMAN_ADV
6c6c8fea2SSven Eckelmann	tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
717224474SAntonio Quartulli	depends on NET
8a73105b8SAntonio Quartulli	select CRC16
995a066d8SSven Eckelmann	select LIBCRC32C
10c6c8fea2SSven Eckelmann        default n
1110e3cd6aSAntonio Quartulli	help
12c6c8fea2SSven Eckelmann          B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
13c6c8fea2SSven Eckelmann          a routing protocol for multi-hop ad-hoc mesh networks. The
14c6c8fea2SSven Eckelmann          networks may be wired or wireless. See
157b5e7396SSven Eckelmann          https://www.open-mesh.org/ for more information and user space
16c6c8fea2SSven Eckelmann          tools.
17c6c8fea2SSven Eckelmann
18d6f94d91SLinus Luessingconfig BATMAN_ADV_BATMAN_V
19d6f94d91SLinus Luessing	bool "B.A.T.M.A.N. V protocol (experimental)"
200566df30SLinus Lüssing	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
21d6f94d91SLinus Luessing	default n
22d6f94d91SLinus Luessing	help
23d6f94d91SLinus Luessing	  This option enables the B.A.T.M.A.N. V protocol, the successor
24d6f94d91SLinus Luessing	  of the currently used B.A.T.M.A.N. IV protocol. The main
25d6f94d91SLinus Luessing	  changes include splitting of the OGM protocol into a neighbor
26d6f94d91SLinus Luessing	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
27d6f94d91SLinus Luessing	  Protocol OGMv2 for flooding protocol information through the
28d6f94d91SLinus Luessing	  network, as well as a throughput based metric.
29d6f94d91SLinus Luessing	  B.A.T.M.A.N. V is currently considered experimental and not
30d6f94d91SLinus Luessing	  compatible to B.A.T.M.A.N. IV networks.
31d6f94d91SLinus Luessing
327a5cc242SSimon Wunderlichconfig BATMAN_ADV_BLA
337a5cc242SSimon Wunderlich	bool "Bridge Loop Avoidance"
3417224474SAntonio Quartulli	depends on BATMAN_ADV && INET
357a5cc242SSimon Wunderlich	default y
367a5cc242SSimon Wunderlich	help
377a5cc242SSimon Wunderlich	  This option enables BLA (Bridge Loop Avoidance), a mechanism
387a5cc242SSimon Wunderlich	  to avoid Ethernet frames looping when mesh nodes are connected
397a5cc242SSimon Wunderlich	  to both the same LAN and the same mesh. If you will never use
407a5cc242SSimon Wunderlich	  more than one mesh node in the same LAN, you can safely remove
417a5cc242SSimon Wunderlich	  this feature and save some space.
4210e3cd6aSAntonio Quartulli
4317224474SAntonio Quartulliconfig BATMAN_ADV_DAT
4417224474SAntonio Quartulli	bool "Distributed ARP Table"
4517224474SAntonio Quartulli	depends on BATMAN_ADV && INET
4617224474SAntonio Quartulli	default n
4717224474SAntonio Quartulli	help
4817224474SAntonio Quartulli	  This option enables DAT (Distributed ARP Table), a DHT based
4917224474SAntonio Quartulli	  mechanism that increases ARP reliability on sparse wireless
5017224474SAntonio Quartulli	  mesh networks. If you think that your network does not need
5117224474SAntonio Quartulli	  this option you can safely remove it and save some space.
5217224474SAntonio Quartulli
53d353d8d4SMartin Hundebøllconfig BATMAN_ADV_NC
54d353d8d4SMartin Hundebøll	bool "Network Coding"
55d353d8d4SMartin Hundebøll	depends on BATMAN_ADV
56d353d8d4SMartin Hundebøll	default n
57d353d8d4SMartin Hundebøll	help
58d353d8d4SMartin Hundebøll	  This option enables network coding, a mechanism that aims to
59d353d8d4SMartin Hundebøll	  increase the overall network throughput by fusing multiple
60d353d8d4SMartin Hundebøll	  packets in one transmission.
61d353d8d4SMartin Hundebøll	  Note that interfaces controlled by batman-adv must be manually
62d353d8d4SMartin Hundebøll	  configured to have promiscuous mode enabled in order to make
63d353d8d4SMartin Hundebøll	  network coding work.
64d353d8d4SMartin Hundebøll	  If you think that your network does not need this feature you
65d353d8d4SMartin Hundebøll	  can safely disable it and save some space.
66d353d8d4SMartin Hundebøll
67c5caf4efSLinus Lüssingconfig BATMAN_ADV_MCAST
68c5caf4efSLinus Lüssing	bool "Multicast optimisation"
69687937abSLinus Lüssing	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
70c5caf4efSLinus Lüssing	default n
71c5caf4efSLinus Lüssing	help
72c5caf4efSLinus Lüssing	  This option enables the multicast optimisation which aims to
73c5caf4efSLinus Lüssing	  reduce the air overhead while improving the reliability of
74c5caf4efSLinus Lüssing	  multicast messages.
75c5caf4efSLinus Lüssing
76dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUGFS
77dc1cbd14SSven Eckelmann	bool "batman-adv debugfs entries"
7810e3cd6aSAntonio Quartulli	depends on BATMAN_ADV
7995353956SMarkus Pargmann	depends on DEBUG_FS
80dc1cbd14SSven Eckelmann	default y
81dc1cbd14SSven Eckelmann	help
82dc1cbd14SSven Eckelmann	  Enable this to export routing related debug tables via debugfs.
83dc1cbd14SSven Eckelmann	  The information for each soft-interface and used hard-interface can be
84dc1cbd14SSven Eckelmann	  found under batman_adv/
85dc1cbd14SSven Eckelmann
86dc1cbd14SSven Eckelmann	  If unsure, say Y.
87dc1cbd14SSven Eckelmann
88dc1cbd14SSven Eckelmannconfig BATMAN_ADV_DEBUG
89dc1cbd14SSven Eckelmann	bool "B.A.T.M.A.N. debugging"
90dc1cbd14SSven Eckelmann	depends on BATMAN_ADV_DEBUGFS
9110e3cd6aSAntonio Quartulli	help
92c6c8fea2SSven Eckelmann	  This is an option for use by developers; most people should
93c6c8fea2SSven Eckelmann	  say N here. This enables compilation of support for
94c6c8fea2SSven Eckelmann	  outputting debugging information to the kernel log. The
95c6c8fea2SSven Eckelmann	  output is controlled via the module parameter debug.
96