Step 1: The interface media controller detects a packet on the network media and copies it into a buffer pointed to by the first free element in the receive ring. Media controllers use the Direct Memory Access (DMA) method to copy packet data into memory.
Step 2: The media controller changes ownership of the packet buffer back to the processor and issues a receive interrupt to the processor. The media controller does not have to wait for a response from the CPU and continues to receive incoming packets into the receive ring.
It's possible for the media controller to fill the receive ring before the processor processes all the new buffers in the ring. This condition is called an overrun. When this occurs, all incoming packets are dropped until the processor recovers.
Step 3: The CPU responds to the receive interrupt, and attempts to remove the newly−filled buffer from the receive ring and replenish the ring from the interface's private pool. Notice that packets are not physically moved within the I/O memory; only the pointers are changed. If the interface's input hold queue is full, the packet is dropped; otherwise, three outcomes are possible:
3.1: A free buffer is available in the interface's private pool to replenish the receive ring: the free buffer is linked to the receive ring and the
packet now belongs to the interface's private buffers pool.
3.2: A free buffer is not available in the interface's private pool, so the receive ring is replenished by falling back to the global pool that matches
the interface's MTU. The fallback counter is incremented for the private pool.
3.3: If a free buffer is not available in the public pool as well, the incoming packet is dropped and the ignore counter is incremented. In addition,
the interface is throttled and all incoming traffic is ignored on this interface for a short period of time.
2 − Switching the Packet
Step 4: After the receive ring is replenished, the CPU begins switching the packet. Cisco IOS software attempts to switch the packet using the fastest method configured on the interface. On shared memory routers, it first tries Cisco Express Forwarding (CEF) switching (if configured), then fast switching (unless "no ip route−cache" is configured on the interface), and finally, process switching if none of the others work.
Step 5: While still in the receive interrupt context, the Cisco IOS software attempts to use the CEF table or the fast switching cache to make a switching decision.
5.1: CEF switching − If there are valid CEF and adjacency table entries, the Cisco IOS software rewrites the Media Access Control (MAC) header on
the packet and begins transmitting it (Step 8). If there is no CEF entry for the destination, the packet is dropped.
5.2: Fast switching − If CEF is not enabled or the packet cannot be CEF switched, the Cisco IOS software attempts to fast switch the packet. If
there is a valid fast cache entry for this destination, the Cisco IOS software rewrites the MAC header information and begins transmitting the
packet (Step 8). If there is no valid fast cache entry, the packet is queued for process switching (Step
6).
Step 6: Process switching − If both CEF and fast switching fail, the Cisco IOS software falls back to process