1# SPDX-License-Identifier: GPL-2.0 2# Copyright (C) 2007-2018 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 CRC16 26 select LIBCRC32C 27 help 28 B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is 29 a routing protocol for multi-hop ad-hoc mesh networks. The 30 networks may be wired or wireless. See 31 https://www.open-mesh.org/ for more information and user space 32 tools. 33 34config BATMAN_ADV_BATMAN_V 35 bool "B.A.T.M.A.N. V protocol" 36 depends on BATMAN_ADV && !(CFG80211=m && BATMAN_ADV=y) 37 default y 38 help 39 This option enables the B.A.T.M.A.N. V protocol, the successor 40 of the currently used B.A.T.M.A.N. IV protocol. The main 41 changes include splitting of the OGM protocol into a neighbor 42 discovery protocol (Echo Location Protocol, ELP) and a new OGM 43 Protocol OGMv2 for flooding protocol information through the 44 network, as well as a throughput based metric. 45 B.A.T.M.A.N. V is currently considered experimental and not 46 compatible to B.A.T.M.A.N. IV networks. 47 48config BATMAN_ADV_BLA 49 bool "Bridge Loop Avoidance" 50 depends on BATMAN_ADV && INET 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 help 86 This option enables the multicast optimisation which aims to 87 reduce the air overhead while improving the reliability of 88 multicast messages. 89 90config BATMAN_ADV_DEBUGFS 91 bool "batman-adv debugfs entries" 92 depends on BATMAN_ADV 93 depends on DEBUG_FS 94 help 95 Enable this to export routing related debug tables via debugfs. 96 The information for each soft-interface and used hard-interface can be 97 found under batman_adv/ 98 99 If unsure, say N. 100 101config BATMAN_ADV_DEBUG 102 bool "B.A.T.M.A.N. debugging" 103 depends on BATMAN_ADV_DEBUGFS 104 help 105 This is an option for use by developers; most people should 106 say N here. This enables compilation of support for 107 outputting debugging information to the kernel log. The 108 output is controlled via the module parameter debug. 109 110config BATMAN_ADV_TRACING 111 bool "B.A.T.M.A.N. tracing support" 112 depends on BATMAN_ADV 113 depends on EVENT_TRACING 114 help 115 This is an option for use by developers; most people should 116 say N here. Select this option to gather traces like the debug 117 messages using the generic tracing infrastructure of the kernel. 118 BATMAN_ADV_DEBUG must also be selected to get trace events for 119 batadv_dbg. 120