[Olsr-dev] OLSRv2 packetbb parser

Henning Rogge (spam-protected)
Thu Sep 4 21:44:23 CEST 2008


Hi,

I'm working on the concept of the packetbb parser for the next
generation of Olsrd at the moment and would like to hear your oppinion
if I missed something important.

PacketBB is a new standardized format that combines binary storage (no
xml/ect.), address compression (great for IPv6 !) and easy
extensibility.
For a description of packetbb see this drafts:
   http://tools.ietf.org/wg/manet/draft-ietf-manet-packetbb/
   http://tools.ietf.org/html/draft-ietf-manet-timetlv-06

Similar to OLSR packetbb contains a packetheader (with optional data
fields, called TLVs) and a list of messages (each with optional TLVs
and address fields, which can contain TLVs for each address too). Each
message and each data field is identified by a 1 byte id and an
optional 1 byte "extension-id" (complete-id = id*256 + extension-id).

(TLV = time-length-value)

The new parser will work similar to a SAX xml parser, instead of
writing the content of a packetbb message/packet into an intermediate
format, it will use callbacks to allow the interpreter reading the
data directly.

Functions in the parser for reading messages/packets:
1) register a callback for a packet TLV id
  (callback should be allowed to modifiy the rest of the package
binary to allow encryption of a packet)

2) register a callback for a message id

3) register a callback for a TLV id in a certain message
  (callback should be allowed to modify the rest of a message binary
to allow encryption of a message)

4) register a callback for addresses in a message id

5) register a callback for a TLV id used in an address of a certain message

Functions in the parser to write messages/packets:
6) register a callback for an outgoing package
   (useful for adding TLVs to an outgoing message)

7) register a callback for a packet postprocessor
   (for encrypting packets ?)

8) create a new message

9) register a callback for an outgoing message id
   (useful for adding TLVs to messages of other Olsrd parts)

7) add a TLV to a message

8) register a callback for a message postprocessor
   (for message encryption ?)

9) add an address to a message

10) register a callback for an outgoing address in a message
  (useful for adding TLVs to an address in a message of other Olsrd parts)

11) add a TLV to an address


Thoughts ? Comments ? Ideas ?

Henning

-- 
"Wo kämen wir hin, wenn alle sagten, wo kämem wir hin, und niemand
ginge, um einmal zu schauen, wohin man käme, wenn man ginge." (Kurt
Marti)




More information about the Olsr-dev mailing list