Repository : ssh://git@diktynna/doc
On branches: backup-redmine/2021-08-07,backup-redmine/2021-09-11,backup-redmine/2021-10-09,backup-redmine/2021-11-13,backup-redmine/2021-12-11,backup-redmine/2022-01-08,backup-redmine/2022-02-12,backup-redmine/2022-03-12,backup-redmine/2022-04-09,backup-redmine/2022-05-07,backup-redmine/2022-06-11,backup-redmine/2022-08-06,backup-redmine/2022-10-07,backup-redmine/2022-11-14,backup-redmine/2023-01-14,main
>---------------------------------------------------------------
commit ccca9f8be60f44b38774d7264afbb2f2d9b1b3be
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Sat Jul 17 19:47:55 2021 +0000
doc: batman-adv/Wiki: explain the concept of a distributed switch with pictures
>---------------------------------------------------------------
ccca9f8be60f44b38774d7264afbb2f2d9b1b3be
batman-adv/Wiki.textile | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/batman-adv/Wiki.textile b/batman-adv/Wiki.textile
index 29981af4..4aad1427 100644
--- a/batman-adv/Wiki.textile
+++ b/batman-adv/Wiki.textile
@@ -7,6 +7,27 @@ h2. Layer 2 ?
Most other wireless routing protocol implementations (e.g. the batman daemon) operate on layer 3 which means they exchange routing information by sending UDP packets and bring their routing decision into effect by manipulating the kernel routing table. Batman-adv operates entirely on ISO/OSI Layer 2 - 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 all nodes appear to be link local and are unaware of the network's topology as well as unaffected by any network changes.
+The easiest way to think about a batman-adv mesh network is to imagine it as a distributed switch. Each system (often called "node") running batman-adv is equal to a switch port.
+
+!/attachments/download/939/batadv-introduction-switch.svg!
+
+Each node is running an instance of batman-adv. Such an instance is a virtual network interface (often called "bat0") which looks to the system like a switch port that allows access to the distributed switch. The actual details of the (direct or indirect) communication between the nodes is then hidden behind the "bat0" network interface.
+
+!/attachments/download/940/batadv-introduction-switch-distributed.svg!
+
+To make communication possible between the different bat0 interfaces on the different nodes, batman-adv relies on ethernet compatible network interfaces which gets attached to bat0 as so called (lower) hard interfaces. This concept should already be known by Linux bridges
+
+!/attachments/download/941/batadv-introduction-switch-hardinterface.svg!
+
+The node3 in the last picture can now communicate with node2 even when the wifi link via its "mesh0" interface to node2 would be too weak to transport data over it. The node1 can be used in this scenario to forward traffic between node3 and node1. The data would be transported via the (often quite stable) ethernet interface "eth0". And node1 can talk to node2 via the "mesh0" interface. And batman-adv handles all these things internally and the upper layers can simply use the bat0 like any other network interface.
+
+This also means that any other interface can be bridged to the bat0 interface. Another ethernet interface ("eth1" in this example) can be used to grant a non batman-adv aware client connectivity to node1, node2, node3 or other non batman-adv aware clients. The same is true for wifi clients which connect to a bridge accesspoint interface.
+
+!/attachments/download/942/batadv-introduction-switch-clients.svg!
+
+In this example, the blue wifi-client on node2 should be able to talk to the red ethernet client on node3. Even when they both don't have any knowledge about batman-adv or the medium (ethernet vs. wifi) of the remote client.
+
+
This design bears some interesting characteristics:
* network-layer agnostic - you can run whatever you wish on top of batman-adv: IPv4, IPv6, DHCP, IPX ..
* nodes can participate in a mesh without having an IP