Cisco CEF packet forwarding

Routers support three packet-forwarding mechanisms:

    • Process switching – Legacy method, each packet that arrives on an interface, is forwarded to the control plane where the CPU matches the destination address with an entry in its routing table, then determines the exit interface and forwards the packet via out interface. This is done for each packet even if the destination in the stream is the same
      .
Destination -> next-hop-IP -> exit interface lookup
  • Fast switching – after packet has been forwarded using process switching the information how to reach the destination is stored in a fast-switching cache. When a packet arrives on an interface, it is forwarded to the control plane where the CPU searches for a match in the fast-switching cache. If it is not there, it is process-switched and forwarded to the exit interface. The flow information for the packet is also stored in the fast-switching cache therefore for packets going to the same destination, the next-hop information in the cache is re-used without CPU intervention.
Destination -> fast-switching cache -> exit interface
  • Cisco Express Forwarding (CEF) – CEF is the most recent and preferred Cisco IOS packet-forwarding mechanism. Like fast switching, CEF builds a Forwarding Information Base (FIB), and an adjacency table. However, the table entries are not packet-triggered like fast switching but change-triggered such as when something changes in the network topology. Therefore, when a network has converged, the FIB and adjacency tables contain all the information a router would have to consider when forwarding a packet. The FIB contains pre-computed reverse lookups, next hop information for routes including the interface and Layer 2 information.
                      Control Plane                 L3 Software CPU processing
                      +---------------------------+  
       Exchange of -->|      Routing Protocol     | <-> RIB
       routing info   |            |              |     Routing Information
                      |            v              |     table
                      |       IP Routing Table    |
                       ----------- | -------------			
                                   |
                                   | CP builds FIB and          cef copies IP routing table
                                   | adjacency table            to hardware
  Data Plane	                   V           
  +----------------------------------+    +-------------------------+                                  
  |FIB table                         |    |Adjacency                |  L2 Hardware 
  |Forward Information Base          |--->|Table                    |  packet forwarding
  |                                  |    |                         |
  |DST 192.168.1.1 next hop 10.1.1.1 |    |exit interface and MAC   |
  +----------------------------------+    +-------------------------+  
                    lookup ^                | rewrite
     Incoming              |                v                    Outgoing     
     IP packets ===>   [  ####  L3 P A C K E T  ####  ]      ===> IP packets

Troubleshooting

Show FIB on a router

show ip cef

Show adjacency table on a router

show adjacency 
show adjacency detail

Clear adjacency table to force rebuilding it on a router

clear adjacency epoch