IP Library › Granted Patent US 12,487,877
Granted Patent B2
US 12,487,877 · App. 18/606,002 · Granted Dec 2, 2025

Network interface card, message sending method, and storage apparatus

Inventors: Zhaojiao Han (Shenzhen, CN); Xinteng Zhao (Shenzhen, CN); Xianjun He (Chengdu, CN); Qiang Fu (Shenzhen, CN)
Assignee: HUAWEI TECHNOLOGIES CO., LTD.
G06F11/0772
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,487,877
App. No.
18/606,002
Granted
Dec 2, 2025
Kind
B2
Abstract

A network interface card, a message sending method, and a storage apparatus are provided. The network interface card includes a processor and a communication interface connected to the processor. The processor is configured to obtain a first piece of first indication information and a first piece of second indication information. The first piece of first indication information indicates a first identifier of a non-volatile storage medium corresponding to a first RDMA message, and the first piece of second indication information indicates whether the non-volatile storage medium corresponding to the first identifier is faulty. The communication interface is configured to send the first RDMA message when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is not faulty.

Claims (42)

1 . A network interface card, comprising at least one processor and a communication interface connected to the at least one processor, wherein

the at least one processor is configured to obtain a first piece of first indication information and a first piece of second indication information, wherein the first piece of first indication information indicates a first identifier of a non-volatile storage medium corresponding to a first remote direct memory access (RDMA) message, and the first piece of second indication information indicates whether the non-volatile storage medium corresponding to the first identifier is faulty; and

the communication interface is configured to send the first RDMA message when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is not faulty, and prevent the first RDMA message from being sent when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is faulty,

wherein the at least one processor is further configured to obtain a second piece of first indication information and a second piece of second indication information, wherein the second piece of first indication information indicates a second identifier of a non-volatile storage medium corresponding to a second RDMA message, and the second piece of second indication information indicates whether the non-volatile storage medium corresponding to the second identifier is faulty; and

the communication interface is further configured to send the second RDMA message when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is faulty, and the second piece of first indication information and the second piece of second indication information indicate that the non-volatile storage medium corresponding to the second RDMA message is not faulty, wherein a packet sequence number of an RDMA packet in the second RDMA message is equal to a packet sequence number of a most recently sent RDMA packet plus 1.

2 . The network interface card according to claim 1 , wherein in a send queue, posting time of a work queue element corresponding to the first RDMA message is earlier than posting time of a work queue element corresponding to the second RDMA message.

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

the at least one processor is further configured to obtain a third piece of first indication information and a third piece of second indication information, wherein the third piece of first indication information indicates a third identifier of a non-volatile storage medium corresponding to a third RDMA message, and the third piece of second indication information indicates whether the non-volatile storage medium corresponding to the third identifier is faulty; and

the communication interface is further configured to:

receive a non-acknowledge message indicating a packet sequence number of a lost RDMA packet, wherein the lost RDMA packet corresponds to the third RDMA message, and the third piece of first indication information and the third piece of second indication information indicate that the non-volatile storage medium corresponding to the third RDMA message is faulty; and

send a constructed RDMA packet, wherein a packet sequence number of the constructed RDMA packet is the same as the packet sequence number of the lost RDMA packet.

4 . The network interface card according to claim 2 , wherein the first indication information is in a work queue element in the send queue.

5 . The network interface card according to claim 2 , wherein the at least one processor is further configured to generate third indication information indicating whether a fourth RDMA message corresponding to a work queue element in the send queue is sent, wherein, when the fourth RDMA message is sent and a corresponding non-volatile storage medium is not faulty, the third indication information indicates that the fourth RDMA message is sent, or when a non-volatile storage medium corresponding to the fourth RDMA message is faulty, the third indication information indicates that the fourth RDMA message is not sent.

6 . The network interface card according to claim 3 , wherein the at least one processor is further configured to:

