Mailing List Archive

How Zebra adds a route
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.