Route Broker
In DANOS the Route Broker is a wrapper around the Route Broker Library that interfaces with FRR's Zebra Fib Push Interface. The majority of the work is done by the Route Broker Library. Since FRR already has an interface to reliably push routes to a dataplane (the Zebra Fib Push Interface), DANOS provides the Route Broker as an adapter between this interface and our Route Broker Library which provides an eventually consistent, coalesced, pull based FIB updates for the DANOS dataplane. The library may be used to interface any routing protocol suite with the DANOS dataplane, but the Route Broker Daemon is FRR specific.
FRR's Zebra will push route updates as NETLINK messages wrapped in an FPM message to the Route Broker. The Route Broker also listens for kernel routes via NETLINK. To achieve this, the Route Broker daemon polls a NETLINK socket and the Zebra FPM socket for route updates and then passes them to the Route Broker Library for distribution to the dataplane.
The following diagram shows how the Route Broker interacts with Zebra and the DANOS dataplane.
Related Source Code
https://github.com/danos/vyatta-route-broker/tree/master/daemon