post a completion queue element to a completion queue after the communication interface receives the non-acknowledge message or an acknowledge message, wherein the completion queue element comprises fourth indication information indicating whether a posted work queue element is not processed because a corresponding non-volatile storage medium is faulty.

7 . A message sending method, comprising:

obtaining a first piece of first indication information and a first piece of second indication information, wherein the first piece of first indication information indicates a first identifier of a non-volatile storage medium corresponding to a first remote direct memory access (RDMA) message, and the first piece of second indication information indicates whether the non-volatile storage medium corresponding to the first identifier is faulty; and

sending the first RDMA message when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is not faulty, and preventing the first RDMA message from being sent when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is faulty;

obtaining a second piece of first indication information and a second piece of second indication information, wherein the second piece of first indication information indicates a second identifier of a non-volatile storage medium corresponding to a second RDMA message, and the second piece of second indication information indicates whether the non-volatile storage medium corresponding to the second identifier is faulty; and

sending the second RDMA message when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is faulty, and the second piece of first indication information and the second piece of second indication information indicate that the non-volatile storage medium corresponding to the second RDMA message is not faulty, wherein a packet sequence number of an RDMA packet in the second RDMA message is equal to a packet sequence number of a most recently sent RDMA packet plus 1.

8 . The method according to claim 7 , wherein in a send queue, posting time of a work queue element corresponding to the first RDMA message is earlier than posting time of a work queue element corresponding to the second RDMA message.

9 . The method according to claim 7 , further comprising:

obtaining a third piece of first indication information and a third piece of second indication information, wherein the third piece of first indication information indicates a third identifier of a non-volatile storage medium corresponding to a third RDMA message, and the third piece of second indication information indicates whether the non-volatile storage medium corresponding to the third identifier is faulty;

receiving a non-acknowledge message, wherein the non-acknowledge message indicates a packet sequence number of a lost RDMA packet corresponding to the third RDMA message, and the third piece of first indication information and the third piece of second indication information indicate that the non-volatile storage medium corresponding to the third RDMA message is faulty; and

sending a constructed RDMA packet, wherein a packet sequence number of the constructed RDMA packet is the same as the packet sequence number of the lost RDMA packet.

10 . The method according to claim 8 , wherein the first indication information is in a work queue element in the send queue.

11 . The method according to claim 8 , further comprising:

generating third indication information indicating whether a fourth RDMA message corresponding to a work queue element in the send queue is sent, wherein, when the fourth RDMA message is sent and a corresponding non-volatile storage medium is not faulty, the third indication information indicates that the fourth RDMA message is sent, or when a non-volatile storage medium corresponding to the fourth RDMA message is faulty, the third indication information indicates that the fourth RDMA message is not sent.

12 . The method according to claim 9 , further comprising:

posting a completion queue element to a completion queue after receiving the non-acknowledge message or an acknowledge message, wherein the completion queue element comprises fourth indication information indicating whether a posted work queue element is not processed because a corresponding non-volatile storage medium is faulty.

13 . A storage apparatus, comprising a network interface card, at least one processor, and a plurality of non-volatile storage media, wherein

the at least one processor is configured to generate a first piece of first indication information and a first piece of second indication information in response to an input/output (IO) read command from a host client, wherein the first piece of first indication information indicates a first identifier of a non-volatile storage medium corresponding to a first remote direct memory access (RDMA) message, and the first piece of second indication information indicates whether the non-volatile storage medium corresponding to the first identifier is faulty; and

the network interface card is configured to: obtain the first piece of first indication information and the first piece of second indication information; and send the first RDMA message when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is not faulty, wherein

the at least one processor is further configured to generate a second piece of first indication information and a second piece of second indication information, wherein the second piece of first indication information indicates a second identifier of a non-volatile storage medium corresponding to a second RDMA message, and the second piece of second indication information indicates whether the non-volatile storage medium corresponding to the second identifier is faulty; and

