IP Library › Granted Patent US 11,968,260
Granted Patent B2
US 11,968,260 · App. 18/454,182 · Granted Apr 23, 2024

Network interface card, message sending and receiving method, and storage apparatus

Inventors: Zhaojiao Han (Shenzhen, CN); Jianbo Li (Shenzhen, CN); Xindong Luo (Shenzhen, CN); Dahong Yan (Chengdu, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
H04L67/1097H04L67/143
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 11,968,260
App. No.
18/454,182
Granted
Apr 23, 2024
Kind
B2
Abstract

The technology of this application relates to a network interface card. The network interface card includes a parser and at least one shared connector. The parser receives a first SEND message that is from a host client and that corresponds to a first QP connection, and distributes the first SEND message to a first shared connector in the at least one shared connector. The first SEND message includes an RDMA operation command. The first shared connector obtains NVME information that is sent to a first controller and that corresponds to the first QP connection. The first shared connector interacts with a second controller when a disconnection event of a link between the first shared connector and the first controller is detected. The first shared connector obtains a WQE from the second controller. The first shared connector sends a first RDMA message corresponding to the first QP connection to the host client based on the WQE.

Claims (99)

1. A network interface card, comprising:

a processor; and

a memory configured to store computer readable instructions that, when executed by the processor, cause the network interface card to:

receive a first send (SEND) message from a host client and corresponding to a first queue pair (QP) connection, and distribute the first SEND message to a first shared connector, wherein the first SEND message includes a remote direct memory access (RDMA) operation command, and the first shared connector is configured to initiate an RDMA operation according to the RDMA operation command to access an internal memory of the host client;

obtain, according to the RDMA operation command and a current stage of the RDMA operation, non-volatile memory express (NVME) information sent to a first controller and corresponding to the first QP connection;

enable a second controller to obtain the NVME information by interacting with the second controller when a disconnection event of a link between the first shared connector and the first controller is detected;

obtain a work queue element (WQE) from the second controller, wherein the WQE is obtained by the second controller based on the NVME information; and

send a first RDMA message corresponding to the first QP connection to the host client based on the WQE.

2. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs before the first shared connector sends the NVME information to the first controller or before the first controller sends an RDMA write message by using the first shared connector, and

the first RDMA message is the RDMA write message.

3. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs during a period when the first controller sends the first packet of an RDMA write message by using the first shared connector, and

the first RDMA message is the RDMA write message.

4. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs during a period when the first controller sends a middle packet or a last packet of an RDMA write message by using the first shared connector,

the first RDMA message is a second SEND message comprising an IO response,

the IO response indicates a read operation is completed, and

before sending the first RDMA message corresponding to the first QP connection to the host client based on the WQE, the network interface card is further caused to:

send a fake last packet of the RDMA write message to the host client, wherein a payload of the fake last packet is arbitrarily padded, and a packet sequence number (PSN) of the fake last packet is a to-be-sent RDMA packet of the RDMA write message when the disconnection event occurs.

5. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IO) read command,

after the first controller sends an RDMA write message by using the first shared connector, the disconnection event occurs before a negative acknowledgment message of the RDMA write message is received or before a retransmission packet of the RDMA write message is sent because the negative acknowledgment message of the RDMA write message is received,

the first RDMA message is a second SEND message comprising an IO response,

the IO response indicates a read operation is completed, and

before sending the first RDMA message corresponding to the first QP connection to the host client based on the WQE, the network interface card is further caused to:

send a fake retransmission packet of the RDMA write message to the host client, wherein a packet sequence number (PSN) of the fake retransmission packet is the last RDMA packet of the RDMA write message sent before the disconnection event occurs, or a PSN of an initial retransmission packet of the RDMA write message.

6. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs during a period when the first controller sends, by using the first shared connector, a second SEND message including an IO response,

the IO response indicates a read operation is completed, and

the first RDMA message is the second SEND message.

7. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IO) write command,

the disconnection event occurs before the first shared connector sends the NVME information to the first controller or before the first controller completes sending an RDMA read request message by using the first shared connector, and

the first RDMA message is the RDMA read request message.

8. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IO) write command,

the disconnection event occurs during a period when the first controller receives an RDMA read response message by using the first shared connector,

the first RDMA message is an RDMA read request message, and

before sending the first RDMA message corresponding to the first QP connection to the host client based on the WQE, the network interface card is further caused to:

send a positive acknowledgment message corresponding to the RDMA read response message to the host client, or discard a packet of the RDMA read response message received from the host client.

9. The network interface card according to claim 1 , wherein

the RDMA operation command is an input/output (IQ) write command including immediate data,

