Adjacency Manager and Unicast Forwarding in Nexus Switches Explained
The unicast RIB maintains the routing table with:
- Directly connected routes
- Satic routes
- Routes learned from dynamic unicast routing protocols.
- The unicast RIB also collects adjacency information from sources such as the Address Resolution Protocol (ARP) via the Adjacency Manager (AM).
URIB → UFIB:
The unicast RIB determines the best next-hop for a given route and populates the unicast forwarding information bases (FIB) on the supervisors and modules by using the services of unicast FIB distribution module (FDM).
The adjacency manager 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.
Unicast Forwarding Distribution Module
The unicast forwarding distribution module exists on the active supervisor and distributes the forwarding path information from the unicast RIB and other sources. The unicast RIB generates forwarding information which the unicast FIB programs into the hardware forwarding tables on the standby supervisor and the modules. The unicast forwarding distribution module also downloads the FIB information to newly inserted modules.
The unicast forwarding distribution module 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 unicast FIB exists on supervisors and switching modules and builds the information used for the hardware forwarding engine. The unicast FIB receives route updates from the unicast forwarding distribution module and sends the information along to be programmed in the hardware forwarding engine. The unicast FIB 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. Based on route update messages, the unicast FIB 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.
Cisco NX-OS supports distributed packet forwarding. The ingress port takes relevant information from the packet header and passes the information to the local switching engine. The local switching engine does the Layer 3 lookup and uses this information to rewrite the packet header. The ingress module forwards the packet to the egress port. If the egress port is on a different module, the packet is forwarded using the switch fabric to the egress module. The egress module does not participate in the Layer 3 forwarding decision.
The forwarding tables are identical on the supervisor and all the modules.
You also use the show platform fib or show platform forwarding commands to display details on hardware forwarding.
The software forwarding path in Cisco NX-OS is used mainly to handle features that are not supported in hardware or to handle errors encountered during hardware processing. Typically, packets with IP options or packets that need fragmentation are passed to the CPU on the active supervisor. All packets that should be switched in software or terminated go to the supervisor. The supervisor uses the information provided by the unicast RIB and the adjacency manager to make the forwarding decisions. The module is not involved in the software forwarding path.
This posts consists of some notes from the Official Cisco page.