DETAILED ACTION
This office action is in response to application filed on 10/9/2023.
Claims 1 – 20 are pending.
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 .
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claim(s) 1, 2, 4 – 18 and 20 is/are rejected under 35 U.S.C. 102(a)(1) as being anticipated by Cherian et al (US 20220100545, prior art part of IDS dated 3/6/2025, hereinafter Cherian).
As per claim 1, Cherian discloses: A method for configuring a network interface card (NIC) that is connected to a host computer and that emulates a local non-volatile memory express (NVMe) storage device for a set of processes executing on the host computer using a plurality of external storages, the method comprising:
configuring, on an operating system (OS) of the NIC: a storage emulator program to present the plurality of external storages to the set of processes as the local NVMe storage device; (Cherian [0033]: “FIG. 1 illustrates one manner of using a smart NIC to emulate a local storage 160 that represents several external storages 140 to one or more virtual machines 112 executing over the operating system (OS) 100 of a host computer… the smart NIC performs storage emulation operations that represent multiple external storages 140 as the local storage 160 to the machines executing on the host computer. The smart NIC connects to PCIe bus 150 of the host.”)
and a disk device to exchange NVMe requests and responses between the set of processes and the plurality of external storages by exchanging the NVMe requests and responses (i) with a virtual NVMe (vNVMe) controller of the NIC through a storage stack of the OS, or (ii) directly with the vNVMe controller such that the disk device bypasses the storage stack, wherein exchanging the NVMe requests and responses directly with the vNVMe controller optimizes performance of the NIC. (Cherian [0035]: “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.”; [0036]: “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.”; [0082]: “the VFI module 1322 then transfers the NVMeOF packet either directly through the fast path to the NIC driver 1325, or indirectly to the NIC driver 1325 through the slow path that involves the virtual switch 1326. The NIC driver 1325 then forwards the NVMeOF packet through a shared port of the smart NIC, so that this packet can be forwarded through intervening network fabric (e.g., intervening switches/routers) to reach its destination external storage 1340. In some embodiments, the fast-path processing of the VF 1322 allows the VF to directly pass the packet to the shared port of the smart NIC.”.)
As per claim 2, Cherian further discloses:
The method of claim 1, wherein the disk device is configured to exchange the NVMe requests and responses with the vNVMe controller through the storage stack or directly as configured by a network administrator. (Cherian [0035], [0036], [0040])
As per claim 4, Cherian further discloses:
The method of claim 1, wherein the plurality of external storages comprises a set of one or more virtual volume (vVol) storages, and the storage emulator program is configured to present the set of vVol storages as the local NVMe storage device. (Cherian [0095])
As per claim 5, Cherian further discloses:
The method of claim 4, wherein:the set of vVol storages is a first set of vVol storages, the plurality of external storages further comprises a particular set of one or more external storages that are not native vVol storages, and configuring the storage emulator program to present the plurality of external storages comprises configuring the storage emulator program to convert the particular set of external storages into a second set of vVol storages and to present the first and second sets of vVol storages as the local NVMe storage device. (Cherian [0035], [0036] and [0095])
As per claim 6, Cherian further discloses:
The method of claim 5, wherein the storage emulator program presents the first and second sets of vVol storages as the local NVMe storage device through a virtual function (VF) of a physical function (PF) of an interface of a bus. (Cherian [0075] – [0077])
As per claim 7, Cherian further discloses:
The method of claim 6, wherein the PF is a physical interface of the NIC. (Cherian [0074])
As per claim 8, Cherian further discloses:
The method of claim 7, wherein the VF is a virtualized interface of the physical interface of the NIC. (Cherian [0075])
As per claim 9, Cherian further discloses:
The method of claim 6, wherein the bus is a peripheral component interconnect express (PCIe) bus. (Cherian [0036])
As per claim 10, Cherian further discloses:
The method of claim 5, wherein the storage emulator program is configured with a storage conversion application to convert the particular set of external storages into the second set of vVol storages.
As per claim 11, Cherian further discloses:
The method of claim 1, wherein the storage emulator program is implemented as a virtual machine (VM) executing on the NIC. (Cherian [0054])
As per claim 12, Cherian further discloses:
The method of claim 1, wherein the storage emulator program is implemented as an application executing on the NIC. (Cherian [0035])
As per claim 13, Cherian further discloses:
The method of claim 1, wherein the storage emulator program comprises a vNVMe interface to connect the storage emulator program to the vNVMe controller of the NIC. (Cherian [0035])
As per claim 14, Cherian further discloses:
The method of claim 1, wherein the set of processes comprises a set of one or more machines executing on the host computer. (Cherian figure 1)
As per claim 15, Cherian further discloses:
The method of claim 14, 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 VVol storage. (Cherian [0035] – [0036])
As per claim 16, Cherian further discloses:
The method of claim 1, wherein the set of processes comprises a hypervisor executing on the host computer. (Cherian figure 1 and [0033])
As per claim 17, Cherian further discloses:
The method of claim 1, wherein the set of processes comprises an OS of the host computer. (Cherian figure 1 and [0033])
As per claim 18, it is the non-transitory machine readable medium variant of claim 1 and is therefore rejected under the same rationale.
As per claim 20, it is the non-transitory machine readable medium variant of claim 4 and is therefore rejected under the same rationale.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 3 and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Cherian, and further in view of Ryan et al (USPAT 9411623, hereinafter Ryan).
As per claim 3, Cherian did not disclose:
The method of claim 1, wherein the storage stack comprises a filesystem device switch (FDS), a filesystem switch (FSS), and a virtual volume (vVol) FDS driver.
However, Ryan teaches:
The method of claim 1, wherein the storage stack comprises a filesystem device switch (FDS), a filesystem switch (FSS), and a virtual volume (vVol) FDS driver. (Ryan col 3, line 37 – col 4, line 45.)
It would have been obvious for one of ordinary skill in the art before the effective filing date of the claimed invention to incorporate the teaching of Ryan into that of Cherian in order to have the storage stack comprises a filesystem device switch (FDS), a filesystem switch (FSS), and a virtual volume (vVol) FDS driver. Ryan col 3, line 37 – col 4, line 45 has shown that the claimed limitations are merely commonly known and used components for networked storage virtualization, and thus applicants have merely just claimed the combination of known parts in the field to achieve predictable results of virtualized networked storage and is therefore rejected under 35 USC 103.
As per claim 19, it is the non-transitory machine readable medium variant of claim 3 and is therefore rejected under the same rationale.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Kim et al (US 20220206962) teaches “At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC that is not only used to access the set of external storages but also for forwarding packets not related to an external storage. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.”
Cherian et al (US 20220103629) teaches “At the NIC, the method accesses a set of one or more external storages operating outside of the host computer through a shared port of the NIC that is not only used to access the set of external storages but also for forwarding packets not related to an external storage. In some embodiments, the method accesses the external storage set by using a network fabric storage driver that employs a network fabric storage protocol to access the external storage set. The method presents the external storage as a local storage of the host computer to a set of programs executing on the host computer. In some embodiments, the method presents the local storage by using a storage emulation layer on the NIC to create a local storage construct that presents the set of external storages as a local storage of the host computer.”
Any inquiry concerning this communication or earlier communications from the examiner should be directed to CHARLES M SWIFT whose telephone number is (571)270-7756. The examiner can normally be reached Monday - Friday: 9:30 AM - 7PM.
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, April Blair can be reached at 5712701014. 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.
/CHARLES M SWIFT/Primary Examiner, Art Unit 2196