IP Library › Granted Patent US 12,499,075
Granted Patent B2
US 12,499,075 · App. 18/605,469 · Granted Dec 16, 2025

Hardware RDMA transport including new hole and received after a hole acknowledgements

Inventors: Linghe Wang (Austin, TX); David Arditti Ilitzky (Zapopan, MX); Brian Hausauer (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,499,075
App. No.
18/605,469
Filed
Mar 14, 2024
Granted
Dec 16, 2025
Kind
B2
Art Unit
2458
USPC
709/212
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 (62)

1 . A remote direct memory access (RDMA) network interface controller (NIC) for connection to a network to communicate with a remote RDMA NIC for receiving a stream of sequentially numbered packets from 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 packet processing logic coupled to the network interface which controls reception of packets from and transmission of packets to the network interface and provides reliability protocol elements;

RDMA NIC memory coupled to the RDMA NIC processor, the RDMA packet processing logic and the network interface, the RDMA NIC memory including:

buffer storage for storing received packets of the stream of sequentially numbered packets; and

RDMA NIC non-transitory storage for programs to execute from the RDMA NIC memory on the RDMA NIC processor, the RDMA NIC non-transitory storage including an RDMA NIC reliability protocol program,

wherein the RDMA NIC reliability protocol is configured to determine holes in the stream of sequentially numbered packets and packets received after a hole, to provide a new hole indication packet to the network interface upon determining a new hole and to provide a received packet after a hole packet to the network interface for packets received after a hole.

2 . The RDMA NIC of claim 1 , wherein the RDMA NIC reliability program is further configured to provide an acknowledgement of successful in-order reception to the network interface of at least one packet received before a hole is determined to have occurred and after all holes have been filled.

3 . The RDMA NIC of claim 2 , wherein the RDMA NIC reliability program is further configured to provide an acknowledgement of successful in-order reception of at least one packet upon receipt of a packet filling at least the earliest hole.

4 . The RDMA NIC of claim 3 , wherein the new hole indication packet can indicate one or more singular holes or ranges of holes.

5 . The RDMA NIC of claim 3 , wherein the earliest hole is the beginning of a range of holes or is a singular hole.

6 . The RDMA NIC of claim 1 , wherein the RDMA NIC memory further includes information on holes in the received stream of sequentially numbered packets,

wherein an allocated amount of the RDMA NIC memory is provided for the hole information, and

wherein the RDMA NIC reliability program is further configured to store hole information in the RDMA NIC memory, to determine when the allocated amount of RDMA NIC memory provided for hole information is exceeded and to provide a resources depleted packet to the network interface upon determining that the allocated amount of RDMA NIC memory provided for hole information has been exceeded.

7 . The RDMA NIC of claim 6 , wherein the RDMA NIC reliability program is further configured to provide a resources restored packet to the network interface after sufficient of the allocated memory provided for hole information has been cleared.

8 . 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 exchanging packets with 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 packet processing logic coupled to the network interface which controls reception of packets from and transmission of packets to the network interface and provides reliability protocol elements;

RDMA NIC memory coupled to the RDMA NIC processor, the RDMA packet processing logic and the network interface, the RDMA NIC memory including:

buffer storage for storing received packets of a stream of sequentially numbered packets; and

RDMA NIC non-transitory storage for programs to execute from the RDMA NIC memory on the RDMA NIC processor, the RDMA NIC non-transitory storage including an RDMA NIC reliability protocol program,

wherein the RDMA NIC reliability protocol is configured to determine holes in the stream of sequentially numbered packets and packets received after a hole, to provide a new hole indication packet to the network interface upon determining a new hole and to provide a received packet after a hole packet to the network interface for packets received after a hole.

9 . The computer system of claim 8 , wherein the RDMA NIC reliability program is further configured to provide an acknowledgement of successful in-order reception to the network interface of at least one packet received before a hole is determined to have occurred and after all holes have been filled.

10 . The computer system of claim 9 , wherein the RDMA NIC reliability program is further configured to provide an acknowledgement of successful in-order reception of at least one packet upon receipt of a packet filling at least the earliest hole.

11 . The computer system of claim 10 , wherein the new hole indication packet can indicate one or more singular holes or ranges of holes.

12 . The computer system of claim 10 , wherein the earliest hole is the beginning of a range of holes or is a singular hole.

13 . The computer system of claim 8 , wherein the RDMA NIC memory further includes information on holes in the received stream of sequentially numbered packets,

wherein an allocated amount of the RDMA NIC memory is provided for the hole information,

wherein the RDMA NIC reliability program is further configured to store hole information in the RDMA NIC memory, to determine when the allocated amount of RDMA NIC memory provided for hole information is exceeded and to provide a resources depleted packet to the network interface upon determining that the allocated amount of RDMA NIC memory provided for hole information has been exceeded.

14 . The computer system of claim 13 , wherein the RDMA NIC reliability program is further configured to provide a resources restored packet to the network interface after sufficient of the allocated memory provided for hole information has been cleared.

15 . A method of operating a remote direct memory access (RDMA) network interface controller (NIC) for connection to a network for receiving a stream of sequentially numbered packets from 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 packet processing logic coupled to the network interface which controls reception of packets from and transmission of packets to the network interface and provides reliability protocol elements;

RDMA NIC memory coupled to the RDMA NIC processor, the RDMA packet processing logic and the network interface, the RDMA NIC memory including:

buffer storage for storing received packets of a stream of sequentially numbered packets; and

RDMA NIC non-transitory storage for programs to execute from the RDMA NIC memory on the RDMA NIC processor, the RDMA NIC non-transitory storage including an RDMA NIC reliability protocol program,

the method comprising:

determining holes in the stream of sequentially numbered packets and packets received after a hole;

providing a new hole indication packet to the network interface upon determining a new hole; and

providing a received packet after a hole packet to the network interface for packets received after a hole.

16 . The method of claim 15 , further comprising providing an acknowledgement of successful in-order reception to the network interface of at least one packet received before a hole is determined to have occurred and after all holes have been filled.

17 . The method of claim 16 , further comprising providing an acknowledgement of successful in-order reception of at least one packet upon receipt of a packet filling at least the earliest hole.

18 . The method of claim 17 , wherein the new hole indication packet can indicate one or more singular holes or ranges of holes.

19 . The method of claim 17 , wherein the earliest hole is the beginning of a range of holes or is a singular hole.

20 . The method of claim 15 , wherein the RDMA NIC memory further includes information on holes in the received stream of sequentially numbered packets, and

wherein an allocated amount of the RDMA NIC memory is provided for the hole information,

the method further comprising:

storing hole information in the RDMA NIC memory;

determining when the allocated amount of RDMA NIC memory provided for hole information is exceeded; and

providing a resources depleted packet to the network interface upon determining that the allocated amount of RDMA NIC memory provided for hole information has been exceeded.

21 . The method of claim 20 , further comprising providing a resources restored packet to the network interface after sufficient of the allocated memory provided for hole information has been cleared.

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/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 21, 2024
From: WANG, LINGHE; ARDITTI ILITZKY, DAVID; HAUSAUER, BRIAN
To: DREAMBIG SEMICONDUCTOR, INC.
Reel/Frame 066862/0186 →
Continuity (3)
Provisional Application 63513873 · Jul 15, 2023
Provisional Application 63490660 · Mar 16, 2023
Related Publication 20240311333A1 · Sep 19, 2024
References Cited (38)
US 7107359B1 · Burton et al. · 2006 [cited by applicant]
US 11765237B1 · Liss et al. · 2023 [cited by applicant]
US 12137001B2 · Debbage et al. · 2024 [cited by applicant]
US 12341687B2 · Vegesna · 2025 [cited by examiner]
US 20160248628A1 · Pandit et al. · 2016 [cited by applicant]
US 20200236140A1 · Srinivasan · 2020 [cited by examiner]
US 20200274832A1 · Humphrey et al. · 2020 [cited by applicant]
US 20220404980A1 · Brown et al. · 2022 [cited by applicant]
US 20230231811A1 · Dalal · 2023 [cited by applicant]
US 20230344777A1 · Brar et al. · 2023 [cited by applicant]
US 20240080379A1 · Friedman et al. · 2024 [cited by applicant]
US 20240121294A1 · Underwood · 2024 [cited by applicant]
CN 117813595A · 2024 [cited by examiner]
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]
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-envisi… [cited by applicant]
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]