batman-adv: ELP - adding basic infrastructure
authorLinus Luessing <linus.luessing@web.de>
Sat, 16 Jan 2016 08:40:09 +0000 (16:40 +0800)
committerAntonio Quartulli <a@unstable.cc>
Mon, 29 Feb 2016 08:05:29 +0000 (16:05 +0800)
commitd6f94d91f766b4205e5b0aa4b11f96271c793f6d
tree8055ce7a0337ab262af4522f9a20ab11b4769239
parent0744ff8fa8fad7aae669b73fd78f3efe1d8e31ca
batman-adv: ELP - adding basic infrastructure

The B.A.T.M.A.N. protocol originally only used a single
message type (called OGM) to determine the link qualities to
the direct neighbors and spreading these link quality
information through the whole mesh. This procedure is
summarized on the BATMAN concept page and explained in
details in the RFC draft published in 2008.

This approach was chosen for its simplicity during the
protocol design phase and the implementation. However, it
also bears some drawbacks:

 *  Wireless interfaces usually come with some packet loss,
    therefore a higher broadcast rate is desirable to allow
    a fast reaction on flaky connections.
    Other interfaces of the same host might be connected to
    Ethernet LANs / VPNs / etc which rarely exhibit packet
    loss would benefit from a lower broadcast rate to reduce
    overhead.
 *  It generally is more desirable to detect local link
    quality changes at a faster rate than propagating all
    these changes through the entire mesh (the far end of
    the mesh does not need to care about local link quality
    changes that much). Other optimizations strategies, like
    reducing overhead, might be possible if OGMs weren't
    used for all tasks in the mesh at the same time.

As a result detecting local link qualities shall be handled
by an independent message type, ELP, whereas the OGM message
type remains responsible for flooding the mesh with these
link quality information and determining the overall path
transmit qualities.

Developed by Linus during a 6 months trainee study period in
Ascom (Switzerland) AG.

Signed-off-by: Linus Luessing <linus.luessing@web.de>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
net/batman-adv/Kconfig
net/batman-adv/Makefile
net/batman-adv/bat_algo.h
net/batman-adv/bat_v.c [new file with mode: 0644]
net/batman-adv/bat_v_elp.c [new file with mode: 0644]
net/batman-adv/bat_v_elp.h [new file with mode: 0644]
net/batman-adv/main.c
net/batman-adv/packet.h
net/batman-adv/types.h