Table Of Contents
Nonstop Forwarding Enhanced FIB Refresh
Related Features and Technologies
Supported Standards, MIBs, and RFCs
Beginning a New Epoch and Incrementing the Epoch Number of the Adjacency Table
Beginning a New Epoch and Incrementing the Epoch Number of CEF Tables
Beginning a New Epoch and Incrementing the Epoch Number of the Adjacency Table Example
Beginning a New Epoch and Incrementing the Epoch Number of CEF Tables Examples
Nonstop Forwarding Enhanced FIB Refresh
Feature History
This document describes the Nonstop Forwarding Enhanced FIB Refresh feature in Cisco IOS Release 12.2(8)T. It includes the following sections:
•
Supported Standards, MIBs, and RFCs
Feature Overview
Operational networks must minimize traffic disruption and offer the most uptime possible. The Nonstop Forwarding Enhanced FIB Refresh feature provides users the capability to continue forwarding IP traffic while Cisco Express Forwarding (CEF) database tables are being rebuilt. IP forwarding on the router is therefore uninterrupted.
CEF maintains a best-route-only IP forwarding information base (FIB), which is populated and maintained by the routing protocols and the Routing Information Base (RIB). On a distributed hardware platform, distributed CEF (dCEF) has the ability to repopulate one or all line cards from scratch. The central FIB table can be re-created by clearing the IP routing table and allowing the routing table to be rebuilt, which in turn causes the central FIB table to be repopulated.
In addition to maintaining the FIB database, CEF also maintains an adjacency table. This table can be cleared on command and then rebuilt using information from the Address Resolution Protocol (ARP) table.
The nonstop forwarding (NSF) Enhanced FIB Refresh feature allows users to clear the forwarding table on demand and to continue forwarding using the old entries in the table. Once the forwarding table has been repopulated, packets are forwarded using the new entries, and the old entries are deleted. This feature allows CEF forwarding to continue while the new table is being built, and it allows a seamless switchover when the new table becomes active.
Epochs
The term epoch refers to a period of time. A new epoch for a CEF table begins when a table rebuild is initiated. The time after this instant is in a different epoch than the time before, and the different epochs are numbered between 0 and 255. The first epoch is numbered 0, and it begins when the CEF table is created.
The epoch number increases by one for each new epoch until it reaches 255. The current epoch for each table is recorded independently so that new epoch periods for different tables may begin at different times. The next epoch after 255 is 0. A new epoch cannot begin if there are any table entries still existing from the last time the next epoch number was used. The current epoch for each table is recorded independently so that new epoch periods for different tables may begin at different times. The epoch number for a given table is the same for each instance of the table (for example, on each Route Processor and line card where dCEF is active).
When a new epoch begins, existing table entries all have an epoch number that is older than that of the current table epoch. New or modified table entries subsequently have the current epoch. Thus, entries created before or after the new epoch period began can be distinguished from each other.
All entries added to a FIB table or the adjacency table have a new field that records the current epoch for that table at the time the entry was added. When an entry is modified, the epoch of the entry is updated to record the table's current epoch. A record is kept of how many entries exist from each epoch. The epoch number cannot be incremented if any existing entries have the same epoch number as the next epoch value.
When the user wants a table to be rebuilt, the epoch number for that table is incremented, and the table is rebuilt in place. When rebuilding is complete, "stale" entries are removed from the table. The user may choose to increment the epoch of a single table or multiple tables at the same time.
In a router that supports high availability (HA), the epoch numbers for all CEF tables are incremented when an RP transitions from standby mode to active. After switchover, the active secondary RP initially has FIB and adjacency databases that are the mirror image of the primary RP. When the epoch number for each table is incremented, all existing entries are considered stale as far as their epoch number is concerned. However, forwarding continues as normal. As the routing protocols start to repopulate the FIB and adjacency databases, existing and new entries will receive the new epoch number, indicating that they have been refreshed.
When the routing protocols signal that they are converged, all FIB and adjacency entries that have epoch numbers older than the current epoch number are removed.
When FIB or adjacency entries are distributed from the central tables on the RP, the updates contain the epoch of the entry, ensuring that the distinction between old and new entries is maintained in distributed systems.
When a table is initialized on a line card, the current epoch of the table on the RP is sent to the line card. When the epoch is incremented on the RP, an event indicating that a new epoch has begun is sent to each line card.
When information from a CEF table is displayed to the user, the table epoch is shown in the summary table information. When detailed information is displayed for each table entry, the epoch number of each entry is shown.
Benefits
•
This feature allows CEF forwarding to continue uninterrupted while new CEF tables are being constructed.
•
This feature allows a seamless switchover when the new table becomes active.
Related Features and Technologies
•
CEF
•
dCEF
•
NSF
Related Documents
•
For further CEF information, see Cisco IOS Switching Services Configuration Guide, Release 12.2
•
For further CEF information, see Cisco IOS Switching Service Command Reference, Release 12.2
•
Non-Stop Forwarding, Cisco IOS Release 12.0(22)S feature module
Supported Platforms
•
Cisco 806 series
•
Cisco 820 series
•
Cisco 828 series
•
Cisco 1400 series
•
Cisco 1600 series
•
Cisco 1600-R series
•
Cisco 1710 series
•
Cisco 1720 series
•
Cisco 1721 series
•
Cisco 1750 series
•
Cisco 1751 series
•
Cisco 2420 series
•
Cisco 2500 series
•
Cisco 2600 series
•
Cisco 3620 series
•
Cisco 3631 series
•
Cisco 3640 series
•
Cisco 3660 series
•
Cisco mc3810 series
•
Cisco 3725 series
•
Cisco 3745 series
•
Cisco 7100 series
•
Cisco 7200 series
•
Cisco 7500 series
•
Cisco ubr7200 series cable routers
•
Cisco 7700 series
•
Cisco SOHO 70 series
•
Cisco SOHO 78 series
•
Cisco Universal Route Module
Determining Platform Support Through Cisco Feature Navigator
Cisco IOS software is packaged in feature sets that support specific platforms. To get updated information regarding platform support for this feature, access Cisco Feature Navigator. Cisco Feature Navigator dynamically updates the list of supported platforms as new platform support is added for the feature.
Cisco Feature Navigator is a web-based tool that enables you to quickly determine which Cisco IOS software images support a specific set of features and which features are supported in a specific Cisco IOS image. You can search by feature or release. Under the release section, you can compare releases side by side to display both the features unique to each software release and the features in common.
Cisco Feature Navigator is updated regularly when major Cisco IOS software releases and technology releases occur. For the most current information, go to the Cisco Feature Navigator home page at the following URL:
Supported Standards, MIBs, and RFCs
Standards
No new standards are supported by these commands.
MIBs
No new or modified MIBs are supported by this feature.
To obtain lists of supported MIBs by platform and Cisco IOS release, and to download MIB modules, go to the Cisco MIB website on Cisco.com at the following URL:
http://www.cisco.com/public/sw-center/netmgmt/cmtk/mibs.shtml
RFCs
No new or modified RFCs are supported by this feature.
Prerequisites
CEF must be configured and running on the networking device.
Configuration Tasks
The following sections describe the tasks that begin new epochs and increment the epoch number of the adjacency and CEF tables. Each task in the list is identified as either required or optional.
•
Beginning a New Epoch and Incrementing the Epoch Number of the Adjacency Table (optional)
•
Beginning a New Epoch and Incrementing the Epoch Number of CEF Tables (optional)
Beginning a New Epoch and Incrementing the Epoch Number of the Adjacency Table
To begin a new epoch and increment the epoch number of the adjacency table, use the following command in privileged EXEC mode:
Command PurposeRouter# clear adjacency epoch
Begins a new epoch and increments the epoch number of the adjacency table.
Beginning a New Epoch and Incrementing the Epoch Number of CEF Tables
To begin a new epoch and increment the epoch number of one or all CEF tables, use the following command in privileged EXEC mode:
Command PurposeRouter# clear ip cef epoch
Begins a new epoch and increments the epoch number of one or all CEF tables.
Verifying Epoch Information
Step 1
Enter the show ip cef epoch command to display the table epochs of the adjacency table and all FIB tables:
Router# show ip cef epochCEF epoch information:Table: Default-tableTable epoch: 77 (19 entries at this epoch)Adjacency tableTable epoch: 16 (2 entries at this epoch)Step 2
Enter the show ip cef summary command to display the table epoch for a specified FIB table:
Router# show ip cef summaryIP Distributed CEF with switching (Table Version 1520), flags=0x0, bits=819 routes, 0 reresolve, 0 unresolved (0 old, 0 new), peak 69019 leaves, 23 nodes, 27036 bytes, 1534 inserts, 1515 invalidations0 load sharing elements, 0 bytes, 0 referencesuniversal per-destination load sharing algorithm, id 8526B6542(0) CEF resets, 0 revisions of existing leaves0 in-place/0 aborted modificationsResolution Timer: Exponential (currently 1s, peak 2s)refcounts: 6189 leaf, 6144 nodeTable epoch: 76 (19 entries at this epoch)Non-stop forwarding:19 routes at switchover19 routes available after convergence (0 purged)Step 3
Enter the show ip cef detail command to display the epoch value for each entry of a specified FIB table:
Router# show ip cef detailIP Distributed CEF with switching (Table Version 1520), flags=0x0, bits=819 routes, 0 reresolve, 0 unresolved (0 old, 0 new), peak 69019 leaves, 23 nodes, 27036 bytes, 1534 inserts, 1515 invalidations0 load sharing elements, 0 bytes, 0 referencesuniversal per-destination load sharing algorithm, id 8526B6542(0) CEF resets, 0 revisions of existing leaves0 in-place/0 aborted modificationsResolution Timer: Exponential (currently 1s, peak 2s)refcounts: 6189 leaf, 6144 nodeTable epoch: 76 (19 entries at this epoch)Non-stop forwarding:1019 routes at switchover1019 routes available after convergence (0 purged)...Step 4
Enter the show adjacency summary command to display the adjacency table epoch:
Router# show adjacency summaryAdjacency Table has 2 adjacenciesTable epoch: 14 (2 entries at this epoch)Interface Adjacency CountSerial5/0/0/1:1 1Serial5/0/1/1:1 1Step 5
Enter the show adjacency detail command to display the epoch value for each entry of the adjacency table:
Router# show adjacency detailProtocol Interface AddressIP Serial5/0/0/1:1 point2point(7)0 packets, 0 bytes0F000800CEF expires: 00:02:09refresh: 00:00:09Epoch: 14IP Serial5/0/1/1:1 point2point(7)0 packets, 0 bytes0F000800CEF expires: 00:02:09refresh: 00:00:09Epoch: 14
Configuration Examples
This section provides the examples of the following commands:
•
Beginning a New Epoch and Incrementing the Epoch Number of the Adjacency Table Example
•
Beginning a New Epoch and Incrementing the Epoch Number of CEF Tables Examples
Beginning a New Epoch and Incrementing the Epoch Number of the Adjacency Table Example
The following example begins a new epoch and increments the epoch number of the adjacency table:
Router# clear adjacency epochBeginning a New Epoch and Incrementing the Epoch Number of CEF Tables Examples
In the following example, the epoch table will be cleared and the epoch number will be incremented for all tables, including the adjacency table:
Router# clear ip cef epoch fullrouter# show ip cef epochCEF epoch information:Table: Default-tableTable epoch: 3 (43 entries at this epoch)Adjacency tableTable epoch: 3 (5 entries at this epoch)Command Reference
This section documents new and modified commands. All other commands used with this feature are documented in the Cisco IOS Release 12.2 command reference publications.
New Commands
Modified Commands
clear adjacency epoch
To begin a new epoch and increment the epoch number of the adjacency table, use the clear adjacency epoch command in privileged EXEC mode.
clear adjacency epoch
Syntax Description
This command has no arguments or keywords.
Command Modes
Privileged EXEC
Command History
Usage Guidelines
The clear adjacency epoch command increments the epoch and flushes entries with the old epoch. This command clears inconsistencies.
Use the clear adjacency epoch command when you want to rebuild the adjacency table. A new adjacency table may be required because the user wants to remove inconsistencies from the table.
Examples
The following example begins a new epoch and increments the epoch number of the adjacency table:
Router# clear adjacency epochRelated Commands
Command Descriptionclear ip cef epoch
Begins a new epoch and increments the epoch number for a CEF table.
clear ip cef epoch
To begin a new epoch and increment the epoch number for one or all Cisco Express Forwarding (CEF) tables, use the clear ip cef epoch command in privileged EXEC mode.
clear ip cef epoch [all-vrfs | full | vrf [table]]
Syntax Description
Command Modes
Privileged EXEC
Command History
Usage Guidelines
Use the clear ip cef epoch command when you want to rebuild a table. This command increments the epoch and flushes entries with the old epoch. This command clears any inconsistencies that may exist, so if everything in the system is working correctly, this command will have no effect on the CEF forwarding tables other than changing the current epoch values.
Examples
The following example shows the output before and after you clear the epoch table and increment the epoch number:
router# show ip cef epochCEF epoch information:Table: Default-tableTable epoch: 2 (43 entries at this epoch)Adjacency tableTable epoch: 2 (5 entries at this epoch)router# clear ip cef epoch fullrouter# show ip cef epochCEF epoch information:Table: Default-tableTable epoch: 3 (43 entries at this epoch)Adjacency tableTable epoch: 3 (5 entries at this epoch)Related Commands
show adjacency
To display Cisco Express Forwarding (CEF) adjacency table information, use the show adjacency command in EXEC mode.
show adjacency [interface-type] [detail] [summary]
Syntax Description
Command Modes
EXEC
Command History
Usage Guidelines
This command is used to verify that an adjacency exits for a connected device, that the adjacency is valid, and that the MAC header rewrite string is correct.
Examples
The following is sample output from the show adjacency detail command:
Router# show adjacency detailProtocol Interface AddressIP Serial5/0/0/1:1 point2point(7)0 packets, 0 bytes0F000800CEF expires: 00:02:09refresh: 00:00:09Epoch: 14IP Serial5/0/1/1:1 point2point(7)0 packets, 0 bytes0F000800CEF expires: 00:02:09refresh: 00:00:09Epoch: 14The following is sample output from the show adjacency summary command:
Router# show adjacency summaryAdjacency Table has 2 adjacenciesTable epoch: 14 (2 entries at this epoch)Interface Adjacency CountSerial5/0/0/1:1 1Serial5/0/1/1:1 1Table 1 describes the significant fields shown in the displays.
Related Commands
show ip cef
To display entries in the Forwarding Information Base (FIB) or to display a summary of the FIB, use the show ip cef command in EXEC mode:
show ip cef [vrf vrf-name][unresolved [detail] | detail | summary | epoch]
Syntax Description
Command Modes
EXEC
Command History
Usage Guidelines
The show ip cef command without any keywords or arguments shows a brief display of all FIB entries.
The show ip cef epoch command shows the table epochs of the adjacency table and of all FIB tables.
The show ip cef detail command shows detailed FIB entry information for all FIB entries.
Examples
The following is sample output from the show ip cef detail command:
Router# show ip cef detailIP Distributed CEF with switching (Table Version 1520), flags=0x0, bits=819 routes, 0 reresolve, 0 unresolved (0 old, 0 new), peak 69019 leaves, 23 nodes, 27036 bytes, 1534 inserts, 1515 invalidations0 load sharing elements, 0 bytes, 0 referencesuniversal per-destination load sharing algorithm, id 8526B6542(0) CEF resets, 0 revisions of existing leaves0 in-place/0 aborted modificationsResolution Timer: Exponential (currently 1s, peak 2s)refcounts: 6189 leaf, 6144 nodeTable epoch: 76 (19 entries at this epoch)Non-stop forwarding:1019 routes at switchover1019 routes available after convergence (0 purged)Adjacency Table has 2 adjacencies172.0.0.0/0, version 0, epoch 76, attached, default route handler0 packets, 0 bytesvia 172.0.0.0, 0 dependenciesvalid null adjacency172.0.0.0/32, version 1, epoch 76, receive172.1.1.0/24, version 13, epoch 76, cached adjacency to Serial5/0/1/1:10 packets, 0 bytestag information setlocal tag: 4via 2.2.2.1, 0 dependencies, recursivenext hop 2.2.2.1, Serial5/0/1/1:1 via 172.2.2.0/24valid cached adjacency172.2.2.0/24, version 14, epoch 76, attached, connected, cached adjacency to Serial5/0/1/1:10 packets, 0 bytesvia Serial5/0/1/1:1, 1 dependencyvalid cached adjacency172.2.2.0/32, version 11, epoch 76, receive172.2.2.2/32, version 10, epoch 76, receive172.2.2.255/32, version 12, epoch 76, receive172.3.3.0/24, version 15, epoch 76, attached, connected, cached adjacency to Serial5/0/0/1:10 packets, 0 bytesvia Serial5/0/0/1:1, 1 dependencyvalid cached adjacency172.3.3.0/32, version 5, epoch 76, receive172.3.3.1/32, version 4, epoch 76, receive172.3.3.255/32, version 6, epoch 76, receive172.4.4.0/24, version 16, epoch 76, cached adjacency to Serial5/0/0/1:10 packets, 0 bytestag information setlocal tag: 4via 172.3.3.2, 0 dependencies, recursivenext hop 172.3.3.2, Serial5/0/0/1:1 via 172.3.3.0/24valid cached adjacency172.0.0.0/8, version 517, epoch 76, attached, connected0 packets, 0 bytesvia Ethernet0/0/0, 0 dependenciesvalid glean adjacency172.0.0.0/32, version 8, epoch 76, receive172.0.0.254/32, version 7, epoch 76, receive172.255.255.255/32, version 9, epoch 76, receive172.0.0.0/4, version 1519, epoch 760 packets, 0 bytes, Precedence routine (0)via 172.0.0.0, 0 dependenciesnext hop 172.0.0.0valid drop adjacency172.0.0.0/24, version 3, epoch 76, receive172.255.255.255/32, version 2, epoch 76, receiveThe following example shows table epochs of the adjacency table and all FIB tables:
Router# show ip cef epochCEF epoch information:Table: Default-tableTable epoch: 77 (19 entries at this epoch)Adjacency tableTable epoch: 16 (2 entries at this epoch)The following example shows the forwarding table associated with the VRF named vrf1:
Router# show ip cef vrf vrf1Prefix Next Hop Interface0.0.0.0/32 receive11.0.0.0/8 50.0.0.1 Ethernet1/312.0.0.0/8 52.0.0.2 POS6/050.0.0.0/8 attached Ethernet1/350.0.0.0/32 receive50.0.0.1/32 50.0.0.1 Ethernet1/350.0.0.2/32 receive50.255.255.255/32 receive51.0.0.0/8 52.0.0.2 POS6/0224.0.0.0/24 receive255.255.255.255/32 receiveTable 2 describes the significant fields shown in the displays.
Related Commands