
quaggasnmp at gmail
May 4, 2011, 4:16 AM
Post #1 of 1
(428 views)
Permalink
|
Hello. When Zebra receives a event from a client (other daemon), and that event is: "ipv4_add", Zebra execute the function: "zread_ipv4_add ( )", and then, all the info aboute the route is added to a queue. On the other hand, there are some functions who process the queue. This process starts on "rib_queue_init ( )" and is to take the head node of the queue and parse it. If the node is a new route, the last step is: "rib_install_kernel ( )". It looks like we have two different threads. The process on the queue and the addition of the node on the queue. All right? All of this is clear but, How does Zebra know when it must process that queue? I mean, How do the threads speak between them? Regards.
|