Combined Hardware/Software Forwarding Mechanism and Method
First Claim
1. A method of utilizing hardware forwarding and software forwarding of network traffic, comprising:
- classifying a packet based at least in part on a priority of a flow to which the packet corresponds;
selecting one of a forwarding engine implemented using the processor executing the machine readable instructions or a hardware forwarding engine to make a forwarding decision regarding the packet, wherein the selection is based on at least one of;
i) an availability of one or more resources of the hardware forwarding engine and/or the forwarding engine implemented using the processor executing the machine readable instructions, or ii) the classification of the packet; and
forwarding the packet using the selected forwarding engine.
1 Assignment
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.
28 Citations
19 Claims
-
1. A method of utilizing hardware forwarding and software forwarding of network traffic, comprising:
-
classifying a packet based at least in part on a priority of a flow to which the packet corresponds; selecting one of a forwarding engine implemented using the processor executing the machine readable instructions or a hardware forwarding engine to make a forwarding decision regarding the packet, wherein the selection is based on at least one of;
i) an availability of one or more resources of the hardware forwarding engine and/or the forwarding engine implemented using the processor executing the machine readable instructions, or ii) the classification of the packet; andforwarding the packet using the selected forwarding engine. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A forwarding system, comprising:
-
an identification engine, the identification engine configured to determine a classification of an ingressing packet based on a priority of a flow to which the ingressing packet corresponds; a hardware forwarding engine configured to process the ingressing packet; a forwarding engine implemented using a processor executing the machine readable instructions and configured to process the ingressing packet; and a selection engine configured to; select one of the hardware forwarding engine or the forwarding engine implemented using the processor executing the machine readable instructions based on at least one of;
i) an indication of an availability of one or more resources of the hardware forwarding engine and/or the forwarding engine implemented using the processor executing the machine readable instructions, or ii) the classification of the ingressing packet determined by the identification engine. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A forwarding system, comprising:
-
a processor and a memory; a parser and classifier engine; a software forwarding engine comprising first machine readable instructions stored on the memory, executable by the processor, and configured to process a packet for forwarding; a hardware forwarding engine configured to process the packet for forwarding; and a selection engine comprising second machine readable instructions stored on the memory, executable by the processor, and configured to; determine a selection one of;
the software forwarding engine or the hardware forwarding engine for processing the packet for forwarding, anddetermine the selection based on at least one of;
an indication of resource availability, or a classification of the packet determined by the parser and classifier engine, the classification of the packet based on a priority of a flow to which the packet corresponds. - View Dependent Claims (18, 19)
-
Specification