On Tuesday, April 23, 2013 21:39:57 Marek Lindner wrote:
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
bat_iv_ogm.c | 38 ++-- compat.c | 8 + compat.h | 1 + main.c | 620 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ main.h | 35 ++++ packet.h | 67 +++++++ routing.c | 48 +++++ routing.h | 2 + types.h | 73 +++++++ 9 files changed, 875 insertions(+), 17 deletions(-)
Applied in revision 0b6aa0d.
Thanks, Marek