![](/images/new-backgrounds/1158950/15895023x1.webp)
switching. The packet goes in the queue of the appropriate process (for instance, an IP packet is placed in the queue for the IP Input process), and the receive interrupt is dismissed.
Step 7: Eventually the packet switching process runs, switching the packet and rewriting the MAC header as needed. Note that the packet still has not moved from the buffer it was originally copied into. After the packet is switched, the Cisco IOS software continues to the packet transmit stage.
3 − Transmitting the Packet
Step 8: If the packet was CEF or fast switched, then while still in receive interrupt context, the Cisco IOS software checks to see if there are packets on the output queue of the outbound interface.
8.1: If there are packets already on the output hold queue for the interface, the Cisco IOS software places the packet on the output hold queue
instead of directly into the transmit ring to reduce the possibility of out−of−order packets, and then proceeds to Step 8.3.
8.2: If the output hold queue is empty, the Cisco IOS software places the packet on the transmit ring of the output interface by linking the packet
buffer to a transmit ring descriptor. The receive interrupt is dismissed and processing continues with Step 11. If there is no room on the transmit
ring, the packet is placed on the output hold queue instead, and the receive interrupt is dismissed.
8.3: If the output hold queue is full, the packet is dropped, the output drop counter is incremented, and the receive interrupt is dismissed.
Step 9: If the packet was process switched, the packet is placed on the output queue for the input interface. If the output queue is full, the packet is dropped and the output drop counter is incremented.
Step 10: The Cisco IOS software attempts to find a free descriptor in the output interface transmit ring. If a free descriptor exists, the Cisco IOS software removes the packet from the output hold queue and links the buffer to the transmit ring. If the ring is full, the Cisco IOS software leaves the packet in the output hold queue until the media controller transmits a packet from the ring and frees a descriptor.
Step 11: The outbound interface media controller polls its transmit ring periodically for packets that need to be transmitted. As soon as the media controller detects a packet, it copies the packet onto the network media and raises a transmit interrupt to the processor.
Step 12: The Cisco IOS software acknowledges the transmit interrupt, unlinks the packet buffer from the transmit ring, and returns the buffer to the pool of buffers from which it originated. The Cisco IOS software then checks the output hold queue for the interface. If there are any packets waiting in the output hold queue, the Cisco IOS software removes the next one from the queue and links it to the transmit ring. Finally, the transmit interrupt is dismissed.
1
"CCIE Professional Development: Inside Cisco IOS Software Architecture" by Vijay Bollapragada, Curtis Murphy, Russ White (ISBN 1−57870−181−3).
Related Information
∙Password Recovery Index Page
∙ROMmon Recovery for the Cisco 1600 Series Router
∙Hardware Troubleshooting for Cisco 1600 Routers