Lines Matching refs:rose_node
41 static struct rose_node *rose_node_list;
57 struct rose_node *rose_node, *rose_tmpn, *rose_tmpp; in rose_add_node() local
64 rose_node = rose_node_list; in rose_add_node()
65 while (rose_node != NULL) { in rose_add_node()
66 if ((rose_node->mask == rose_route->mask) && in rose_add_node()
67 (rosecmpm(&rose_route->address, &rose_node->address, in rose_add_node()
70 rose_node = rose_node->next; in rose_add_node()
73 if (rose_node != NULL && rose_node->loopback) { in rose_add_node()
140 if (rose_node == NULL) { in rose_add_node()
154 rose_node = kmalloc(sizeof(*rose_node), GFP_ATOMIC); in rose_add_node()
155 if (rose_node == NULL) { in rose_add_node()
160 rose_node->address = rose_route->address; in rose_add_node()
161 rose_node->mask = rose_route->mask; in rose_add_node()
162 rose_node->count = 1; in rose_add_node()
163 rose_node->loopback = 0; in rose_add_node()
164 rose_node->neighbour[0] = rose_neigh; in rose_add_node()
168 rose_node_list = rose_node; in rose_add_node()
169 rose_node->next = NULL; in rose_add_node()
171 rose_tmpp->next = rose_node; in rose_add_node()
172 rose_node->next = NULL; in rose_add_node()
176 rose_node->next = rose_node_list; in rose_add_node()
177 rose_node_list = rose_node; in rose_add_node()
179 rose_tmpp->next = rose_node; in rose_add_node()
180 rose_node->next = rose_tmpn; in rose_add_node()
189 if (rose_node->count < 3) { in rose_add_node()
190 rose_node->neighbour[rose_node->count] = rose_neigh; in rose_add_node()
191 rose_node->count++; in rose_add_node()
205 static void rose_remove_node(struct rose_node *rose_node) in rose_remove_node() argument
207 struct rose_node *s; in rose_remove_node()
209 if ((s = rose_node_list) == rose_node) { in rose_remove_node()
210 rose_node_list = rose_node->next; in rose_remove_node()
211 kfree(rose_node); in rose_remove_node()
216 if (s->next == rose_node) { in rose_remove_node()
217 s->next = rose_node->next; in rose_remove_node()
218 kfree(rose_node); in rose_remove_node()
298 struct rose_node *rose_node; in rose_del_node() local
305 rose_node = rose_node_list; in rose_del_node()
306 while (rose_node != NULL) { in rose_del_node()
307 if ((rose_node->mask == rose_route->mask) && in rose_del_node()
308 (rosecmpm(&rose_route->address, &rose_node->address, in rose_del_node()
311 rose_node = rose_node->next; in rose_del_node()
314 if (rose_node == NULL || rose_node->loopback) { in rose_del_node()
333 for (i = 0; i < rose_node->count; i++) { in rose_del_node()
334 if (rose_node->neighbour[i] == rose_neigh) { in rose_del_node()
340 rose_node->count--; in rose_del_node()
342 if (rose_node->count == 0) { in rose_del_node()
343 rose_remove_node(rose_node); in rose_del_node()
347 rose_node->neighbour[0] = in rose_del_node()
348 rose_node->neighbour[1]; in rose_del_node()
350 rose_node->neighbour[1] = in rose_del_node()
351 rose_node->neighbour[2]; in rose_del_node()
407 struct rose_node *rose_node; in rose_add_loopback_node() local
412 rose_node = rose_node_list; in rose_add_loopback_node()
413 while (rose_node != NULL) { in rose_add_loopback_node()
414 if ((rose_node->mask == 10) && in rose_add_loopback_node()
415 (rosecmpm(address, &rose_node->address, 10) == 0) && in rose_add_loopback_node()
416 rose_node->loopback) in rose_add_loopback_node()
418 rose_node = rose_node->next; in rose_add_loopback_node()
421 if (rose_node != NULL) in rose_add_loopback_node()
424 if ((rose_node = kmalloc(sizeof(*rose_node), GFP_ATOMIC)) == NULL) { in rose_add_loopback_node()
429 rose_node->address = *address; in rose_add_loopback_node()
430 rose_node->mask = 10; in rose_add_loopback_node()
431 rose_node->count = 1; in rose_add_loopback_node()
432 rose_node->loopback = 1; in rose_add_loopback_node()
433 rose_node->neighbour[0] = rose_loopback_neigh; in rose_add_loopback_node()
436 rose_node->next = rose_node_list; in rose_add_loopback_node()
437 rose_node_list = rose_node; in rose_add_loopback_node()
452 struct rose_node *rose_node; in rose_del_loopback_node() local
456 rose_node = rose_node_list; in rose_del_loopback_node()
457 while (rose_node != NULL) { in rose_del_loopback_node()
458 if ((rose_node->mask == 10) && in rose_del_loopback_node()
459 (rosecmpm(address, &rose_node->address, 10) == 0) && in rose_del_loopback_node()
460 rose_node->loopback) in rose_del_loopback_node()
462 rose_node = rose_node->next; in rose_del_loopback_node()
465 if (rose_node == NULL) in rose_del_loopback_node()
468 rose_remove_node(rose_node); in rose_del_loopback_node()
482 struct rose_node *t, *rose_node; in rose_rt_device_down() local
495 rose_node = rose_node_list; in rose_rt_device_down()
497 while (rose_node != NULL) { in rose_rt_device_down()
498 t = rose_node; in rose_rt_device_down()
499 rose_node = rose_node->next; in rose_rt_device_down()
556 struct rose_node *t, *rose_node; in rose_clear_routes() local
562 rose_node = rose_node_list; in rose_clear_routes()
564 while (rose_node != NULL) { in rose_clear_routes()
565 t = rose_node; in rose_clear_routes()
566 rose_node = rose_node->next; in rose_clear_routes()
679 struct rose_node *node; in rose_get_neigh()
1088 struct rose_node *rose_node; in rose_node_start() local
1095 for (rose_node = rose_node_list; rose_node && i < *pos; in rose_node_start()
1096 rose_node = rose_node->next, ++i); in rose_node_start()
1098 return (i == *pos) ? rose_node : NULL; in rose_node_start()
1106 : ((struct rose_node *)v)->next; in rose_node_next()
1123 const struct rose_node *rose_node = v; in rose_node_show() local
1130 rose2asc(rsbuf, &rose_node->address), in rose_node_show()
1131 rose_node->mask, in rose_node_show()
1132 rose_node->count); in rose_node_show()
1134 for (i = 0; i < rose_node->count; i++) in rose_node_show()
1136 rose_node->neighbour[i]->number); in rose_node_show()
1342 struct rose_node *t, *rose_node = rose_node_list; in rose_rt_free() local
1352 while (rose_node != NULL) { in rose_rt_free()
1353 t = rose_node; in rose_rt_free()
1354 rose_node = rose_node->next; in rose_rt_free()