Hi all,
I am using the batmand release and I trying to edit where batman keeps a statistic of next best hops to a destination node. I want to change the metric in some way to alter the choices that batman makes when routing a packet to its destination. However I am rather stuck, and would appreciate some direction on where the updating of this statistic of next best hops for a destination is done in the batman code.
Many Thanks Dominic
On Sunday 19 August 2012 17:13:28 Dominic Follett-Smith wrote:
I am using the batmand release and I trying to edit where batman keeps a statistic of next best hops to a destination node.
The development focus of many people changed to batman-adv. Therefore, most people aren't knowing the code very well (or have to read a while to get into the code again).
I want to change the metric in some way to alter the choices that batman makes when routing a packet to its destination. However I am rather stuck, and would appreciate some direction on where the updating of this statistic of next best hops for a destination is done in the batman code.
You're request is a little bit too general. Maybe you can go a little bit more in detail. Otherwise I can only recommend batman(void) in batman.c and update_orig(...) in originator.c
Kind regards, Sven
Hi Sven, thank you,
I will have a closer look at the code and send some more details over the weekend. Essentially I understand that neighbor ranking for a destination node 'D' is performed on the number of OGM's received in the sliding window. What I want to do is introduce an extra metric say X that alters the number of OGM's in the sliding window (a kind of penalty), then when BATMAN calculates the next best hop for that destination 'D', this information will reflect that:
For example, N1: node that wishes to route a packet to destination D D: Destination node N2, N3: Neighbours of N1 and D
[1] at t = 0: (N2) / ___ / \ (N1) (D) \ ____/ \ / (N3) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [2] at t = t_1: N2 and N3 broadcast their OGM's with some metric about themselves (X_n) attached. N(1) keeps a list of neighbours, with their associated metric X_n at any time- it will be used for neighbour ranking.
(N2) ogm+x_2/ ___ / \ (N1) (D) \ ____/ ogm+x_3\ / (N3) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [3] at t = t_2: D Broadcasts its OGM
(N2) / _OGM / \ (N1) (D) \ OGM_/ \ / (N3) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [4] at t = t_3: N2 forward D's OGM onto N1
(N2) OGM/ ___ / \ (N1) (D) \ ____/ \ / (N3) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [5] at t = t_4:
sliding window of neigbour N2 for Destination D is:
|__________10....._| --> ten sequence numbers have been received from D over N2 but we penalize this count with x_2, which leaves it at 6
sliding window of neigbour N3 for Destination D is:
|__________8....._| --> eight sequence numbers have been received from D over N3 but we penalize this with x_3, which leaves it at 6
at this point the next best hop to route a packet to destination D is N2 or N3
and lastly in this time interval, N3 forward D's OGM onto N1
(N2) / ___ / \ (N1) (D) OGM\ ____/ \ / (N3) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [6] at t = t_5:
sliding window of neigbour N2 for Destination D is:
|__________10....._| --> ten sequence numbers have been received from D over N2 but we penalize this count with x_2, which leaves it at 6
sliding window of neigbour N3 for Destination D is:
|__________9....._| --> nine sequence numbers have been received from D over N3 but we penalize this with x_3, which leaves it at 7
at this point the next best hop to route a packet to destination D is the link over N3 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Again, thank you for your kind assistance.
Dominic UCT
On Tue, Aug 21, 2012 at 12:32 AM, Sven Eckelmann sven@narfation.org wrote:
On Sunday 19 August 2012 17:13:28 Dominic Follett-Smith wrote:
I am using the batmand release and I trying to edit where batman keeps a statistic of next best hops to a destination node.
The development focus of many people changed to batman-adv. Therefore, most people aren't knowing the code very well (or have to read a while to get into the code again).
I want to change the metric in some way to alter the choices that batman makes when routing a packet to its destination. However I am rather stuck, and would appreciate some direction on where the updating of this statistic of next best hops for a destination is done in the batman code.
You're request is a little bit too general. Maybe you can go a little bit more in detail. Otherwise I can only recommend batman(void) in batman.c and update_orig(...) in originator.c
Kind regards, Sven
On Friday, August 24, 2012 14:01:15 Dominic Follett-Smith wrote:
I will have a closer look at the code and send some more details over the weekend. Essentially I understand that neighbor ranking for a destination node 'D' is performed on the number of OGM's received in the sliding window.
This is not entirely correct. Only single hop neighbors will count the received OGMs and also count the re-broadcasted OGMs repeated by its neighbors. Then they derive the TQ from that which is then propagated through the network (plus hop penalty and asym penalty). In other words: N1 will never count the OGMs originating at D.
Cheers, Marek
b.a.t.m.a.n@lists.open-mesh.org