IP Library Granted Patent US 12,481,616
Granted Patent B2
US 12,481,616 · App. 18/605,520 · Granted Nov 25, 2025

RDMA NIC utilizing packet level request and response interleaving

Inventors: Brian Hausauer (Austin, TX); David Arditti Ilitzky (Zapopan, MX); Linghe Wang (Austin, TX)
Assignee: DreamBig Semiconductor, Inc.
G06F15/17331G06F13/28H04L67/1097H04L69/161H04L69/22
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 12,481,616
App. No.
18/605,520
Granted
Nov 25, 2025
Kind
B2
Abstract

A best efforts (BE) hardware remote direct memory access (RDMA) transport being performed by a smart network interface controller (NIC). Elements from RoCEv2 and iWARP are utilized in combination with extensions to improve flexibility and packet error recovery. Flexibility is provided by allowing RDMA roles to be individually specified. Flexibility is also provided by additional packet numbering options to allow interleaving of request and response messages at a packet boundary. Error recovery is improved by utilized new acknowledgement responses, SNAK provided for each new hole detected and RACK for each received packet after a SNAK. SNAK allows the indication of resource exhaustion at the receiver, causing entry into a recovery mode where only packets in a hole are transmitted until resources are recovered.

Claims (46)

1 . A remote direct memory access (RDMA) network interface controller (NIC) for connection to a network to communicate with a remote RDMA NIC by providing request messages and response messages to the remote RDMA NIC, the RDMA NIC comprising:

a network interface for connection to the network;

an RDMA NIC processor coupled to the network interface;

RDMA header processing logic which builds RDMA packet headers to include values identifying individual packets in request packet flows and response packet flows so that request message packets can be interleaved with response message packets on a packet basis without ambiguity and allowing packet reliability operations;

RDMA NIC memory coupled to the RDMA NIC processor, the RDMA header processing logic and the network interface; and

RDMA NIC non-transitory storage for programs to execute from the RDMA NIC memory on the RDMA NIC processor.

2 . The RDMA NIC of claim 1 , wherein the RDMA header processing logic builds RDMA packet headers to include an added header and repurposes the packet sequence number (PSN) field of the base transport header (BTH) header so that one of the added header and the repurposed PSN field provides a message number and the other of the added header and the repurposed PSN field provides an intra message packet number, the message number incrementing with each new message and staying the same for each packet in the message and the intra message packet number incrementing for each packet in the message.

3 . The RDMA NIC of claim 2 , wherein the RDMA NIC non-transitory storage includes a RDMA NIC reliability protocol program; and

wherein the RDMA NIC reliability protocol program is configured to determine holes in a received stream of packets by examining the added header and the repurposed PSN field in the received packets.

4 . The RDMA NIC of claim 1 , wherein the RDMA header processing logic which builds RDMA packet headers so that request messages use a first sequence of packet sequence number (PSNs) and response messages utilize a second, different sequence of PSNs, the first sequence of PSNs increasing with each packet in a request message and the second sequence of PSNs increasing with each packet in a response message.

5 . The RDMA NIC of claim 4 , wherein the RDMA NIC non-transitory storage includes a RDMA NIC reliability protocol program; and

wherein the RDMA NIC reliability protocol program is configured to determine holes in a received stream of packets by examining the first sequence of PSNs and the second sequence of PSNs.

6 . A computer system comprising:

a computer including:

a computer processor;

a memory controller coupled to the computer processor;

computer memory coupled to the computer processor and the memory controller;

a computer peripheral device interface coupled to the computer processor and to the computer memory; and

computer non-transitory storage for programs to execute from computer memory on the computer processor; and

a remote direct memory access (RDMA) network interface controller (NIC) for connection to an Ethernet network to communicate with a remote RDMA NIC by providing request messages and response messages to the remote RDMA NIC, the RDMA NIC including:

an RDMA NIC peripheral device interface for connection to the computer;

a network interface for connection to the network;

an RDMA NIC processor coupled to the network interface;

RDMA header processing logic which builds RDMA packet headers to include values identifying individual packets in request packet flows and response packet flows so that request message packets can be interleaved with response message packets on a packet basis without ambiguity and allowing packet reliability operations;

RDMA NIC memory coupled to the RDMA NIC processor, the RDMA header processing logic and the network interface, the RDMA NIC memory; and

RDMA NIC non-transitory storage for programs to execute from the RDMA NIC memory on the RDMA NIC processor.

7 . The computer system of claim 6 , wherein the RDMA header processing logic builds RDMA packet headers to include an added header and repurposes the packet sequence number (PSN) field of the base transport header (BTH) header so that one of the added header and the repurposed PSN field provides a message number and the other of the added header and the repurposed PSN field provides an intra message packet number, the message number incrementing with each new message and staying the same for each packet in the message and the intra message packet number incrementing for each packet in the message.

8 . The computer system of claim 7 , wherein the RDMA NIC non-transitory storage includes a RDMA NIC reliability protocol program; and

wherein the RDMA NIC reliability protocol program is configured to determine holes in a received stream of packets by examining the added header and the repurposed PSN field in the received packets.

