[Olsr-dev] Bug fixed in olsrd.0.5.3

David Orchansky (spam-protected)
Tue Oct 23 01:50:20 CEST 2007

Hi Hannes,

I discovered this problem when I was trying to connect 3 routers in the
following setup:

		A ----- B ----- C

A can get connected to C only through B (and vice versa). 

In this scenario A and C have to select B as MPR, but this never happened. I
solved this problem by initializing these variables in the function
mentioned before. 

I'll try to connect to the CVS repository and submit the changes there.


-----Original Message-----
From: Hannes Gredler [mailto:(spam-protected)] 
Sent: Friday, October 19, 2007 4:14 PM
To: David Orchansky
Cc: (spam-protected)
Subject: Re: [Olsr-dev] Bug fixed in olsrd.0.5.3

On Fri, Oct 19, 2007 at 10:10:40AM +1000, David Orchansky wrote:
|    Hello everyone,
|    I've been having some troubles when using the release of olsrd 0.5.3. I
|    cross-compiled (using the OpenWrt SDK) and flashed it in several
|    routers.
|    The problem I had was that the TC messages where not being forwarded by
|    the routers because for some reason the routers didn't select their own
|    MPR's (even when they had several 2-hop neighbors).
|    After spending many days tracing the problem I fixed this issue by
|    initializing some variables in a function... that was it!
|    File:       mpr.c
|    Function:   void olsr_calculate_mpr(void)
|      olsr_u16_t two_hop_covered_count=0;
|      olsr_u16_t two_hop_count=0;
|    Anyway, I don't know if this is gonna be helpful to anyone, but it
|    would save some time and effort to many of us.

hi david,

first of all thanks for your debugging efforts, this is highly appreciated.
could you next time pls submit a unified diff w/ function names
against the CVS repository. (this makes it much more easier
for the maintainers to review the work you have been doing).

  1. put the following line in your ~/.cvsrc

     diff -u -p

  2. run a 'cvs diff'


i am not sure i understand the nature of the problem
IMO the two variables get properly assigned:


olsr_calculate_mpr(void) (line 461 / mpr.c)
  olsr_u16_t                   two_hop_covered_count;
  olsr_u16_t                   two_hop_count;
  int i;


>>  two_hop_count = olsr_calculate_two_hop_neighbors();
>>  two_hop_covered_count = add_will_always_nodes();


pls elaborate *why* you think this is wrong.



More information about the Olsr-dev mailing list