diff --git a/main.asciidoc b/main.asciidoc index 7319390..ab9e861 100644 --- a/main.asciidoc +++ b/main.asciidoc @@ -49,7 +49,7 @@ BMX6 is an open-source, mesh routing protocol, developed by Axel Neumann. It ori B.A.T.M.A.N. advanced (often referenced as batman-adv) is an implementation of the B.A.T.M.A.N. routing protocol in form of a Linux kernel module operating on layer 2. While usually wireless routing protocol implementations operates on L3 which means they exchange routing information by sending IP packets and bring their routing decision into effect by manipulating the kernel routing table. Batman-adv operates entirely on L2, not only the routing information is transported using raw Ethernet frames but also the data traffic is handled by batman-adv. It encapsulates and forwards all traffic until it reaches the destination, hence emulating a virtual network switch of all nodes participating. Therefore to the upper level all nodes appear to be link local and are unaware of the network's topology as well as unaffected by lower level network changes. Operating as a L2 routing protocol as there is no _L2 routing table_ to manipulate, data frames must be processed directly by batman-adv and doing it in user-space would be very inefficient, as for each packet processed it would be +read()+ and +write()+ to the kernel and back causing multiple context switching that are computationally costly <>, which limits the sustainable bandwidth especially on low-end devices. To have good support for these devices as well and an overall good efficiency, batman-adv is implemented as a Linux kernel module. This way batman-adv avoid the context switching costs and only introduces a negligible packet processing overhead even under a high load. <> === qMp -qMp do facilitate the creation of roaming enabled mesh networks, it is based on OpenWrt and BMX6 <>, qMp already supports configuration provisioning by guifi.net map _unsolclick_ for mesh parameters adjusting but it leave the interoperability with <> mostly to manual static configuration done by the user <> or in rare cases to manually configured Quagga-BMX6 module that is unreliable, resource intensive and requires manual configuration. Moreover qMp is designed around BMX6, in a way that to add support for another routing protocol would imply a big refactoring of qMp code. +qMp do facilitate the creation of roaming enabled mesh networks, it is based on OpenWrt and BMX6 <>, qMp already supports configuration provisioning by guifi.net map _unsolclick_ for mesh parameters adjusting but it leave the interoperability with _<>_ mostly to manual static configuration done by the user <> or in rare cases to manually configured Quagga-BMX6 module that is unreliable, resource intensive and requires manual configuration. Moreover qMp is designed around BMX6, in a way that to add support for another routing protocol would imply a big refactoring of qMp code. [[libre-mesh]] === Libre-Mesh