# US 12,010,020 B2 · System and method for storing data using software defined networks

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

- Number: US 12,010,020 B2
- Document ID: US12010020B2
- Status: Granted
- Kind: B2
- Application number: 17/008,090
- Filed: 2020-08-31
- Published: 2020-12-24
- Granted: 2024-06-11
- Earliest claimed: 2018-02-20
- Assignees: Kioxia Corporation
- Applicants: Kioxia Corporation
- Inventors: Yaron Klein
- Web page: https://patentgrep.com/patent/US12010020B2

## CPC

- H04L 49/25: Routing or path finding in a switch fabric
- H04L 45/745: Address table lookup; Address filtering
- H04L 61/5007: Internet protocol [IP] addresses
- H04L 49/351: for local area network [LAN], e.g. Ethernet switches
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system for storing data includes a controller, an Ethernet switch and a storage device. The controller is configured to receive data routing instructions, and manage forwarding rules of a switch forwarding table to implement the data routing instructions. The Ethernet switch is configured to receive data, access the switch forwarding table, and route the data to the storage device using the switch forwarding table.

## Claims

### Claim 1

A method for storing data, comprising:
receiving, by a controller of a storage system, a request for a new namespace;
selecting, by the controller, a first drive for the new namespace for which the request was received;
creating, by the controller, a first physical namespace on the first drive as the new namespace for which the request was received;
assigning, by the controller, a virtual internet protocol (IP) address to the first physical namespace;
modifying or creating, by the controller, one or more entries of a switch forwarding table accessible to a switch to cause the switch to route data corresponding to the virtual IP address to the first physical namespace.

### Claim 2 (depends on 1)

The method of claim 1, wherein the request is a request for mirrored namespaces, and the method further comprises:
selecting, by the controller, a second physical namespace on a second drive; and
assigning, by the controller, the virtual IP address to the second physical namespace,
and wherein modifying or creating the one or more entries of the switch forwarding table comprises modifying the one or more entries of the switch forwarding table to cause the switch to route write communications corresponding to the virtual IP address to both the first physical namespace and the second physical namespace, and to route read communications to one of the first physical namespace and the second physical namespace.

### Claim 3 (depends on 1)

The method of claim 1, wherein the request for a new namespace is received from a device, and further comprising:
storing an indication of a correspondence between the first physical namespace and the virtual IP address in a mapping table; and
providing the virtual IP address to the device that requested the new namespace.

### Claim 4 (depends on 1)

The method of claim 1, wherein creating, by the controller, the first physical namespace on the selected drive comprises is performed using a non-volatile memory express management interface (NVMe-MI) configuration.

### Claim 5 (depends on 1)

The method of claim 1, further comprising communicatively connecting, by the controller, to the first drive using inter-integrated circuit (I2C) connectivity, or configuring the first drive using a non-volatile memory express management interface (NVMe-MI).

### Claim 6 (depends on 1)

The method of claim 1, further comprising receiving, by the controller, out-of-band data routing instructions.

### Claim 7 (depends on 1)

The method of claim 1, wherein modifying or creating entries of the switch forwarding table include instructing insertion or deletion of forwarding rules.

### Claim 8 (depends on 1)

The method of claim 1, wherein modifying or creating entries of the switch forwarding table includes setting an expiry date for one or more forwarding rules of the switch forwarding table.

### Claim 9 (depends on 1)

The method of claim 1, wherein modifying or creating entries of the switch forwarding table includes managing forwarding rules of the switch forwarding table using an OpenFlow protocol.

### Claim 10 (depends on 1)

The method of claim 1, wherein the switch forwarding table includes one or more matching rules and one or more action lists respectively corresponding to the one or more matching rules.

### Claim 11 (depends on 10)

The method of claim 10, wherein the one or more actions includes at least one of forwarding a data packet to a specific switch port, dropping the data packet, sending the data packet to the controller, or modifying the data packet.

### Claim 12

A system for storing data, comprising:
a plurality of Ethernet drives;
an Ethernet switch that is configured to route data using a switch forwarding table for storing data in the Ethernet drives; and
a controller that is configured to:
receive a request for a new namespace;
select a first one of the Ethernet drives for the new namespace for which the request was received;
create a first physical namespace on the first Ethernet drive as the new namespace for which the request was received;
assign a virtual internet protocol (IP) address to the first physical namespace;
modify or create one or more entries of the switch forwarding table accessible to the Ethernet switch to cause the Ethernet switch to route data corresponding to the virtual IP address to the first physical namespace.

### Claim 13 (depends on 12)

The system of claim 12, wherein the controller is further configured to communicatively connect to and configure the Ethernet drives.

### Claim 14 (depends on 13)

The system of claim 13, wherein the controller is further configured to communicatively connect to the Ethernet drives using inter-integrated circuit (I2C) connectivity, or to configure the Ethernet drives using a non-volatile memory express management interface (NVMe-MI).

### Claim 15 (depends on 12)

The system of claim 12, wherein the controller is further configured to receive out-of-band data routing instructions.

### Claim 16 (depends on 12)

The system of claim 12, wherein the controller is further configured to modify or create the entries of the switch forwarding table by instructing insertion or deletion of forwarding rules.

### Claim 17 (depends on 16)

The system of claim 16, wherein the controller is further configured to manage the forwarding rules of the switch forwarding table using an OpenFlow protocol.
