Process Switching
The type of packets that require software handling are:
- Packets sourced or destined to the router (that is, control traffic, routing protocols)
- Packets that are too complex for the hardware to handle (that is, IP packets with IP options)
- Packets that require extra information that is not currently known (that is, Address Resolution Protocol [ARP] resolution, and so on)
Software switching is significantly slower than switching done in hardware.
NetIO is designed to handle a very small percentage of traffic handled by the
system.
A packet that cannot be CEF switched is punted to the CPU for
processing. The ip_input process consults the routing table and ARP table to
obtain the next-hop router’s IP address, outgoing interface, and MAC address. It
then overwrites the destination MAC address of the packet with the next-hop
router’s MAC address, overwrites the source MAC address with the MAC address of
the outgoing Layer 3 interface, decrements the IP Time-To-Live (TTL) field,
recomputes the IP header checksum, and finally delivers the packet to the
next-hop router.
The routing table, also known as the Routing Information Base (RIB),
is built from information obtained from dynamic routing protocols, directly
connected and static routes. The ARP table is built from information obtained
from the ARP protocol. The ARP protocol is used by IP hosts to dynamically learn
the MAC address of other IP hosts on the same subnet. For example, an IP host
that needs to perform address resolution for another IP host connected by
Ethernet can send an ARP request using a LAN broadcast address, and it then
waits for an ARP reply from the IP host. The ARP reply includes the required
Layer 2 physical MAC address information.
Cisco Express Forwarding (CEF) is a Cisco proprietary switching mechanism developed to keep up with the demands of evolving network infrastructures.
Cisco Express Forwarding
Cisco Express Forwarding (CEF) is a Cisco proprietary switching mechanism developed to keep up with the demands of evolving network infrastructures.
- It has been the default switching mechanism on most Cisco platforms that do all their packet switching using the general-purpose CPU (software based routers) since the 1990s,
- And it is the default switching mechanism used by all Cisco platforms that use specialized application specific integrated circuits (ASICs) and network processing units (NPUs) for high packet throughput (hardware-based routers).
The general-purpose CPU on the software-based and hardware-based routers is
similar and perform all the same functions, the difference being that on
software based routers the general-purpose CPU is in charge of all operations,
including CEF switching (software CEF), and the hardware-based routers do CEF
switching using forwarding engines that are implemented in specialized
ASICs, TCAMs, and NPUs (hardware CEF). Forwarding engines provide the packet
switching, forwarding, and route lookup capability to routers.
Given the low cost of the general-purpose CPUs, the price point of software-based routers will be much more affordable, but at the expense of total packet throughput.
When a route processor (RP) engine is equipped with a forwarding engine so that it can make all the packet switching decisions, this is known as a centralized forwarding architecture. If the line cards are equipped with forwarding engines so that they can make packet switching decision without intervention of the RP, this is known as a distributed forwarding architecture.
For a centralized forwarding architecture, when a packet is received on the ingress line card, it is transmitted to the forwarding engine on the RP. The forwarding engine examines the packet’s headers and determines that the packet will be sent out a port on the egress line card, and forwards the packet to the egress line card to be forwarded.
For a distributed forwarding architecture, when a packet is received on the ingress line card, it is transmitted to the local forwarding engine. The forwarding engine performs a packet lookup, and if it determines that the outbound interface is local, it forwards the packet out a local interface. If the outbound interface is located on a different line card, the packet is sent across the switch fabric, also known as the backplane, directly to the egress line card, bypassing the RP.
Software CEF
Software CEF, also known as the software Forwarding Information Base (FIB), consists of the following components:
Hardware CEF
The ASICs in hardware-based routers have a very high cost to design, produce,
and troubleshoot. ASICs allow for very high packet rates, but the trade-off is
that they are limited in their functionality because they are hardwired to
perform specific tasks. There are routers equipped with NPUs that are designed
to overcome the inflexibility of ASICs. Unlike ASICs, NPUs are programmable, and
their firmware can be changed with relative ease.
The main advantage of the distributed forwarding architectures is that the packet throughput performance is greatly improved by offloading the packet switching responsibilities to the line cards. Packet switching in distributed architecture platforms is done via distributed CEF (dCEF), which is a mechanism in which the CEF data structures are downloaded to forwarding ASICs and the CPUs of all line cards so that they can participate in packet switching; this allows for the switching to be done at the distributed level, thus increasing the packet throughput of the router.
Software CEF in hardware-based platforms is not used to do packet switching as in software-based platforms; instead, it is used to program the hardware CEF,
The RIB process is in charge of the calculation of best paths, alternative paths, and the redistribution from different protocols and all these details merge into the global RIB (gRIB), where the best path for a destination network is installed. This is further distributed into the software CEF tables of different line cards, which is further mirrored into hardware CEF. The Switch Fabric is the backplane for all modules in the system. It creates a dedicated connection between all line cards and the route processors and provides fast data switching transmission between them.
In most distributed architecture platforms, if the incoming packet is control plane traffic or management traffic it is punted to the RP’s CPU. The following list includes some examples of packets that are typically punted for processing by the RP’s CPU or line card’s CPU:
Given the low cost of the general-purpose CPUs, the price point of software-based routers will be much more affordable, but at the expense of total packet throughput.
When a route processor (RP) engine is equipped with a forwarding engine so that it can make all the packet switching decisions, this is known as a centralized forwarding architecture. If the line cards are equipped with forwarding engines so that they can make packet switching decision without intervention of the RP, this is known as a distributed forwarding architecture.
For a centralized forwarding architecture, when a packet is received on the ingress line card, it is transmitted to the forwarding engine on the RP. The forwarding engine examines the packet’s headers and determines that the packet will be sent out a port on the egress line card, and forwards the packet to the egress line card to be forwarded.
For a distributed forwarding architecture, when a packet is received on the ingress line card, it is transmitted to the local forwarding engine. The forwarding engine performs a packet lookup, and if it determines that the outbound interface is local, it forwards the packet out a local interface. If the outbound interface is located on a different line card, the packet is sent across the switch fabric, also known as the backplane, directly to the egress line card, bypassing the RP.
Software CEF
Software CEF, also known as the software Forwarding Information Base (FIB), consists of the following components:
- Forwarding Information Base: The FIB is built directly from the routing table and contains the next-hop IP address for each destination IP in the network. It keeps a mirror image of the forwarding information contained in the IP routing table. When a routing or topology change occurs in the network, the IP routing table is updated, and these changes are reflected in the FIB. CEF uses the FIB to make IP destination prefix-based switching decisions
- Adjacency table: The adjacency table is also known as the Adjacency Information Base (AIB). It contains the MAC addresses and egress interfaces of all directly connected next hops, and it is populated with data from the ARP table and other Layer 2 protocol tables (that is, Frame Relay map tables).
Hardware CEF
The main advantage of the distributed forwarding architectures is that the packet throughput performance is greatly improved by offloading the packet switching responsibilities to the line cards. Packet switching in distributed architecture platforms is done via distributed CEF (dCEF), which is a mechanism in which the CEF data structures are downloaded to forwarding ASICs and the CPUs of all line cards so that they can participate in packet switching; this allows for the switching to be done at the distributed level, thus increasing the packet throughput of the router.
Software CEF in hardware-based platforms is not used to do packet switching as in software-based platforms; instead, it is used to program the hardware CEF,
The RIB process is in charge of the calculation of best paths, alternative paths, and the redistribution from different protocols and all these details merge into the global RIB (gRIB), where the best path for a destination network is installed. This is further distributed into the software CEF tables of different line cards, which is further mirrored into hardware CEF. The Switch Fabric is the backplane for all modules in the system. It creates a dedicated connection between all line cards and the route processors and provides fast data switching transmission between them.
In most distributed architecture platforms, if the incoming packet is control plane traffic or management traffic it is punted to the RP’s CPU. The following list includes some examples of packets that are typically punted for processing by the RP’s CPU or line card’s CPU:
- Control traffic, such as BGP, OSPF, IS-IS, PIM, IGMP, and so on
- Management traffic, such as Telnet, SSH, SNMP, and so on
- Layer 2 mechanisms, such as CDP, ARP, LACP PDU, BFD, and so on
- Fragmentation, DF bit set, IP options set
- TTL expired
- ICMP echo request
For Network Design, Build and Consulting Services,
please visit:
No comments:
Post a Comment