9 . The computer system of claim 6 , wherein the RDMA header processing logic which builds RDMA packet headers so that request messages use a first sequence of packet sequence number (PSNs) and response messages utilize a second, different sequence of PSNs, the first sequence of PSNs increasing with each packet in a request message and the second sequence of PSNs increasing with each packet in a response message.

10 . The computer system of claim 9 , wherein the RDMA NIC non-transitory storage includes a RDMA NIC reliability protocol program; and

wherein the RDMA NIC reliability protocol program is configured to determine holes in a received stream of packets by examining the first sequence of PSNs and the second sequence of PSNs.

11 . A method of operating a remote direct memory access (RDMA) network interface controller (NIC) for connection to a lossy Ethernet network to communicate with a remote RDMA NIC by providing request messages and response messages to the remote RDMA NIC, the RDMA NIC comprising:

a network interface for connection to the network;

an RDMA NIC processor coupled to the network interface;

RDMA header processing logic which builds RDMA packet headers;

RDMA NIC memory coupled to the RDMA NIC processor, the RDMA header processing logic and the network interface; and

RDMA NIC non-transitory storage for programs to execute from the RDMA NIC memory on the RDMA NIC processor,

the method comprising:

including values in the RDMA packet headers identifying individual packets in request packet flows and response packet flows so that request message packets can be interleaved with response message packets on a packet basis without ambiguity and allowing packet reliability operations.

12 . The method of claim 11 , further comprising building RDMA packet headers to include an added header and repurposes the packet sequence number (PSN) field of the base transport header (BTH) header so that one of the added header and the repurposed PSN field provides a message number and the other of the added header and the repurposed PSN field provides an intra message packet number, the message number incrementing with each new message and staying the same for each packet in the message and the intra message packet number incrementing for each packet in the message.

13 . The method of claim 12 , wherein the RDMA NIC non-transitory storage includes a RDMA NIC reliability protocol program; and

the method further comprising determining holes in a received stream of packets by examining the added header and the repurposed PSN field in the received packets.

14 . The method of claim 11 , further comprising building RDMA packet headers so that request messages use a first sequence of packet sequence number (PSNs) and response messages utilize a second, different sequence of PSNs, the first sequence of PSNs increasing with each packet in a request message and the second sequence of PSNs increasing with each packet in a response message.

15 . The method of claim 14 , wherein the RDMA NIC non-transitory storage includes a RDMA NIC reliability protocol program, and

