IP Library Granted Patent US 12670108
Granted Patent B2
US 12670108 · App. 18/224,262 · Granted Jun 30, 2026

System and method for low latency packet processing

Inventors: Ortal Ben Moshe (Ein HaEmek, IL); Roee Moyal (Yoqneam Ilit, IL); Shay Aisman (Zichron Ya'acov, IL); Gil Bloch (Zichron Ya'acov, IL); Ariel Shahar (Jerusalem, IL); Roman Nudelman (Kiryat Bialik, IL); Gil Kremer (Hadera, IL); Yossef Itigin (Hod Hasharon, IL); Lior Narkis (Petah Tikva, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F13/1642G06F9/546G06F13/1621
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12670108
App. No.
18/224,262
Granted
Jun 30, 2026
Kind
B2
Abstract

Systems and methods are described herein for processing data packets. An example network adapter may include a network interface operatively coupled to a communication network and a packet processing circuitry operatively coupled to the network interface. The packet processing circuitry may receive, via the network interface, a message; retrieve, via a packet processing circuitry, a work queue element (WQE) index identifying a position of a WQE in a receive queue; determine that the message is associated with a small payload; process the message without consuming the WQE; receive, via the network interface, a subsequent message; and process the subsequent message using the WQE. In this way, the systems and methods describe herein reduce the latency in processing of the data packets.

Claims (51)

1 . A network adapter, comprising:

a network interface operatively coupled to a communication network;

packet processing circuitry operatively coupled to the network interface, wherein the packet processing circuitry is configured to:

receive, via the network interface, a message;

retrieve a work queue element (WQE) index identifying a position of an inline WQE in a receive queue;

determine that the message is associated with a small payload that does not require writing to one or more memory indices associated with a memory;

process the message without consuming the WQE;

generate a completion queue element (CQE) indicating that the message was processed without consuming the WQE, thereby uncoupling a correlation between the WQE and the CQE;

receive, via the network interface, a subsequent message; and

process the subsequent message using the WQE.

2 . The network adapter of claim 1 , wherein the subsequent message is not associated with a small payload.

3 . The network adapter of claim 1 , wherein the packet processing circuitry is further configured to:

write the message to a completion notification indicating that the message has been processed.

4 . The network adapter of claim 1 , wherein the packet processing circuitry is further configured to:

determine a receive queue state associated with the receive queue prior to receiving the message; and

maintain the receive queue state in response to processing the message.

5 . The network adapter of claim 1 , wherein the message comprises an immediate message.

6 . The network adapter of claim 1 , wherein, in generating the CQE, the packet processing circuitry is further configured to:

transmit, to a driver program, a notification comprising instructions to not post a new WQE in the receive queue.

7 . A method for processing data packets, the method comprising:

receiving, via a network interface, a message;

retrieving a work queue element (WQE) index identifying a position of an inline WQE in a receive queue;

determining, via a packet processing circuitry, that the message is associated with a small payload that does not require writing to one or more memory indices associated with a memory;

processing, via the packet processing circuitry, the message without consuming the WQE;

generating, via the packet processing circuitry, a completion queue element (CQE) indicating that the message was processed without consuming the WQE, thereby uncoupling a correlation between the WQE and the CQE;

receiving, via the network interface, a subsequent message; and

processing, via the packet processing circuitry, the subsequent message using the WQE.

8 . The method of claim 7 , wherein the subsequent message is not associated with a small payload.

9 . The method of claim 7 , wherein the method further comprises writing the message to a completion notification indicating that the message has been processed.

10 . The method of claim 7 , wherein the method further comprises:

determining a receive queue state associated with the receive queue prior to receiving the message; and

maintaining the receive queue state in response to processing the message.

11 . The method of claim 7 , wherein the message comprises an immediate message.

12 . The method of claim 7 , wherein generating the CQE further comprises transmitting, to a driver program, a notification comprising instructions to not post a new WQE in the receive queue.

13 . A computer program product for processing data packets, the computer program product comprising a non-transitory computer-readable medium comprising code configured to cause an apparatus to:

receive, via a network interface, a message;

retrieve, via a packet processing circuitry, a work queue element (WQE) index identifying a position of an inline WQE in a receive queue;

determine that the message is associated with a small payload that does not require writing to one or more memory indices associated with a memory;

process, via the packet processing circuitry, the message without consuming the WQE;

generate, via the packet processing circuitry, a completion queue element (CQE) indicating that the message was processed without consuming the WQE, thereby uncoupling a correlation between the WQE and the CQE;

receive, via a network interface, a subsequent message; and

process, via the packet processing circuitry, the subsequent message using the WQE.

14 . The computer program product of claim 13 , wherein the subsequent message is not associated with a small payload.

15 . The computer program product of claim 13 , wherein the code is further configured to cause the apparatus to:

write the message to a completion notification indicating that the message has been processed.

16 . The computer program product of claim 13 , wherein the code is further configured to cause the apparatus to:

determine a receive queue state associated with the receive queue prior to receiving the message; and

maintain the receive queue state in response to processing the message.

17 . The computer program product of claim 13 , wherein the message comprises an immediate message.

18 . The computer program product of claim 13 , wherein, in generating the CQE, the code is further configured to cause the apparatus to:

transmit, to a driver program, a notification comprising instructions to not post a new WQE in the receive queue.