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 PageROMmon Recovery for the Cisco 1600 Series RouterHardware Troubleshooting for Cisco 1600 Routers
Cisco 1600 Series Router Architecture