[Lugro-mesh] Mas pruebas, menos resultados.

Julio Cesar Puigpinos lugro-mesh@lugro.org.ar
Mon, 3 Sep 2007 16:43:50 -0300


El 3/09/07, Gustavo Lindberg escribió:
> [...]
>
> Actualmente tenemos el siguiente error:
>
> La mesh levanta, los nodos se ven entre si, pero las rutas no se establecen.
> En el log del click aparece:
>
>  srcr2/es :: SR2ETTStat packet says rate 11 is 96
>  [...]
>  srcr2/es :: SR2ETTStat packet says rate 4 is 0
>
> El mensaje se origina en el elemento de la roofnet SR2ettstat, precisamente
> en un if que compara dos valores y si no son iguales saca el mensaje "
> packet say rate".

Encontre el codigo para verlo online
http://www.koders.com/cpp/fidF972EBAC97033EF1AE74F03E18055A8158A317DD.aspx
Me salio en el tio google despues de buscar "packet says rate", ahh el
otro somos nosotros :P
Tomando como que ese es el codigo exacto (cuando este en mi casa lo
tratare de confirmar).

En la linea 502 comienza el if.

if (ceh->rate != lp->_rate) {
    click_chatter("%{element} packet says rate %d is %d\n",
		  this,
		  lp->_rate,
		  ceh->rate);
    p->kill();
    return 0;
  }

> Esto lo vimos el ultimo sabado que nos juntamos y Nomius modifico la
> declaracion de una variable pero no sirvio de nada.
>
> Uno de estos valores pasa por una funcion que convierte little endian a big
> endian, pero solo en plataforma little, en nuestro caso no deberia hacer
> nada.
>
> Mis pruebas sobre la roofnet pura, con las fuentes de la UCLA resultaron en
> el mismo error.
>
> En este punto las cosas empiesan a pasar por mirar el codigo y tratar de
> comprender como falla y por que esa comparacion que mencionaba. Mis
> conocimientos de C y no digamos de C++, son muy pobres. Me cuesta un peru
> seguir ese codigo ...
>
> Lo unico que logre hacer es que al comentar esa comparacion, si bien las
> rutas siguen sin establecerse, las estadisticas de los vecinos muestran la
> presencia de los nodos y los rates todos para el cu*.., con valores de -1.
>
> Tambien redefini en packet.hh la rate de uint16 a uint32 y ahi la cosa
> cambio. Con un bicho corriendo el click sin cambios y otro con dicho cambio,
> la tabla de errores se veia asi:
>
>  srcr2/es :: SR2ETTStat packet says rate 756895 is 0
>  srcr2/es :: SR2ETTStat packet says rate 567537 is 96
>  srcr2/es :: SR2ETTStat packet says rate 934433 is 0
>
> Y cuando ambos bichos corrian el click modificado, los errores aparecian
> como siempre:
>
>  srcr2/es :: SR2ETTStat packet says rate 2 is 22
>  srcr2/es :: SR2ETTStat packet says rate 4 is 0
>
> Me siguieron ? Arme mucho lio ???

Si y no.

Viendo el codigo encontre este comentario, que comienza en la linea 226:

/*
   * take_state gets called after
   * --configure
   * --initialize
   * so we may need to unschedule probe timers
   * and sync them up so the rates don't get
   * screwed up.
  */

Esta noche le hecho un ojo al codigo para ver si esto puede tener algo
que ver con nuestro problema (pero espero no perderme, porque no se
nada de c++)

Gus: si sabes que esto no tiene nada que ver, avisa y busco por otro lado.

> Vamos !, a ver algun genio del codigo que la pegue sobre que esta pasando,
> porque si no vamos a tener que abandonar la roofnet por inviable sobre
> big-endian. SNIF SNIF SNIF....
>
> Un abrazo / GUS

                             Saludos, Julio

-- 
NO A LA MATRICULA!!!: http://noalamatricula.wordpress.com/
Software Freedom Day 15 de Septiembre
http://softwarefreedomday.org/teams/centralandsouthamerica/argentina?action=show
www.kwort.org      Kwort Linux Distribution
www.lugro.org.ar   GNU/Linux User Group Rosario, Argentina
Registered GNU/Linux User #358886
"Say No to Trolls with no Balls!"
"Netiquette o Tablas!!!"