Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
commit 12774474b29653260e69c7534bde07a247a4a088 Author: Sven Eckelmann sven@narfation.org Date: Tue Sep 17 10:30:59 2019 +0000
doc: batman-adv/TVLV
12774474b29653260e69c7534bde07a247a4a088 batman-adv/TVLV.textile | 112 ++++++++++++++++++++++++------------------------ 1 file changed, 55 insertions(+), 57 deletions(-)
diff --git a/batman-adv/TVLV.textile b/batman-adv/TVLV.textile index 8224f64..3ad074f 100644 --- a/batman-adv/TVLV.textile +++ b/batman-adv/TVLV.textile @@ -87,24 +87,24 @@ Upon registering a handler it is possible to pass a couple of flags to tweak the
Handler register flags:
- * BATADV_TVLV_HANDLER_OGM_CIFNOTFND: If the TVLV type has not been found, call this handler anyway when the OGM parsing has been completed. In this case the length argument will be 0 and the value will be NULL and a flag to indicate this condition will be passed. +* BATADV_TVLV_HANDLER_OGM_CIFNOTFND: If the TVLV type has not been found, call this handler anyway when the OGM parsing has been completed. In this case the length argument will be 0 and the value will be NULL and a flag to indicate this condition will be passed.
Flags passed to the handler by the TVLV API:
- * BATADV_TVLV_HANDLER_OGM_CIFNOTFND: Signals the handler whether the TVLV container has been found or whether the call was invoked due to the BATADV_TVLV_HANDLER_OGM_CIFNOTFND flag. +* BATADV_TVLV_HANDLER_OGM_CIFNOTFND: Signals the handler whether the TVLV container has been found or whether the call was invoked due to the BATADV_TVLV_HANDLER_OGM_CIFNOTFND flag.
h2. TVLV definitions
h3. Gateway announcement
- * tvlv type: 0x01 - * function: Each batman-adv gateway server announces it's available internet connection speed, so that batman-adv gateway clients can select their preferable server. - * purpose: Every node keeps a list of batman-adv gateways in the mesh to later the preferred gateway. - * length: 8 byte gateway bandwidth information - * Fixed TVLV fields: - ** gateway bandwidth down: announced gateway download bandwidth in MBit/s/10 (4Bytes) - ** gateway bandwidth up: announced gateway upload bandwidth in MBit/s/10 (4Bytes) - * definition: +* tvlv type: 0x01 +* function: Each batman-adv gateway server announces it's available internet connection speed, so that batman-adv gateway clients can select their preferable server. +* purpose: Every node keeps a list of batman-adv gateways in the mesh to later the preferred gateway. +* length: 8 byte gateway bandwidth information +* Fixed TVLV fields: +** gateway bandwidth down: announced gateway download bandwidth in MBit/s/10 (4Bytes) +** gateway bandwidth up: announced gateway upload bandwidth in MBit/s/10 (4Bytes) +* definition: <pre> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 @@ -119,11 +119,11 @@ h3. Gateway announcement
h3. DAT (Distributed ARP Table)
- * tvlv type: 0x02 - * function: D.A.T. is a DHT based global ARP cache. - * purpose: the DAT component will only query other DAT-enabled nodes - * length: 0 (This is a boolean telling that this node caches ARP requests / replies for the mesh.) - * definition: +* tvlv type: 0x02 +* function: D.A.T. is a DHT based global ARP cache. +* purpose: the DAT component will only query other DAT-enabled nodes +* length: 0 (This is a boolean telling that this node caches ARP requests / replies for the mesh.) +* definition: <pre> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 @@ -135,11 +135,11 @@ h3. DAT (Distributed ARP Table)
h3. Network coding (also known as catwoman)
- * tvlv type: 0x03 - * function: Save packet transmissions & air time by combining packets. - * purpose: Network coding only works with other network coding enabled nodes. - * length: 0 byte (This is a boolean telling that this node knows how to decode nc-packets.) - * definition: +* tvlv type: 0x03 +* function: Save packet transmissions & air time by combining packets. +* purpose: Network coding only works with other network coding enabled nodes. +* length: 0 byte (This is a boolean telling that this node knows how to decode nc-packets.) +* definition: <pre> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 @@ -150,28 +150,28 @@ h3. Network coding (also known as catwoman)
h3. Translation table messages
- * tvlv type: 0x04 - * function: Local non-mesh clients advertisement mechanism. This particular component needs some parameters that are propagated by the OGM. - * purpose: Exchange of translation table state information. - * length: variable. It is equal to the size of the fixed TVLV field + the size of the TT VLAN headers + the size of the TT client change entries. - * Fixed TVLV fields: - ** flags: translation table flags (1Byte) - ** ttvn: translation table version number (1Byte) - ** num_vlan: number of TT VLAN data structures inside the tvlv container (2Bytes) - * Each TT VLAN data structure contains: - ** crc: crc32 checksum of the local translation (sub-)table containing entries belonging to this VLAN only (4Bytes) - ** vid: the identifier of this VLAN (2Bytes) - ** reserved: not used. Defined for alignment purposes (2Bytes) - * Each TT client change (one per announced client) contains: - ** flags: flags associated with this client - ** reserved: not used. Defined for alignment purposes (3Bytes) - ** addr: mac address of the announced client - ** vid: identifier of the VLAN where this client is connected to - * layout: +* tvlv type: 0x04 +* function: Local non-mesh clients advertisement mechanism. This particular component needs some parameters that are propagated by the OGM. +* purpose: Exchange of translation table state information. +* length: variable. It is equal to the size of the fixed TVLV field + the size of the TT VLAN headers + the size of the TT client change entries. +* Fixed TVLV fields: +** flags: translation table flags (1Byte) +** ttvn: translation table version number (1Byte) +** num_vlan: number of TT VLAN data structures inside the tvlv container (2Bytes) +* Each TT VLAN data structure contains: +** crc: crc32 checksum of the local translation (sub-)table containing entries belonging to this VLAN only (4Bytes) +** vid: the identifier of this VLAN (2Bytes) +** reserved: not used. Defined for alignment purposes (2Bytes) +* Each TT client change (one per announced client) contains: +** flags: flags associated with this client +** reserved: not used. Defined for alignment purposes (3Bytes) +** addr: mac address of the announced client +** vid: identifier of the VLAN where this client is connected to +* layout: <pre> <Fixed TVLV fields><TT VLAN header1>..<TT VLAN headerN><TT client entry1>..<TT client entryM> </pre> - * definition: +** definition: <pre> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 @@ -218,15 +218,14 @@ h3. Translation table messages
h3. Roaming Advertisement message
- * tvlv type: 0x05 - * function: Reduce a non-mesh client's packet loss when it roams from one AP to the next. - * purpose: Inform the old AP about the new location of the non-mesh client. - * length: 8 bytes non-mesh client information - * Fixed TVLV fields: - ** client mac address: mac address of the roaming non-mesh client (6 bytes) - ** vid: vlan tag id of the roaming non-mesh client (2 bytes) - - * definition: +* tvlv type: 0x05 +* function: Reduce a non-mesh client's packet loss when it roams from one AP to the next. +* purpose: Inform the old AP about the new location of the non-mesh client. +* length: 8 bytes non-mesh client information +* Fixed TVLV fields: +** client mac address: mac address of the roaming non-mesh client (6 bytes) +** vid: vlan tag id of the roaming non-mesh client (2 bytes) +* definition: <pre> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 @@ -241,15 +240,14 @@ h3. Roaming Advertisement message
h3. Multicast capability
- * tvlv type: 0x06 - * function: Reduces the airtime consumed by multicast packets, e.g. by using multicast awareness to decide whether a frame can be sent via unicast or dropped. - * purpose: Lets other nodes know whether an originator is capable of announcing its multicast listeners via the translation table. The flags further inform other nodes about whether an originator needs to receive all multicast traffic of a certain type. - * length: 4 bytes (1 byte flag information) - * Fixed TVLV fields: - ** flags: multicast flags announced by the orig node (1 byte), see [[Multicast-optimizations-flags|the multicast flags page]] for details - ** reserved: not used. Defined for alignment purposes (3 bytes) - - * definition: +* tvlv type: 0x06 +* function: Reduces the airtime consumed by multicast packets, e.g. by using multicast awareness to decide whether a frame can be sent via unicast or dropped. +* purpose: Lets other nodes know whether an originator is capable of announcing its multicast listeners via the translation table. The flags further inform other nodes about whether an originator needs to receive all multicast traffic of a certain type. +* length: 4 bytes (1 byte flag information) +* Fixed TVLV fields: +** flags: multicast flags announced by the orig node (1 byte), see [[Multicast-optimizations-flags|the multicast flags page]] for details +** reserved: not used. Defined for alignment purposes (3 bytes) +* definition: <pre> 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2