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 packet at the network device, the network device having (i) a software forwarding engine, and (ii) a hardware forwarding engine, wherein the software forwarding engine and the hardware forwarding engine are configured to determine egress ports of the network device via which received packets are to be transmitted along towards forwarding destinations, and wherein the software forwarding engine is implemented using a processor executing machine readable instructions;
analyzing, at the network device, a header of the received packet to determine i) whether the received packet belongs to any flows of packets already known to the network device, and ii) a packet type of the received packet, including determining whether the received packet is an administrative-type packet or a payload-type packet;
selecting, at the network device, one of the software forwarding engine or the hardware forwarding engine to process the received packet based on i) whether the received packet belongs to any flows of packets already known to the network device, and ii) the determined packet type, includingwhen it is determined that the received packet does not belong to any flow of packets already known to the network device, selecting the software forwarding engine, andwhen it is determined that the received packet belongs to one of the flows of packets already known to the network device, selecting one of the software forwarding engine or the hardware forwarding engine based at least in part on i) the one of the flows of packets already known to the network device and ii) the determination of whether the received packet is the administrative-type packet or the payload-type packet; 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 network device includes (i) a software forwarding engine, and (ii) a hardware forwarding engine, wherein the software forwarding engine is implemented using a processor executing machine readable instructions. The network device analyzes a header of a received packet to determine i) whether the received packet belongs to any flows of packets already known to the network device, and ii) a packet type of the received packet. The network device selects one of the software forwarding engine or the hardware forwarding engine to process the received packet based on i) whether the received packet belongs to any flows of packets already known to the network device, and ii) the determined packet type, including selecting the software forwarding engine when it is determined that the received packet does not belong to any flow of packets already known to the network device.
37 Citations
18 Claims
-
1. A method for forwarding network traffic in a network device, the method comprising:
-
receiving a packet at the network device, the network device having (i) a software forwarding engine, and (ii) a hardware forwarding engine, wherein the software forwarding engine and the hardware forwarding engine are configured to determine egress ports of the network device via which received packets are to be transmitted along towards forwarding destinations, and wherein the software forwarding engine is implemented using a processor executing machine readable instructions; analyzing, at the network device, a header of the received packet to determine i) whether the received packet belongs to any flows of packets already known to the network device, and ii) a packet type of the received packet, including determining whether the received packet is an administrative-type packet or a payload-type packet; selecting, at the network device, one of the software forwarding engine or the hardware forwarding engine to process the received packet based on i) whether the received packet belongs to any flows of packets already known to the network device, and ii) the determined packet type, including when it is determined that the received packet does not belong to any flow of packets already known to the network device, selecting the software forwarding engine, and when it is determined that the received packet belongs to one of the flows of packets already known to the network device, selecting one of the software forwarding engine or the hardware forwarding engine based at least in part on i) the one of the flows of packets already known to the network device and ii) the determination of whether the received packet is the administrative-type packet or the payload-type packet; 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. 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; a classification engine configured to determine whether a received packet belongs to a known flow of packets, and determine a packet type of the received packet, including determining whether the received packet is an administrative-type packet or a payload-type packet; and a selection engine configured to select one of the software forwarding engine or the hardware forwarding engine based on i) whether the received packet belongs to any flows of packets already known to the network device, and ii) the determined packet type, wherein the selection engine is further configured to when it is determined that the received packet does not belong to a known flow of packets, select the software forwarding engine, and when it is determined that the received packet belongs to one of the flows of packets already known to the network device, selecting one of the software forwarding engine or the hardware forwarding engine based at least in part on i) the one of the flows of packets already known to the network device and ii) the determination of whether the received packet is the administrative-type packet or the payload-type packet; 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 (11, 12, 13, 14, 15, 16, 17, 18)
-
Specification