US2022377014A1PendingUtilityA1

Generic Packet Header Insertion and Removal

Assignee: MELLANOX TECHNOLOGIES LTDPriority: Feb 4, 2020Filed: Jul 27, 2022Published: Nov 24, 2022
Est. expiryFeb 4, 2040(~13.5 yrs left)· nominal 20-yr term from priority
H04L 45/745G06F 13/4221H04L 69/22H04L 45/74G06F 2213/0024
63
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A communication apparatus includes a host interface, connected to a peripheral component bus so as to communicate with a CPU and a memory of a host computer. A network interface is connected to a network. Packet processing circuitry is configured to receive from a first interface a data packet including a set of one or more headers that include header fields having respective values, to identify, responsively to at least one of the header fields, a corresponding entry in a header modification table that specifies a header modification operation, to modify the set of headers in accordance with the header modification operation, to check whether the entry specifies an additional header modification operation, to output the modified set of headers if the entry does not specify an additional header modification operation, and, if the entry specifies an additional header modification operation, to feed-back the modified set of headers.

Claims

exact text as granted — not AI-modified
1 . A 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 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:
 access a plurality of header modification instructions in the host computer, each header modification instruction specifying at least (i) a header modification operation and (ii) one or more anchor values indicating a packet location at which the header modification operation is to be performed; 
 receive from a first interface, selected from among the host interface and the network interface, a data packet comprising a set of one or more headers that comprise header fields having respective values; 
 identify, responsively to a value of at least one of the header fields, a corresponding header modification instruction in the plurality; 
 modify the set of headers in accordance with the header modification operation and the one or more anchor values of the identified header modification instruction; and 
 transmit the data packet, with the modified set of headers, through a second interface selected from among the host interface and the network interface. 
   
     
     
         2 . The apparatus according to  claim 1 , wherein the header modification operation comprises insertion of one or more fields in a specified location in the set of headers. 
     
     
         3 . The apparatus according to  claim 2 , wherein the one or more fields to be inserted are one or more protocol-specific headers. 
     
     
         4 . The apparatus according to  claim 2 , wherein values of the one or more fields to be inserted are specified in the header modification instruction. 
     
     
         5 . The apparatus according to  claim 2 , wherein the header modification instruction specifies a pointer to a memory address in which values of the one or more fields to be inserted are stored, and wherein the packet processing circuitry is configured to read the one or more values from the memory location and insert the one or more values into the set of headers. 
     
     
         6 . The apparatus according to  claim 2 , wherein the packet processing circuitry is configured to create a gap in the set of headers, and to insert one or more fields in the gap. 
     
     
         7 . The apparatus according to  claim 1 , wherein the header modification operation comprises removal of one or more fields from a specified location in the set of headers. 
     
     
         8 . The apparatus according to  claim 7 , wherein the one or more fields to be removed are one or more protocol-specific headers. 
     
     
         9 . 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. 
     
     
         10 . 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. 
     
     
         11 . 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 host computer and is looped back, after modification of the header, to another process running on the host computer. 
     
     
         12 . The apparatus according to  claim 1 , wherein the packet processing circuitry is configured to identify, responsively to the modified set of headers, 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. 
     
     
         13 . The apparatus according to  claim 1 , wherein the plurality of the header modification instructions is stored in a memory of the host computer and is accessed by the packet processing circuitry via the peripheral component bus. 
     
     
         14 . The apparatus according to  claim 1 , wherein the packet processing circuitry is configured to receive the header modification instructions from the host computer via an Application Programming Interface (API) that runs on the host computer. 
     
     
         15 . A method for communication, comprising:
 connecting a host interface to a peripheral component bus so as to communicate via the bus with a host computer;   connecting a network interface to a network so as to transmit outgoing data packets to the network and receive incoming data packets from the network; and   using packet processing circuitry, which is coupled between the host interface and the network interface:
 accessing a plurality of header modification instructions in the host computer, each header modification instruction specifying at least (i) a header modification operation and (ii) one or more anchor values indicating a packet location at which the header modification operation is to be performed; 
 receiving from a first interface, selected from among the host interface and the network interface, a data packet comprising a set of one or more headers that comprise header fields having respective values; 
 identifying, responsively to a value of at least one of the header fields, a corresponding instruction in the plurality; 
 modifying the set of headers in accordance with the header modification operation and one or more anchor values of the header modification instruction; and 
 transmitting the data packet, with the modified set of headers, through a second interface selected from among the host interface and the network interface. 
   
     
     
         16 . The method according to  claim 15 , wherein the header modification operation comprises insertion of one or more fields in a specified location in the set of headers. 
     
     
         17 . The method according to  claim 16 , wherein the one or more fields to be inserted are one or more protocol-specific headers. 
     
     
         18 . The method according to  claim 16 , wherein values of the one or more fields to be inserted are specified in the header modification instruction. 
     
     
         19 . The method according to  claim 16 , wherein the header modification instruction comprises a pointer to a memory address in which values of the one or more fields to be inserted are stored, and wherein modifying the set of headers comprises reading the one or more values from the memory location and inserting the one or more values into the set of headers. 
     
     
         20 . The method according to  claim 16 , wherein modifying the set of headers comprises creating a gap in the set of headers, and inserting one or more fields in the gap. 
     
     
         21 . The method according to  claim 15 , wherein the header modification operation comprises removal of one or more fields from a specified location in the set of headers. 
     
     
         22 . The method according to  claim 21 , wherein the one or more fields to be removed are one or more protocol-specific headers. 
     
     
         23 . The method according to  claim 15 , 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. 
     
     
         24 . The method according to  claim 15 , 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. 
     
     
         25 . The method according to  claim 15 , wherein both the first and second interfaces are the host interface, such that the data packet is received from a process running on the host computer and is looped back, after modification of the header, to another process running on the host computer. 
     
     
         26 . The method according to  claim 15 , and comprising identifying, responsively to the modified set of headers, 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. 
     
     
         27 . The method according to  claim 15 , wherein the plurality of the header modification instructions is stored in a memory of the host computer, and wherein identifying the entry comprises accessing the header modification table via the peripheral component bus. 
     
     
         28 . The method according to  claim 15 , wherein accessing the header modification instructions comprises receiving the header modification instructions from the host computer via an Application Programming Interface (API) that runs on the host computer.

Join the waitlist — get patent alerts

Track US2022377014A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.