To calculate link quality (the lq, not nlq), I am using adhoc probe techinique, namely:<br><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">struct link_entry *link;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">struct new_lq_set *lq</span><br style="font-family: courier new,monospace;">....<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">lq = (struct new_lq_set *) link->linkquality[0];</span><br style="font-family: courier new,monospace;">

....<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">lq->lq.link_quality = (lq->times[i].times_1 - </span><span style="font-family: courier new,monospace;">lq->times[i].</span><span style="font-family: courier new,monospace;">sendtime) + (lq->times[i].times_2 - </span><span style="font-family: courier new,monospace;">lq->times[i].</span><span style="font-family: courier new,monospace;">sendtime);</span><br>

....<br><br>The array times hold the times differences. The times differences is calculated to each packet pair the came. The lines above, is implemented into packet parser function (the function that receive a olsr.  The sendtime is the timestamp of send.<br>

<br>To calculate link quality cost is done this form:<br><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">struct new_lq *tlq = lq;</span><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">cost = tlq->link_quality + tlq->nb_link_quality;</span><br><br>This code above is done in the function that calculate cost.<br><br>The <span style="font-family: courier new,monospace;">struct new_lq</span> has two members, <span style="font-family: courier new,monospace;">link_quality</span> and <span style="font-family: courier new,monospace;">nb_link_quality <font style="font-family: times new roman,serif;" face="arial,helvetica,sans-serif">that are link quality data</font><span style="font-family: times new roman,serif;">.</span></span><br>

The <span style="font-family: courier new,monospace;">struct new_lq_set </span>has the member<span style="font-family: courier new,monospace;"></span> <span style="font-family: courier new,monospace;">struct new_lq  </span>and array of times.<br>

<br>The moving average is used to handle treat over the packet losses. After this, the cost is updated.<br><br>PS.: To get the timestamp (in side of the sender), I'm making linke this:<br><br style="font-family: courier new,monospace;">

<span style="font-family: courier new,monospace;">struct timeval now;</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">gettimeofday(&now, NULL);</span><br style="font-family: courier new,monospace;">

<br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">send_time = (now.tv_sec * 1000 + now.tv_usec)/1000;</span><br><br><font face="times new roman,serif">I'm not sure</font>, but the time are in miliseconds? It's the better form to realize calc the time?<br style="font-family: times new roman,serif;">

<br clear="all">--<br>Airton Ishimori<br><br>
<br><br><div class="gmail_quote">On Tue, Aug 17, 2010 at 08:57, Rogge Henning <span dir="ltr"><<a href="mailto:henning.rogge@fkie.fraunhofer.de">henning.rogge@fkie.fraunhofer.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

I'm not sure I understand what you are exactly using for calculating the<br>
link cost... can you maybe post the formula that calculates the new ETX<br>
metric from the old one and the timestamp of both packets involved ?<br>
<br>
You are combining your new ETX plugin with a normal one ? Or are you using<br>
two of your plugins ?<br>
<br>
What does "tcpdump -i <interface> -n -s 0 -vv port 698" says to your packets<br>
<div class="im">?<br>
<br>
Henning Rogge<br>
<br>
--<br>
Diplom-Informatiker Henning Rogge , Fraunhofer-Institut für<br>
Kommunikation, Informationsverarbeitung und Ergonomie FKIE<br>
Kommunikationssysteme (KOM) Neuenahrer Straße 20, 53343 Wachtberg,<br>
Germany Telefon +49 228 9435-961,   Fax +49 228 9435 685<br>
mailto:<a href="mailto:henning.rogge@fkie.fraunhofer.de">henning.rogge@fkie.fraunhofer.de</a> <a href="http://www.fkie.fraunhofer.de" target="_blank">http://www.fkie.fraunhofer.de</a><br>
GPG: E1C6 0914 490B 3909 D944 F80D 4487 C67C 55EC CFE0<br>
<br>
</div>> -----Ursprüngliche Nachricht-----<br>
> Von: Airton Ishimori [mailto:<a href="mailto:nobumasa.bcc@gmail.com">nobumasa.bcc@gmail.com</a>]<br>
> Gesendet: Dienstag, 17. August 2010 13:45<br>
> An: Rogge Henning<br>
> Betreff: Re: [Olsr-dev] etx<br>
<div><div></div><div class="h5">><br>
> I know that the codes are different and incompatible. My code<br>
> is based in the etx_float, but the type of data is not<br>
> floating point, it is integer.<br>
><br>
> I'm using a mechanism to calculate a time difference between<br>
> two packet P1 e P2 (for example) sended by all neighbors. I'm<br>
> using a repository of data to register this times difference.<br>
> And I created a function packet parser to get the olsr packet<br>
> (not olsr message) to handle the packets that caming my<br>
> neighbor. In this function, currently I calculate the times<br>
> difference and include (after some operation) the information<br>
> of the link quality lq. The repository of the times is the<br>
> linkquality[0] that is in link entry.<br>
><br>
> And so, the olsrd send the packet with link quality data<br>
> information to neigbhor, but this neighbor it seems that is<br>
> not keeping this link quality information that came.<br>
> --<br>
> Airton<br>
><br>
><br>
><br>
><br>
> On Tue, Aug 17, 2010 at 04:25, Henning Rogge<br>
> <<a href="mailto:henning.rogge@fkie.fraunhofer.de">henning.rogge@fkie.fraunhofer.de</a>> wrote:<br>
><br>
><br>
>       On Mon August 16 2010 21:28:29 Airton Ishimori wrote:<br>
>       > Hi,<br>
>       ><br>
>       > I'm implementing a "new etx". The calculate of the<br>
> etx is the same, but I'm<br>
>       > introducing some modifications in the etx based in<br>
> window (as the<br>
>       > etx_ffetch) implemented into olsrd-0.6. Basically,<br>
> the "new etx" don't<br>
>       > based in the windows, the calculate is based in the<br>
> moving average<br>
>       > techinique and time information to calculate the new etx.<br>
><br>
>       Can you compare your implementation to<br>
> etx_fpm/etx_float ? Both are moving<br>
>       average implementations of ETX.<br>
><br>
>       etxff_eth is an experimental ETX that handles "perfect"<br>
> ethernet connections<br>
>       as a special "ETX 0.1" case. It's incompatible with the<br>
> other ETX<br>
>       implementations.<br>
><br>
><br>
>       > But the new etx is it "crazy", that is, I mean ...<br>
> the NLQ is always 0, as<br>
>       > if the memorize foreigen hello function not working<br>
> or the repository not<br>
>       > working to register the link quality information.<br>
> Anybody know, what is<br>
>       > happening?<br>
><br>
>       Most likely you mixed up code from<br>
> etx_ff/etx_fpm/etx_float with code from<br>
>       etx_ffeth. They use a different packet format to<br>
> prevent accidental mixing<br>
>       (which could create stable routing loops).<br>
><br>
>       Henning Rogge<br>
>       --<br>
>       Diplom-Informatiker Henning Rogge , Fraunhofer-Institut für<br>
>       Kommunikation, Informationsverarbeitung und Ergonomie FKIE<br>
>       Kommunikationssysteme (KOM)<br>
>       Neuenahrer Straße 20, 53343 Wachtberg, Germany<br>
>       Telefon +49 228 9435-961,   Fax +49 228 9435 685<br>
>       mailto:<a href="mailto:henning.rogge@fkie.fraunhofer.de">henning.rogge@fkie.fraunhofer.de</a><br>
> <a href="http://www.fkie.fraunhofer.de" target="_blank">http://www.fkie.fraunhofer.de</a><br>
>       GPG: E1C6 0914 490B 3909 D944 F80D 4487 C67C 55EC CFE0<br>
><br>
><br>
><br>
><br>
</div></div></blockquote></div><br>