xref: /OK3568_Linux_fs/kernel/net/batman-adv/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun# Copyright (C) 2007-2020  B.A.T.M.A.N. contributors:
3*4882a593Smuzhiyun#
4*4882a593Smuzhiyun# Marek Lindner, Simon Wunderlich
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun#
7*4882a593Smuzhiyun# B.A.T.M.A.N meshing protocol
8*4882a593Smuzhiyun#
9*4882a593Smuzhiyun
10*4882a593Smuzhiyunconfig BATMAN_ADV
11*4882a593Smuzhiyun	tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
12*4882a593Smuzhiyun	depends on NET
13*4882a593Smuzhiyun	select LIBCRC32C
14*4882a593Smuzhiyun	help
15*4882a593Smuzhiyun	  B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
16*4882a593Smuzhiyun	  a routing protocol for multi-hop ad-hoc mesh networks. The
17*4882a593Smuzhiyun	  networks may be wired or wireless. See
18*4882a593Smuzhiyun	  https://www.open-mesh.org/ for more information and user space
19*4882a593Smuzhiyun	  tools.
20*4882a593Smuzhiyun
21*4882a593Smuzhiyunconfig BATMAN_ADV_BATMAN_V
22*4882a593Smuzhiyun	bool "B.A.T.M.A.N. V protocol"
23*4882a593Smuzhiyun	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
24*4882a593Smuzhiyun	default y
25*4882a593Smuzhiyun	help
26*4882a593Smuzhiyun	  This option enables the B.A.T.M.A.N. V protocol, the successor
27*4882a593Smuzhiyun	  of the currently used B.A.T.M.A.N. IV protocol. The main
28*4882a593Smuzhiyun	  changes include splitting of the OGM protocol into a neighbor
29*4882a593Smuzhiyun	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
30*4882a593Smuzhiyun	  Protocol OGMv2 for flooding protocol information through the
31*4882a593Smuzhiyun	  network, as well as a throughput based metric.
32*4882a593Smuzhiyun	  B.A.T.M.A.N. V is currently considered experimental and not
33*4882a593Smuzhiyun	  compatible to B.A.T.M.A.N. IV networks.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig BATMAN_ADV_BLA
36*4882a593Smuzhiyun	bool "Bridge Loop Avoidance"
37*4882a593Smuzhiyun	depends on BATMAN_ADV && INET
38*4882a593Smuzhiyun	select CRC16
39*4882a593Smuzhiyun	default y
40*4882a593Smuzhiyun	help
41*4882a593Smuzhiyun	  This option enables BLA (Bridge Loop Avoidance), a mechanism
42*4882a593Smuzhiyun	  to avoid Ethernet frames looping when mesh nodes are connected
43*4882a593Smuzhiyun	  to both the same LAN and the same mesh. If you will never use
44*4882a593Smuzhiyun	  more than one mesh node in the same LAN, you can safely remove
45*4882a593Smuzhiyun	  this feature and save some space.
46*4882a593Smuzhiyun
47*4882a593Smuzhiyunconfig BATMAN_ADV_DAT
48*4882a593Smuzhiyun	bool "Distributed ARP Table"
49*4882a593Smuzhiyun	depends on BATMAN_ADV && INET
50*4882a593Smuzhiyun	default y
51*4882a593Smuzhiyun	help
52*4882a593Smuzhiyun	  This option enables DAT (Distributed ARP Table), a DHT based
53*4882a593Smuzhiyun	  mechanism that increases ARP reliability on sparse wireless
54*4882a593Smuzhiyun	  mesh networks. If you think that your network does not need
55*4882a593Smuzhiyun	  this option you can safely remove it and save some space.
56*4882a593Smuzhiyun
57*4882a593Smuzhiyunconfig BATMAN_ADV_NC
58*4882a593Smuzhiyun	bool "Network Coding"
59*4882a593Smuzhiyun	depends on BATMAN_ADV
60*4882a593Smuzhiyun	help
61*4882a593Smuzhiyun	  This option enables network coding, a mechanism that aims to
62*4882a593Smuzhiyun	  increase the overall network throughput by fusing multiple
63*4882a593Smuzhiyun	  packets in one transmission.
64*4882a593Smuzhiyun	  Note that interfaces controlled by batman-adv must be manually
65*4882a593Smuzhiyun	  configured to have promiscuous mode enabled in order to make
66*4882a593Smuzhiyun	  network coding work.
67*4882a593Smuzhiyun	  If you think that your network does not need this feature you
68*4882a593Smuzhiyun	  can safely disable it and save some space.
69*4882a593Smuzhiyun
70*4882a593Smuzhiyunconfig BATMAN_ADV_MCAST
71*4882a593Smuzhiyun	bool "Multicast optimisation"
72*4882a593Smuzhiyun	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
73*4882a593Smuzhiyun	default y
74*4882a593Smuzhiyun	help
75*4882a593Smuzhiyun	  This option enables the multicast optimisation which aims to
76*4882a593Smuzhiyun	  reduce the air overhead while improving the reliability of
77*4882a593Smuzhiyun	  multicast messages.
78*4882a593Smuzhiyun
79*4882a593Smuzhiyunconfig BATMAN_ADV_DEBUGFS
80*4882a593Smuzhiyun	bool "batman-adv debugfs entries"
81*4882a593Smuzhiyun	depends on BATMAN_ADV
82*4882a593Smuzhiyun	depends on DEBUG_FS
83*4882a593Smuzhiyun	help
84*4882a593Smuzhiyun	  Enable this to export routing related debug tables via debugfs.
85*4882a593Smuzhiyun	  The information for each soft-interface and used hard-interface can be
86*4882a593Smuzhiyun	  found under batman_adv/
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun	  If unsure, say N.
89*4882a593Smuzhiyun
90*4882a593Smuzhiyunconfig BATMAN_ADV_DEBUG
91*4882a593Smuzhiyun	bool "B.A.T.M.A.N. debugging"
92*4882a593Smuzhiyun	depends on BATMAN_ADV
93*4882a593Smuzhiyun	help
94*4882a593Smuzhiyun	  This is an option for use by developers; most people should
95*4882a593Smuzhiyun	  say N here. This enables compilation of support for
96*4882a593Smuzhiyun	  outputting debugging information to the debugfs log or tracing
97*4882a593Smuzhiyun	  buffer. The output is controlled via the batadv netdev specific
98*4882a593Smuzhiyun	  log_level setting.
99*4882a593Smuzhiyun
100*4882a593Smuzhiyunconfig BATMAN_ADV_SYSFS
101*4882a593Smuzhiyun	bool "batman-adv sysfs entries"
102*4882a593Smuzhiyun	depends on BATMAN_ADV
103*4882a593Smuzhiyun	help
104*4882a593Smuzhiyun	  Say Y here if you want to enable batman-adv device configuration and
105*4882a593Smuzhiyun	  status interface through sysfs attributes. It is replaced by the
106*4882a593Smuzhiyun	  batadv generic netlink family but still used by various userspace
107*4882a593Smuzhiyun	  tools and scripts.
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun	  If unsure, say Y.
110*4882a593Smuzhiyun
111*4882a593Smuzhiyunconfig BATMAN_ADV_TRACING
112*4882a593Smuzhiyun	bool "B.A.T.M.A.N. tracing support"
113*4882a593Smuzhiyun	depends on BATMAN_ADV
114*4882a593Smuzhiyun	depends on EVENT_TRACING
115*4882a593Smuzhiyun	help
116*4882a593Smuzhiyun	  This is an option for use by developers; most people should
117*4882a593Smuzhiyun	  say N here. Select this option to gather traces like the debug
118*4882a593Smuzhiyun	  messages using the generic tracing infrastructure of the kernel.
119*4882a593Smuzhiyun	  BATMAN_ADV_DEBUG must also be selected to get trace events for
120*4882a593Smuzhiyun	  batadv_dbg.
121