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