IP Library Granted Patent US 8,161,126
Granted Patent B2
US 8,161,126 · App. 11/001,724 · Granted Apr 17, 2012

System and method for RDMA QP state split between RNIC and host software

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 8,161,126
App. No.
11/001,724
Granted
Apr 17, 2012
Kind
B2
Abstract

Systems and methods for remote direct memory access (RDMA) queue pair (QP) state split between a RDMA aware network interface card (RNIC) and a host software or application are provided. If a QP state associated with a specific QP comprises a RTS state, the QP state may be processed by an RNIC coupled to a host. If the QP state comprises an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, the QP state may be offloaded to the host for processing. If the QP state comprises a RTS state, ownership of the QP may be transferred from the host to the RNIC. If the QP state comprises an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, ownership of the QP may be transferred from the RNIC to the host.

Claims (40)

1. A method for remote direct memory access (RDMA) operation, the method comprising:

if a queue pair (QP) state associated with a QP comprises a “ready to send” (RTS) state, offloading the QP state to an RDMA aware network interface card (RNIC) coupled to a host, for processing by the RNIC, wherein said offloading is performed by an RNIC driver that is a separate entity from the RNIC; and

if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, uploading the QP state to the host for processing, wherein said uploading is performed by said RNIC driver.

2. The method of claim 1 , comprising, if the QP state comprises a RTS state, transferring ownership of the QP from the host to the RNIC.

3. The method of claim 1 , comprising, if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, transferring ownership of the QP from the RNIC to the host.

4. The method of claim 1 , wherein the RTS state is associated with one or more of an RDMA send operation, an RDMA write operation, an RDMA receive operation, and/or an RDMA read operation.

5. The method of claim 1 , comprising processing the QP state by a RTS-only finite state machine (RTS-FSM).

6. The method of claim 5 , comprising implementing the RTS-FSM on a dedicated hardware residing on the RNIC.

7. The method of claim 1 , comprising, if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, processing the QP state by a full QP FSM (Full-FSM) residing on the host.

8. The method of claim 1 , comprising transferring QP ownership from the RNIC to the host upon occurrence of an unexpected event.

9. The method of claim 8 , comprising transferring at least one work queue entry (WQE) associated with the QP from the RNIC to the host.

10. The method of claim 1 , comprising generating a completion entry upon completion of the QP state processing by the host or the RNIC.

11. A non-transitory machine-readable medium having stored thereon, a computer program having at least one code section for remote direct memory access (RDMA) operation, the at least one code section being executable by a machine for causing the machine to perform steps comprising:

if a queue pair (QP) state associated with a QP comprises a “ready to send” (RTS) state, offloading the QP state to an RDMA aware network interface card (RNIC) coupled to a host, for processing by the RNIC, wherein said offloading is performed by an RNIC driver that is a separate entity from the RNIC; and

if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state, uploading the QP state to the host for processing, wherein said uploading is performed by said RNIC driver.

12. The non-transitory machine-readable medium of claim 11 , comprising, code for transferring ownership of the QP from the host to the RNIC, if the QP state comprises a RTS state.

13. The non-transitory machine-readable medium of claim 11 , comprising, code for transferring ownership of the QP from the RNIC to the host, if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state.

14. The non-transitory machine-readable medium of claim 11 , wherein the RTS state is associated with one or more of an RDMA send operation, an RDMA write operation, an RDMA receive operation, and/or an RDMA read operation.

15. The non-transitory machine-readable medium of claim 11 , comprising code for processing the QP state by a RTS-only finite state machine (RTS-FSM).

16. The non-transitory machine-readable medium of claim 15 , comprising code for implementing the RTS-FSM on a dedicated hardware residing on the RNIC.

17. The non-transitory machine-readable medium of claim 11 , comprising, code for processing the QP state by a full QP FSM (Full-FSM) residing on the host, if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state.

18. The non-transitory machine-readable medium of claim 11 , comprising code for transferring QP ownership from the RNIC to the host upon occurrence of an unexpected event.

19. The non-transitory machine-readable medium of claim 18 , comprising code for transferring at least one work queue entry (WQE) associated with the QP from the RNIC to the host.

20. The non-transitory machine-readable medium of claim 11 , comprising code for generating a completion entry upon completion of the QP state processing by the host or the RNIC.

21. A system for remote direct memory access (RDMA) operation, the system comprising:

an RNIC driver that offloads a queue pair (QP) state to an RDMA aware network interface card (RNIC) for processing the QP state by the RNIC, if the QP state comprises a “ready to send” (RTS) state, the RNIC driver being a separate entity from the RNIC; and

a host coupled to the RNIC that processes the QP state, the QP state being uploaded to the host by the RNIC driver, if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state.

22. The system of claim 21 , wherein, ownership of the QP is transferred from the host to the RNIC, if the QP state comprises a RTS state.

23. The system of claim 21 , wherein, ownership of the QP is transferred from the RNIC to the host, if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state.

24. The system of claim 21 , wherein the RTS state is associated with one or more of an RDMA send operation, an RDMA write operation, an RDMA receive operation, and/or an RDMA read operation.

25. The system of claim 21 , comprising, a RTS-only finite state machine (RTS-FSM) that processes the QP state, if the QP state comprises a RTS state.

26. The system of claim 25 , wherein the RTS-FSM is implemented on a dedicated hardware residing on the RNIC.

27. The system of claim 21 , comprising a full QP FSM (Full-FSM) that processes the QP state, if the QP state comprises one or more of an “idle” state, a “terminate” state, an “error” state, and/or a “closing” state.

28. The system of claim 27 , wherein the Full-FSM resides on the host.

29. The system of claim 27 , wherein the Full-FSM is implemented as a kernel mode driver on the host.

30. The system of claim 29 , wherein the kernel mode driver is implemented in software that runs on the host.

31. The system of claim 21 , comprising a completion entry that is generated upon completion of the QP state processing by the RNIC or the host.

32. The method according to claim 1 , wherein said uploading is performed without intervention from the RNIC.

33. The non-transitory machine-readable medium according to claim 11 , wherein said uploading is performed without intervention from the RNIC.

34. The system according to claim 21 , wherein said uploading is performed without intervention from the RNIC.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 09/05/2018 PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0133. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0456 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0133 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2005
From: FAN, KAN F.
To: BROADCOM CORPORATION
Reel/Frame 015582/0726 →