How frrouting/frr works
FRRouting (FRR) is a suite of routing daemons plus shared runtime and management components. Its principal workflow is to run routing protocols that manage IPv4/IPv6 routing; operators configure daemons through their configuration interfaces, with centralized YANG configuration available through mgmtd for migrated daemons. The README documents the protocol suite and centralized-configuration relationship, but the sampled source does not establish most daemon-to-daemon or daemon-to-kernel calls. Those links are therefore omitted rather than inferred.
Main entry points: northbound.c Northbound API · mgmtd Central manager · bgpd BGP · ospfd OSPFv2
Components 28
Routing protocols
- BGP
bgpd - OSPFv2
ospfd - OSPFv3
ospf6d - IS-IS / OpenFabric
isisd - RIP / RIPng
ripd - Babel
babeld - EIGRP
eigrpd - PIM
pimd - LDP
ldpd - NHRP
nhrpd
Routing services
- Zebra routing manager
zebra - BFD
bfdd - Policy routing
pbrd - Static routes
staticd - Path control
pathd - VRRP
vrrpd
Configuration management
- Central manager
mgmtd - Management datastore
mgmtd/mgmt_ds.c - Northbound API
lib/northbound.c - Unified CLI
vtysh/vtysh.c
Shared runtime
- Command framework
lib/command.h - Event loop
lib/frrevent.h - Zebra client API
lib/zclient.h - Interface model
lib/if.h - Route tables
lib/table.h
Other components
- Network operator
- Routing peers
- Operating system
Connections 24
- Network operator → Unified CLI: configures
- Network operator → Central manager: configures
- Central manager → Northbound API: applies config
- Northbound API → BGP: configures
- Northbound API → OSPFv2: configures
- Northbound API → OSPFv3: configures
- Northbound API → IS-IS / OpenFabric: configures
- Northbound API → RIP / RIPng: configures
- Northbound API → Babel: configures
- Northbound API → EIGRP: configures
- Northbound API → PIM: configures
- Northbound API → LDP: configures
- Northbound API → NHRP: configures
- Routing peers → BGP: exchanges routes
- Routing peers → OSPFv2: exchanges routes
- Routing peers → OSPFv3: exchanges routes
- Routing peers → IS-IS / OpenFabric: exchanges routes
- Routing peers → RIP / RIPng: exchanges routes
- Routing peers → Babel: exchanges routes
- Routing peers → EIGRP: exchanges routes
- Routing peers → PIM: exchanges multicast
- Routing peers → LDP: exchanges labels
- Routing peers → NHRP: exchanges requests
- Zebra routing manager → Operating system: programs routes