the network interface card is further configured to obtain the second piece of first indication information and the second piece of second indication information; and send the second RDMA message when the first piece of first indication information and the first piece of second indication information indicate that the non-volatile storage medium corresponding to the first RDMA message is faulty, and the second piece of first indication information and the second piece of second indication information indicate that the non-volatile storage medium corresponding to the second RDMA message is not faulty, wherein a packet sequence number of an RDMA packet in the second RDMA message is equal to a packet sequence number of a most recently sent RDMA packet plus 1.

14 . The storage apparatus according to claim 13 , wherein in a send queue, posting time of a work queue element corresponding to the first RDMA message is earlier than posting time of a work queue element corresponding to the second RDMA message.

15 . The storage apparatus according to claim 13 , further comprising:

the at least one processor, further configured to generate a third piece of first indication information and a third piece of second indication information, wherein the third piece of first indication information indicates a third identifier of a non-volatile storage medium corresponding to a third RDMA message, and the third piece of second indication information indicates whether the non-volatile storage medium corresponding to the third identifier is faulty; and

the network interface card, further configured to: obtain the third piece of first indication information and the third piece of second indication information; receive a non-acknowledge message, wherein the non-acknowledge message indicates a packet sequence number of a lost RDMA packet corresponding to the third RDMA message; and send a constructed RDMA packet, wherein a packet sequence number of the constructed RDMA packet is the same as the packet sequence number of the lost RDMA packet.

16 . The storage apparatus according to claim 14 , wherein the first indication information is in a work queue element in the send queue.

17 . The storage apparatus according to claim 14 , wherein the network interface card is further configured to:

generate third indication information indicating whether a fourth RDMA message corresponding to a work queue element in the send queue is sent, wherein, when the fourth RDMA message is sent and a corresponding non-volatile storage medium is not faulty, the third indication information indicates that the fourth RDMA message is sent, or when a non-volatile storage medium corresponding to the fourth RDMA message is faulty, the third indication information indicates that the fourth RDMA message is not sent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 8, 2024
From: HAN, ZHAOJIAO; ZHAO, XINTENG; HE, XIANJUN; FU, QIANG
To: HUAWEI TECHNOLOGIES CO., LTD.
Reel/Frame 067922/0191 →
Priority Claims (1)
CN 202111094130.2 · Sep 17, 2021 · national
Continuity (2)
Continuation PCTCN2022118989 · Sep 15, 2022
Related Publication 20240220347A1 · Jul 4, 2024
References Cited (15)
US 6766467B1 · Neal · 2004 [cited by examiner]
US 6978300B1 · Beukema · 2005 [cited by examiner]
US 9753822B1 · Tringale · 2017 [cited by examiner]
US 20120066447A1 · Colgrove · 2012 [cited by examiner]
US 20160041863A1 · Nakagawa · 2016 [cited by examiner]
US 20180011763A1 · Tanaka · 2018 [cited by examiner]
US 20180095915A1 · Prabhakar et al. · 2018 [cited by applicant]
US 20180129449A1 · Romem et al. · 2018 [cited by applicant]
US 20210081268A1 · Bando · 2021 [cited by examiner]
US 20210349643A1 · Hallak · 2021 [cited by examiner]
US 20220138059A1 · Lee · 2022 [cited by examiner]
“InfiniBandTM Architecture Specification vol. 1”,Release 1.3,Mar. 3, 2015,total 1842 pages. [cited by applicant]
“NVM ExpressTM over Fabrics Revision 1.0a”,Jul. 17, 2018,total 51 pages. [cited by applicant]
Extended European Search Report issued in EP22869317.2, dated Nov. 18, 2024, 11 pages. [cited by applicant]
Guo Chen et al., “MP-RDMA: Enabling RDMA With Multi-Path Transport in Datacenters”, vol. 27, No. 6,Dec. 1, 2019, XP011762690, total 16 pages. [cited by applicant]