Hi Gabriel, I send you some explanations about "local repair" from rfc 3561. localrepairtimer function that is called from rt_ll_failed function is for local repair as explained below.
/*_________________________________________*/ 6.12. Local Repair When a link break in an active route occurs, the node upstream of that break MAY choose to repair the link locally if the destination was no farther than MAX_REPAIR_TTL hops away. To repair the link break, the node increments the sequence number for the destination and then broadcasts a RREQ for that destination. ..... /*_________________________________________*/ from rt_ll_failed function /* if the broken link is closer to the dest than source, attempt a local repair. Otherwise, bring down the route. */ if (ch->num_forwards() > rt->rt_hops) { local_rt_repair(rt, p); // local repair return; } else { drop(p, DROP_RTR_MAC_CALLBACK); while((p = ifqueue->filter(broken_nbr))) { drop(p, DROP_RTR_MAC_CALLBACK); } // below function sends error message to the neighbors nb_delete(broken_nbr); } As you see above, if "local repair" is processed, local_rt_repair function is called. And this function implements 6.12 section of the rfc. Else all the packets waiting in the queue are dropped, and senderror function is called from nb_delete function as Cenker says before in the list. Best Regards. Guzin Ulutas (CEng)