Routing in wireless mesh networks is made difficult by the fact that such networks can be noisy and, therefore, have high rates of interference and packet loss. BATMAN takes advantage of these “loss” properties by doing statistical analysis on loss information and propagation speed. It does not depend on information from other nodes.
Lost protocol packets due to unreliable links are not countered with redundancy, but are detected and utilized for better routing decisions.
The number of OGMs received from a given Originator via each link-local neighbor is used to estimate the quality of a (single-hop or multi-hop) route. In order to be able to find the best route to a certain Originator, B.A.T.M.A.N counts the originator-messages received and logs which link-local neighbor relayed the message. Using this information B.A.T.M.A.N. maintains a table with the best link-local router towards every Originator on the network.
The number of sequence numbers recorded in a sliding window is the metric for the quality of detected links and paths.
- There are no routing loops in the network.
- There are no redundant OGM messages from the same source.
- There are only bi-directional links in a route.
- Every node periodically broadcasts an originator message to its immediate neighbors.
- All OGMs that have entered the network will leave the network after one of the following conditions: every node has received at least one and re-broadcasting stops; they have been lost due to packet loss; their TTL value has expired.
- A sequence number is used to distinguish between new Originator message packets and duplicates to ensure that every OGM gets counted at most once.
- When to drop a BATMAN packet:
- If the OGM version number is not equal to the internal version number, the packet MUST be dropped.
- If the sender address of the OGM is equal to the address of one of the local interfaces, the packet MUST be dropped.
- If the sender address of the OGM is equal to the broadcast address of one of the BATMAN interfaces the packet MUST be dropped.
- If the unidirectional flag is set the message MUST be dropped.
- When rebroadcasting an OGM:
- TTL MUST be decremented by one.
- The is-direct-link bit MUST be set to one if the OGM was received from a direct-link neighbor AND if it is re-broadcasted over the link via which it was received.
- The unidirectional flag must be set if the OGM to be re-broadcasted was received via a unidirectional link.
- Security: Overflow of routing entries as an attack can be stopped by recognizing when the number of routing entries grows large and deleting entries with low Originator counts.
- Security: Sequence number overflow should be accounted for.