<html><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div>Hi Olsr-users,<br></div><div class="qtdSeparateBR"><br><br></div><div class="yahoo_quoted" style="display: block;"><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"><div style="font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px;"><div class="y_msg_container"><div id="yiv0155936273"><div><div style="color: rgb(0, 0, 0); font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 16px; background-color: rgb(255, 255, 255);"><div class="yiv0155936273" style="">Recently I've begun to test(simulation) some sort of semi-dynamic scenarios and I've noticed some suspicious results.</div><div class="yiv0155936273" style="">The
scenario I'm running is as follows:</div><div class="yiv0155936273" style="">15 nodes starting in a full-mesh topology - so far so good, then they split into 3 mesh clouds i.e. Cloud A 1-5 Cloud B 6 - 10 Cloud C 11-15.</div><div class="yiv0155936273" style="">Clouds A & B are fully-connected so as Clouds B & C, only clouds A & C do not see each other. I hope that i made myself clear...</div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br></div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">[1 - 5] <===> [6 - 10] <==> [11 - 15]</div><div class="yiv0155936273" style="color: rgb(0, 0, 0);
font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br></div><div class="yiv0155936273" style="">What I would expect to see is that cloud A will choose a node from cloud B as his MPR to cloud C, and vice versa for cloud c. Instead, none of the nodes is selected as an MPR and as a result of this the routing table doesn't show routes from A to C and from C to A.</div><div class="yiv0155936273" style=""><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">configuration: No ETX, equal Willingness=3 to all nodes, version 0.6.6.2</div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica
Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">When i run this scenario with ETX enabled i get good results (MPR selected and correct routes)</div><div class="yiv0155936273" style=""><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">I've tried to
look into the code of the mpr selection in mpr.c and i made the following change:</div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">in the function olsr_calculate_two_hop_neighbors (line 311), i added a reset to the counters in the end of the main loop:</div><div class="yiv0155936273" style="background-color:transparent;"> a_neighbor->neighbor_2_nocov = n_count;</div><div class="yiv0155936273" style="background-color:transparent;"><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style="background-color:transparent;"> /* Add the two hop count */</div><div class="yiv0155936273" style="background-color:transparent;"> sum += count;</div><div class="yiv0155936273" style="background-color:transparent;"><br
class="yiv0155936273" style=""></div><div class="yiv0155936273" style="background-color:transparent;"> }</div><div class="yiv0155936273" style="background-color:transparent;"> OLSR_FOR_ALL_NBR_ENTRIES_END(a_neighbor);</div><div class="yiv0155936273" style="background-color:transparent;"><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">change to:</div><div class="yiv0155936273" style="background-color:transparent;"> a_neighbor->neighbor_2_nocov = n_count;</div><div class="yiv0155936273" style="background-color:transparent;"><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style="background-color:transparent;"> /* Add the two hop count */</div><div class="yiv0155936273"
style="background-color:transparent;"> sum += count;</div><div class="yiv0155936273" style="background-color:transparent;"><span class="yiv0155936273" style="white-space:pre;"> </span>n_count = 0;</div><div class="yiv0155936273" style="background-color:transparent;"><span class="yiv0155936273" style="white-space:pre;"> </span>count = 0;</div><div class="yiv0155936273" style="background-color:transparent;"><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style="background-color:transparent;"> }</div><div class="yiv0155936273" style="background-color:transparent;"> OLSR_FOR_ALL_NBR_ENTRIES_END(a_neighbor);</div><div class="yiv0155936273" style="background-color:transparent;"><br></div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br></div><div
class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">This change seems to fix the MPR problem in this scenario, my question (finally..) is: What does this function should return (# of strict 2-hop nbrs??)? Is this a bug or am i
wrong?</div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"><br></div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">Thanks</div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;">btw the olsrd is great!</div><div class="yiv0155936273" style="color: rgb(0, 0, 0); font-size: 16px; font-family: HelveticaNeue, 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-style: normal; background-color: transparent;"> </div><div
class="yiv0155936273" style=""><br class="yiv0155936273" style=""></div><div class="yiv0155936273" style=""> </div></div></div></div><br><br></div> </div> </div> </div> </div></body></html>