the disconnection event occurs during a period when the first controller receives the immediate data by using the first shared connector,

the first RDMA message is a second SEND message including an TO response,

the IO response indicates a failure of receiving the immediate data, and

before sending the first RDMA message corresponding to the first QP connection to the host client based on the WQE, the network interface card is further caused to:

send a positive acknowledgment message of the first SEND message to the host client.

10. The network interface card according to claim 1 , wherein interacting, by the first shared connector, with the second controller comprises:

sending, by the first shared connector, a notification message to the second controller, wherein the notification message notifies the second controller to obtain the NVME information.

11. The network interface card according to claim 1 , wherein interacting, by the first shared connector, with the second controller comprises:

sending, by the first shared connector, the NVME information to the second controller.

12. A message sending and receiving method, comprising:

receiving, by a parser, a first send (SEND) message from a host client, wherein the first SEND message corresponds to a first queue (QP) connection;

distributing the first SEND message to a first shared connector, wherein the first SEND message includes a remote direct memory access (RDMA) operation command;

initiating, by the first shared connector, a corresponding RDMA operation according to the RDMA operation command to access an internal memory of the host client;

obtaining, by the first shared connector according to the RDMA operation command and a current stage of the RDMA operation, non-volatile memory express (NVME) information sent to a first controller and corresponding to the first QP connection;

enabling a second controller to obtain the NVME information by interacting with the second controller when a disconnection event of a link between the first shared connector and the first controller is detected;

obtaining a work queue element (WQE), from the second controller, based on the NVME information; and

sending a first RDMA message corresponding to the first QP connection to the host client based on the WQE.

13. The method according to claim 12 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs before the first shared connector sends the NVME information to the first controller or before the first controller sends an RDMA write message by using the first shared connector, and

the first RDMA message is the RDMA write message.

14. The method according to claim 12 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs during a period when the first controller sends the first packet of an RDMA write message by using the first shared connector, and

the first RDMA message is the RDMA write message.

15. The method according to claim 12 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs during a period when the first controller sends a middle packet or the last packet of an RDMA write message by using the first shared connector,

the first RDMA message is a second SEND message including an IO response,

the IO response indicates that a read operation is completed, and

the method further comprises:

before sending the first RDMA message corresponding to the first QP connection to the host client based on the WQE, sending, by the first shared connector, a fake last packet of the RDMA write message to the host client, wherein a payload of the fake last packet is arbitrarily padded, and a packet sequence number (PSN) of the fake last packet is a to-be-sent RDMA packet of the RDMA write message when the disconnection event occurs.

16. The method according to claim 12 , wherein

the RDMA operation command is an input/output (IO) read command,

after the first controller sends an RDMA write message by using the first shared connector, the disconnection event occurs before a negative acknowledgment message of the RDMA write message is received or before a retransmission packet of the RDMA write message is sent because the negative acknowledgment message of the RDMA write message is received,

the first RDMA message is a second SEND message comprising an IO response,

the IO response indicates that a read operation is completed, and

the method further comprises:

before the sending a first RDMA message corresponding to the first QP connection to the host client based on the WQE, sending, by the first shared connector, a fake retransmission packet of the RDMA write message to the host client, wherein a packet sequence number (PSN) of the fake retransmission packet is the last RDMA packet of the RDMA write message sent before the disconnection event occurs, or a PSN of an initial retransmission packet of the RDMA write message.

17. The method according to claim 12 , wherein

the RDMA operation command is an input/output (IO) read command,

the disconnection event occurs during a period when the first controller sends, by using the first shared connector, a second SEND message including an IO response,

the IO response indicates a read operation is completed, and

the first RDMA message is the second SEND message.

18. The method according to claim 12 , wherein

the RDMA operation command is an input/output (IO) write command,

the disconnection event occurs before the first shared connector sends the NVME information to the first controller or before the first controller completes sending an RDMA read request message by using the first shared connector, and

the first RDMA message is the RDMA read request message.

19. The method according to claim 12 , wherein interacting with the second controller comprises:

sending, by the first shared connector, a notification message to the second controller, wherein the notification message is used to notify the second controller to obtain the NVME information.

20. The method according to claim 12 , wherein interacting with the second controller comprises:

sending, by the first shared connector, the NVME information to the second controller.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2023
From: HAN, ZHAOJIAO; LI, JIANBO; LUO, XINDONG; YAN, DAHONG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 065259/0889 →
Priority Claims (1)
CN 202110209930.8 · Feb 24, 2021 · national
Continuity (2)
Continuation PCTCN2022076499 · Feb 16, 2022
Related Publication 20230403326A1 · Dec 14, 2023
Cited By (1)
US 12,627,734