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