Cisco IOS® Software supports several mechanisms to facilitate the
forwarding of traffic with minimal delay and high throughput. This document
explains how to determine which Cisco IOS switching or forwarding path your
Note: This document discusses process switching, fast switching, and Cisco
Express Forwarding (CEF) only.
Readers of this document should be knowledgeable of these
This document is not restricted to specific software and hardware
Technical Tips Conventions for more information on document
Cisco IOS switching defines the packet flow through the router. More
specifically, it determines how quickly the packet can be forwarded through the
router, and also in which physical buffers the packets are stored.
During the history of Cisco IOS, multiple switching methods have been
developed. Some methods are supported only on particular platforms. CEF is the
latest switching method. When CEF is enabled globally (default behavior), the
ip route-cache cef interface specific command is
also enabled. This command ensures CEF switching is done for packets that enter
this interface. Occasionally, if needed to disable CEF on one interface alone,
the no ip route-cache cef command is added. This
disables CEF switching for that interface alone. Cisco IOS does not add the
no ip route-cache command to the running-config on
its own when it is forced to disable CEF. It was introduced on many platforms
in Cisco IOS 12.0 mainline, particularly low- and mid-range platforms such as
the Cisco 1600, 2500, and 3600 Series.
When a router receives a packet on a routed interface, it first removes
the Layer 2 (L2) frame information. It then stores the Layer 3 (L3) packet in
Input/Output (I/O) memory. What happens next depends on the switching path that
the packet follows.
These steps can be used to confirm that packets follow the CEF
Confirm that CEF is enabled globally and on a particular
router#show ip cef
%CEF not running
Use the ip cef command in global
configuration mode to enable (central) CEF.
Note: On the Cisco 7200 Series, CEF is the default Cisco IOS
switching method in an upcoming release of Cisco IOS.
Use the show ip cef
command and confirm that prefixes
router#show ip cef
Prefix Next Hop Interface
192.168.0.0/30 attached Serial2/0/0:1
Confirm that CEF is enabled on a particular
Use the show cef interface
command to look for "IP CEF switching
enabled," or "IP distributed CEF (dCEF) switching enabled."
router#show cef interface fastEthernet 0/0/0
FastEthernet0/0/0 is up (if_number 2)
Internet address is 192.168.1.253/24
ICMP redirects are always sent
Per packet loadbalancing is disabled
Inbound access list is not set
Hardware idb is FastEthernet0/0/0
Fast switching type 1, interface type 18
IP Distributed CEF switching enabled
Fast flags 0x0. ifindex 1(1)
Slot 0 Slot unit 0 VC -1
Hardware transmit queue ptr 0x48001A00 (0x48001A00)
Transmit limit accumulator 0x48001A02 (0x48001A02)
IP MTU 1500
Use the show ip interface command to
display the enabled Cisco IOS switching methods.
router#show ip interface fastethernet 1/0/0.1
FastEthernet1/0/0.1 is up, line protocol is up
IP fast switching is enabled
IP fast switching on the same interface is enabled
IP Flow switching is disabled
IP CEF switching is enabled
IP Distributed switching is enabled
IP Fast switching turbo vector
IP Normal CEF switching turbo vector
IP multicast fast switching is enabled
IP multicast distributed fast switching is disabled
IP route-cache flags are Fast, Distributed, No CEF
In this output, the "No CEF" flag indicates that CEF has been
disabled because of the no ip route-cache cef
command on a particular interface. The "CEF" flag indicates that CEF runs. In a
steady state, both flags should not appear. Cisco bug ID
(registered customers only)
resolves rare conditions that can lead to both flags appearing. For more
information on bug IDs, refer to the
(registered customers only)
Confirm that a majority of the packets that flow through the router
Use the show interface x/x stat
command and determine the number of packets and bytes that the router forwarded
through "Processor" instead of "Route cache." Note that "Route cache" includes
both fast-switched and CEF-switched packets.
router#show interface stats
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 95084 26211621 33493 3386174
Route cache 24581 1132797 24542 13297583
Distributed cache 0 0 0 0
Total 119665 27344418 58035 16683757
Use the show ip cache command to
determine if there is an IP cache entry, which indicates that the packet
follows the fast-switching path. Fast switching builds on an on-demand route
cache to expedite packet forwarding through a router. The driver code that runs
on the interface hardware transfers control temporarily to the fast-switching
code, which searches the route cache for a frame and other information
constructed from a previously transmitted packet. If the route cache contains
an entry, the fast-switching code attempts to send the packet directly to the
router#show ip cache
IP routing cache 0 entries, 0 bytes
0 adds, 0 invalidates, 0 refcounts
Minimum invalidation interval 2 seconds, maximum interval 5 seconds,
quiet interval 3 seconds, threshold 0 requests
Invalidation rate 0 in last second, 0 in last 3 seconds
Prefix/Length Age Interface Next Hop
These steps outline a more specific procedure for verifying that
packets are being forwarded using CEF.
Enable CEF with the ip cef
Issue the clear ip cache command to
clear the fast-switched cache entries.
Start your traffic stream.
Issue the show ip cache command.
Confirm that no entries are displayed in the fast-switched cache since the
packets are CEF-switched.
Issue the show interface stats command
and confirm incremental hits for route cache inbound.
Note: The route cache counter includes both fast-switched and
Disable CEF with the no ip route-cache
cef command on the inbound interface.
Issue the show interface stats command
and confirm incremental hits for route cache.
Issue the show ip cache command and
confirm that you see entries since Cisco IOS has fallen back to fast
Issue the no ip route-cache command on
the outbound interface to disable fast switching. Packets on the matching
inbound interface are process switched.
Note: It is not recommended to configure process switching in a heavy
If you have confirmed that CEF is enabled on a router interface and
determined that most packets are not CEF-switched, capture these commands when
you report a problem to the Cisco Technical Assistance Center (TAC).
Note: Refer to
Information on Debug Commands before you issue debug commands.
show cef interface x/x—Displays CEF
related interface information.
show ip cef
—Displays prefix entry in Forwarding
Information Base (FIB).
show adjacency interface
detail—Displays recursive and direct prefixes resolved through
show cef not-cef-switched—Displays
which packets are not CEF-switched.
debug ip cef drop—Displays debug
information for CEF-dropped packets.
The input interface determines the Cisco IOS switching path that a
packet takes. Consider these rules of thumb when you enable or disable
switching methods on a particular interface.
Fast Switching (IP route cache)
In other words, you need CEF to be enabled on the incoming
interface for packets to be CEF switched. Since CEF makes the forwarding
decision on input, use the no ip route-cache cef
command on the ingress interface to disable CEF. In contrast, since Cisco IOS
builds a fast-switching cache entry after switching a packet, a packet that
comes in on a process-switched interface and goes out through a fast-switched
interface is fast switched, use the no ip
route-cache command on the egress interface to disable fast
switching. These traffic types are not CEF switched:
Packets for which there is no entry in the switching
Packets destined for the router
IP packets with options
Packets that require protocol translation
The term "punt" is defined by Cisco to describe the action by an
interface's device driver of sending a packet "down" to the next fastest
switching level. This list defines the order of preferred Cisco IOS switching
methods (from fastest to slowest).
A punt occurs under these conditions:
The next lower level did not produce a valid path or, in the case of
CEF, a valid adjacency. In other words, if the CEF lookup process failed to
find a valid entry in the forwarding information base, the packet is punted to
the next available switching path or dropped.
A particular feature or Layer 2 encapsulation is not supported at the
lowest level. If CEF supports a particular feature, ownership of a packet is
passed through a set of software routines in the CEF "feature
A feature requires special
A punt adjacency in CEF is installed when some output feature is not
supported in CEF. CEF punts all packets that go to such an adjacency to the
next best switching mode, in order to switch all the packets.
center#show ip cef 126.96.36.199
188.8.131.52/8, version 184, 0 packets, 0 bytes
via 184.108.40.206, Tunnel0, 0 dependencies
next hop 220.127.116.11, Tunnel0
valid punt adjacency
CEF Packets passed on to next switching layer
Slot No_adj No_encap Unsupported Redirect Receive Bad_ttl Options
RP 0 0 0 0 5700 0 0
2 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0
With an incomplete adjacency, CEF considers that the router as a whole
(including all the other switching paths) does not know how to get to the
adjacent node. We punt packets to process switching in order to kick off some
resolution protocol like Address Resolution Protocol (ARP), which results in
the adjacency being completed some time later. In this condition, CEF punts one
packet every two seconds to the next switching path to avoid a flood of
packets. Thus in this condition, pings to the IP address might fail about 50
percent and you see a "!.!.!.!.!" ping pattern. This condition also occurs when
the CEF table is corrupted, as indicated by a difference between the
show ip route command information and the
show ip cef command information for a particular IP
Note: On the Gigabit Switch Router (GSR), the line card (LC) generates
Internet Control Message Protocol (ICMP) echo replies from within CEF. If the
packet is not destined to one of the GSRs local addresses, then no processes is
involved. It is switched straight through either in hardware or under interrupt
in dCEF, depending on which LC you use.
On the GSR, fast switching and process switching are not available. If
a destination prefix cannot be resolved to a forwarding entry in the inbound
LCs tables, the packet is dropped. Only packets that match a glean adjacency
are punted to the Gigabit Routing Processor (GRP). In addition, on the GSR, the
LC CPU does not punt packets to the GRP for features, and the LC sends an ICMP
unreachable (as long as the no ip unreachables
command is not configured). On the GSR, the only traffic punted to the GRP are
packets destined to an interface on the router or packets sourced from the