# US 12,001,379 B2 · Differentiated storage services in ethernet SSD

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,001,379 B2
- Document ID: US12001379B2
- Status: Granted
- Kind: B2
- Application number: 18/092,088
- Filed: 2022-12-30
- Published: 2023-05-11
- Granted: 2024-06-04
- Earliest claimed: 2017-11-30
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Ramdas P. Kachare; Dong Gi Lee; Ajay Sundar Raj; Fred Worley
- Web page: https://patentgrep.com/patent/US12001379B2

## CPC

- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- G06F 3/061: {Improving I/O performance}
- G06F 3/0611: {in relation to response time}
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- H04L 45/50: using label swapping, e.g. multi-protocol label switch [MPLS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system and method for differentiated storage services with a Ethernet SSD includes receiving, at an Ethernet SSD (eSSD), an input/output (I/O) service request from a remote host via a multiprotocol label switching (MPLS) network. The I/O service request includes at least one parameter that may be used to match the I/O service request to a label switched path (LSP) based on the parameter(s). A storage traffic stream may then be opened between the eSSD and the remote host over the MPLS network according to the LSP.

## Claims

### Claim 1

A method of providing storage services comprising:
receiving, at a memory drive, an input/output (I/O) service request for performing I/O between the memory drive and a host, from the host, wherein the I/O service request comprises a quality of service requirement;
selecting a network path based on the quality of service requirement; and
initiating, by the memory drive, a storage traffic stream via the network path to connect the host to the memory drive according to the quality of service requirement in the I/O service request,
wherein the memory drive is configured to receive the I/O service request from the host and configured to initiate the storage traffic stream to connect the host to the memory drive using a first connection.

### Claim 2 (depends on 1)

The method of claim 1, wherein the selecting the network path comprises:
matching, by the memory drive, the I/O service request to a label switched path (LSP) based on the quality of service requirement in the I/O service request,
wherein the storage traffic stream to connect the host to the memory drive is initiated according to the LSP, and
wherein the memory drive is configured to match the I/O service request to the LSP based on the quality of service requirement in the I/O service request based on a label-lookup table (LLT) stored in the memory drive.

### Claim 3 (depends on 2)

The method of claim 2, wherein the memory drive comprises a solid state drive (SSD), and wherein the SSD is an Ethernet SSD (eSSD).

### Claim 4 (depends on 3)

The method of claim 3, wherein the SSD is configured to receive the I/O service request from the host using the first connection, and wherein the SSD is configured to initiate the storage traffic stream to connect the host to the SSD using the first connection, wherein the first connection is a multiprotocol label switching (MPLS) network.

### Claim 5 (depends on 4)

The method of claim 4, wherein the storage traffic stream comprises at least one MPLS packet.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
encapsulating, by the SSD, a first data packet into a MPLS packet, the MPLS packet further comprising a MPLS header having a label stack associated with the LSP, wherein the first data packet comprises one of a remote direct memory access (RDMA) packet, a RDMA over Converged Ethernet packet, an Internet Wide-area RDMA packet, or a non-volatile memory express (NVMe)-over-tape carrier package (TCP) packet.

### Claim 7 (depends on 2)

The method of claim 2, wherein the I/O service request further comprises at least one storage parameter.

### Claim 8 (depends on 7)

The method of claim 7, wherein the at least one storage parameter further comprises at least one of a Queue Pair ID (QPID), a Submission Queue ID (SQID), a Completion Queue ID (CQID), a non-volatile memory express (NVMe) Controller ID (CNTID), a Namespace ID (NSID), a logical block address (LBA) Range <Start LBA> to <End LBA>, a NVMe Stream ID, a Host Identifier, a NVMe Subsystem (NQN) Identifier, a Time-based ID, a Date-based ID, or a NVM Set ID.

### Claim 9 (depends on 2)

The method of claim 2, wherein the I/O service request further comprises at least one network parameter.

### Claim 10

A memory drive comprising:
a memory; and
a processor, wherein the processor is configured to execute instructions from the memory that, when executed by the processor, cause the processor to:
receive, an input/output (I/O) service request for performing I/O between the memory drive and a host, from the host,
wherein the I/O service request comprises a quality of service requirement;
select, a network path based on the quality of service requirement; and
initiate, a storage traffic stream via the network path to connect the host to the memory drive according to the quality of service requirement in the I/O service request,
wherein the memory is configured to receive the I/O service request from the host and configured to initiate the storage traffic stream to connect the host to the memory drive using a first connection.

### Claim 11 (depends on 10)

The memory drive of claim 10, further comprising a solid state drive (SSD), wherein the SSD is an Ethernet SSD (eSSD) comprising an Ethernet connection, wherein the eSSD is configured to receive the I/O service request from the host using the Ethernet connection and the eSSD is configured to initiate the storage traffic stream to connect the host to the eSSD using the Ethernet connection.

### Claim 12 (depends on 10)

The memory drive of claim 10, wherein to select the network path based on the quality of service requirement, the processor is further configured to:
match, the I/O service request to a label switched path (LSP) based on the quality of service requirement in the I/O service request,
wherein the storage traffic stream to connect the host to the memory drive is initiated according to the LSP, and
wherein the memory drive is configured to receive the I/O service request from the host using the first connection, and wherein the memory drive is configured to initiate the storage traffic stream to connect the host to the memory drive using the first connection, wherein the first connection is a multiprotocol label switching (MPLS) network, and wherein the storage traffic stream comprises at least one MPLS packet.

### Claim 13 (depends on 12)

The memory drive of claim 12, wherein the instructions further cause the processor to:
encapsulate a first data packet into a MPLS packet, the MPLS packet further comprising a MPLS header having a label stack associated with the LSP.

### Claim 14 (depends on 13)

The memory drive of claim 13, wherein the first data packet comprises one of a remote direct memory access (RDMA) packet, a RDMA over Converged Ethernet packet, an Internet Wide-area RDMA packet, or a non-volatile memory express (NVMe)-over-tape carrier package (TCP) packet.

### Claim 15 (depends on 10)

The memory drive of claim 10, wherein the I/O service request further comprises at least one storage parameter.

### Claim 16 (depends on 15)

The memory drive of claim 15, wherein the I/O service request further comprises at least one of a Queue Pair ID (QPID), a Submission Queue ID (SQID), a Completion Queue ID (CQID), a non-volatile memory express (NVMe) Controller ID (CNTID), a Namespace ID (NSID), a logical block address (LBA) Range <Start LBA> to <End LBA>, a NVMe Stream ID, a Host Identifier, a NVMe Subsystem (NQN) Identifier, a Time-based ID, a Date-based ID, or a NVM Set ID.

### Claim 17 (depends on 10)

The memory drive of claim 10, wherein the I/O service request further comprises at least one network parameter.

### Claim 18

A method of providing storage services comprising:
receiving, at a memory drive, an input/output (I/O) service request comprising a quality of service requirement for performing I/O between the memory drive and a host,
from the host;
selecting, by the memory drive, a network path based on the quality of service requirement;
encapsulating, by the memory drive, a first data packet into a multiprotocol label switching (MPLS) packet comprising a MPLS header; and
initiating, by the memory drive, a storage traffic stream that sends the MPLS packet comprising the MPLS header to the host from the memory drive via the network path,
wherein the memory drive is configured to receive the I/O service request from the host and configured to initiate the storage traffic stream to connect the host to the memory drive using a first connection.

### Claim 19 (depends on 18)

The method of claim 18, wherein the selecting the network path comprises:
matching, by the memory drive, the I/O service request to a label switched path (LSP) based on the quality of service requirement in the I/O service request;
wherein the MPLS header comprises a label stack associated with the LSP,
wherein the storage traffic stream is initiated according to the LSP, and
wherein the memory drive comprises a solid state drive (SSD), wherein:
the SSD is an Ethernet SSD (eSSD),
the I/O service request is received at the eSSD via the first connection and the storage traffic stream to connect the host to the eSSD according to the LSP is initiated via the first connection,
I/O service request further comprises at least one of a Queue Pair ID (QPID), a Submission Queue ID (SQID), a Completion Queue ID (CQID), a non-volatile memory express (NVMe) Controller ID (CNTID), a Namespace ID (NSID), a logical block address (LBA) Range <Start LBA> to <End LBA>, a NVMe Stream ID, a Host Identifier, a NVMe Subsystem (NON) Identifier, a Time-based ID, a Date-based ID, or a NVM Set ID, and
the first connection is a MPLS network.

### Claim 20 (depends on 19)

The method of claim 19, wherein the first data packet comprises one of a remote direct memory access packet (RDMA), a RDMA over Converged Ethernet packet, an Internet Wide-area RDMA packet, or a non-volatile memory express (NVMe)-over-tape carrier package (TCP) packet.
