Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2017-07-13,master
commit a235e80dfc0377fa7392fe14ededcfc807fc9829 Author: Marek Lindner mareklindner@neomailbox.ch Date: Sun Mar 20 22:50:55 2011 +0000
doc: open-mesh/BranchesExplained
a235e80dfc0377fa7392fe14ededcfc807fc9829 open-mesh/BranchesExplained.textile | 38 +++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/open-mesh/BranchesExplained.textile b/open-mesh/BranchesExplained.textile index b1d67c1f..e147f1a7 100644 --- a/open-mesh/BranchesExplained.textile +++ b/open-mesh/BranchesExplained.textile @@ -1,12 +1,16 @@ -= Branches Explained =
-{{{ -#!div style="width: 46em; text-align: justify" +h1. Branches Explained + + +<pre> +<code class="div">
The batman project that started with a basic protocol and a single userspace routing daemon, attracted quite some attention over the years which led to many new ideas and concepts meant to improve the project. These ideas often resulted in proof-of-concept "branches" of which some turned out to be impractical and disappeared but others came to stay. As a consequence different names were created to distinguish these concepts as the name "batman" became a broader term for everything around the project. This page aims to shed some light on all these different names to make it easier to understand the differences.
-=== numbers, numbers === + +h3. numbers, numbers +
Whenever Roman numerals (as III or IV) are mentioned they refer to the version of B.A.T.M.A.N.'s routing algorithm and thus describe how the routing information are flooded and how they are handled to make the best routing decision possible.
@@ -16,32 +20,42 @@ Example: batmand 0.2 uses the B.A.T.M.A.N. III routing algorithm.
-=== batmand ===
-The batman userspace daemon has been the first implementation of the B.A.T.M.A.N. routing protocol. In the early stages of the project it allowed us to easily experiment with the design of the protocol but also to be used in real world deployments. It operates on layer 3 (IP layer) and offers everything you would expect from a standard routing daemon. Check our [wiki:UserDocs docs] section if you want to learn more about is capabilities.[[BR]] +h3. batmand + + +The batman userspace daemon has been the first implementation of the B.A.T.M.A.N. routing protocol. In the early stages of the project it allowed us to easily experiment with the design of the protocol but also to be used in real world deployments. It operates on layer 3 (IP layer) and offers everything you would expect from a standard routing daemon. Check our [[UserDocs|docs]] section if you want to learn more about is capabilities. +
At the moment the batman daemon lacks development power (this branch is unmaintained since a while) as most developers moved on to one of the following branches. If you are interested to maintain the code base, feel free to contact us.
-=== BMX === + +h3. BMX +
Initially, the BMX branch was used to implement and test new features and concepts to overcome certain limitations of the routing algorithm. It started on the code base of batmand 0.3 but, over time, developed into a completely different direction, so that a re-integration became impossible. -Today, it is an independent project hosted at http://www.bmx6.net. [[BR]] +Today, it is an independent project hosted at http://www.bmx6.net. + +
-=== batman-adv === +h3. batman-adv +
Early 2007 some developers started experimenting with the idea of routing on layer 2 (Ethernet layer) instead of layer 3. As only little knowledge about routing on this low level was available at that time, a first prototype was developed, operating in userspace in form of a daemon but already using layer 2. To differentiate from the layer 3 routing daemon the suffix "adv" (spoken: advanced) was chosen - the batman-adv userspace daemon was born. It uses the routing algorithm of batman 0.3, but instead of sending UDP packets and manipulating routing tables, it provides a virtual network interface and transparently transports packets on its own.
However, the virtual interface in userspace imposed a significant overhead for low-end wireless access points which led to a re-implementation as a kernel module. The batman-adv userspace daemon has been removed, so today "batman-adv" refers to the kernel module only. Currently, most of the development happens around batman-adv which is part of the official Linux kernel since 2.6.38.
-To understand the implications of routing on layer 2, the [wiki:batman-adv batman-adv page] should be a good starting point. Further documentation is available in our [wiki:UserDocs docs] section. +To understand the implications of routing on layer 2, the [[batman-adv|batman-adv page] should be a good starting point Further documentation is available in our [wikiUserDocs docs]] section. + +
+h3. batctl
-=== batctl ===
As batman-adv operates in kernelland a handy tool to manage the module and debug the network became necessary. The batctl tool was created to fill that gap and, since then, has become a valuable companion of batman-adv.
-}}} +</code></pre>