Combined hardware/software forwarding mechanism and method
First Claim
1. A method for forwarding network traffic in a network device, the method comprising:
- receiving a plurality of packets at the network device, the network device having (i) a software forwarding engine, the software forwarding engine being implemented using a processor executing machine readable instructions to determine a forwarding destination, and (ii) a hardware forwarding engine to determine the forwarding destination, wherein the network device is configured to process a received packet using only one of the software forwarding engine or the hardware forwarding engine;
classifying, at the network device, the received packet to determine whether the received packet belongs to a known flow of packets, wherein classifying includes generating a classification result that, at least when the received packet belongs to a known flow of packets, indicates a priority associated with the received packet;
selecting, at the network device, one of the software forwarding engine or the hardware forwarding engine using the classification result, wherein the one of the software forwarding engine or the hardware forwarding engine is selected to determine at least an egress port of the network device via which the packet is to be transmitted, and wherein selecting the one of the software forwarding engine or the hardware forwarding engine includesselecting the software forwarding engine when it is determined that the received packet does not belong to a known flow of packets, andselecting one of the software forwarding engine or the hardware forwarding engine based on the priority associated with the received packet when it is determined that the received packet belongs to a known flow of packets; and
processing and forwarding, by the network device, the received packet using only the selected one of the software forwarding engine or the hardware forwarding engine and without using the unselected one of the software forwarding engine and the hardware forwarding engine.
0 Assignments
0 Petitions
Accused Products
Abstract
A forwarding system comprises a identification engine, a hardware forwarding engine configured to process an ingressing packet, a software forwarding engine configured to process the ingressing packet, and a selection engine. The selection engine is configured to select one of the hardware forwarding engine or the software forwarding engine to process the ingressing packet. The selection is based on at least one of an indication of resource availability or a classification of the ingressing packet based on a priority of a flow as determined by the identification engine. In some embodiments, the selection engine selects different forwarding engines to process different packets of a same flow based on changes in resource availability or classification of the ingressing packet.
-
Citations
20 Claims
-
1. A method for forwarding network traffic in a network device, the method comprising:
-
receiving a plurality of packets at the network device, the network device having (i) a software forwarding engine, the software forwarding engine being implemented using a processor executing machine readable instructions to determine a forwarding destination, and (ii) a hardware forwarding engine to determine the forwarding destination, wherein the network device is configured to process a received packet using only one of the software forwarding engine or the hardware forwarding engine; classifying, at the network device, the received packet to determine whether the received packet belongs to a known flow of packets, wherein classifying includes generating a classification result that, at least when the received packet belongs to a known flow of packets, indicates a priority associated with the received packet; selecting, at the network device, one of the software forwarding engine or the hardware forwarding engine using the classification result, wherein the one of the software forwarding engine or the hardware forwarding engine is selected to determine at least an egress port of the network device via which the packet is to be transmitted, and wherein selecting the one of the software forwarding engine or the hardware forwarding engine includes selecting the software forwarding engine when it is determined that the received packet does not belong to a known flow of packets, and selecting one of the software forwarding engine or the hardware forwarding engine based on the priority associated with the received packet when it is determined that the received packet belongs to a known flow of packets; and processing and forwarding, by the network device, the received packet using only the selected one of the software forwarding engine or the hardware forwarding engine and without using the unselected one of the software forwarding engine and the hardware forwarding engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A network device, comprising:
-
one or more integrated circuits including; a processor; a memory coupled to the processor, the memory storing machine readable instructions that, when executed by the processor, cause the processor to implement a software forwarding engine configured to select, using the machine readable instructions, egress ports for transmitting packets from the network device; a hardware forwarding engine configured to select egress ports for transmitting packets from the network device, wherein the one or more integrated circuits are configured to process a received packet using only one of the software forwarding engine or the hardware forwarding engine; a classification engine configured to determine whether the received packet belongs to a known flow of packets, and generate a classification result that, at least when the received packet belongs to a known flow of packets, indicates a priority associated with the received packet; and a selection engine configured to select one of the software forwarding engine or the hardware forwarding engine using the classification result wherein the one of the software forwarding engine or the hardware forwarding engine is selected to determine at least an egress port of the network device for transmitting the received packet, wherein the selection engine is configured to select the software forwarding engine when it is determined that the received packet does not belong to a known flow of packets, and select one of the software forwarding engine or the hardware forwarding engine based on the priority associated with the received packet when it is determined that the received packet belongs to a known flow of packets; and wherein the one or more integrated circuits are configured to process the received packet and to forward the received packet to a selected egress port using only the selected one of the software forwarding engine or the hardware forwarding engine and without using the unselected one of the software forwarding engine and the hardware forwarding engine. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification