diff options
author | Antonio Quartulli <antonio@open-mesh.com> | 2016-01-16 09:40:12 +0100 |
---|---|---|
committer | Antonio Quartulli <a@unstable.cc> | 2016-02-29 09:05:31 +0100 |
commit | 0da0035942d47766c32843143fb5dba7a29cb48c (patch) | |
tree | 53a71e5f8e319fa78cdeeea770224816b36a672a /net/batman-adv/bat_v_ogm.h | |
parent | batman-adv: ELP - adding sysfs parameter for elp interval (diff) | |
download | linux-0da0035942d47766c32843143fb5dba7a29cb48c.tar.xz linux-0da0035942d47766c32843143fb5dba7a29cb48c.zip |
batman-adv: OGMv2 - add basic infrastructure
This is the initial implementation of the new OGM protocol
(version 2). It has been designed to work on top of the
newly added ELP.
In the previous version the OGM protocol was used to both
measure link qualities and flood the network with the metric
information. In this version the protocol is in charge of
the latter task only, leaving the former to ELP.
This means being able to decouple the interval used by the
neighbor discovery from the OGM broadcasting, which revealed
to be costly in dense networks and needed to be relaxed so
leading to a less responsive routing protocol.
Signed-off-by: Antonio Quartulli <antonio@open-mesh.com>
Signed-off-by: Marek Lindner <mareklindner@neomailbox.ch>
Diffstat (limited to 'net/batman-adv/bat_v_ogm.h')
-rw-r--r-- | net/batman-adv/bat_v_ogm.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/net/batman-adv/bat_v_ogm.h b/net/batman-adv/bat_v_ogm.h new file mode 100644 index 000000000000..d9f178cedcd2 --- /dev/null +++ b/net/batman-adv/bat_v_ogm.h @@ -0,0 +1,32 @@ +/* Copyright (C) 2013-2016 B.A.T.M.A.N. contributors: + * + * Antonio Quartulli + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 of the GNU General Public + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _BATMAN_ADV_BATADV_V_OGM_H_ +#define _BATMAN_ADV_BATADV_V_OGM_H_ + +struct batadv_hard_iface; +struct batadv_priv; +struct sk_buff; + +int batadv_v_ogm_init(struct batadv_priv *bat_priv); +void batadv_v_ogm_free(struct batadv_priv *bat_priv); +int batadv_v_ogm_iface_enable(struct batadv_hard_iface *hard_iface); +void batadv_v_ogm_primary_iface_set(struct batadv_hard_iface *primary_iface); +int batadv_v_ogm_packet_recv(struct sk_buff *skb, + struct batadv_hard_iface *if_incoming); + +#endif /* _BATMAN_ADV_BATADV_V_OGM_H_ */ |