Packet processing approach to improve performance and energy efficiency for software routers

US9450780B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9450780-B2
Application numberUS-201213559992-A
CountryUS
Kind codeB2
Filing dateJul 27, 2012
Priority dateJul 27, 2012
Publication dateSep 20, 2016
Grant dateSep 20, 2016

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.

Methods, apparatus and systems for improved performance and energy efficiency of software-based routers. A software router running on a host computer system employing multiple Network Interface Controllers (NICs) maintains a routing table wherein packet flows are classified as managed flows (MFs) under which packets are received at and forwarded from the same NIC and unmanaged flows UFs under which packets are received at and forwarded from different NICs. Forwarding table data is employed by a NIC to facilitate packet identification and flow classification operations under which the NIC determines whether a received packet is an MF, UF, or an unclassified flow. Under various schemes, packet forwarding for MFs is handled by the software router architecture such that either only the packet header is copied into memory in the host or the entire packet forwarding is handled by the NIC.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed in a in a host computer system including a plurality of Network Interface Controller (NICs), each NIC including at least one input/output (I/O) port comprising an input port and an output port, the host computer system employing an operating system configured to implement a software-based router, the method comprising: classifying packet flows via operations performed by the software-based router, the classified packet flows including a first flow classification type under which packets are received at and forwarded out of a same NIC and a second flow classification type under which packets are received at and forwarded out of different NICs; generating, via the software-based router, at least one of packet filtering and rule data, and a flow identifier (ID) for each of a plurality of classified packet flows; receiving a packet at an input port of a first NIC in the host computer system; storing a packet header and a packet payload for the packet in an input buffer comprising a first memory buffer on the first NIC; employing the at least one of packet filtering and rule data and flow IDs at the first NIC to determine whether the packet is classified as a first flow classification type or a second flow classification type; if the packet is classified as a first flow classification type, copying the packet header into a second memory buffer accessible to a software component on the host computer system associated with the software-based router; modifying the packet header via the software component to create an outbound packet header; re-unioning the outbound packet header with the packet payload on the first NIC to create an outbound packet; and transmitting the outbound packet via the output port on the first NIC. 2. The method of claim 1 , further comprising: copying the packet header from a memory buffer on the first NIC to the second memory buffer using a direct memory access (DMA) operation, the memory buffer being either the first memory buffer or a separate memory buffer on the NIC. 3. The method of claim 1 , further comprising: copying the outbound packet header from a memory buffer in system memory of the host computer system to a memory buffer on the first NIC using a direct memory access (DMA) operation, the memory buffer being a separate memory buffer from the first memory buffer. 4. The method of claim 1 , further comprising: marking the packet header to identify it corresponds to a classified packet flow under which packets belonging to the classified packet flow are to be forwarded out of the output port on the first NIC. 5. The method of claim 1 , further comprising: tagging the packet payload with unique indicia derivable from data in the packet header; and p 1 employing the unique indicia to re-union the outbound packet header with the packet payload. 6. The method of claim 1 , further comprising: inspecting at least one field in the packet header and employing data corresponding to the at least one field as an input to a routing table to determine whether the packet is to be forwarded via an output port on the first NIC, and if so, copying an instance of the packet header and packet payload to an output buffer associated with the output port, the copy of the packet header and packet payload comprising an outbound packet; and transmitting the outbound packet out of an output port of the first NIC. 7. The method of claim 6 , further comprising decrementing a Time to Live (TTL) value in a TTL field of the packet header at the first NIC. 8. The method of claim 1 , further comprising: storing at least one of packet filtering and rule data in a forwarding table assessable to the software-based router; copying at least a portion of the at least one of packet filtering and rule data in the forwarding table to a forwarding table in memory on the first NIC; and employing the at least one of packet filtering and rule data in the forwarding table in memory on the first NIC to determine whether a received packet belongs to a classified packet flow. 9. The method of claim 8 , further comprising: in response to determining the received packet does not belong to a classified packet flow, copying packet data corresponding to the packet from a memory buffer on the first NIC to a memory buffer accessible to a software component associated with the software-based router; and generating a new classified packet flow for the packet. 10. The method of claim 1 , further comprising: storing at least one of packet filtering and rule data in a forwarding table assessable to the software-based router; copying at least a portion of the at least one of packet filtering and rule data in the forwarding table to a forwarding table in a memory-mapped input/output (MMIO) address space in system memory for the host computer system; and assessing, via the first NIC, at least one of packet filtering and rule data in the forwarding table in the MMIO address space to determine whether a received packet belongs to a classified packet flow. 11. A Network Interface Controller (NIC), configured to be installed in a host computer system in which a software-based router is implemented, comprising: at least one processing element; memory, operatively coupled to the at least one processing element when the NIC is operating; at least one input port; at least one output port; and an instruction store having instructions stored therein configured to be executed by the at least one processing element to enable the NIC to perform operations when operating, the operations including; in response to receiving a packet at an input port, buffering a packet header and a packet payload for the packet in an input buffer on the NIC; inspecting the packet header for the packet to determine if the packet corresponds to a first type of classified flow under which packets received at an input port on the NIC are to be forwarded out of an output port on the NIC or if the packet corresponds to a second type of classified flow under which packets received at an input port on the NIC are to be forwarded out of an output port of another NIC installed in the host computer system, wherein the determination of whether the packet belongs to the first or second type of classified flow employs packet filtering data generated by the software-based router; and in response to determining the packet corresponds to the first type of classified flow, performing a direct memory access (DMA) copy of the packet header for the packet from the input buffer to a memory buffer in the host computer system; receiving an outbound packet header via a DMA copy of the outbound packet header from a memory buffer in the host computer system to a memory buffer in the NIC memory, the outbound packet header comprising a modified version of the packet header copied to the memory buffer in the host computer system; re-unioning the outbound packet header with the packet payload for the packet to create an outbound packet on the NIC; and transmitting the outbound packet out of an output port of the NIC. 12. The NIC of claim 11 , wherein execution of the instructions, when the NIC is operating, performs further operations comprising: marking the packet header to identify it corresponds to the first type of classified flow. 13. The NIC of claim 11 , wherein execution of the instructions, when the NIC is operating, performs further operations comprising: tagging the packet payload with unique indicia; and employing the unique indicia to re-union the outbound packet header with the packet payload. 14. The NIC of claim

Assignees

Inventors

Classifications

  • Flow control; Congestion control · CPC title

  • H04L12/54Primary

    Store-and-forward switching systems  (packet switching systems H04L45/00, H04L47/00) · CPC title

  • H04L45/38Primary

    Flow based routing · CPC title

  • Organization of routing tables · CPC title

  • Physics · mapped topic

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 US9450780B2 cover?
Methods, apparatus and systems for improved performance and energy efficiency of software-based routers. A software router running on a host computer system employing multiple Network Interface Controllers (NICs) maintains a routing table wherein packet flows are classified as managed flows (MFs) under which packets are received at and forwarded from the same NIC and unmanaged flows UFs under w…
Who is the assignee on this patent?
Wang Ren, Tsai Jr-Shian, Manesh Maziar H, and 3 more
What technology area does this patent fall under?
Primary CPC classification H04L12/54. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Sep 20 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).