Combined hardware/software forwarding mechanism and method

US10243865B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10243865-B2
Application numberUS-201715454759-A
CountryUS
Kind codeB2
Filing dateMar 9, 2017
Priority dateMar 16, 2010
Publication dateMar 26, 2019
Grant dateMar 26, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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. 2. The method of claim 1 , wherein: the received packet is a first packet; the first packet is of a stream of packets corresponding to a session; the first packet is associated with an initial set up of the session; the software forwarding engine is selected to process the first packet based on determining that the first packet is the administrative-type packet; the first packet is processed and forwarded using only the software forwarding engine and without using the hardware forwarding engine; and the method further comprises: receiving a second packet at the network device, determining, at the network device, that the second packet is the payload-type packet of the stream of packets corresponding to the session, and selecting, at the network device, the hardware forwarding engine to process the second packet based on determining that the second packet is the payload-type, and processing and forwarding, by the network device, the second packet using only the hardware forwarding engine and without using the software forwarding engine. 3. The method of claim 1 , wherein: different packet types correspond to different levels of required processing speed; and selecting one of the software forwarding engine or the hardware forwarding engine to process the received packet is further based on a level of required processing speed corresponding to the determined packet type of the received packet. 4. The method of claim 1 , further comprising: determining, at the network device, a type of processing required to be performed on the received packet; wherein selecting one of the software forwarding engine or the hardware forwarding engine to process the received packet is further based on the determined type of processing required to be performed on the received packet. 5. The method of claim 4 , wherein: determining the type of processing required to be performed on the received packet includes determining whether layer-2 processing is required and determining whether layer-3 processing is required; and selecting one of the software forwarding engine or the hardware forwarding engine to process the received packet further based on whether layer-2 processing is required and whether layer-3 processing is required. 6. The method of claim 1 , further comprising, when the received packet belongs to a known flow of packets: determining, at the network device, an identifier of the flow to which the received packet belongs; wherein selecting one of the software forwarding engine or the hardware forwarding engine to process the received packet is further based on the identifier of the flow to which the received packet belongs. 7. The method of claim 1 , further comprising: determining, at the network device, a type of application corresponding to the received packet; wherein selecting one of the software forwarding engine or the hardware forwarding engine to process the received packet is further based on the determined type of application corresponding to the received packet. 8. The method of claim 1 , further comprising: determining, at the network device, at least one of i) a processing load of the software forwarding engine, and/or ii) a processing load of the hardware forwarding engine; wherein selecting the one of the software forwarding engine or the hardware forwarding engine includes using at least one of i) the processing load of the software forwarding engine, and/or ii) the processing load of the hardware forwarding engine to select the one of the software forwarding engine or the hardware forwarding engine. 9. The method of claim 8 , wherein determining at least one of i) the processing load of the software forwarding engine, and/or ii) the processing load of the hardware forwarding engine comprises determining a level of utilization of a ternary content addressable memory (TCAM) utilized by the hardware forwarding engine; wherein selecting the one of the software forwarding engine or the hardware forwarding engine includes using the level of utilization of the TCAM to select the one of the software forwarding engine or the hardware forwarding engine. 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 kno

Assignees

Inventors

Classifications

  • Parsing or analysis of headers · CPC title

  • Routing of multiclass traffic · CPC title

  • H04L45/60Primary

    Router architectures · CPC title

  • relying on flow classification, e.g. using integrated services [IntServ] · CPC title

  • H04L47/33Primary

    using forward notification · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10243865B2 cover?
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 pack…
Who is the assignee on this patent?
Marvell Israel Misl Ltd
What technology area does this patent fall under?
Primary CPC classification H04L45/60. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 26 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).