18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci# Copyright (C) 2007-2020  B.A.T.M.A.N. contributors:
38c2ecf20Sopenharmony_ci#
48c2ecf20Sopenharmony_ci# Marek Lindner, Simon Wunderlich
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#
78c2ecf20Sopenharmony_ci# B.A.T.M.A.N meshing protocol
88c2ecf20Sopenharmony_ci#
98c2ecf20Sopenharmony_ci
108c2ecf20Sopenharmony_ciconfig BATMAN_ADV
118c2ecf20Sopenharmony_ci	tristate "B.A.T.M.A.N. Advanced Meshing Protocol"
128c2ecf20Sopenharmony_ci	depends on NET
138c2ecf20Sopenharmony_ci	select LIBCRC32C
148c2ecf20Sopenharmony_ci	help
158c2ecf20Sopenharmony_ci	  B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
168c2ecf20Sopenharmony_ci	  a routing protocol for multi-hop ad-hoc mesh networks. The
178c2ecf20Sopenharmony_ci	  networks may be wired or wireless. See
188c2ecf20Sopenharmony_ci	  https://www.open-mesh.org/ for more information and user space
198c2ecf20Sopenharmony_ci	  tools.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ciconfig BATMAN_ADV_BATMAN_V
228c2ecf20Sopenharmony_ci	bool "B.A.T.M.A.N. V protocol"
238c2ecf20Sopenharmony_ci	depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y)
248c2ecf20Sopenharmony_ci	default y
258c2ecf20Sopenharmony_ci	help
268c2ecf20Sopenharmony_ci	  This option enables the B.A.T.M.A.N. V protocol, the successor
278c2ecf20Sopenharmony_ci	  of the currently used B.A.T.M.A.N. IV protocol. The main
288c2ecf20Sopenharmony_ci	  changes include splitting of the OGM protocol into a neighbor
298c2ecf20Sopenharmony_ci	  discovery protocol (Echo Location Protocol, ELP) and a new OGM
308c2ecf20Sopenharmony_ci	  Protocol OGMv2 for flooding protocol information through the
318c2ecf20Sopenharmony_ci	  network, as well as a throughput based metric.
328c2ecf20Sopenharmony_ci	  B.A.T.M.A.N. V is currently considered experimental and not
338c2ecf20Sopenharmony_ci	  compatible to B.A.T.M.A.N. IV networks.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ciconfig BATMAN_ADV_BLA
368c2ecf20Sopenharmony_ci	bool "Bridge Loop Avoidance"
378c2ecf20Sopenharmony_ci	depends on BATMAN_ADV && INET
388c2ecf20Sopenharmony_ci	select CRC16
398c2ecf20Sopenharmony_ci	default y
408c2ecf20Sopenharmony_ci	help
418c2ecf20Sopenharmony_ci	  This option enables BLA (Bridge Loop Avoidance), a mechanism
428c2ecf20Sopenharmony_ci	  to avoid Ethernet frames looping when mesh nodes are connected
438c2ecf20Sopenharmony_ci	  to both the same LAN and the same mesh. If you will never use
448c2ecf20Sopenharmony_ci	  more than one mesh node in the same LAN, you can safely remove
458c2ecf20Sopenharmony_ci	  this feature and save some space.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciconfig BATMAN_ADV_DAT
488c2ecf20Sopenharmony_ci	bool "Distributed ARP Table"
498c2ecf20Sopenharmony_ci	depends on BATMAN_ADV && INET
508c2ecf20Sopenharmony_ci	default y
518c2ecf20Sopenharmony_ci	help
528c2ecf20Sopenharmony_ci	  This option enables DAT (Distributed ARP Table), a DHT based
538c2ecf20Sopenharmony_ci	  mechanism that increases ARP reliability on sparse wireless
548c2ecf20Sopenharmony_ci	  mesh networks. If you think that your network does not need
558c2ecf20Sopenharmony_ci	  this option you can safely remove it and save some space.
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ciconfig BATMAN_ADV_NC
588c2ecf20Sopenharmony_ci	bool "Network Coding"
598c2ecf20Sopenharmony_ci	depends on BATMAN_ADV
608c2ecf20Sopenharmony_ci	help
618c2ecf20Sopenharmony_ci	  This option enables network coding, a mechanism that aims to
628c2ecf20Sopenharmony_ci	  increase the overall network throughput by fusing multiple
638c2ecf20Sopenharmony_ci	  packets in one transmission.
648c2ecf20Sopenharmony_ci	  Note that interfaces controlled by batman-adv must be manually
658c2ecf20Sopenharmony_ci	  configured to have promiscuous mode enabled in order to make
668c2ecf20Sopenharmony_ci	  network coding work.
678c2ecf20Sopenharmony_ci	  If you think that your network does not need this feature you
688c2ecf20Sopenharmony_ci	  can safely disable it and save some space.
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ciconfig BATMAN_ADV_MCAST
718c2ecf20Sopenharmony_ci	bool "Multicast optimisation"
728c2ecf20Sopenharmony_ci	depends on BATMAN_ADV && INET && !(BRIDGE=m && BATMAN_ADV=y)
738c2ecf20Sopenharmony_ci	default y
748c2ecf20Sopenharmony_ci	help
758c2ecf20Sopenharmony_ci	  This option enables the multicast optimisation which aims to
768c2ecf20Sopenharmony_ci	  reduce the air overhead while improving the reliability of
778c2ecf20Sopenharmony_ci	  multicast messages.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciconfig BATMAN_ADV_DEBUGFS
808c2ecf20Sopenharmony_ci	bool "batman-adv debugfs entries"
818c2ecf20Sopenharmony_ci	depends on BATMAN_ADV
828c2ecf20Sopenharmony_ci	depends on DEBUG_FS
838c2ecf20Sopenharmony_ci	help
848c2ecf20Sopenharmony_ci	  Enable this to export routing related debug tables via debugfs.
858c2ecf20Sopenharmony_ci	  The information for each soft-interface and used hard-interface can be
868c2ecf20Sopenharmony_ci	  found under batman_adv/
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci	  If unsure, say N.
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ciconfig BATMAN_ADV_DEBUG
918c2ecf20Sopenharmony_ci	bool "B.A.T.M.A.N. debugging"
928c2ecf20Sopenharmony_ci	depends on BATMAN_ADV
938c2ecf20Sopenharmony_ci	help
948c2ecf20Sopenharmony_ci	  This is an option for use by developers; most people should
958c2ecf20Sopenharmony_ci	  say N here. This enables compilation of support for
968c2ecf20Sopenharmony_ci	  outputting debugging information to the debugfs log or tracing
978c2ecf20Sopenharmony_ci	  buffer. The output is controlled via the batadv netdev specific
988c2ecf20Sopenharmony_ci	  log_level setting.
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciconfig BATMAN_ADV_SYSFS
1018c2ecf20Sopenharmony_ci	bool "batman-adv sysfs entries"
1028c2ecf20Sopenharmony_ci	depends on BATMAN_ADV
1038c2ecf20Sopenharmony_ci	help
1048c2ecf20Sopenharmony_ci	  Say Y here if you want to enable batman-adv device configuration and
1058c2ecf20Sopenharmony_ci	  status interface through sysfs attributes. It is replaced by the
1068c2ecf20Sopenharmony_ci	  batadv generic netlink family but still used by various userspace
1078c2ecf20Sopenharmony_ci	  tools and scripts.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	  If unsure, say Y.
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ciconfig BATMAN_ADV_TRACING
1128c2ecf20Sopenharmony_ci	bool "B.A.T.M.A.N. tracing support"
1138c2ecf20Sopenharmony_ci	depends on BATMAN_ADV
1148c2ecf20Sopenharmony_ci	depends on EVENT_TRACING
1158c2ecf20Sopenharmony_ci	help
1168c2ecf20Sopenharmony_ci	  This is an option for use by developers; most people should
1178c2ecf20Sopenharmony_ci	  say N here. Select this option to gather traces like the debug
1188c2ecf20Sopenharmony_ci	  messages using the generic tracing infrastructure of the kernel.
1198c2ecf20Sopenharmony_ci	  BATMAN_ADV_DEBUG must also be selected to get trace events for
1208c2ecf20Sopenharmony_ci	  batadv_dbg.
121