Flow-based packet modification

US2016359768A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016359768-A1
Application numberUS-201514729127-A
CountryUS
Kind codeA1
Filing dateJun 3, 2015
Priority dateJun 3, 2015
Publication dateDec 8, 2016
Grant date

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.

Communication apparatus includes a host interface, which is configured to be connected to a peripheral component bus, and a network interface, which is configured to be connected to a network. Packet processing circuitry is coupled between the host interface and the network interface and is configured to receive from a first interface, selected from among the host interface and the network interface, a data packet comprising a header containing multiple fields having respective values, to identify, responsively to a value of at least one of the fields, a corresponding entry in a header modification table, and to modify the header in accordance with the identified entry. The data packet with the modified header is transmitted through a second interface selected from among the host interface and the network interface.

First claim

Opening claim text (preview).

1 . Communication apparatus, comprising: a host interface, which is configured to be connected to a peripheral component bus so as to communicate via the bus with a central processing unit (CPU) and a memory of a host computer; a network interface, which is configured to be connected to a network so as to transmit outgoing data packets to the network and receive incoming data packets from the network; and packet processing circuitry, which is coupled between the host interface and the network interface and is configured: to receive from a first interface, selected from among the host interface and the network interface, a data packet comprising a header containing multiple fields having respective values; to identify, responsively to a value of at least one of the fields, a corresponding entry in a header modification table; to modify the header in accordance with the identified entry; and to transmit the data packet with the modified header through a second interface selected from among the host interface and the network interface. 2 . The apparatus according to claim 1 , wherein one of the first and second interfaces is the host interface and the other of the first and second interfaces is the network interface. 3 . The apparatus according to claim 1 , wherein both the first and second interfaces are the network interface, such that the data packet is received from the network and is looped back to the network after modification of the header. 4 . The apparatus according to claim 1 , wherein both the first and second interfaces are the host interface, such that the data packet is received from a process running on the CPU and is looped back, after modification of the header, to another process running on the CPU. 5 . The apparatus according to claim 1 , wherein the packet processing circuitry is configured to identify, responsively to the modified header, a steering instruction in a packet steering table, and to steer the packet to a destination via the second interface in accordance with the identified steering instructions. 6 . The apparatus according to claim 1 , wherein the header modification table is stored in the memory of the host computer and is accessed by the packet processing circuitry via the peripheral component bus. 7 . The apparatus according to claim 1 , wherein the packet processing circuitry is configured to modify the header by rewriting a field of the header. 8 . The apparatus according to claim 7 , wherein rewriting the field comprises replacing an existing value of the field with a constant value. 9 . The apparatus according to claim 7 , wherein rewriting the field comprises replacing an existing value of the field with a new value taken from another field in the header. 10 . The apparatus according to claim 7 , wherein rewriting the field comprises adding a constant value to an existing value of the field. 11 . The apparatus according to claim 1 , wherein the packet processing circuitry is configured to modify the header by pushing one or more new header fields onto the packet. 12 . The apparatus according to claim 11 , wherein the one or more new header fields constitute a new header, which is selected from a set of header types consisting of a virtual local area network (ULAN) header, a multi-protocol label switching (MPLS) label, and a provider backbone bridge (PBB) header. 13 . The apparatus according to claim 1 , wherein the packet processing circuitry is configured to modify the header by popping one or more of the fields from the header. 14 . A method for communication, comprising: connecting a host interface of a network interface controller (NIC) to a peripheral component bus so as to communicate via the bus with a central processing unit (CPU) and a memory of a host computer; connecting a network interface of the NIC to a network so as to transmit outgoing data packets to the network and receive incoming data packets from the network; receiving in the NIC from a first interface, selected from among the host interface and the network interface, a data packet comprising a header containing multiple fields having respective values; identifying in the NIC, responsively to a value of at least one of the fields, a corresponding entry in a header modification table; modifying the header in the NIC in accordance with the identified entry; and transmitting the data packet with the modified header through a second interface selected from among the host interface and the network interface. 15 . The method according to claim 14 , wherein one of the first and second interfaces is the host interface and the other of the first and second interfaces is the network interface. 16 . The method according to claim 14 , wherein both the first and second interfaces are the network interface, such that the data packet is received from the network, and transmitting the data packet comprises looping the data packet back to the network after modification of the header. 17 . The method according to claim 14 , wherein both the first and second interfaces are the host interface, such that the data packet is received from a process running on the CPU, and transmitting the data packet comprises looping the data packet back, after modifying the header, to another process running on the CPU. 18 . The method according to claim 14 , wherein transmitting the data packet comprises identifying in the NIC, responsively to the modified header, a steering instruction in a packet steering table, and steering the packet to a destination via the second interface in accordance with the identified steering instructions. 19 . The method according to claim 14 , wherein identifying the corresponding entry in the header modification table comprises reading the entry into the NIC via the peripheral component bus from the memory of the host computer. 20 . The method according to claim 14 , wherein modifying the header comprises rewriting a field of the header. 21 . The method according to claim 20 , wherein rewriting the field comprises replacing an existing value of the field with a constant value. 22 . The method according to claim 20 , wherein rewriting the field comprises replacing an existing value of the field with a new value taken from another field in the header. 23 . The method according to claim 20 , wherein rewriting the field comprises adding a constant value to an existing value of the field. 24 . The method according to claim 14 , wherein modifying the header comprises pushing one or more new header fields onto the packet. 25 . The method according to claim 24 , wherein the one or more new header fields constitute a new header, which is selected from a set of header types consisting of a virtual local area network (ULAN) header, a multi-protocol label switching (MPLS) label, and a provider backbone bridge (PBB) header. 26 . The method according to claim 14 , wherein modifying the header comprises popping one or more of the fields from the header.

Assignees

Inventors

Classifications

  • Header conversion, routing tables or routing tags · CPC title

  • Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly · CPC title

  • Parsing or analysis of headers · 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 US2016359768A1 cover?
Communication apparatus includes a host interface, which is configured to be connected to a peripheral component bus, and a network interface, which is configured to be connected to a network. Packet processing circuitry is coupled between the host interface and the network interface and is configured to receive from a first interface, selected from among the host interface and the network inte…
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification H04L49/3009. Mapped technology areas include Electricity.
When was this patent published?
Publication date Thu Dec 08 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).