linux/net/batman-adv
Linus Luessing d6f94d91f7 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>
2016-02-29 16:05:29 +08:00
..
bat_algo.h batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
bat_iv_ogm.c batman-adv: Rename batadv_hardif_neigh *_free_ref function to *_put 2016-02-23 13:48:26 +08:00
bat_v_elp.c batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
bat_v_elp.h batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
bat_v.c batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
bitarray.c batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
bitarray.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
bridge_loop_avoidance.c batman-adv: Rename batadv_claim *_free_ref function to *_put 2016-02-23 13:48:27 +08:00
bridge_loop_avoidance.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
debugfs.c batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
debugfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
distributed-arp-table.c batman-adv: Rename batadv_dat_entry *_free_ref function to *_put 2016-02-23 13:48:28 +08:00
distributed-arp-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
fragmentation.c batman-adv: Rename batadv_neigh_node *_free_ref function to *_put 2016-02-23 13:48:25 +08:00
fragmentation.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_client.c batman-adv: Rename batadv_gw_node *_free_ref function to *_put 2016-02-23 13:49:06 +08:00
gateway_client.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_common.c batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
gateway_common.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
hard-interface.c batman-adv: Rename batadv_hardif *_free_ref function to *_put 2016-02-23 13:48:24 +08:00
hard-interface.h batman-adv: Rename batadv_hardif *_free_ref function to *_put 2016-02-23 13:48:24 +08:00
hash.c batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
hash.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
icmp_socket.c batman-adv: Rename batadv_neigh_node *_free_ref function to *_put 2016-02-23 13:48:25 +08:00
icmp_socket.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
Kconfig batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
main.c batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
main.h batman-adv: remove unused BATADV_BONDING_TQ_THRESHOLD constant 2016-02-23 13:48:23 +08:00
Makefile batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
multicast.c batman-adv: Convert batadv_orig_node to kref 2016-02-10 23:24:06 +08:00
multicast.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
network-coding.c batman-adv: Rename batadv_nc_path *_free_ref function to *_put 2016-02-23 13:49:11 +08:00
network-coding.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
originator.c batman-adv: Rename batadv_orig_node_vlan *_free_ref function to *_put 2016-02-23 13:50:58 +08:00
originator.h batman-adv: Rename batadv_orig_node_vlan *_free_ref function to *_put 2016-02-23 13:50:58 +08:00
packet.h batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00
routing.c batman-adv: Rename batadv_orig_ifinfo *_free_ref function to *_put 2016-02-23 13:48:26 +08:00
routing.h batman-adv: add seqno maximum age and protection start flag parameters 2016-02-10 23:23:57 +08:00
send.c batman-adv: Rename batadv_neigh_node *_free_ref function to *_put 2016-02-23 13:48:25 +08:00
send.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
soft-interface.c batman-adv: Rename batadv_softif_vlan *_free_ref function to *_put 2016-02-23 13:49:10 +08:00
soft-interface.h batman-adv: Rename batadv_softif_vlan *_free_ref function to *_put 2016-02-23 13:49:10 +08:00
sysfs.c batman-adv: Add hard_iface specific sysfs wrapper macros for UINT 2016-02-29 16:05:29 +08:00
sysfs.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
translation-table.c batman-adv: Rename batadv_tt_orig_list_entry *_free_ref function to *_put 2016-02-23 13:51:01 +08:00
translation-table.h batman-adv: update copyright years for 2016 2016-02-02 12:55:10 +08:00
types.h batman-adv: ELP - adding basic infrastructure 2016-02-29 16:05:29 +08:00