The annotated tag, v5.4-rc1 has been created
at 24cb7d7282e06bdeced7f657dff650d3e02f5716 (tag)
tagging 54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c (commit)
replaces v5.3
tagged by Linus Torvalds
on Mon Sep 30 10:35:53 2019 -0700
- Shortlog ------------------------------------------------------------
Linux 5.4-rc1
-----BEGIN PGP SIGNATURE-----
iQFSBAABCAA8FiEEq68RxlopcLEwq+PEeb4+QwBBGIYFAl2SPPkeHHRvcnZhbGRz
QGxpbnV4LWZvdW5kYXRpb24ub3JnAAoJEHm+PkMAQRiG3dcH/2iCaNvD0Ify+Ke/
d0Ncf7KhBejfW1pjGjfpfbAQkdaY/gSLsWPJmQ2HT00SmnTJ4y3zvr/HmEE8mIBA
fMzY4TFHMRNNEOrCugoNxzjU5ycgIMq5doontDdHeS7Pfa8mgDLLwH/dzoORA0+b
T1ZZT3yDsQ92/jW97LEhTv7UcKqgBdVT5PauU/pe6LHpqmzn8XwdiKaNTM1uY8vw
U9rIrYnfxCuLfxyK7xUp6bRUlqluZrY4U+pqEnGOVlFYX1xMjjPIE9sDHJ/z5WvY
JSH4/aOqVxRII2oU0+uITsO658tS912iUsa8++F6Z5R1gZSqQD1FqrvW7Z0S58Ay
vjXIX3Q=
=epsM
-----END PGP SIGNATURE-----
David S. Miller (3):
Merge git://git.kernel.org/.../netdev/net
Merge git://git.kernel.org/.../netdev/net
Merge git://git.kernel.org/.../netdev/net
Krzysztof Kozlowski (1):
net: Fix Kconfig indentation
Linus Lüssing (2):
batman-adv: BATMAN_V: introduce per hard-iface OGMv2 queues
batman-adv: BATMAN_V: aggregate OGMv2 packets
Simon Wunderlich (1):
batman-adv: Start new development cycle
Sven Eckelmann (1):
batman-adv: Replace usage of strlcpy with strscpy
-----------------------------------------------------------------------
--
linux integration
Repository : ssh://git@open-mesh.org/batman-adv
On branch : master
>---------------------------------------------------------------
commit 7d98ea71c6aa789fe2be6b8d1f01f62d2f4ddf32
Author: Krzysztof Kozlowski <krzk(a)kernel.org>
Date: Mon Sep 23 17:52:42 2019 +0200
batman-adv: Fix Kconfig indentation
Adjust indentation from spaces to tab (+optional two spaces) as in
coding style with command like:
$ sed -e 's/^ /\t/' -i */Kconfig
Signed-off-by: Krzysztof Kozlowski <krzk(a)kernel.org>
Signed-off-by: David S. Miller <davem(a)davemloft.net>
Signed-off-by: Sven Eckelmann <sven(a)narfation.org>
>---------------------------------------------------------------
7d98ea71c6aa789fe2be6b8d1f01f62d2f4ddf32
net/batman-adv/Kconfig | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/net/batman-adv/Kconfig b/net/batman-adv/Kconfig
index a3d188df..d5028af7 100644
--- a/net/batman-adv/Kconfig
+++ b/net/batman-adv/Kconfig
@@ -12,11 +12,11 @@ config BATMAN_ADV
depends on NET
select LIBCRC32C
help
- B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
- a routing protocol for multi-hop ad-hoc mesh networks. The
- networks may be wired or wireless. See
- https://www.open-mesh.org/ for more information and user space
- tools.
+ B.A.T.M.A.N. (better approach to mobile ad-hoc networking) is
+ a routing protocol for multi-hop ad-hoc mesh networks. The
+ networks may be wired or wireless. See
+ https://www.open-mesh.org/ for more information and user space
+ tools.
config BATMAN_ADV_BATMAN_V
bool "B.A.T.M.A.N. V protocol"
Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
>---------------------------------------------------------------
commit d1e27d0305c8de7b8ccb0720b961ef2b806b55f5
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Sep 17 10:32:18 2019 +0000
doc: open-mesh/Gsoc2012-ideas
>---------------------------------------------------------------
d1e27d0305c8de7b8ccb0720b961ef2b806b55f5
open-mesh/Gsoc2012-ideas.textile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/open-mesh/Gsoc2012-ideas.textile b/open-mesh/Gsoc2012-ideas.textile
index 436072c..69bcfc1 100644
--- a/open-mesh/Gsoc2012-ideas.textile
+++ b/open-mesh/Gsoc2012-ideas.textile
@@ -5,5 +5,5 @@ Feel free to pick one of them and contact us on the mailing-list to discuss abou
last years:
- * [[Gsoc2011-ideas]]
- * [[Gsoc2010-ideas]]
\ No newline at end of file
+* [[Gsoc2011-ideas]]
+* [[Gsoc2010-ideas]]
\ No newline at end of file
Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
>---------------------------------------------------------------
commit 025258c75d2a63efa2f1c100fb7ceae50cf3938f
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Sep 17 10:31:56 2019 +0000
doc: batman-adv/Understand-your-batman-adv-network
>---------------------------------------------------------------
025258c75d2a63efa2f1c100fb7ceae50cf3938f
batman-adv/Understand-your-batman-adv-network.textile | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/batman-adv/Understand-your-batman-adv-network.textile b/batman-adv/Understand-your-batman-adv-network.textile
index 617d7fe..bb5becf 100644
--- a/batman-adv/Understand-your-batman-adv-network.textile
+++ b/batman-adv/Understand-your-batman-adv-network.textile
@@ -250,8 +250,8 @@ This table is part of the [[bridge-loop-avoidance|bridge loop avoidance]] code a
Note:
- * Clients claimed by the node itself are marked with an '[x]'.
- * If no VLAN was found a VID of '-1' is printed.
+* Clients claimed by the node itself are marked with an '[x]'.
+* If no VLAN was found a VID of '-1' is printed.
<pre>
[B.A.T.M.A.N. adv 2019.1, MainIF/MAC: primary0/02:ba:de:af:fe:01 (bat0/68:72:51:34:a4:82 BATMAN_IV), group id: 0xe4e5]
@@ -275,9 +275,9 @@ This table is part of the [[bridge-loop-avoidance|bridge loop avoidance]] code a
Note:
- * the own originator address is not printed, only other backbone gateways
- * If no VLAN was found a VID of '-1' is printed.
- * the last seen time should be between 0 and 10 seconds if there is no packet lost
+* the own originator address is not printed, only other backbone gateways
+* If no VLAN was found a VID of '-1' is printed.
+* the last seen time should be between 0 and 10 seconds if there is no packet lost
<pre>
Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
>---------------------------------------------------------------
commit 12774474b29653260e69c7534bde07a247a4a088
Author: Sven Eckelmann <sven(a)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
Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
>---------------------------------------------------------------
commit 013a64e7d98f6fd391e7b7d12a2288b73ab5fc22
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Sep 17 10:29:37 2019 +0000
doc: batman-adv/TT-Flags
>---------------------------------------------------------------
013a64e7d98f6fd391e7b7d12a2288b73ab5fc22
batman-adv/TT-Flags.textile | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/batman-adv/TT-Flags.textile b/batman-adv/TT-Flags.textile
index 27ebca1..ce4c9f4 100644
--- a/batman-adv/TT-Flags.textile
+++ b/batman-adv/TT-Flags.textile
@@ -6,9 +6,9 @@ h2. Flags overview
This section describes the flags used in the TT code, what they mean and where they are used. There are 3 possible locations where the flags field is used:
- * OGM: there is a flag field within each of the tt_change structs which are sent along with the OGM frames.
- * tt_global: these structs are stored in the global hash table and represent the mapping which originator hosts which client.
- * tt_local: these structs are stored in the local hash table and represent the the clients which the own node hosts.
+* OGM: there is a flag field within each of the tt_change structs which are sent along with the OGM frames.
+* tt_global: these structs are stored in the global hash table and represent the mapping which originator hosts which client.
+* tt_local: these structs are stored in the local hash table and represent the the clients which the own node hosts.
|_. Name |_. used in |_. Description |
| TT_CLIENT_DEL | OGM | The TT_CLIENT_DEL flag is used in the OGM tt_change entries to distinguish whether the entry should be added (no DEL flag set) or deleted (DEL flag set).
@@ -53,17 +53,17 @@ Depending on the order of arrival of the OGMs at node E, we have different behav
_Example1: order of arrival: DEL from A, ADD from C, DEL from B, ADD from D_
- * DEL from A: A is removed from the tt_global originator list for X, only B remains.
- * ADD from C: C is added to the tt_global originator list for X, now containing B and C
- * DEL from B: B is removed from the tt_global originator list for X, only C remains.
- * ADD from D: D is added to the tt_global originator list for X, now containing C and D
+* DEL from A: A is removed from the tt_global originator list for X, only B remains.
+* ADD from C: C is added to the tt_global originator list for X, now containing B and C
+* DEL from B: B is removed from the tt_global originator list for X, only C remains.
+* ADD from D: D is added to the tt_global originator list for X, now containing C and D
_Example2: order of arrival: DEL from A, DEL from B, ADD from C, ADD from D_
- * DEL from A: A is removed from the tt_global originator list for X, only B remains.
- * DEL from B: B is NOT removed from the tt_global originator list for X, it remains but TT_CLIENT_ROAM flag is set for this tt_global entry, and the timer is started.
- * ADD from C: C is added to the tt_global originator list for X, B is deleted, the TT_CLIENT_ROAM flag is cleared and the timer is stopped. The list now contains C.
- * ADD from D: D is added to the tt_global originator list for X, now containing C and D
+* DEL from A: A is removed from the tt_global originator list for X, only B remains.
+* DEL from B: B is NOT removed from the tt_global originator list for X, it remains but TT_CLIENT_ROAM flag is set for this tt_global entry, and the timer is started.
+* ADD from C: C is added to the tt_global originator list for X, B is deleted, the TT_CLIENT_ROAM flag is cleared and the timer is stopped. The list now contains C.
+* ADD from D: D is added to the tt_global originator list for X, now containing C and D
h3. TT_CLIENT_WIFI
Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
>---------------------------------------------------------------
commit c6762f87d67a877e098a5e2cac54c20cf2af8b71
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Sep 17 10:29:16 2019 +0000
doc: batman-adv/RIP
>---------------------------------------------------------------
c6762f87d67a877e098a5e2cac54c20cf2af8b71
batman-adv/RIP.textile | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/batman-adv/RIP.textile b/batman-adv/RIP.textile
index 71e010f..73dd648 100644
--- a/batman-adv/RIP.textile
+++ b/batman-adv/RIP.textile
@@ -34,21 +34,21 @@ h2. Discussion
From the algorithm sketch, we can see:
- * we can promptly react to link outages - as soon as ELP (or some other underlying mechanisms) detects it.
- * the death notes are broadcasted only through the affected part of the mesh. Outside nodes use Unicast to reach the Originator - this saves bandwidth
- * we can keep long originator interval and still react to changes fast - at least negative ones.
+* we can promptly react to link outages - as soon as ELP (or some other underlying mechanisms) detects it.
+* the death notes are broadcasted only through the affected part of the mesh. Outside nodes use Unicast to reach the Originator - this saves bandwidth
+* we can keep long originator interval and still react to changes fast - at least negative ones.
- * Remark from me/Linus: Deleting the routes (meaning forgetting about the last seqno+metric?) via the death notes can cause routing loops, if a late OGM arrives at N3 via yet another alternative path, I think. Alternative, safer suggestion: Mark entry as "undead", meaning to decrease the OGM_MAX_ORIG_DIFF for this specific entry to 1 until it gets updated.
- * The name is awesome, fitting and easy to remember. However, there actually exists a prominent distance vector routing protocol with the same name. Should we change it, for the same reason we changed NDP to ELP? (if yes, a suggestion: BATSIG - BATMAN Sequence number Increment Generator; in reference to the bat signal which Gordon might use after looking at a dead, mutilated body)
+* Remark from me/Linus: Deleting the routes (meaning forgetting about the last seqno+metric?) via the death notes can cause routing loops, if a late OGM arrives at N3 via yet another alternative path, I think. Alternative, safer suggestion: Mark entry as "undead", meaning to decrease the OGM_MAX_ORIG_DIFF for this specific entry to 1 until it gets updated.
+* The name is awesome, fitting and easy to remember. However, there actually exists a prominent distance vector routing protocol with the same name. Should we change it, for the same reason we changed NDP to ELP? (if yes, a suggestion: BATSIG - BATMAN Sequence number Increment Generator; in reference to the bat signal which Gordon might use after looking at a dead, mutilated body)
h3. Death Note packet format
Death Notes and OGM Update Requests may share a packet type and be distinguished by a flag. They basicly contain:
- * the affected Originator Address (either used as subject of the death note or final destination)
- * TTL
- * (maybe?) last valid OGM
+* the affected Originator Address (either used as subject of the death note or final destination)
+* TTL
+* (maybe?) last valid OGM
h3. Optimization Ideas
- * we may also send the last valid OGM from a node which is not affected by a death note - but only after making sure that the connection to the destination still works (e.g. by using a ping). This would require some more state to be saved.
\ No newline at end of file
+* we may also send the last valid OGM from a node which is not affected by a death note - but only after making sure that the connection to the destination still works (e.g. by using a ping). This would require some more state to be saved.
\ No newline at end of file
Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
>---------------------------------------------------------------
commit 5f6dd8ebaa54e23a7024619928056fcee312ad59
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Sep 17 10:28:36 2019 +0000
doc: batman-adv/OGMv2
>---------------------------------------------------------------
5f6dd8ebaa54e23a7024619928056fcee312ad59
batman-adv/OGMv2.textile | 53 ++++++++++++++++++++++++------------------------
1 file changed, 26 insertions(+), 27 deletions(-)
diff --git a/batman-adv/OGMv2.textile b/batman-adv/OGMv2.textile
index ed0b3fa..649ed56 100644
--- a/batman-adv/OGMv2.textile
+++ b/batman-adv/OGMv2.textile
@@ -35,15 +35,15 @@ Each node periodically (OGM interval) generates a single OGM which is broadcaste
+The Originator Message 2 (OGMv2) Format:+
- * Packet type: Initialize this field with the ELP packet type.
- * Version: Set your internal compatibility version.
- * TTL: Initialize with BATADV_TTL
- * Flags: not used
- * Sequence number: On first broadcast set the sequence number to an arbitrary value and increment the field by one for each following OGMv2.
- * Originator Address: Set this field to the primary MAC address of this B.A.T.M.A.N. node.
- * TVLV length: Length of the TLVL data appended to the OGM
- * Throughput: Throughput metric value in 100 kbit/s. Initialize with BATADV_THROUGHPUT_MAX_VALUE
- * TVLV data: Appended TVLV data for the originator. See [[TVLV]] for a detailed description.
+* Packet type: Initialize this field with the ELP packet type.
+* Version: Set your internal compatibility version.
+* TTL: Initialize with BATADV_TTL
+* Flags: not used
+* Sequence number: On first broadcast set the sequence number to an arbitrary value and increment the field by one for each following OGMv2.
+* Originator Address: Set this field to the primary MAC address of this B.A.T.M.A.N. node.
+* TVLV length: Length of the TLVL data appended to the OGM
+* Throughput: Throughput metric value in 100 kbit/s. Initialize with BATADV_THROUGHPUT_MAX_VALUE
+* TVLV data: Appended TVLV data for the originator. See [[TVLV]] for a detailed description.
<pre>
0 1 2 3
@@ -83,33 +83,32 @@ Each step is performed per potential outgoing interface where the OGMv2 may be r
The following checks are performed before updating the metric:
- * *Protection window check:* If the OGMv2s sequence number is older than BATADV_OGM_MAX_AGE or newer than the BATADV_EXPECTED_SEQNO_RANGE, and the protection window is active, the packet is silently dropped. If both conditions are met but the protection window is not active yet, the OGMv2 is allowed but the protection window gets activated.
- * *Age check:* If the sequence number is strictly older than the last OGMv2, the packet is silently dropped. The only exception is when the protection window has just been activated, then the OGMv2 can pass.
+* *Protection window check:* If the OGMv2s sequence number is older than BATADV_OGM_MAX_AGE or newer than the BATADV_EXPECTED_SEQNO_RANGE, and the protection window is active, the packet is silently dropped. If both conditions are met but the protection window is not active yet, the OGMv2 is allowed but the protection window gets activated.
+* *Age check:* If the sequence number is strictly older than the last OGMv2, the packet is silently dropped. The only exception is when the protection window has just been activated, then the OGMv2 can pass.
If the initial checks above have passed, the internal stats are updated:
- * the last seen timestamps of the router and the originator are updated
- * the last sequence number and ttl values are adopted
- * if the link throughput to the neighbor this OGMv2 was forwarded by is *lower* than the path throughput of the OGMv2, then this lower link throughput is adopted
- * Forward penalties are applied:
-
- * if the considered interface is the *default* interface, no penalty is applied
- * if the incoming and considered outgoing interface is the same *half duplex* interface and the reported throughput is larger than 1 MBit/s, the throughput is reduced by 50%
- * Otherwise, a hop penalty is applied and the throughput is reduced by the according value (default 5.8% or 15/255). This is especially useful for "perfect" networks to create a decreasing metric over multiple hops.
- * The throughput value with the penalties applied is stored for the router
+* the last seen timestamps of the router and the originator are updated
+* the last sequence number and ttl values are adopted
+* if the link throughput to the neighbor this OGMv2 was forwarded by is *lower* than the path throughput of the OGMv2, then this lower link throughput is adopted
+* Forward penalties are applied:
+** if the considered interface is the *default* interface, no penalty is applied
+** if the incoming and considered outgoing interface is the same *half duplex* interface and the reported throughput is larger than 1 MBit/s, the throughput is reduced by 50%
+** Otherwise, a hop penalty is applied and the throughput is reduced by the according value (default 5.8% or 15/255). This is especially useful for "perfect" networks to create a decreasing metric over multiple hops.
+* The throughput value with the penalties applied is stored for the router
h4. 3.2.3. Route Update
After that, we check the OGMv2 whether a router update should be done and the OGMv2 should be rebroadcasted
- * If the OGMv2 was received through a neighbor that is not (yet) a router, drop the OGMv2
+* If the OGMv2 was received through a neighbor that is not (yet) a router, drop the OGMv2
The passing OGMv2 will be considered for a router update:
- * If the OGMv2 has been received from the best router, no change is necessary
- * If no router has been selected yet, the received router becomes the selected router immediately
- * If the throughput from the received router is higher than the throughput via the selected router, the received router becomes the selected router
- * Also, if the sequence number is by at least OGM_MAX_ORIG_DIFF higher than the last received sequence number from the selected router, the received router becomes the selected router.
+* If the OGMv2 has been received from the best router, no change is necessary
+* If no router has been selected yet, the received router becomes the selected router immediately
+* If the throughput from the received router is higher than the throughput via the selected router, the received router becomes the selected router
+* Also, if the sequence number is by at least OGM_MAX_ORIG_DIFF higher than the last received sequence number from the selected router, the received router becomes the selected router.
If the OGMv2 has been received by the (now) selected router, the OGM is forwarded on the considered outgoing interface (except for the *default* interface). However, the OGMv2 is not forwarded if another OGMv2 has been forwarded with the same sequence number.
@@ -119,8 +118,8 @@ h3. 4. Re-broadcasting other nodes' OGMv2s
When an OGMv2 is to be re-broadcasted some of the message fields must be changed others must be left unchanged. All fields not mentioned in the following section remain untouched:
- * The TTL must be decremented by one. If the TTL becomes zero (after the decrementation) the packet must be dropped.
- * The Path throughput for the considered outgoing interface is adopted
+* The TTL must be decremented by one. If the TTL becomes zero (after the decrementation) the packet must be dropped.
+* The Path throughput for the considered outgoing interface is adopted
The OGMv2 is then rebroadcasted on the specific outgoing interface.
Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2019-09-17,master
>---------------------------------------------------------------
commit b06a08facb79f8f360b828d5e64abd882d5efba5
Author: Sven Eckelmann <sven(a)narfation.org>
Date: Tue Sep 17 10:28:48 2019 +0000
doc: batman-adv/Packet-types
>---------------------------------------------------------------
b06a08facb79f8f360b828d5e64abd882d5efba5
batman-adv/Packet-types.textile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/batman-adv/Packet-types.textile b/batman-adv/Packet-types.textile
index eae7df3..33ed3cd 100644
--- a/batman-adv/Packet-types.textile
+++ b/batman-adv/Packet-types.textile
@@ -16,4 +16,4 @@ NOTE: Previous ideas to do the same for broadcast packets have been dropped. The
Further reading:
- * The latest packet type assignments can be reviewed in the source code: https://git.open-mesh.org/batman-adv.git/blob/refs/heads/master:/packet.h#l…
\ No newline at end of file
+* The latest packet type assignments can be reviewed in the source code: https://git.open-mesh.org/batman-adv.git/blob/refs/heads/master:/packet.h#l…
\ No newline at end of file