Wikipedia
The Better Approach To Mobile Adhoc Networking (B.A.T.M.A.N.) is a routing protocol for multi-hop ad hoc networks which is under development by the " Freifunk" community and intended to replace OLSR. It can be used for mesh networks but this is not the only potential use.
B.A.T.M.A.N.'s crucial point is the decentralization of the knowledge about the best route through the network — no single node has all the data. This technique eliminates the need to spread information concerning network changes to every node in the network. The individual node only saves information about the "direction" it received data from and sends its data accordingly. The data gets passed on from node to node and packets get individual, dynamically created routes. A network of collective intelligence is created.
In early 2007, the B.A.T.M.A.N. developers started experimenting with the idea of routing on layer 2 (Ethernet layer) instead of layer 3. To differentiate from the layer 3 routing daemon, the suffix "adv" (for: advanced) was chosen. Instead of sending UDP packets and manipulating routing tables, it provides a virtual network interface and transparently transports packets on its own. The batman-adv kernel module has been part of the official Linux kernel since 2.6.38.