Cisco NX-OS Forwarding Architecture
The Cisco NX-OS forwarding architecture is responsible for processing all routing updates and populating the forwarding information to all modules in the chassis. The Cisco NX-OS forwarding architecture consists of multiple components, as shown in Figure 6-6.
Figure 6-6 Cisco NX-OS Forwarding Architecture
The unicast routing information base (URIB) exists on the active supervisor. It maintains the routing table with directly connected routes, static routes, and routes learned from dynamic unicast routing protocols. The unicast RIB also collects adjacency information from sources such as the Address Resolution Protocol (ARP). The unicast RIB determines the best next hop for a given route and populates the FIB by using the services of the unicast forwarding information base (FIB) distribution module (uFDM). Each dynamic routing protocol must update the unicast RIB for any route that has timed out. The unicast RIB then deletes that route and recalculates the best next hop for that route (if an alternate path is available).
The adjacency manager (AM) exists on the active supervisor and maintains adjacency information for different protocols, including ARP, Neighbor Discovery Protocol (NDP), and static configuration. The most basic adjacency information is the Layer 3 to Layer 2 address mapping discovered by these protocols. Outgoing Layer 2 packets use the adjacency information to complete the Layer 2 header. The adjacency manager can trigger ARP requests to find a particular Layer 3 to Layer 2 mapping. The new mapping becomes available when the corresponding ARP reply is received and processed. For IPv6, the adjacency manager finds the Layer 3 to Layer 2 mapping information from NDP.
The unicast FIB distribution module (uFDM) exists on the active supervisor and distributes the forwarding path information from the unicast RIB and other sources. The unicast RIB generates forwarding information that the unicast FIB (UFIB) programs into the hardware forwarding tables on the standby supervisor and the modules. The unicast FDM also downloads the FIB information to newly inserted modules. The unicast FDM gathers adjacency information, rewrite information, and other platform-dependent information when updating routes in the unicast FIB. The adjacency and rewrite information consists of interface, next hop, and Layer 3 to Layer 2 mapping information. The interface and next-hop information is received in route updates from the unicast RIB. The Layer 3 to Layer 2 mapping is received from the adjacency manager.
The UFIB exists on supervisors and switching modules and builds the information used for the hardware forwarding engine. The UFIB receives route updates from the uFDM and sends the information to be programmed in the hardware forwarding engine. The UFIB controls the addition, deletion, and modification of routes, paths, and adjacencies. The unicast FIBs are maintained on a per-VRF and per-address-family basis (that is, one for IPv4 and one for IPv6 for each configured VRF; for more about VRFs, refer to Chapter 5, “Switch Virtualization”). Based on route update messages, the UFIB maintains a per-VRF prefix and next-hop adjacency information database. The next-hop adjacency data structure contains the next-hop IP address and the Layer 2 rewrite information. Multiple prefixes could share a next-hop adjacency information structure.