Patent ID: 11921658
Assignee: DIAMANTI, INC.
Field: Computer technology (Electrical engineering)
Classification: CPC G  H | IPC G  H

Claim 0:
1. A method for enabling use of NVME (Non-Volatile Media-Express) over a network, the method comprising:
(a) communicating an NVME command from a host of a first node over a PCIe connection of the first node, wherein the PCIe connection couples the host of the first node to a proxy NVME controller of the first node;
(b) terminating a PCIe level transaction of the NVME command communicated over the PCIe connection;
(c) sending a first packet that encapsulates the NVME command using a two-layer NVMEoN (NVME over network) protocol from the proxy NVME controller of the first node and over the network and to a remote virtual controller of a second node, wherein the remote virtual controller of the second node is coupled to a host of the second node by a PCIe connection but wherein the NVME command is received from the first node and is executed but does not pass over the PCIe connection to the host of the second node, wherein the NVMEoN protocol includes an exchange layer and an underlying BTP (Burst Transmission Protocol) layer, wherein the first packet includes an Ethernet header portion, a BTP layer portion, and an exchange layer portion, wherein the exchange layer portion of the first packet contains identification information that identifies an exchange between an NVME initiator and an NVME target, wherein the BTP layer portion of the first packet comprises a first BTP request credit control message that requests credit to send an identified packet via a first burst window to the second node;
(d) receiving a second packet onto the proxy NVME controller of the first node from the second node, wherein the second packet includes an Ethernet header portion, a BTP layer portion, and an exchange layer portion, wherein the exchange layer portion of the second packet contains identification information that identifies the exchange, wherein the BTP layer portion of the second packet comprises a BTP grant credit control message, wherein the BTP grant credit control message does not grant credit to send the identified packet via the first burst window;
(e) receiving a third packet onto the proxy NVME controller of the first node from the second node, wherein the third packet comprises a BTP ACK message, wherein the BTP ACK message signifies a close of the first burst window; and
(f) sending a fourth packet from the proxy NVME controller of the first node over the network to the remote virtual controller of the second node, wherein the fourth packet comprises a second BTP request credit control message that requests credit to send the identified packet via a second burst window to the remote virtual controller of the second node, wherein the network is an Ethernet network, and wherein none of the first, second, third and fourth packets has a TCP header.