Repository : ssh://git@open-mesh.org/doc
On branches: backup-redmine/2017-07-13,master
commit 3fe6234767f5d666ad2dcdc7cd6810c99e942b1b Author: Marek Lindner mareklindner@neomailbox.ch Date: Sun May 22 21:26:40 2011 +0000
doc: batman-adv/Client-announcement
3fe6234767f5d666ad2dcdc7cd6810c99e942b1b batman-adv/Client-announcement.textile | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/batman-adv/Client-announcement.textile b/batman-adv/Client-announcement.textile index b463e89e..bcce07a8 100644 --- a/batman-adv/Client-announcement.textile +++ b/batman-adv/Client-announcement.textile @@ -61,22 +61,16 @@ To reduce the overhead of the table request operations, each node on the path of
h2. Computing the crc16 checksum:
-The crc16 checksum field which is sent along with the ttvn field in the OGM is computed for a generic originator O as "the xor of all the crc16 value on each tt_global_entry->addr field of those entries pointing to O". +The crc16 checksum field which is sent along with the ttvn field in the OGM is computed for a generic originator O as "the xor of all the crc16 values of each local tt table address entry".
**Pseudocode**: -<pre><code>tt_global_crc(orig_node O) { +<pre><code>tt_local_crc(orig_node O) { res = 0; -for each tt_global_entry: - if tt_global_entry->orig_node == O - res = res XOR crc16(tt_global_entry->addr) - endif +for each tt_local_entry: + res = res XOR crc16(tt_local_entry->addr) endfor return res</code></pre>
-Moreover the same field has been added to struct bat_priv (a local tt_crc). It is computed in the same way as before but using the tt_local_entry->addr -field of all the local entries. As it is possible to guess, bat_priv->tt_crc of a generic node A has to be equal to orig_node_A->tt_crc on all the other -nodes. The tt_crc field is also added to the OGM packet, in this way the nodes in the network can check whether their global tables are consistent or not. In case of mismatch, the full table is recovered through a TT_REQUEST. - h2. Improving data routing
The ttvn field has also been added to the unicast packet header. A node sending a packet of this type will set this field to the currently known destination's ttvn. Along the path fro the source to the destination, every node will inspect the packet and check whether it knows an higher ttvn for the same destination; if so, the node will look in its global translation table to see which is the current mesh node serving the client which the packet is directed to. At this point the intermediate node will replace the destination and the ttvn values in the unicast packet header and will re-forward the packet to the new destination (possibly the same).