Reliable reception of messages written via RDMA using hashing
AssigneeCisco Technology, Inc.
InventorRoland Dreier
Life of this patent
Estimating the term…
Abstract
In one embodiment, a first network system obtains from a second network system, as a result of an RDMA read operation or an RDMA write operation, a message and a hash of the message, contiguous thereto. The first network system generates a computed hash of the obtained message and compares the computed hash of the message with the obtained hash of the message. The first network system processes the obtained message according to whether the computed hash is equal to the obtained hash.
Claims20
A method, comprising:
- receiving a Remote Direct Memory Access (RDMA) write and a block by a second RDMA of a second network system from a first RDMA of a first network system, the block including a message and a hash of the message such that the hash of the message is contiguous with the message, wherein the RDMA write indicates that the first RDMA of the first network system requests that the block be written to a memory of the second network system;
- storing by the second RDMA of the second network system the block including the message and the hash of the message in at least one data buffer of the memory of the second network system such that the hash of the message is contiguous with the message;
- obtaining the message by the second network system from the memory of the second network system and computing by the second network system a hash of the obtained message;
- obtaining the hash of the message from the memory of the second network system;
- determining by the second network system whether the computed hash of the message is equal to the obtained hash of the message;
- and
- processing the obtained message in accordance with the result of the determination.
A method, comprising:
- transmitting a Remote Direct Memory Access (RDMA) read by a first RDMA of a first network system to a second RDMA of a second network system, the RDMA read requesting a next message in memory of the second network system;
- receiving by the first RDMA of the first network system contents of at least one data buffer of the memory of the second network system from the second RDMA of the second network system, the contents including a message and a hash of the message such that the hash of the message is contiguous with the message;
- storing by the first RDMA the contents of the data buffer to a memory of the first network system;
- obtaining the message from the memory of the first network system and computing by the first network system a hash of the obtained message;
- obtaining the hash of the message from the memory of the first network system;
- determining by the first network system whether the computed hash of the message is equal to the obtained hash of the message;
- and
- processing the obtained message according to the result of the determination.
An apparatus, comprising:
- a Remote Direct Memory Access (RDMA) device;
- and
- a processor and a memory, at least one of the processor or the memory being adapted for:
- obtaining a message from the memory, wherein the memory stores the message and a hash of the message such that the hash of the message is contiguous with the message, wherein the message and the hash of the message stored in the memory have been received from another network system as a result of an RDMA read operation or an RDMA write operation;
- computing a hash of the obtained message;
- obtaining the hash of the message from the memory;
- determining whether the computed hash of the message is equal to the obtained hash of the message;
- and
- processing the obtained message in accordance with the result of the determination.
A non-transitory computer-readable medium storing thereon computer-readable instructions, comprising:
- instructions for obtaining a message by a first network system from a memory of the first network system, wherein the memory stores the message and a hash of the message such that the hash of the message is contiguous with the message, wherein the message and the hash of the message stored in the memory have been received from a second network system as a result of a Remote Direct Memory Access (RDMA) read operation or an RDMA write operation;
- instructions for computing by the first network system a hash of the obtained message;
- instructions for obtaining the hash of the message from the memory of the first network system;
- instructions for determining by the first network system whether the computed hash of the message is equal to the obtained hash of the message;
- and
- instructions for processing the obtained message in accordance with the result of the determination.
Dependencies are inferred from the claim text.