Lines Matching full:routes
80 /* re-sort the routes in quality order. */
83 if (nr_node->routes[y].quality > nr_node->routes[x].quality) { in re_sort_routes()
89 swap(nr_node->routes[x], nr_node->routes[y]); in re_sort_routes()
106 if ((odev=nr_dev_get(nr)) != NULL) { /* Can't add routes to ourself */ in nr_add_node()
119 * routes now (and not wait for a node broadcast). in nr_add_node()
128 if (nr_nodet->routes[i].neighbour == nr_neigh) in nr_add_node()
199 nr_node->routes[0].quality = quality; in nr_add_node()
200 nr_node->routes[0].obs_count = obs_count; in nr_add_node()
201 nr_node->routes[0].neighbour = nr_neigh; in nr_add_node()
220 if (nr_node->routes[i].neighbour == nr_neigh) { in nr_add_node()
221 nr_node->routes[i].quality = quality; in nr_add_node()
222 nr_node->routes[i].obs_count = obs_count; in nr_add_node()
231 nr_node->routes[2] = nr_node->routes[1]; in nr_add_node()
232 nr_node->routes[1] = nr_node->routes[0]; in nr_add_node()
234 nr_node->routes[0].quality = quality; in nr_add_node()
235 nr_node->routes[0].obs_count = obs_count; in nr_add_node()
236 nr_node->routes[0].neighbour = nr_neigh; in nr_add_node()
244 if (quality > nr_node->routes[2].quality) { in nr_add_node()
245 nr_node->routes[2].neighbour->count--; in nr_add_node()
246 nr_neigh_put(nr_node->routes[2].neighbour); in nr_add_node()
248 if (nr_node->routes[2].neighbour->count == 0 && !nr_node->routes[2].neighbour->locked) in nr_add_node()
249 nr_remove_neigh(nr_node->routes[2].neighbour); in nr_add_node()
251 nr_node->routes[2].quality = quality; in nr_add_node()
252 nr_node->routes[2].obs_count = obs_count; in nr_add_node()
253 nr_node->routes[2].neighbour = nr_neigh; in nr_add_node()
261 /* Now re-sort the routes in quality order */ in nr_add_node()
275 if (nr_node->routes[i].neighbour == nr_neigh) { in nr_add_node()
314 * is only deleted if no routes are left to it.
337 if (nr_node->routes[i].neighbour == nr_neigh) { in nr_del_node()
352 nr_node->routes[0] = nr_node->routes[1]; in nr_del_node()
355 nr_node->routes[1] = nr_node->routes[2]; in nr_del_node()
461 switch (s->routes[i].obs_count) { in nr_dec_obs()
466 nr_neigh = s->routes[i].neighbour; in nr_dec_obs()
478 s->routes[0] = s->routes[1]; in nr_dec_obs()
481 s->routes[1] = s->routes[2]; in nr_dec_obs()
489 s->routes[i].obs_count--; in nr_dec_obs()
505 * A device has been removed. Remove its routes and neighbours.
521 if (t->routes[i].neighbour == s) { in nr_rt_device_down()
526 t->routes[0] = t->routes[1]; in nr_rt_device_down()
529 t->routes[1] = t->routes[2]; in nr_rt_device_down()
734 nr_node->routes[nr_node->which].neighbour == nr_neigh) in nr_link_failed()
803 nr_neigh = nr_node->routes[nr_node->which].neighbour; in nr_route_frame()
884 nr_node->routes[i].quality, in nr_node_show()
885 nr_node->routes[i].obs_count, in nr_node_show()
886 nr_node->routes[i].neighbour->number); in nr_node_show()
960 * Free all memory associated with the nodes and routes lists.