diff options
author | Marek Lindner <lindner_marek@yahoo.de> | 2013-04-23 15:39:57 +0200 |
---|---|---|
committer | Antonio Quartulli <antonio@meshcoding.com> | 2013-10-09 21:22:26 +0200 |
commit | ef26157747d42254453f6b3ac2bd8bd3c53339c3 (patch) | |
tree | ac9f366de417ca89b225143eb176b9618376f5eb /net/batman-adv/routing.h | |
parent | batman-adv: switch to a new packet compatibility version (diff) | |
download | linux-ef26157747d42254453f6b3ac2bd8bd3c53339c3.tar.xz linux-ef26157747d42254453f6b3ac2bd8bd3c53339c3.zip |
batman-adv: tvlv - basic infrastructure
The goal is to provide the infrastructure for sending, receiving and
parsing information 'containers' while preserving backward
compatibility. TVLV (based on the commonly known Type Length Value
technique) was chosen as the format for those containers. Even if a
node does not know the tvlv type of a certain container it can simply
skip the current container and proceed with the next. Past experience
has shown features evolve over time, so a 'version' field was added
right from the start to allow differentiating between feature
variants - hence the name: T(ype) V(ersion) L(ength) V(alue).
This patch introduces the basic TVLV infrastructure:
* register / unregister tvlv containers to be sent with each OGM
(on primary interfaces only)
* register / unregister callback handlers to be called upon
finding the corresponding tvlv type in a tvlv buffer
* unicast tvlv send / receive API calls
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Spyros Gasteratos <morfeas3000@gmail.com>
Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
Diffstat (limited to 'net/batman-adv/routing.h')
-rw-r--r-- | net/batman-adv/routing.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/batman-adv/routing.h b/net/batman-adv/routing.h index 72a29bde2010..0a7983b25395 100644 --- a/net/batman-adv/routing.h +++ b/net/batman-adv/routing.h @@ -40,6 +40,8 @@ int batadv_recv_tt_query(struct sk_buff *skb, struct batadv_hard_iface *recv_if); int batadv_recv_roam_adv(struct sk_buff *skb, struct batadv_hard_iface *recv_if); +int batadv_recv_unicast_tvlv(struct sk_buff *skb, + struct batadv_hard_iface *recv_if); struct batadv_neigh_node * batadv_find_router(struct batadv_priv *bat_priv, struct batadv_orig_node *orig_node, |