the method further comprising determining holes in a received stream of packets by examining the first sequence of PSNs and the second sequence of PSNs.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2025
From: ARDITTI ILITZKY, DAVID; WANG, LINGHE; HAUSAUER, BRIAN S
To: DREAMBIG SEMICONDUCTOR INC.
Reel/Frame 073237/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2024
From: HAUSAUER, BRIAN; ARDITTI ILITZKY, DAVID; WANG, LINGHE
To: DREAMBIG SEMICONDUCTOR, INC.
Reel/Frame 066862/0262 →
Continuity (3)
Provisional Application 63513873 · Jul 15, 2023
Provisional Application 63490660 · Mar 16, 2023
Related Publication 20240314203A1 · Sep 19, 2024
References Cited (39)
US 7107359B1 · Burton et al. · 2006 [cited by applicant]
US 11765237B1 · Liss · 2023 [cited by examiner]
US 12137001B2 · Debbage et al. · 2024 [cited by applicant]
US 12341687B2 · Vegesna et al. · 2025 [cited by applicant]
US 20160248628A1 · Pandit et al. · 2016 [cited by applicant]
US 20200236140A1 · Srinivasan et al. · 2020 [cited by applicant]
US 20200274832A1 · Humphrey et al. · 2020 [cited by applicant]
US 20220404980A1 · Brown · 2022 [cited by examiner]
US 20230231811A1 · Dalal · 2023 [cited by examiner]
US 20230344777A1 · Brar · 2023 [cited by examiner]
US 20240080379A1 · Friedman · 2024 [cited by examiner]
US 20240121294A1 · Underwood · 2024 [cited by examiner]
WO 2023016646A1 · 2023 [cited by applicant]
Wang et al., “StaR: Breaking the Scalability Limit for RDMA”, Nov. 1, 2021, IEEE, 2021 IEEE 29th International Conference on Network Protocols (ICN P) (2021, pp. 1-11) (Year: 2021). [cited by examiner]
Arjun Singhvi, Aditya Akella, Dan Gibson, Thomas F Wenisch, Monica Wong-Chan, Sean Clark, Milo M. K. Martin, Moray McLaren, Prashant Chandra, Rob Cauble, Hassan Mohamed Gamal Wassel, Behnam Montazeri, Simon L Sabato, Jo… [cited by applicant]
InfiniBand Trade Association, “Supplement to InfiniBand Architecture Specification vol. 1 Release 1.2.1, Annex A16: RDMA over Converged Ethernet (RoCE),” Apr. 6, 2010. [cited by applicant]
InfiniBand Trade Association, “Supplement to InfiniBand Architecture Specification vol. 1 Release 1.2.1, Annex A17: RoCEv2,” Sep. 2, 2014. [cited by applicant]
InfiniBand Trade Association, “InfiniBand Architecture Specification vol. 1 Release 1.2.1,” Nov. 2007. [cited by applicant]
Radhika Mittal, Alexander Shpiner, Aurojit Panda, Eitan Zahavi, Arvind Krishnamurthy, Sylvia Ratnasamy, Scott Shenker; “Revisiting Network Support for RDMA;” Association for Computing Machinery, SIGCOMM '18: Proceedings… [cited by applicant]
Radhika Mittal, Alexander Shpiner, Aurojit Panda, Eitan Zahavi, Arvind Krishnamurthy, Sylvia Ratnasamy, Scott Shenker; “Revisiting Network Support for RDMA—Extended Version of SIGCOMM 2018 paper;” Jun. 21, 2018, arxiv.o… [cited by applicant]
M. Mathis, J. Mahdavi, S. Floyd, A. Romanow; “RFC 2018—TCP Selective Acknowledgment Options;” Internet Engineering Task Force; Oct. 1996. [cited by applicant]
E. Blanton, M. Allman, K. Fall, L. Wang; “RFC 3517—A Conservative Selective Acknowledgment (SACK)-based Loss Recovery Algorithm for TCP;” Internet Engineering Task Force; Apr. 2003. [cited by applicant]
R. Recio, B. Metzler, P. Culley, J. Hilland, D. Garcia; “RFC 5040—A Remote Direct Memory Access Protocol Specification;” Internet Engineering Task Force; Oct. 2007. [cited by applicant]
H. Shah, J. Pinkerton, R. Recio, P. Culley; “RFC 5041—Direct Data Placement over Reliable Transports;” Internet Engineering Task Force; Oct. 2007. [cited by applicant]
J. Pinkerton, E. Deleganes; “RFC 5042—Direct Data Placement Protocol (DDP) / Remote Direct Memory Access Protocol (RDMAP) Security;” Internet Engineering Task Force; Oct. 2007. [cited by applicant]
C. Bestler, R. Stewart; “RFC 5043—Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation;” Internet Engineering Task Force; Oct. 2007. [cited by applicant]
P. Culley, U. Elzur, R. Recio, S. Bailey, J. Carrier; “RFC 5044—Marker PDU Aligned Framing for TCP Specification;” Internet Engineering Task Force; Oct. 2007. [cited by applicant]
C. Bestler, L. Coene; “RFC 5045—Applicability of Remote Direct Memory Access Protocol (RDMA) and Direct Data Placement Protocol (DDP);” Internet Engineering Task Force; Oct. 2007. [cited by applicant]
A. Kanevsky, C. Bestler, R. Sharp, S. Wise; “RFC 6581—Enhanced Remote Direct Memory Access (RDMA) Connection Establishment;” Internet Engineering Task Force; Apr. 2012. [cited by applicant]
M. Allman, V. Paxson, E. Blanton; “RFC 5681—TCP Congestion Control;” Internet Engineering Task Force; Sep. 2009. [cited by applicant]
P. Sarolahti, M. Kojo, K. Yamamoto, M. Hata; “RFC 5682—Forward RTO-Recovery (F-RTO): An Algorithm for Detecting Spurious Retransmission Timeouts with TCP;” Internet Engineering Task Force; Sep. 2009. [cited by applicant]
V. Paxson, M. Allman, J. Chu, M. Sargent; “RFC 6298—Computing TCP's Retransmission Timer;” Internet Engineering Task Force; Jun. 2011. [cited by applicant]
M. Ko, D. Black; :RFC 6580—IANA Registries for the Remote Direct Data Placement (RDDP) Protocols; Internet Engineering Task Force; Apr. 2012. [cited by applicant]
H. Shah, F. Marti, W. Noureddine, A. Eiriksson, R. Sharp; “RFC 7306—Remote Direct Memory Access (RDMA) Protocol Extensions;” Internet Engineering Task Force; Jun. 2014. [cited by applicant]
Y. Cheng N. Cardwell, N. Dukkipati, P. Jha; “RFC 8985—The RACK-TLP Loss Detection Algorithm for TCP;” Internet Engineering Task Force; Feb. 2021. [cited by applicant]
J. Iyengar, M. Thomson; “RFC 9000—QUIC: A UDP-Based Multiplexed and Secure Transport;” Internet Engineering Task Force; May 2021. [cited by applicant]
J. Iyengar, I. Swett; “RFC 9002—QUIC Loss Detection and Congestion Control;” Internet Engineering Task Force; May 2021. [cited by applicant]
A. Singhvi, A. Akella, D. Gibson, T. F Wenisch, M. Wong-Chan, S. Clark, M. M. K. Martin, M.Mclaren, p. Chandra, R. Cauble, H. Mohamed Gamal Wassel, B. Montazeri, S. L Sabato, J. Scherpelz, A. M Vahdat, “1RMA: Re-envisio… [cited by applicant]
M. Handley, C. Raiciu, A. Agache, A. Voinescu, A. W. Moore, G. Antichi, M. Wójcik, “Re-architecting datacenter networks and stacks for low latency and high performance,” Association for Computing Machinery, Proceedings … [cited by applicant]