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