DETAILED ACTION
Applicant’s amendment filed 6/2/2026 has been fully considered.
Claims 1-20 are pending and have been examined.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Amendment
The objection to the claims is withdrawn.
Applicant’s arguments regarding the obviousness-type double patenting rejection are persuasive, the rejection is withdrawn.
The text of those sections of Title 35, U.S. Code not included in this action can be found in a prior Office action.
Regarding the arguments against Kim, Examiner respectfully points out that Kim teaches the method translates the R/W requests from a first format for the local storage to a second format for the set of external storages before forwarding the requests to the external storage through the network fabric storage driver. The method also translates responses to these requests from the second format to the first format before providing the responses to an NIC interface of the host computer in order to provide these responses to the set of programs. (par.4-5).
Kim further teaches in par.28-29:
The method forwards read/write (R/W) requests to the set of external storages when receiving R/W requests from the set of programs to the virtual disk, and provides responses to the R/W requests after receiving responses from the set of external storages to the forwarded read/write requests. In some embodiments, the method translates the R/W requests from a first format for the local storage to a second format for the set of external storages before forwarding the requests to the external storage through the network fabric storage driver. The method also translates responses to these requests from the second format to the first format before providing the responses to a NIC interface of the host computer in order to provide these responses to the set of programs.
In some embodiments, the NIC interface is a PCIe interface, and the first format is an NVMe format. The second format in some of these embodiments is an NVMeOF format and the network fabric storage driver is an NVMeOF driver. The NIC in some embodiments includes a general purpose central processing unit (CPU) and a memory that stores a program (e.g., an NIC operating system) for execution by the CPU to access the set of external storages and to present the set of external storages as a local storage. The NIC in some embodiments is implemented as a system on chip (SoC) with multiple other circuit components. For instance, in some embodiments, the NIC also includes an application specific integrated circuit (ASIC), which processes packets forwarded to and from the host computer, with at least a portion of this processing including the translation of the R/W requests and responses to these requests. This ASIC in some embodiments is a hardware offload unit (HOU) of the NIC, and performs special operations (e.g., packet processing operations, response/request reformatting operations, etc.).
Claim Rejections - 35 USC § 102
Claims 1-20 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Kim (20220206962).
Regarding claims 1 and 17, Kim teaches
A method for emulating a local storage for a host computer comprising a network interface card (NIC), the method comprising: on the NIC: / A non-transitory machine readable medium storing a program for execution by at least one processing unit of a network interface card (NIC) of a host computer for emulating a local storage for the host computer, the program comprising sets of instructions for (abstract, figs.1, 3-4, par.32-38, 46-51):
deploying a storage emulator program to emulate a local storage device, from a plurality of external storages accessed through the NIC, for a set of processes executing on the host computer, the plurality of external storages comprising at least one external storage that employs a storage format that is different from a storage format of the emulated local storage device (par.28-29, 32-38, 52-57, 69-72); and
configuring an interface of a bus connecting the NIC to the host computer to provide the emulated local storage device for the set of processes (fig.1, 7, par.28-29, 34-38, 52-57),
wherein the storage emulator program is configured to translate storage access commands issued in the storage format of the emulated local storage device into corresponding commands in storage formats of the external storages, and to translate responses received in the storage formats of the external storages into corresponding responses in the storage format of the emulated local storage device (par.4-7, 28-31, 55-61).
Regarding claim 2, Kim teaches wherein configuring the interface comprises configuring a virtual function (VF) of a physical function (PF) of the interface to provide the emulated local storage device for the set of processes (par.28-29, 72-78).
Regarding claim 3, Kim teaches wherein the PF is a physical interface of the NIC (par.72-78).
Regarding claim 4, Kim teaches wherein the VF is a virtualized interface of the physical interface of the NIC (par.72-78).
Regarding claim 5, Kim teaches wherein the bus is a peripheral component interconnect express (PCIe) bus (par.33-36, 56-60).
Regarding claims 6 and 18, Kim teaches wherein deploying the storage emulator program comprises configuring the storage emulator program with a storage conversion application to convert the at least one external storage to a converted storage that employs the storage format of the emulated local storage device. (par.4-7, 28-31, 53-60).
Regarding claim 7, Kim teaches wherein the storage emulator program is implemented as a virtual machine (VM) executing on the NIC (par.51-56).
Regarding claim 8, Kim teaches wherein the storage emulator program is implemented as an application executing on the NIC (par.51-56).
Regarding claims 9 and 19, Kim teaches wherein configuring the interface of the bus to provide the emulated local storage device comprises configuring the storage emulator program to use the interface of the bus to present the local storage device as if it were a non-volatile memory express (NVMe) device local to the host computer (par.28-35, 50-57).
Regarding claims 10 and 20, Kim teaches wherein the local storage device is presented as if it were the NVMe device local to the host computer by connecting the local storage device to an NVMe driver of the host computer (fig.13, par.50-57, 71-73).
Regarding claim 11, Kim teaches wherein the set of processes comprise a set of one or more machines executing on the host computer (par.32-36).
Regarding claim 12, Kim teaches wherein the set of machines is a first set of machines executing on the host computer, and a second set of one or more machines executing on the host computer are unaware of the emulated local storage device (par.80-84, 94-96).
Regarding claim 13, Kim teaches wherein the set of processes comprises a hypervisor executing on the host computer (par.33-40).
Regarding claim 14, Kim teaches wherein the set of processes comprises an operating system executing on the host computer (par.33-40).
Regarding claim 15, Kim teaches deploying a network fabric driver on the NIC to access the plurality of external storages through one or more intervening networks (figs, 1, 7, par.29-32).
Regarding claim 16, Kim teaches wherein the network fabric driver is a non-volatile memory express over fabric (NVMeOF) driver (figs, 1, 7, par.34-38, 67-70, 82-84).
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure: the remaining references put forth on the PTO-892 form are directed to access to virtualized storage,
Glimcher (20230305977) Cherian (20220103629) similarly teach conversions of storage commands via an emulator.
Glimcher (20230333735) teaches The NIC may present emulated storages that may be used for data storage. The emulated storage devices may be implemented with a storage pipeline that uses any number of storage devices that may be local or remote to the data processing system. The computing resources of the data processing system may view the emulated storage as a local device.
Perry (20220365688) teaches a Controller 106 may perform (at 212) translations for seamlessly accessing the memory block device as a NVMe target device. For instance, controller 106 may convert read and write requests issued by computing device 102 to the NVMe target device into read and write requests that may be executed by the memory block device (e.g., a RAM disk device), and may convert formatting of the data returned by the memory block device into a NVMe supported data format. In this manner, controller 106 may provide access to an emulated NVMe target device that has the performance and latency of local memory and that can be easily incorporated as extended local memory, swap space, or fast cache or buffer by existing OSes without any change to the OSes.
Kim (20220206964) teaches to present the local storage by using a storage emulation layer (e.g., a virtual disk layer) on the NIC to create a local storage construct. In some embodiments, the emulated local storage (e.g., the virtual disk) does not represent any storage on the NIC, while in other embodiments, the emulated local storage also represents one or more storages on the NIC. The NVMe driver 122 is a driver for the PCIe bus 150. This driver relays NVMe formatted R/W requests from the host hypervisor 114 to the storage processing layers, and relays responses to these requests from the storage processing layers to the host hypervisor 114. The storage processing layers include an NVMeOF driver 124, a core storage service 125, a DSAN service 126, and a virtual device service 127. The virtual device service includes an NVMe emulator 128. [0047] The smart NIC OS 120 uses the NVMeOF driver 124 in some embodiments to access one or more external storages 140. Specifically, the smart NIC OS 120 emulates a local NVMe storage 160 to represent several external storages 140 to the machines (e.g., VM 112) executing on the host. From the host point of view, the VM 112 operates on the emulated local storage 160 as if it was a local NVMe storage connected through the PCIe bus 150.
THIS ACTION IS MADE FINAL. Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to David García Cervetti whose telephone number is (571)272-5861. The examiner can normally be reached Monday-Friday 8AM-5PM.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, HADI S ARMOUCHE can be reached at (571)270-3618. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/David Garcia Cervetti/Primary Examiner, Art Unit 2409