US 11,755,527 B2
Techniques for command validation for access to a storage device by a remote client
Eliezer Tamir, Bait Shemesh (IL); Vadim Makhervaks, Austin, TX (US); Ben-Zion Friedman, Jerusalem (IL); Phil Cayton, Warren, OR (US); and Theodore L. Willke, Portland, OR (US)
Assigned to Tahoe Research, Ltd., Dublin (IE)
Filed by Tahoe Research, Ltd., Dublin (IE)
Filed on Aug. 15, 2022, as Appl. No. 17/888,433.
Application 17/888,433 is a continuation of application No. 17/466,371, filed on Sep. 3, 2021, granted, now 11,500,810.
Application 17/466,371 is a continuation of application No. 16/426,685, filed on May 30, 2019, granted, now 11,138,143, issued on Oct. 5, 2021.
Application 16/426,685 is a continuation of application No. 13/997,996, filed on Jun. 25, 2013, granted, now 10,360,176, issued on Jul. 23, 2019, previously published as PCT/US2013/021759, filed on Jan. 16, 2013.
Claims priority of provisional application 61/587,541, filed on Jan. 17, 2012.
Prior Publication US 2023/0185759 A1, Jun. 15, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 15/173 (2006.01); G06F 21/44 (2013.01); G06F 21/79 (2013.01); H04L 69/12 (2022.01); G06F 3/06 (2006.01); G06F 21/80 (2013.01); G06F 15/167 (2006.01); H04L 67/1097 (2022.01); G06F 13/42 (2006.01)
CPC G06F 15/17331 (2013.01) [G06F 3/061 (2013.01); G06F 3/0611 (2013.01); G06F 3/0655 (2013.01); G06F 3/0659 (2013.01); G06F 3/0683 (2013.01); G06F 3/0688 (2013.01); G06F 13/4282 (2013.01); G06F 15/167 (2013.01); G06F 21/44 (2013.01); G06F 21/79 (2013.01); G06F 21/80 (2013.01); H04L 67/1097 (2013.01); H04L 69/12 (2013.01); G06F 2213/0026 (2013.01); Y02D 10/00 (2018.01)] 24 Claims
OG exemplary drawing
 
1. An apparatus comprising:
processing circuitry configured to:
communicate with a plurality of clients remote to the apparatus;
allocate, to each client of the plurality of clients,a buffer, an input/output (I/O) queue pair comprising an I/O command submission queue and an I/O command completion queue, and a Non-Volatile Memory Express (NVMe) queue pair comprising an NVMe command submission queue and an NVMe command completion queue, operable to access storage controlled by an NVMe controller;
exchange, using a network input/output (I/O) device, information with each of the clients of the plurality of clients using the I/O queue pair allocated to the client; and
validate, using the network I/O device, commands received from one or more of the clients of the plurality of clients, wherein, upon successful validation of a command, the network I/O device communicates the command to the NVMe command submission queue, whereby the storage controller by the NVMe controller is not directly accessible to the plurality of clients.