On Sat, Mar 26, 2011 at 04:31:42PM +0100, Marek Lindner wrote:
Hi,
In these days I was wondering whether the TTL
field in the OGM packet is
really useful or not...Due to hop_penalty an OGM will be discarded as
soon as the TQ will reach 0 (which is a sort of TTL mechanism itself).
At this point why is the TTL field needed?
uhm.., you probably are right. As long as there is a hop penalty it also
functions as a TTL. Keep in mind that it is possible to set the hop penalty to
zero. With the current default hop penalty of 10 the maximum number of hops is
limited to 25.
Humm, i could be wrong here.....
static uint8_t hop_penalty(const uint8_t tq, struct bat_priv *bat_priv)
{
int hop_penalty = atomic_read(&bat_priv->hop_penalty);
return (tq * (TQ_MAX_VALUE - hop_penalty)) / (TQ_MAX_VALUE);
}
So 10% is deducted, not 10 absolute. So assuming perfect links, TQ
will be:
255
245
235
226
217
208
200
192
184
177
170
163
157
151
145
139
134
129
124
119
114
110
106
102
98
94
90
86
83
80
77
74
71
68
65
62
60
58
56
54
etc...
Depending on how the rounding works, i think somewhere after hop 72
the TQ is always 12.
But maybe i'm not understanding something correctly....
Andrew