Prosecution Insights
Last updated: May 29, 2026
Application No. 18/331,236

MANAGING VIRTUAL MACHINE DEPLOYMENT BASED ON SMARTNIC RESOURCE AVAILABILITY

Final Rejection §101§103§112
Filed
Jun 08, 2023
Examiner
YUAN, PETER LI
Art Unit
2197
Tech Center
2100 — Computer Architecture & Software
Assignee
VMware, Inc.
OA Round
2 (Final)
Grant Probability
Favorable
3-4
OA Rounds

Examiner Intelligence

Grants only 0% of cases
0%
Career Allowance Rate
0 granted / 0 resolved
-55.0% vs TC avg
Minimal +0% lift
Without
With
+0.0%
Interview Lift
resolved cases with interview
Typical timeline
Avg Prosecution
7 currently pending
Career history
11
Total Applications
across all art units

Statute-Specific Performance

§101
5.9%
-34.1% vs TC avg
§103
82.4%
+42.4% vs TC avg
§112
5.9%
-34.1% vs TC avg
Black line = Tech Center average estimate • Based on career data from 0 resolved cases

Office Action

§101 §103 §112
DETAILED ACTION The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . The Office Action is in response to claims filed 03/04/2026. Claims 1-20 are pending. Specification The amended specification is accepted by the examiner. The objection is withdrawn. Claim Objections Claim 14 is objected to under 37 CFR 1.75 as being a substantial duplicate of claim 9. When two claims in an application are duplicates or else are so close in content that they both cover the same thing, despite a slight difference in wording, it is proper after allowing one claim to object to the other as being a substantial duplicate of the allowed claim. See MPEP § 608.01(m). Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. The term “best satisfy” in claims 6, 14, and 20 is a relative term which renders the claims indefinite. The term “best satisfy” is not defined by the claim, the specification does not provide a standard for ascertaining the requisite degree, and one of ordinary skill in the art would not be reasonably apprised of the scope of the invention. For the purposes of examination, “best satisfy” is interpreted to mean that at least one requirement is satisfied. Claim Rejections - 35 USC § 101 35 U.S.C. 101 reads as follows: Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title. Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention recites a judicial exception, an abstract idea, and it has not been integrated into practical application and the claims further do not recite significantly more than the judicial exception. Examiner has evaluated the claims under the framework provided in the 2019 Patent Eligibility Guidance published in the Federal Register 01/07/2019 and has provided such analysis below. Step 1: Claims 1-8 are directed to a method and falls in the statutory class of processes. Claims 9-16 are directed to a computing apparatus including a storage system and processing systems and falls in the statutory class of machine. Claims 17-20 are directed to a system including a plurality of hosts and a management service computer and falls in the statutory class of machine. Therefore, “Are the claims to a process, machine, manufacture or composition of matter?” Yes. Step 2A Prong 1: Claims 1, 9, and 17: The limitations “identifying a request to deploy a virtual machine in the computing environment”, “identifying requisite processing and memory resources in a main processing system of a host that are required by the virtual machine”, “identifying first resource availability information associated with a main processing system of each of the set of hosts in the computing environment”, “identifying a subset of hosts that satisfies the requisite processing and memory resources based on the requisite processing and memory resources and the first resource availability information of each of the hosts”, “after identifying the subset of hosts: identifying SmartNIC resource requirement information associated with the virtual machine”, “identifying second resource availability information associated with SmartNICs on the subset of hosts”, and “selecting a host from the subset of hosts for the virtual machine based on the SmartNIC resource requirement information and the second resource availability information” are all considered to be a mental process because they involve observation and judgement. Identifying requirements and availability are observations. Identifying hosts that meet a requirement and selecting a host that meets another requirement involves a judgement. Therefore, Yes, claims 1, 9, and 17 recite a judicial exception. Step 2A Prong 2 will evaluate whether the claims are directed to a judicial exception. Step 2A Prong 2: Claims 1, 9, and 17: The judicial exception is not integrated into a practical application. Claims 1, 9, and 17 recite “a computing that provides virtual machine management service using a set of hosts in a computing environment, each of the set of hosts comprises a main processing system that hosts a hypervisor on which virtual machines can be executed and a smart network interface connector (SmartNIC) provided separately from the main processing system”, “wherein the main processing system of each of the set of hosts comprises at least first processing hardware and memory on the host”, “the subset of hosts being two or more hosts among the set of hosts”, and “wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host”. Claim 17 additionally recites “a system comprising a plurality of hosts” and “a management service computer communicatively coupled to the plurality of hosts”. These additional elements are considered field of use/technological environment (MPEP § 2106.05(h)) because they limit the computing environment. Claim 9 recites the following additional elements – “a storage system”, “a processing system operatively coupled to the storage system”, “program instructions stored on the storage system that, when executed by the processing system, direct the computing apparatus to”. These additional elements are merely recitations of generic computing components and functions merely being used as a tool to apply the abstract idea (MPEP § 2106.05(f)). Claims 1, 9, and 17 also recite “deploying the virtual machine on the selected host, said deploying including configuring a SmartNIC on the selected host to support network operations for the virtual machine”. This additional element is considered mere instructions to apply an exception (MPEP § 2106.05(f)) because it realizes the result of the selection process (which is the mental process). Additionally, it is carried as an insignificant extra-solution activity of data gathering/transmission (MPEP § 2106.05(g)). These additional elements do not integrate the judicial exception into a practical application. Therefore, “Do the claims recite additional elements that integrate the judicial exception in a practical application?” No, these additional elements do not integrate the abstract idea into a practical application and they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea. After having evaluated the inquiries set forth in Steps 2A Prong 1 and 2, it has been concluded that claims 1, 9, and 17 not only recite a judicial exception but that the claims are directed to the judicial exception as the judicial exception has not been integrated into practical application. Step 2B: Claims 1, 9, and 17: The claims do not include additional elements, alone or in combination, that are sufficient to amount to significantly more than the judicial exception. As discussed above, the additional elements only amount to field of use/technological environment, means to apply an exception, and insignificant extra-solution activity. When reevaluating the deploying step for an inventive concept that is significantly more, no inventive concept other than what is well-understood, routine, or conventional was found. MPEP § 2106.05(d)(II) states “Receiving or transmitting data over a network” is a well-understood, routine, and conventional computer function. Deploying a VM to a host is the transmission of data over a network. When reevaluating the additional elements as a combination, no inventive concept that is significantly more was found in the process of identifying information, identifying a subset of hosts that meet a first criteria, selecting a host based on a second criteria from the subset, and deploying a VM to the selected host performed by a generic computer. The identifying and selecting steps are different steps to carry out the mental process. The generic computing components only carry out the mental process, so they are not significantly more. The virtual machine deployment step is a result step that is performed to realize the mental processes, and is not significantly more because any host selection process would be performed for the purpose of deploying a virtual machine or some other action requiring a target host. Limiting the computing environment to hosts with smartNICs featuring separate resources does not amount to significantly more. Each additional element does not add an inventive concept that is significantly more. Therefore, “Do the claims recite additional elements that amount to significantly more than the judicial exception? No, these additional elements, alone or in combination, do not amount to significantly more than the judicial exception. Having concluded analysis with in the provided framework, claims 1, 9, and 17 do not recite eligible subject matter under 35 U.S.C. § 101. With regards to claims 2, 10, and 18, it recites “wherein identifying the SmartNIC resource requirement information comprises estimating the SmartNIC resource requirement information based on a workload for the virtual machine”. Under its broadest reasonable interpretation, the limitation covers performance of the limitation of the mind. Estimating requirement information is something that can be done completely in the mind. Therefore, claims 2, 10, and 18 recite a judicial exception and fail Step 2A Prong 1. Claims 2, 10, and 18 do not add any additional elements that integrate the judicial exception into a practical application, so the claims fail Step 2A Prong 2. Additionally, there are no other additional elements that amount to something significantly more, so the limitation fails Step 2B. Therefore, claims 2, 10, and 18 do not recite patent eligible subject matter under 35 U.S.C. § 101. With regards to claims 3 and 11, it recites an additional element recitation of “wherein the SmartNIC resource requirement information comprises processing resource requirements and memory resource requirements”. The claim further limits the mental process described in claims 1 and 9 respectively. Therefore, claims 3 and 11 are also considered a mental process and fails Step 2A Prong 1. Claims 3 and 11 do not add any additional elements that integrate the judicial exception into a practical application, so the claims fail Step 2A Prong 2. Additionally, there are no other additional elements that amount to something significantly more, so the limitation fails Step 2B. Therefore, claims 3 and 11 do not recite patent eligible subject matter under 35 U.S.C. § 101. With regards to claims 4, 12, and 19, it recites additional element recitations of “identifying a feature set associated with each SmartNIC of the SmartNICs” and “wherein selecting the host from the subset of hosts for the virtual machine is further based on the feature sets associated with the SmartNICs”. Under its broadest reasonable interpretation, the additional elements cover performance of the mind. Identifying a SmartNIC feature set involves a mental process of observing and understanding, and selecting a host based on a SmartNIC feature set is considered a judgement. Therefore, claims 4, 12, and 19 recite a judicial exception and fail Step 2A Prong 1. Claims 4, 12, and 19 do not add any additional elements that integrate the judicial exception into a practical application, so the claims fail Step 2A Prong 2. Additionally, there are no other additional elements that amount to something significantly more, so the limitation fails Step 2B. Therefore, claims 4, 12, and 19 do not recite patent eligible subject matter under 35 U.S.C. § 101. With regards to claims 5 and 13, it recites an additional element recitation of “wherein the second resource availability information comprises processor resource usage associated with each SmartNIC of the SmartNICs, and memory resource usage associated with each SmartNIC of the SmartNICs”. The claim further limits the mental process described in claims 1 and 9 respectively. Therefore, claims 5 and 13 are also considered a mental process and fails Step 2A Prong 1. Claims 5 and 13 do not add any additional elements that integrate the judicial exception into a practical application, so the claims fail Step 2A Prong 2. Additionally, there are no other additional elements that amount to something significantly more, so the limitation fails Step 2B. Therefore, claims 5 and 13 do not recite patent eligible subject matter under 35 U.S.C. § 101. With regard to claims 6 and 20, it recites “wherein selecting the host from the subset of hosts for the virtual machine comprises selecting a host with a SmartNIC of which resources best satisfy SmartNIC resource requirement associated with the virtual machine, among the subset of hosts”. This limitation further limits the mental process in claims 1 and 17 respectively, so it also considered as such. This limitation is a mental process involving forming a judgement as to which host to select based on observed information. Therefore, the claims fail Step 2A Prong 1. The claims do not add any additional elements that integrate the judicial exception into a practical application, so the claims recite a judicial exception and fail Step 2A Prong 2. Further, the claims do not add any additional elements that when reevaluated, alone or in combination, add an inventive concept that is significantly more, so the claims fail Step 2B. Therefore, claims 6 and 20 do not recite patent eligible subject matter under 35 U.S.C. § 101. With regard to claim 14, it recites “identify resource availability information associated with a main processing system of each host of the hosts” and “wherein selecting the host from the subset of hosts for the virtual machine comprises selecting a host with a SmartNIC of which resources best satisfy SmartNIC resource requirement associated with the virtual machine, among the subset of hosts”. These limitations either restate or further limit the mental process recited in claim 9, so they are also considered a mental process. This limitation is a mental process involving forming a judgement as to which host to select based on observed information. Therefore, the claim recites a judicial exception and fails Step 2A Prong 1. The claim also recites “wherein the main processing system comprises at least first processing hardware and memory on the host” and “wherein the SmartNIC comprises second processing hardware on the host”. These additional elements were considered as field of use/technological environment in claim 9 and will also be considered as such. They do not integrate the judicial exception into a practical application, so the claim fails Step 2A Prong 2. When reevaluating the additional elements, the additional elements, alone or in combination, do not add an inventive concept that is significantly more. Therefore, the claim fails Step 2B. Therefore, claim 14 does not recite patent eligible subject matter under 35 U.S.C. § 101. With regards to claims 7 and 15, it recites “wherein identifying the request to deploy the virtual machine in the computing environment comprises identifying a request to migrate the virtual machine in the computing environment”. Under its broadest reasonable interpretation, this limitation covers performance of the mind. Identifying a request to deploy or migrate a virtual machine is a mental process that involves observing and understanding, which can be completely performed in the mind. Therefore, claims 7 and 15 recite a judicial exception and fail Step 2A Prong 1. Claims 7 and 15 do not add any additional elements that integrate the judicial exception into a practical application, so the claims fail Step 2A Prong 2. Additionally, there are no other additional elements that amount to something significantly more, so the limitation fails Step 2B. Therefore, claims 7 and 15 do not recite patent eligible subject matter under 35 U.S.C. § 101. With regards to claims 8 and 16, it recites “identifying a vendor associated with each SmartNIC of the SmartNICs” and “wherein selecting the host from the subset of hosts for the virtual machine is further based on the vendor associated with each SmartNIC of the SmartNIC”. Under its broadest reasonable interpretation, the limitations cover performance of the mind. Identifying SmartNIC vendor information involves a mental process of observing and understanding. Selecting a host based on SmartNIC vendor information is a judgement. Both limitations can be completely performed in the mind. Therefore, claims 8 and 16 recite a judicial exception and fail Step 2A Prong 1. Claims 8 and 16 do not add any additional elements that integrate the judicial exception into a practical application, so the claims fail Step 2A Prong 2. Additionally, there are no other additional elements that amount to something significantly more, so the limitation fails Step 2B. Therefore, claims 8 and 16 do not recite patent eligible subject matter under 35 U.S.C. § 101. 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) 1, 3, 5-7, 9, 11, 13-15, 17, and 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chawla et al. Pat. No. US 20230029074 A1 (hereafter Chawla) in view of Gamage et al. Pat. No. US 20190356606 A1 (hereafter Gamage) and further in view of Fong et al. Pat. No. US 20230266988 A1 (hereafter Fong). Chawla teaches a method by a computing system that provides virtual machine management service using a set of hosts in a computing environment, each of the set of hosts comprises a main processing system that hosts a hypervisor on which virtual machines can be executed and a smart network interface connector (SmartNIC) provided separately from the main processing system, comprising (¶ [0062] states “the methods described herein may be implemented by software programs executable by a computer system”. ¶ [0030] states “Environment 200 includes a source host 205, a destination host 250, and a virtualization manager 240 communicatively coupled via a network 280” and “Destination host 250 includes a CPU 260, a memory 265, and a smartNIC 270 that includes a memory 275”. ¶ [0043] states “while two servers are illustrated and discussed above, the present disclosure will recognize that many more servers may be part of environment 200”. See FIG. 2. Examiner’s Note: each host in FIG. 2 and other hosts not depicted contain CPU, memory, hypervisor, and a smartNIC): identifying first resource availability information associated with a main processing system of each of the set of hosts in the computing environment, wherein the main processing system of each of the set of hosts comprises at least first processing hardware and memory on the host (¶ [0030] states “Destination host 250 includes a CPU 260, a memory 265”. ¶ [0043] states “while two servers are illustrated and discussed above, the present disclosure will recognize that many more servers may be part of environment 200”. See FIG. 2. Examiner’s Note: CPU 260 is considered first processing hardware); identifying second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0032] states “SmartNIC 230 and smartNIC 270 are programmable network interface cards having processing capability, storage capacity”. See FIG. 2 SmartNIC 230 has Watchdog Timer 232 and Memory 235. Examiner’s Note: in FIG. 2, SmartNIC memory 235 and 275 are different from main processing system memory 220 and 265 respectively. The processing resources are also separate from main processing system); and deploying the virtual machine on the selected host, said deploying including configuring a SmartNIC on the selected host to support network operations for the virtual machine (¶ [0037] states “smartNIC 230 may proceed with the live migration of VM 210B to destination host 250 by copying memory data or memory page(s) associated with VM 210B from memory 235 to memory 275”). Chawla does not explicitly teach identifying a request to deploy a virtual machine, identifying requirements and availability, identifying a subset of hosts, or the SmartNIC identifying steps. However, in an analogous art, Gamage teaches identifying a request to deploy a virtual machine in the computing environment (¶ [0110] states “A determination is made as to whether the scheduler is invoked at 702”. ¶ [0111] states “A determination is made as to whether this is an initial placement of a VCI at 708”. ¶ [0031] states “the scheduler evaluates proposed VCI migrations”. See FIG. 7. Examiner’s Notes: the scheduler is invoked because a virtual machine must have an initial placement or a virtual machine has a proposed migration. When the scheduler determines whether the virtual machine needs an initial placement or a proposed migration, it has identified the request to deploy a virtual machine); identifying requisite processing and memory resources in a main processing system of a host that are required by the virtual machine (¶ [0023] states “virtual computing instance (VCI)”. ¶ [0028] states “The VCI may include a VM”. ¶ [0081] states “The inputs from VCI configuration include VCIs' configured size, as well as their resource settings. The configured size includes, for example but without limitation, total memory and/or number of cores. The resource settings include reservations, limits, and shares”. Examiner’s Note: the VCIs’ configured size and resource settings are the requirements of the virtual machine); identifying first resource availability information associated with a main processing system of each of the set of hosts in the computing environment, wherein the main processing system of each of the set of hosts comprises at least first processing hardware and memory on the host (¶ [0089] states “For the host's available capacity, the scheduler deducts the sum of the entitlements of the other running VCI on that host from the host's total capacity for CPU and memory resources”); identifying a subset of hosts that satisfies the requisite processing and memory resources based on the requisite processing and memory resources and the first resource availability information of each of the hosts, the subset of hosts being two or more hosts among the set of hosts (¶ [0066] states “the scheduler 300 considers primary resource(s), such as CPU and memory, first when making scheduling decisions”. ¶ [0085] states “the scheduler 500 uses a standard deviation based scheduling algorithm to obtain a list of hosts ranked best to worst from the standard deviation aspect” and “The candidate set of hosts 504 is a user defined number of the top ranked hosts in the list of hosts”. ¶ [0084] states “The VCI's actual resource utilization is unknown at initial placement. The scheduler 500 uses an estimation of VCI utilization based on the VCI's configured size as its entitlements for CPU and memory when calculating the standard deviation”. ¶ [0086] states “the primary resource based ranking 506 generates the candidate set of hosts 504 for the second level analysis by comparing the standard deviation difference against a threshold”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. Examiner’s Note: the user specifies the number of top ranked hosts to include in the candidate host list. This user may choose a number greater or equal to two hosts. When the scheduler estimates VCI utilization using VCI configured size, that is the scheduler using the VCI’s, or virtual machine’s, requirements/requisite information); Gamage states “In this example, the scheduler 500 uses a standard deviation based scheduling algorithm to obtain a list of hosts ranked best to worst from the standard deviation aspect” (¶ [0085]). This algorithm does not explicitly use the availability information to determine a candidate list. However, it would be obvious to substitute the standard deviation based scheduling algorithm with a different algorithm, such as the dot product algorithm that uses an availability vector (¶ [0089]). One of ordinary skill in the art could have performed this substitution, and the results would have been predictable because the “the scheduler identifies a selected host 512 that maximizes the dot product” (¶ [0089]). Instead of selecting the maximum, the threshold comparison process in ¶ [0086] and the “user defined number of the top ranked hosts in the list of hosts” (¶ [0085]) could be used to determine the candidate list of hosts. One of ordinary skill in the art would have been motivated to perform this simple substitution to enable “cluster scheduling by optimizing memory and processor resources while also optimizing network resources” (¶ [0030]). and after identifying the subset of hosts: identifying SmartNIC resource requirement information associated with the virtual machine (¶ [0088] states “During the second level host selection performed by the network based ranking 508, the scheduler selects the best host from the short-listed hosts in the candidate set of hosts for power-on operation”. “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. See FIG. 5. ¶ [0089] states “For networking resources, the scheduler assumes the VCI will use its entire capacity of virtual network interface card (vNIC) and use the capacity of the vNIC as its demand”. Examiner’s Notes: Networking Based Ranking 508 occurs after Candidate Set of Hosts 504. The second level host selection occurs after a candidate list of hosts is calculated. The networking demands are the networking resource requirements); identifying second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0089] states “For networking resources, the scheduler in some examples deducts the current utilization from total capacity to obtain the available capacity” and “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. See FIG. 5. Examiner’s Note: the networking resource availability is the second resource availability information. This information is calculated for each host in the subset of hosts because Networking Based Ranking 508 occurs after Candidate Set of Hosts 504); selecting a host from the subset of hosts for the virtual machine based on the SmartNIC resources requirement information and the second resource availability information (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”); It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the host selection process based on first CPU and memory resources and second network resources for virtual machine placement of Gamage with the host and smartNIC environment for virtual machine migration of Chawla. Chawla states “a destination server which may be determined during or prior to the live migration” (¶ [0037]). The host selection process of Gamage is the destination server determination step of Chawla. The result is a system that determines a host for virtual machine deployment based on CPU and memory requirements and availability as well as networking requirements, wherein the host includes a smartNIC that has separate processing and memory resources. A person having ordinary skill in the art would have been motivated to make this combination for the purpose of “optimizing memory and processor resources while also optimizing network resources” (Gamage ¶ [0030]). Additionally, by considering network resources in the scheduler, the “network-utilization based scheduling improves host selection speed, reduces processor load, conserves memory, avoids placement of VCIs that may increase network saturation, and remediates network saturated hosts” (Gamage ¶ [0031]). Although Chawla teaches the environment featuring smartNICs on hosts and smartNICs that have processors and memory and Gamage teaches a two-step process to selecting a host for virtual machine placement using primary and networking resources, Chawla and Gamage do not explicitly teach that the second resource requirement and availability are associated with a smartNIC. However, in an analogous art, Fong teaches and after identifying the subset of hosts: identifying SmartNIC resource requirement information associated with the virtual machine (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. Examiner’s Note: the user’s request contains the smartNIC resource requirement information). identifying second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0030] states “the request processing module 113 identifies SmartNICs 112 comprising the requested resource(s)”. Examiner’s Note: the identification of smartNICs comprising the requested resources is the identification of availability information); and deploying the virtual machine on the selected host, said deploying including configuring a SmartNIC on the selected host to support network operations for the virtual machine (¶ [0021] states “Virtualized computing resource images 105 comprise, for example, static files with executable code that can create a VM or container on a computing system. As explained in more detail herein, the virtualized computing resource images 105 can be deployed by the cloud service providers 110 to run virtualized computing resource instances on SmartNICs to execute one or more workloads 103”. ¶ [0033] states “a given workload 103 is deployed and offloaded to a SmartNIC 112 allocated to the pod”. ¶ [0024] states “data processing from network traffic can be processed within a given SmartNIC 112 without host device involvement”. Examiner’s Note: when a task is offloaded to a smartNIC, it means that the smartNIC has been configured to support network operations for the workload or virtual machine). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the requested smartNIC resources, the smartNIC resource availability, and the smartNIC workload offloading of Fong with the host and smartNIC environment of Chawla and the host selection process of Gamage. The result is a system where the CPU and memory requirements and availability are considered first to create a subset of candidate hosts. Then, it would be obvious that the smartNIC requirements and availability of Fong can be considered when performing the network based ranking of hosts of Gamage. Specifically, the demand and availability vectors in the dot product algorithm of Gamage could be extended to include the smartNIC resource requirements and availability of Fong. Finally, one of the hosts that include a smartNIC with separate processing and memory resources of Chawla is selected and a virtual machine is deployed. A person having ordinary skill in the art would have been motivated to make this combination to “enable users to request SmartNIC resources from one or more service plans and manage the usage of the requested SmartNIC resources based on a kernel's mechanism for aggregating and/or partitioning containers. The techniques disclosed herein eliminate cloud service provider entrance barriers so that users may have unrestricted access to develop and orchestrate advanced workloads in larger edge and/or multi-cloud environments” (Fong ¶ [0058]). Additionally, “the technical solutions described herein provide a declarative model for SmartNIC usage that enables users to harness the resources within SmartNICs” and “As a result, the embodiments facilitate interoperability and platform independence so that users are not restricted to a particular SmartNIC vendors” (Fong ¶ [0059]). With regard to claim 3, Chawla, Gamage, and Fong teach the method of claim 1. Fong additionally teaches wherein the SmartNIC resource requirement information comprises processing resource requirements and memory resource requirements (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. See FIG. 2). Fong does not explicitly teach the resource requirement information comprising memory resource requirements. However, including a memory resource requirement in the smartNIC plans would have been obvious to one of ordinary skill in the art because Fong does teach GPU memory being included in the plans. Additionally, Fong teaches a memory resource in the smartNIC as shown in FIG. 2. One of ordinary skill in the art would been motivated to include a memory resource requirement in the smartNIC resource requirement information so that “enable users to request SmartNIC resources from one or more service plans and manage the usage of the requested SmartNIC resources based on a kernel's mechanism for aggregating and/or partitioning containers. The techniques disclosed herein eliminate cloud service provider entrance barriers so that users may have unrestricted access to develop and orchestrate advanced workloads in larger edge and/or multi-cloud environments” (¶ [0058]). Specifying a smartNIC memory resource requirement contributes to orchestrating advanced workloads. With regard to claim 5, Chawla, Gamage, and Fong teach the method of claim 1. Gamage teaches wherein the second resource availability information comprises processor resource usage associated with each SmartNIC of the SmartNICs, and memory resource usage associated with each SmartNIC of the SmartNICs (¶ [0072] states “The host resource usage data includes, without limitation, total CPU utilization, total consumed memory”). Gamage does not explicitly state the CPU utilization and memory utilization are associated with the smartNIC’s resources. However, Fong additionally teaches wherein the second resource availability information comprises processor resource usage associated with each SmartNIC of the SmartNICs, and memory resource usage associated with each SmartNIC of the SmartNICs (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “For example, based on available service plans, users via a user interface on a user device 102, can choose from available resources, as well as available quality of service (QoS) options. For example, plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. ¶ [0030] states “the request processing module 113 identifies SmartNICs 112 comprising the requested resource(s)”. See FIG. 2, and ¶ [0023] states “A SmartNIC 112 comprises a SmartNIC operating system 161, a CPU 162, RAM 163 and accelerators”). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the CPU and memory resources of the smartNIC of Fong with the resource usage data of Gamage. The result is the identification of processor and memory resource usage for each smartNIC. A person having ordinary skill in the art would have been motivated to make this combination to “enable users to request SmartNIC resources from one or more service plans and manage the usage of the requested SmartNIC resources based on a kernel's mechanism for aggregating and/or partitioning containers” (¶ [0058]) and “provide a declarative model for SmartNIC usage that enables users to harness the resources within SmartNICs or off-board the resources by declaring the type and amount of resources required to run a certain application in a given resource request” (¶ [0059]). With regard to claim 6, Chawla, Gamage, and Fong teach the method of claim 1. Gamage additionally teaches wherein selecting the host from the subset of hosts for the virtual machine comprises selecting a host with a SmartNIC of which resources best satisfy SmartNIC resource requirement associated with the virtual machine, among the subset of hosts (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. See FIG. 5. Examiner’s Note: in light of the relative terminology issue raised in the 112(b) claim rejections, the term “best satisfy” is interpreted to mean that at least one requirement is satisfied. The dot product is interpreted to represent degrees of satisfied requirements). With regard to claim 7, Chawla, Gamage, and Fong teach the method of claim 1. Gamage additionally teaches wherein identifying the request to deploy the virtual machine in the computing environment comprises identifying a request to migrate the virtual machine in the computing environment (¶ [0110] states “A determination is made as to whether the scheduler is invoked at 702”. ¶ [0031] states “the scheduler evaluates proposed VCI migrations”. See FIG. 7. Examiner’s Note: the proposed migration is a request to migrate the virtual machine). With regard to claim 9, Chawla teaches identify a request to deploy a virtual machine in a computing environment including a set of hosts, each of the set of hosts comprising a main processing system that hosts a hypervisor on which virtual machines can be executed and a smart network interface connector (SmartNIC) provided separately from the main processing system (¶ [0062] states “the methods described herein may be implemented by software programs executable by a computer system”. ¶ [0030] states “Environment 200 includes a source host 205, a destination host 250, and a virtualization manager 240 communicatively coupled via a network 280” and “Destination host 250 includes a CPU 260, a memory 265, and a smartNIC 270 that includes a memory 275”. ¶ [0043] states “while two servers are illustrated and discussed above, the present disclosure will recognize that many more servers may be part of environment 200”. See FIG. 2. Examiner’s Note: each host in FIG. 2 and other hosts not depicted contain CPU, memory, hypervisor, and a smartNIC); identify first resource availability information associated with a main processing system of each of the set of hosts in the computing environment, wherein the main processing system of each of the set of hosts comprises at least first processing hardware and memory on the host (“Destination host 250 includes a CPU 260, a memory 265”. ¶ [0043] states “while two servers are illustrated and discussed above, the present disclosure will recognize that many more servers may be part of environment 200”. See FIG. 2. Examiner’s Note: CPU 260 is considered first processing hardware); identify second resource availability information associated with SmartNICs on the subset of hosts wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0032] states “SmartNIC 230 and smartNIC 270 are programmable network interface cards having processing capability, storage capacity”. See FIG. 2 SmartNIC 230 has Watchdog Timer 232 and Memory 235. Examiner’s Note: in FIG. 2, SmartNIC memory 235 and 275 are different from main processing system memory 220 and 265 respectively. The processing resources are also separate from main processing system); and deploy the virtual machine on the selected host, said deploying including configuring a SmartNIC on the selected host to support network operations for the virtual machine (¶ [0037] states “smartNIC 230 may proceed with the live migration of VM 210B to destination host 250 by copying memory data or memory page(s) associated with VM 210B from memory 235 to memory 275”). Chawla does not explicitly teach identifying a request to deploy a virtual machine, identifying requirements and availability, identifying a subset of hosts, or the SmartNIC identifying steps. However, in an analogous art, Gamage teaches a computing apparatus comprising: a storage system; a processing system operatively coupled to the storage system; and program instructions stored on the storage system that, when executed by the processing system, direct the computing apparatus to (¶ [0049] states “The scheduler 108 runs on one or more computing devices associated with the data center 110 in this example”. ¶ [0051] states “The host computing device 200 may include desktop personal computers, kiosks, tabletop devices, industrial control devices, or server, such as, but not limited to, a server in the data center 110 in FIG. 1”. ¶ [0054] states “The host computing device 200 further has one or more computer readable media, such as the memory 206”. See FIG. 2 Hardware Platform 202, Processor(s) 204, Memory 206, Computer Readable Instructions 214, Data Storage Device(s) 218. Examiner’s Note: the computer in FIG. 2 is an example computer the scheduler runs on): identify a request to deploy a virtual machine in a computing environment including a set of hosts, each of the set of hosts comprising a main processing system that hosts a hypervisor on which virtual machines can be executed and a smart network interface connector (SmartNIC) provided separately from the main processing system (¶ [0110] states “A determination is made as to whether the scheduler is invoked at 702”. ¶ [0111] states “A determination is made as to whether this is an initial placement of a VCI at 708”. ¶ [0031] states “the scheduler evaluates proposed VCI migrations”. See FIG. 7. Examiner’s Notes: the scheduler is invoked because a virtual machine must have an initial placement or a virtual machine has a proposed migration. When the scheduler determines whether the virtual machine needs an initial placement or a proposed migration, it has identified the request to deploy a virtual machine); identify requisite processing and memory resources in a main processing system of a host that are required by the virtual machine (¶ [0023] states “virtual computing instance (VCI)”. ¶ [0028] states “The VCI may include a VM”. ¶ [0081] states “The inputs from VCI configuration include VCIs' configured size, as well as their resource settings. The configured size includes, for example but without limitation, total memory and/or number of cores. The resource settings include reservations, limits, and shares”. Examiner’s Note: the VCIs’ configured size and resource settings are the requirements of the virtual machine); identify first resource availability information associated with a main processing system of each of the set of hosts in the computing environment, wherein the main processing system of each of the set of hosts comprises at least first processing hardware and memory on the host (¶ [0089] states “For the host's available capacity, the scheduler deducts the sum of the entitlements of the other running VCI on that host from the host's total capacity for CPU and memory resources”); identify a subset of hosts that satisfies the requisite processing and memory resources based on the requisite processing and memory resources and the first resource availability information of each of the hosts, the subset of hosts being two or more hosts among the set of hosts (¶ [0066] states “the scheduler 300 considers primary resource(s), such as CPU and memory, first when making scheduling decisions”. ¶ [0085] states “the scheduler 500 uses a standard deviation based scheduling algorithm to obtain a list of hosts ranked best to worst from the standard deviation aspect” and “The candidate set of hosts 504 is a user defined number of the top ranked hosts in the list of hosts”. ¶ [0084] states “The VCI's actual resource utilization is unknown at initial placement. The scheduler 500 uses an estimation of VCI utilization based on the VCI's configured size as its entitlements for CPU and memory when calculating the standard deviation”. ¶ [0086] states “the primary resource based ranking 506 generates the candidate set of hosts 504 for the second level analysis by comparing the standard deviation difference against a threshold”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. Examiner’s Note: the user specifies the number of top ranked hosts to include in the candidate host list. This user may choose a number greater or equal to two hosts. When the scheduler estimates VCI utilization using VCI configured size, that is the scheduler using the VCI’s, or virtual machine’s, requirements/requisite information); Gamage states “In this example, the scheduler 500 uses a standard deviation based scheduling algorithm to obtain a list of hosts ranked best to worst from the standard deviation aspect” (¶ [0085]). This algorithm does not explicitly use the availability information to determine a candidate list. However, it would be obvious to substitute the standard deviation based scheduling algorithm with a different algorithm, such as the dot product algorithm that uses an availability vector (¶ [0089]). One of ordinary skill in the art could have performed this substitution, and the results would have been predictable because the “the scheduler identifies a selected host 512 that maximizes the dot product” (¶ [0089]). Instead of selecting the maximum, the threshold comparison process in ¶ [0086] and the “user defined number of the top ranked hosts in the list of hosts” (¶ [0085]) could be used to determine the candidate list of hosts. One of ordinary skill in the art would have been motivated to perform this simple substitution to enable “cluster scheduling by optimizing memory and processor resources while also optimizing network resources” (¶ [0030]). and after identifying the subset of hosts: identify SmartNIC resource requirement information associated with the virtual machine (¶ [0088] states “During the second level host selection performed by the network based ranking 508, the scheduler selects the best host from the short-listed hosts in the candidate set of hosts for power-on operation”. “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. See FIG. 5. ¶ [0089] states “For networking resources, the scheduler assumes the VCI will use its entire capacity of virtual network interface card (vNIC) and use the capacity of the vNIC as its demand”. Examiner’s Notes: Networking Based Ranking 508 occurs after Candidate Set of Hosts 504. The second level host selection occurs after a candidate list of hosts is calculated. The networking demands are the networking resource requirements); identify second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0089] states “For networking resources, the scheduler in some examples deducts the current utilization from total capacity to obtain the available capacity” and “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. See FIG. 5. Examiner’s Note: the networking resource availability is the second resource availability information. This information is calculated for each host in the subset of hosts because Networking Based Ranking 508 occurs after Candidate Set of Hosts 504); select a host from the subset of hosts for the virtual machine based on the SmartNIC resources requirement information and the second resource availability information (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”); It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the host selection process based on first CPU and memory resources and second network resources for virtual machine placement of Gamage with the host and smartNIC environment for virtual machine migration of Chawla. Chawla states “a destination server which may be determined during or prior to the live migration” (¶ [0037]). The host selection process of Gamage is the destination server determination step of Chawla. The result is a system that determines a host for virtual machine deployment based on CPU and memory requirements and availability as well as networking requirements, wherein the host includes a smartNIC that has separate processing and memory resources. A person having ordinary skill in the art would have been motivated to make this combination for the purpose of “optimizing memory and processor resources while also optimizing network resources” (Gamage ¶ [0030]). Additionally, by considering network resources in the scheduler, the “network-utilization based scheduling improves host selection speed, reduces processor load, conserves memory, avoids placement of VCIs that may increase network saturation, and remediates network saturated hosts” (Gamage ¶ [0031]). Although Chawla teaches the environment featuring smartNICs on hosts and smartNICs that have processors and memory and Gamage teaches a two-step process to selecting a host for virtual machine placement using primary and networking resources, Chawla and Gamage do not explicitly teach that the second resource requirement and availability are associated with a smartNIC. However, in an analogous art, Fong teaches and after identifying the subset of hosts: identify SmartNIC resource requirement information associated with the virtual machine (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. Examiner’s Note: the user’s request contains the smartNIC resource requirement information); identify second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0030] states “the request processing module 113 identifies SmartNICs 112 comprising the requested resource(s)”. Examiner’s Note: the identification of smartNICs comprising the requested resources is the identification of availability information); and deploy the virtual machine on the selected host, said deploying including configuring a SmartNIC on the selected host to support network operations for the virtual machine (¶ [0021] states “Virtualized computing resource images 105 comprise, for example, static files with executable code that can create a VM or container on a computing system. As explained in more detail herein, the virtualized computing resource images 105 can be deployed by the cloud service providers 110 to run virtualized computing resource instances on SmartNICs to execute one or more workloads 103”. ¶ [0033] states “a given workload 103 is deployed and offloaded to a SmartNIC 112 allocated to the pod”. ¶ [0024] states “data processing from network traffic can be processed within a given SmartNIC 112 without host device involvement”. Examiner’s Note: when a task is offloaded to a smartNIC, it means that the smartNIC has been configured to support network operations for the workload or virtual machine); It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the requested smartNIC resources, the smartNIC resource availability, and the smartNIC workload offloading of Fong with the host and smartNIC environment of Chawla and the host selection process of Gamage. The result is a system where the CPU and memory requirements and availability are considered first to create a subset of candidate hosts. Then, it would be obvious that the smartNIC requirements and availability of Fong can be considered when performing the network based ranking of hosts of Gamage. Specifically, the demand and availability vectors in the dot product algorithm of Gamage could be extended to include the smartNIC resource requirements and availability of Fong. Finally, one of the hosts that include a smartNIC with separate processing and memory resources of Chawla is selected and a virtual machine is deployed. A person having ordinary skill in the art would have been motivated to make this combination to “enable users to request SmartNIC resources from one or more service plans and manage the usage of the requested SmartNIC resources based on a kernel's mechanism for aggregating and/or partitioning containers. The techniques disclosed herein eliminate cloud service provider entrance barriers so that users may have unrestricted access to develop and orchestrate advanced workloads in larger edge and/or multi-cloud environments” (Fong ¶ [0058]). Additionally, “the technical solutions described herein provide a declarative model for SmartNIC usage that enables users to harness the resources within SmartNICs” and “As a result, the embodiments facilitate interoperability and platform independence so that users are not restricted to a particular SmartNIC vendors” (Fong ¶ [0059]). With regard to claim 11, Chawla, Gamage, and Fong teach the computing apparatus of claim 9. Fong additionally teaches wherein the SmartNIC resource requirement information comprises processing resource requirements and memory resource requirements (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. See FIG. 2). Fong does not explicitly teach the resource requirement information comprising memory resource requirements. However, including a memory resource requirement in the smartNIC plans would have been obvious to one of ordinary skill in the art because Fong does teach GPU memory being included in the plans. Additionally, Fong teaches a memory resource in the smartNIC as shown in FIG. 2. One of ordinary skill in the art would been motivated to include a memory resource requirement in the smartNIC resource requirement information so that “enable users to request SmartNIC resources from one or more service plans and manage the usage of the requested SmartNIC resources based on a kernel's mechanism for aggregating and/or partitioning containers. The techniques disclosed herein eliminate cloud service provider entrance barriers so that users may have unrestricted access to develop and orchestrate advanced workloads in larger edge and/or multi-cloud environments” (¶ [0058]). Specifying a smartNIC memory resource requirement contributes to orchestrating advanced workloads. With regard to claim 13, Chawla, Gamage, and Fong teach the computing apparatus of claim 9. Gamage additionally teaches wherein the second resource availability information comprises processor resource usage associated with each SmartNIC of the SmartNICs, and memory resource usage associated with each SmartNIC of the SmartNICs (¶ [0072] states “The host resource usage data includes, without limitation, total CPU utilization, total consumed memory”). Gamage does not explicitly state the CPU utilization and memory utilization are associated with the smartNIC’s resources. However, Fong additionally teaches wherein the second resource availability information comprises processor resource usage associated with each SmartNIC of the SmartNICs, and memory resource usage associated with each SmartNIC of the SmartNICs (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “For example, based on available service plans, users via a user interface on a user device 102, can choose from available resources, as well as available quality of service (QoS) options. For example, plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. ¶ [0030] states “the request processing module 113 identifies SmartNICs 112 comprising the requested resource(s)”. See FIG. 2, and ¶ [0023] states “A SmartNIC 112 comprises a SmartNIC operating system 161, a CPU 162, RAM 163 and accelerators”). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the CPU and memory resources of the smartNIC of Fong with the resource usage data of Gamage. The result is the identification of processor and memory resource usage for each smartNIC. A person having ordinary skill in the art would have been motivated to make this combination to “enable users to request SmartNIC resources from one or more service plans and manage the usage of the requested SmartNIC resources based on a kernel's mechanism for aggregating and/or partitioning containers” (¶ [0058]) and “provide a declarative model for SmartNIC usage that enables users to harness the resources within SmartNICs or off-board the resources by declaring the type and amount of resources required to run a certain application in a given resource request” (¶ [0059]). With regard to claim 14, Chawla, Gamage, and Fong teach the computing apparatus of claim 9. Chawla additionally teaches wherein the main processing system comprises at least first processing hardware and memory on the host (¶ [0030] states “Destination host 250 includes a CPU 260, a memory 265”. See FIG. 2), and wherein the SmartNIC comprises second processing hardware on the host (¶ [0032] states “SmartNIC 230 and smartNIC 270 are programmable network interface cards having processing capability, storage capacity”. See FIG. 2 SmartNIC 230 has Watchdog Timer 232 and Memory 235. Examiner’s Note: in FIG. 2, SmartNIC memory 235 and 275 are different from main processing system memory 220 and 265 respectively. The processing resources are also separate from main processing system); Gamage additionally teaches wherein the program instructions further direct the computing apparatus to: identify resource availability information associated with a main processing system of each host of the hosts (¶ [0089] states “For the host's available capacity, the scheduler deducts the sum of the entitlements of the other running VCI on that host from the host's total capacity for CPU and memory resources”), and wherein selecting the host from the subset of hosts for the virtual machine comprises selecting a host with a SmartNIC of which resources best satisfy SmartNIC resource requirement associated with the virtual machine, among the subset of hosts (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. See FIG. 5. Examiner’s Note: in light of the relative terminology issue raised in the 112(b) claim rejections, the term “best satisfy” is interpreted to mean that at least one requirement is satisfied. The dot product is interpreted to represent degrees of satisfied requirements). With regard to claim 15, Chawla, Gamage, and Fong teach the computing apparatus of claim 9. Gamage additionally teaches wherein identifying the request to deploy the virtual machine in the computing environment comprises identifying a request to migrate the virtual machine in the computing environment (¶ [0110] states “A determination is made as to whether the scheduler is invoked at 702”. ¶ [0031] states “the scheduler evaluates proposed VCI migrations”. See FIG. 7. Examiner’s Note: the proposed migration is a request to migrate the virtual machine). With regard to claim 17, Chawla teaches identify a request to deploy a virtual machine in a computing environment including a set of hosts, each of the set of hosts comprising a main processing system that hosts a hypervisor on which virtual machines can be executed and a smart network interface connector (SmartNIC) provided separately from the main processing system (¶ [0062] states “the methods described herein may be implemented by software programs executable by a computer system”. ¶ [0030] states “Environment 200 includes a source host 205, a destination host 250, and a virtualization manager 240 communicatively coupled via a network 280” and “Destination host 250 includes a CPU 260, a memory 265, and a smartNIC 270 that includes a memory 275”. ¶ [0043] states “while two servers are illustrated and discussed above, the present disclosure will recognize that many more servers may be part of environment 200”. See FIG. 2. Examiner’s Note: each host in FIG. 2 and other hosts not depicted contain CPU, memory, hypervisor, and a smartNIC); identify first resource availability information associated with a main processing system of each of a set of hosts in the computing environment, wherein the main processing system of each of the set of hosts comprises at least first processing hardware and memory on the host (¶ [0030] states “Destination host 250 includes a CPU 260, a memory 265”. ¶ [0043] states “while two servers are illustrated and discussed above, the present disclosure will recognize that many more servers may be part of environment 200”. See FIG. 2. Examiner’s Note: CPU 260 is considered first processing hardware); identifying second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0032] states “SmartNIC 230 and smartNIC 270 are programmable network interface cards having processing capability, storage capacity”. See FIG. 2 SmartNIC 230 has Watchdog Timer 232 and Memory 235. Examiner’s Note: in FIG. 2, SmartNIC memory 235 and 275 are different from main processing system memory 220 and 265 respectively. The processing resources are also separate from main processing system); and deploy the virtual machine on the selected host, said deploying including configuring a SmartNIC on the selected host to support network operations for the virtual machine (¶ [0037] states “smartNIC 230 may proceed with the live migration of VM 210B to destination host 250 by copying memory data or memory page(s) associated with VM 210B from memory 235 to memory 275”). Chawla does not explicitly teach identifying a request to deploy a virtual machine, identifying requirements and availability, identifying a subset of hosts, or the SmartNIC identifying steps However, in analogous art, Gamage teaches a system comprising: a plurality of hosts (See FIG. 3. ¶ [0068] states “Cluster 310 includes a plurality of hosts, such as host 312 and 314”); a management service computer communicatively coupled to the plurality of hosts and configured to (¶ [0049] states “The scheduler 108 runs on one or more computing devices associated with the data center 110 in this example”. ¶ [0051] states “The host computing device 200 may include desktop personal computers, kiosks, tabletop devices, industrial control devices, or server, such as, but not limited to, a server in the data center 110 in FIG. 1”. ¶ [0066] states “The scheduler 300 in this example includes an initial placement component 302”. See FIG. 3. ¶ [0068] states “Cluster 310 includes a plurality of hosts, such as host 312 and 314”): identify a request to deploy a virtual machine in a computing environment including a set of hosts, each of the set of hosts comprising a main processing system that hosts a hypervisor on which virtual machines can be executed and a smart network interface connector (SmartNIC) provided separately from the main processing system (¶ [0110] states “A determination is made as to whether the scheduler is invoked at 702”. ¶ [0111] states “A determination is made as to whether this is an initial placement of a VCI at 708”. ¶ [0031] states “the scheduler evaluates proposed VCI migrations”. See FIG. 7. Examiner’s Notes: the scheduler is invoked because a virtual machine must have an initial placement or a virtual machine has a proposed migration. When the scheduler determines whether the virtual machine needs an initial placement or a proposed migration, it has identified the request to deploy a virtual machine); identify requisite processing and memory resources in a main processing system of a host that are required by the virtual machine (¶ [0023] states “virtual computing instance (VCI)”. ¶ [0028] states “The VCI may include a VM”. ¶ [0081] states “The inputs from VCI configuration include VCIs' configured size, as well as their resource settings. The configured size includes, for example but without limitation, total memory and/or number of cores. The resource settings include reservations, limits, and shares”. Examiner’s Note: the VCIs’ configured size and resource settings are the requirements of the virtual machine); identify first resource availability information associated with a main processing system of each of the set of hosts in the computing environment, wherein the main processing system of each of the set of hosts comprises at least first processing hardware and memory on the host (¶ [0089] states “For the host's available capacity, the scheduler deducts the sum of the entitlements of the other running VCI on that host from the host's total capacity for CPU and memory resources”); identifying a subset of hosts that satisfies the requisite processing and memory resources based on the requisite processing and memory resources and the first resource availability information of each of the hosts, the subset of hosts being two or more hosts among the set of hosts (¶ [0066] states “the scheduler 300 considers primary resource(s), such as CPU and memory, first when making scheduling decisions”. ¶ [0085] states “the scheduler 500 uses a standard deviation based scheduling algorithm to obtain a list of hosts ranked best to worst from the standard deviation aspect” and “The candidate set of hosts 504 is a user defined number of the top ranked hosts in the list of hosts”. ¶ [0084] states “The VCI's actual resource utilization is unknown at initial placement. The scheduler 500 uses an estimation of VCI utilization based on the VCI's configured size as its entitlements for CPU and memory when calculating the standard deviation”. ¶ [0086] states “the primary resource based ranking 506 generates the candidate set of hosts 504 for the second level analysis by comparing the standard deviation difference against a threshold”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. Examiner’s Note: the user specifies the number of top ranked hosts to include in the candidate host list. This user may choose a number greater or equal to two hosts. When the scheduler estimates VCI utilization using VCI configured size, that is the scheduler using the VCI’s, or virtual machine’s, requirements/requisite information); Gamage states “In this example, the scheduler 500 uses a standard deviation based scheduling algorithm to obtain a list of hosts ranked best to worst from the standard deviation aspect” (¶ [0085]). This algorithm does not explicitly use the availability information to determine a candidate list. However, it would be obvious to substitute the standard deviation based scheduling algorithm with a different algorithm, such as the dot product algorithm that uses an availability vector (¶ [0089]). One of ordinary skill in the art could have performed this substitution, and the results would have been predictable because the “the scheduler identifies a selected host 512 that maximizes the dot product” (¶ [0089]). Instead of selecting the maximum, the threshold comparison process in ¶ [0086] and the “user defined number of the top ranked hosts in the list of hosts” (¶ [0085]) could be used to determine the candidate list of hosts. One of ordinary skill in the art would have been motivated to perform this simple substitution to enable “cluster scheduling by optimizing memory and processor resources while also optimizing network resources” (¶ [0030]). and after identifying the subset of hosts: identify SmartNIC resource requirement information associated with the virtual machine (¶ [0088] states “During the second level host selection performed by the network based ranking 508, the scheduler selects the best host from the short-listed hosts in the candidate set of hosts for power-on operation”. “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. See FIG. 5. ¶ [0089] states “For networking resources, the scheduler assumes the VCI will use its entire capacity of virtual network interface card (vNIC) and use the capacity of the vNIC as its demand”. Examiner’s Notes: Networking Based Ranking 508 occurs after Candidate Set of Hosts 504. The second level host selection occurs after a candidate list of hosts is calculated. The networking demands are the networking resource requirements); identifying second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0089] states “For networking resources, the scheduler in some examples deducts the current utilization from total capacity to obtain the available capacity” and “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. See FIG. 5. Examiner’s Note: the networking resource availability is the second resource availability information. This information is calculated for each host in the subset of hosts because Networking Based Ranking 508 occurs after Candidate Set of Hosts 504); select a host from the subset of hosts for the virtual machine based on the SmartNIC resources requirement information and the second resource availability information (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”); It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the host selection process based on first CPU and memory resources and second network resources for virtual machine placement of Gamage with the host and smartNIC environment for virtual machine migration of Chawla. Chawla states “a destination server which may be determined during or prior to the live migration” (¶ [0037]). The host selection process of Gamage is the destination server determination step of Chawla. The result is a system that determines a host for virtual machine deployment based on CPU and memory requirements and availability as well as networking requirements, wherein the host includes a smartNIC that has separate processing and memory resources. A person having ordinary skill in the art would have been motivated to make this combination for the purpose of “optimizing memory and processor resources while also optimizing network resources” (Gamage ¶ [0030]). Additionally, by considering network resources in the scheduler, the “network-utilization based scheduling improves host selection speed, reduces processor load, conserves memory, avoids placement of VCIs that may increase network saturation, and remediates network saturated hosts” (Gamage ¶ [0031]). Although Chawla teaches the environment featuring smartNICs on hosts and smartNICs that have processors and memory and Gamage teaches a two-step process to selecting a host for virtual machine placement using primary and networking resources, Chawla and Gamage do not explicitly teach that the second resource requirement and availability are associated with a smartNIC. However, in an analogous art, Fong teaches and after identifying the subset of hosts: identify SmartNIC resource requirement information associated with the virtual machine (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. Examiner’s Note: the user’s request contains the smartNIC resource requirement information); identify second resource availability information associated with SmartNICs on the subset of hosts, wherein the SmartNIC on each of the subset of hosts comprises second processing hardware on the host (¶ [0030] states “the request processing module 113 identifies SmartNICs 112 comprising the requested resource(s)”. Examiner’s Note: the identification of smartNICs comprising the requested resources is the identification of availability information); and deploying the virtual machine on the selected host, said deploying including configuring a SmartNIC on the selected host to support network operations for the virtual machine (¶ [0021] states “Virtualized computing resource images 105 comprise, for example, static files with executable code that can create a VM or container on a computing system. As explained in more detail herein, the virtualized computing resource images 105 can be deployed by the cloud service providers 110 to run virtualized computing resource instances on SmartNICs to execute one or more workloads 103”. ¶ [0033] states “a given workload 103 is deployed and offloaded to a SmartNIC 112 allocated to the pod”. ¶ [0024] states “data processing from network traffic can be processed within a given SmartNIC 112 without host device involvement”. Examiner’s Note: when a task is offloaded to a smartNIC, it means that the smartNIC has been configured to support network operations for the workload or virtual machine). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the requested smartNIC resources, the smartNIC resource availability, and the smartNIC workload offloading of Fong with the host and smartNIC environment of Chawla and the host selection process of Gamage. The result is a system where the CPU and memory requirements and availability are considered first to create a subset of candidate hosts. Then, it would be obvious that the smartNIC requirements and availability of Fong can be considered when performing the network based ranking of hosts of Gamage. Specifically, the demand and availability vectors in the dot product algorithm of Gamage could be extended to include the smartNIC resource requirements and availability of Fong. Finally, one of the hosts that include a smartNIC with separate processing and memory resources of Chawla is selected and a virtual machine is deployed. A person having ordinary skill in the art would have been motivated to make this combination to “enable users to request SmartNIC resources from one or more service plans and manage the usage of the requested SmartNIC resources based on a kernel's mechanism for aggregating and/or partitioning containers. The techniques disclosed herein eliminate cloud service provider entrance barriers so that users may have unrestricted access to develop and orchestrate advanced workloads in larger edge and/or multi-cloud environments” (Fong ¶ [0058]). Additionally, “the technical solutions described herein provide a declarative model for SmartNIC usage that enables users to harness the resources within SmartNICs” and “As a result, the embodiments facilitate interoperability and platform independence so that users are not restricted to a particular SmartNIC vendors” (Fong ¶ [0059]). With regard to claim 20, Chawla, Gamage, and Fong teach the system of claim 17. Gamage additionally teaches wherein selecting the host from the subset of hosts for the virtual machine comprises selecting a host with a smartNIC of which resources best satisfy SmartNIC resource requirement associated with the virtual machine, among the subset of hosts (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”. See FIG. 5. Examiner’s Note: in light of the relative terminology issue raised in the 112(b) claim rejections, the term “best satisfy” is interpreted to mean that at least one requirement is satisfied. The dot product is interpreted to represent degrees of satisfied requirements). Claim(s) 2, 10, and 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chawla in view of Gamage and Fong and further in view of Mestery et al. Pat. No. US 20230153161 A1 (hereafter Mestery). With regard to claim 2, Chawla, Gamage, and Fong teach the method of claim 1. Fong additionally teaches wherein identifying the SmartNIC resource requirement information comprises estimating the SmartNIC resource requirement information based on a workload for the virtual machine (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. Examiner’s Note: the user’s request contains the smartNIC resource requirement information). Chawla, Gamage, and Fong do not explicitly teach estimating resource requirement information. However, in an analogous art, Mestery teaches wherein identifying the SmartNIC resource requirement information comprises estimating the SmartNIC resource requirement information based on a workload for the virtual machine (¶ [0037] states “The workload information may include any information utilized for execution of the workload 112, such as a workload priority, a workload identifier, a workload type, a workload version, resource consumption requirements, etc.” and “Additionally or alternatively to the user request, any of the workload information may be determined based on historical data associated with workload resource consumption (e.g. consumption of one or more workload resources)”. Examiner’s Note: it is interpreted that the historical data could include the computer, storage, or network metrics or other information of previous deployments. Workload information, such as the resource consumption requirements, can be estimated based on historical data). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the determination of resource consumption requirements based on historical data of Mestery with the host selection process and system of Chawla, Gamage, and Fong. A person having ordinary skill in the art would have been motivated to make this combination “to optimize processing of workloads by network devices” (¶ [0012]). By using historical data to estimate workload resource consumption, the system can make better workload placements resulting in “the workloads may be redeployed to other computing resources that include more observability resources associated with the user requested metrics”. The observability resources can then be used “to collect information associated with program execution (or “workload execution”), internal states of software being executed utilizing the computing resources, and communications exchanged between components of the computing resources” (¶ [0018]). One of ordinary skill in the art would recognize the benefits of accessing such information, such as collecting debugging information. With regard to claim 10, Chawla, Gamage, and Fong teach the computing apparatus of claim 9. Fong additionally teaches wherein identifying the SmartNIC resource requirement information comprises estimating the SmartNIC resource requirement information based on a workload for the virtual machine (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. Examiner’s Note: the user’s request contains the smartNIC resource requirement information). Chawla, Gamage, and Fong do not explicitly teach estimating resource requirement information. However, in an analogous art, Mestery teaches wherein identifying the SmartNIC resource requirement information comprises estimating the SmartNIC resource requirement information based on a workload for the virtual machine (¶ [0037] states “The workload information may include any information utilized for execution of the workload 112, such as a workload priority, a workload identifier, a workload type, a workload version, resource consumption requirements, etc.” and “Additionally or alternatively to the user request, any of the workload information may be determined based on historical data associated with workload resource consumption (e.g. consumption of one or more workload resources)”. Examiner’s Note: it is interpreted that the historical data could include the computer, storage, or network metrics or other information of previous deployments. Workload information, such as the resource consumption requirements, can be estimated based on historical data). With regard to claim 18, Chawla, Gamage, and Fong teach the system of claim 17. ? additionally teaches wherein identifying the SmartNIC resource requirement information comprises estimating the SmartNIC resource requirement information based on a workload for the virtual machine (¶ [0030] states “a user can request network interface card resources (e.g., SmartNIC resources) within a CaaS model” and “plans can include SmartNICs with a CPU (e.g., an advanced reduced instruction set computer (RISC) machine (ARM) CPU), a GPU, a partition of a CPU, GPU computational time slices and GPU memory”. Examiner’s Note: the user’s request contains the smartNIC resource requirement information). Chawla, Gamage, and Fong do not explicitly teach estimating resource requirement information. However, in an analogous art, Mestery teaches wherein identifying the SmartNIC resource requirement information comprises estimating the SmartNIC resource requirement information based on a workload for the virtual machine (¶ [0037] states “The workload information may include any information utilized for execution of the workload 112, such as a workload priority, a workload identifier, a workload type, a workload version, resource consumption requirements, etc.” and “Additionally or alternatively to the user request, any of the workload information may be determined based on historical data associated with workload resource consumption (e.g. consumption of one or more workload resources)”. Examiner’s Note: it is interpreted that the historical data could include the computer, storage, or network metrics or other information of previous deployments. Workload information, such as the resource consumption requirements, can be estimated based on historical data). Claim(s) 4, 12, and 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chawla in view of Gamage and Fong and further in view of Rajagopal Pat. No. US 20220197681 A1 (hereafter Rajagopal). With regard to claim 4, Chawla, Gamage, and Fong teach the method of claim 1. Gamage additionally teaches and wherein selecting the host from the subset of hosts for the virtual machine is further based on the feature sets associated with the SmartNICs (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”). Chawla, Gamage, and Fong do not explicitly teach feature sets associated with each smartNIC and selecting based on feature sets. However, in an analogous art, Rajagopal teaches further comprising: identifying a feature set associated with each SmartNIC of the SmartNICs (¶ [0016] states “a smart NIC inventory can include an identification of active smart NIC devices and inactive smart NIC devices, an identification of a location of smart NIC devices, an identification of functional capabilities of smart NIC devices”. ¶ [0023] gives examples of functional capabilities stating “encryption/decryption systems 120A through 120N can be configured by the associated smart NIC 114A through 114N to perform predetermined encryption and decryption processing for data traffic being handled by that smart NIC, such as using encryption and decryption processes specific to those data packets” and “other system processing can also or alternatively be performed by smart NICs 114A through 114N that would not be possible with a prior art NIC operating under control of a separate processor, such as firewall processing, TCP/IP processing, HTTP processing and other suitable processing”); and wherein selecting the host from the subset of hosts for the virtual machine is further based on the feature sets associated with the SmartNICs (¶ [0017] states “smart NIC assignment system 108 can monitor the functionality of an assigned smart NIC to determine whether it is necessary to assign a new smart NIC to a device, to de-allocate assigned devices from a smart NIC when the device is shut down or otherwise no longer requires smart NIC access, and other suitable functions”. Examiner’s Note: the functionality of a smartNIC is used to determine a next action). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the identification of smartNIC functionality of Rajagopal with the host selection process of Chawla, Gamage, and Fong. During the second selection phase of Gamage, it would have been obvious to include smartNIC feature sets of Fong when selecting a host based on network resources. A person having ordinary skill in the art would have been motivated to make this combination for the purpose of offloading tasks to dedicated SmartNIC hardware thereby increasing performance of network applications (Rajagopal ¶ [0010] states “offloading packet treatment to smart network interface controllers (NICs) can be used to provide significant performance improvements for network applications that run on compute servers, such as for “on-demand” application support in cloud computing environments or other related applications”). Different smartNICs have different functionality, so identifying and using feature sets contributes to the success of offloading tasks. With regard to claim 12, Chawla, Gamage, and Fong teaches the computing apparatus of claim 9. Gamage additionally teaches and wherein selecting the host from the subset of hosts for the virtual machine is further based on the feature sets associated with the SmartNICs (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”). Chawla, Gamage, and Fong do not explicitly teach feature sets associated with each smartNIC and selecting based on feature sets. However, in an analogous art, Rajagopal teaches wherein the program instructions further direct the computing apparatus to: identify a feature set associated with each SmartNIC of the SmartNICs (¶ [0016] states “a smart NIC inventory can include an identification of active smart NIC devices and inactive smart NIC devices, an identification of a location of smart NIC devices, an identification of functional capabilities of smart NIC devices”. ¶ [0023] gives examples of functional capabilities stating “encryption/decryption systems 120A through 120N can be configured by the associated smart NIC 114A through 114N to perform predetermined encryption and decryption processing for data traffic being handled by that smart NIC, such as using encryption and decryption processes specific to those data packets” and “other system processing can also or alternatively be performed by smart NICs 114A through 114N that would not be possible with a prior art NIC operating under control of a separate processor, such as firewall processing, TCP/IP processing, HTTP processing and other suitable processing”); and wherein selecting the host from the subset of hosts for the virtual machine is further based on the feature sets associated with the SmartNICs (¶ [0017] states “smart NIC assignment system 108 can monitor the functionality of an assigned smart NIC to determine whether it is necessary to assign a new smart NIC to a device, to de-allocate assigned devices from a smart NIC when the device is shut down or otherwise no longer requires smart NIC access, and other suitable functions”. Examiner’s Note: the functionality of a smartNIC is used to determine a next action). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the identification of smartNIC functionality of Rajagopal with the host selection process of Chawla, Gamage, and Fong. During the second selection phase of Gamage, it would have been obvious to include smartNIC feature sets of Fong when selecting a host based on network resources. A person having ordinary skill in the art would have been motivated to make this combination for the purpose of offloading tasks to dedicated SmartNIC hardware thereby increasing performance of network applications (Rajagopal ¶ [0010] states “offloading packet treatment to smart network interface controllers (NICs) can be used to provide significant performance improvements for network applications that run on compute servers, such as for “on-demand” application support in cloud computing environments or other related applications”). Different smartNICs have different functionality, so identifying and using feature sets contributes to the success of offloading tasks. With regard to claim 19, Chawla, Gamage, and Fong teaches the system of claim 17. Gamage additionally teaches and wherein selecting the host from the subset of hosts for the virtual machine is further based on the feature sets associated with the SmartNICs (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”). Chawla, Gamage, and Fong do not explicitly teach feature sets associated with each smartNIC and selecting based on feature sets. However, in an analogous art, Rajagopal teaches wherein the management service computer is further configured to: identify a feature set associated with each SmartNIC of the SmartNICs (¶ [0016] states “a smart NIC inventory can include an identification of active smart NIC devices and inactive smart NIC devices, an identification of a location of smart NIC devices, an identification of functional capabilities of smart NIC devices”. ¶ [0023] gives examples of functional capabilities stating “encryption/decryption systems 120A through 120N can be configured by the associated smart NIC 114A through 114N to perform predetermined encryption and decryption processing for data traffic being handled by that smart NIC, such as using encryption and decryption processes specific to those data packets” and “other system processing can also or alternatively be performed by smart NICs 114A through 114N that would not be possible with a prior art NIC operating under control of a separate processor, such as firewall processing, TCP/IP processing, HTTP processing and other suitable processing”); and wherein selecting the host from the subset of hosts for the virtual machine is further based on the feature sets associated with the SmartNICs (¶ [0017] states “smart NIC assignment system 108 can monitor the functionality of an assigned smart NIC to determine whether it is necessary to assign a new smart NIC to a device, to de-allocate assigned devices from a smart NIC when the device is shut down or otherwise no longer requires smart NIC access, and other suitable functions”. Examiner’s Note: the functionality of a smartNIC is used to determine a next action). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the identification of smartNIC functionality of Rajagopal with the host selection process of Chawla, Gamage, and Fong. During the second selection phase of Gamage, it would have been obvious to include smartNIC feature sets of Fong when selecting a host based on network resources. A person having ordinary skill in the art would have been motivated to make this combination for the purpose of offloading tasks to dedicated SmartNIC hardware thereby increasing performance of network applications (Rajagopal ¶ [0010] states “offloading packet treatment to smart network interface controllers (NICs) can be used to provide significant performance improvements for network applications that run on compute servers, such as for “on-demand” application support in cloud computing environments or other related applications”). Different smartNICs have different functionality, so identifying and using feature sets contributes to the success of offloading tasks. Claim(s) 8 and 16 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chawla in view of Gamage and Fong and further in view of Lin et al. Pat. No. US 20190140959 A1 (hereafter Lin) and Coster et al. Pat. No. US 20200133707 A1 (hereafter Coster). With regard to claim 8, Chawla, Gamage, and Fong teach the method of claim 1. Gamage additionally teaches and wherein selecting the host from the subset of hosts for the virtual machine is further based on the vendor associated with each SmartNIC of the SmartNIC (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”) Chawla, Gamage, and Fong do not explicitly teach identifying a vendor associated with each smartNIC and selecting a host based on the vendor associated with the smartNIC. However, in an analogous art, Lin teaches identifying a vendor associated with each SmartNIC of the SmartNICs (¶ [0021] states “the aforementioned flow notification packet(s) of a first device of the slave devices 120 include(s) device vendor information such as the vendor information of the NIC of the first device, and if the device vendor information is prescribed vendor information, the processing circuit 320 gives additional flow allocation to the first device”. FIG. 3 shows the system 100 and that the processing circuit 320 is inside of master device 110. FIG. 4 shows slave device 120 has network communication circuit 410); It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the identification of NIC vendor information of Lin with the SmartNIC computer resource of Chawla, Gamage, and Fong in order to identify the SmartNIC vendor. A person having ordinary skill in the art would have motivated to make this combination for the purpose of ensuring network performance for applications (Lin ¶ [0021] states “if the device vendor information is prescribed vendor information, the processing circuit 320 gives additional flow allocation to the first device” and “the processing circuit 320 determines the flow allocation for the game program according to the priority setting of the game program so as to allow the game program to gain enough flow allocation and run smoothly”). Chawla, Gamage, Fong, and Lin do not explicitly teach selecting the host from the hosts for the virtual machine based on SmartNIC vendor information. However, in analogous art, Coster teaches and wherein selecting the host from the subset of hosts for the virtual machine is further based on the vendor associated with each SmartNIC of the SmartNIC (¶ [0049] states “business rules can inform and/or otherwise guide the operation of a virtual computing environment—such as the virtual computing environment associated with the system 100 depicted in FIG. 1—and may be used to determine, without limitation: … what vendor or vendor service(s) should be preferred or used to order a virtual machine to perform a selected workload”. Additionally, ¶ [0025] states “the profiling server monitor can receive data (e.g., via an application programming interface) related to a server, a hypervisor, and/or one or more hardware components communicably coupled to, or otherwise associated with, the virtual computing environment. Examples include, but may not be limited to: network address data; hypervisor type data (e.g., Type 1 or Type 2); hypervisor provider or manufacturer data”. With the information, ¶ [0034] states “a profiling server monitor, such as described herein, can be used to automatically supervise, oversee, and/or otherwise control or influence the behavior of a virtual computing environment for any suitable purpose. Examples include, but may not be limited to: … placing a particular workload on a particular virtual machine associated with a particular server or particular hypervisor to reduce power consumption associated with executing that workload; scheduling a particular workload on a particular virtual machine associated with a particular server or particular hypervisor to reduce power consumption associated with executing that workload; migrating a particular workload from one virtual machine to another to reduce power consumption associated with executing that workload” Examiner’s Note: the business rules can include preferred vendor information and the profiling manager can receive hypervisor provider or manufacturer information. This information is then used to schedule and place workloads on different hosts). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the process of using vendor, provider, and manufacturer information to place a workload on a host of Coster with the identification of the SmartNIC vendor of Chawla, Gamage, Fong, and Lin for the purpose of creating a system that can select a host for a virtual machine based on the SmartNIC vendor. A person having ordinary skill in the art would have motivated to make this combination for the purpose of improving the performance of virtual machines deployed on hosts with SmartNICs made by specific vendors (Lin ¶ [0021] provides an example of improving performance based on vendor information). With regard to claim 16, Chawla, Gamage, and Fong teach the computing apparatus of claim 9. Gamage additionally teaches and wherein selecting the host from the subset of hosts for the virtual machine is further based on the vendor associated with each SmartNIC of the SmartNIC (¶ [0088] states “The scheduler 500 utilizes a dot product algorithm to select the best host using the VCI's CPU, memory, and networking demands as well as hosts' available capacity”. ¶ [0089] states “Once the dot product algorithm emits the dot product between the VCI demand vector and each host's available capacity vector, the scheduler identifies a selected host 512 that maximizes the dot product”). Chawla, Gamage, and Fong do not explicitly teach identifying a vendor associated with each smartNIC and selecting a host based on the vendor associated with the smartNIC. However, in an analogous art, Lin teaches wherein the program instructions further direct the computing apparatus to: identify a vendor associated with each SmartNIC of the SmartNICs (¶ [0021] states “the aforementioned flow notification packet(s) of a first device of the slave devices 120 include(s) device vendor information such as the vendor information of the NIC of the first device, and if the device vendor information is prescribed vendor information, the processing circuit 320 gives additional flow allocation to the first device”. FIG. 3 shows the system 100 and that the processing circuit 320 is inside of master device 110. FIG. 4 shows slave device 120 has network communication circuit 410); It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the identification of NIC vendor information of Lin with the SmartNIC computer resource of Chawla, Gamage, and Fong in order to identify the SmartNIC vendor. A person having ordinary skill in the art would have motivated to make this combination for the purpose of ensuring network performance for applications (Lin ¶ [0021] states “if the device vendor information is prescribed vendor information, the processing circuit 320 gives additional flow allocation to the first device” and “the processing circuit 320 determines the flow allocation for the game program according to the priority setting of the game program so as to allow the game program to gain enough flow allocation and run smoothly”). Chawla, Gamage, Fong, and Lin do not explicitly teach selecting the host from the hosts for the virtual machine based on SmartNIC vendor information. However, in analogous art, Coster teaches and wherein selecting the host from the subset of hosts for the virtual machine is further based on the vendor associated with each SmartNIC of the SmartNIC (¶ [0049] states “business rules can inform and/or otherwise guide the operation of a virtual computing environment—such as the virtual computing environment associated with the system 100 depicted in FIG. 1—and may be used to determine, without limitation: … what vendor or vendor service(s) should be preferred or used to order a virtual machine to perform a selected workload”. Additionally, ¶ [0025] states “the profiling server monitor can receive data (e.g., via an application programming interface) related to a server, a hypervisor, and/or one or more hardware components communicably coupled to, or otherwise associated with, the virtual computing environment. Examples include, but may not be limited to: network address data; hypervisor type data (e.g., Type 1 or Type 2); hypervisor provider or manufacturer data”. With the information, ¶ [0034] states “a profiling server monitor, such as described herein, can be used to automatically supervise, oversee, and/or otherwise control or influence the behavior of a virtual computing environment for any suitable purpose. Examples include, but may not be limited to: … placing a particular workload on a particular virtual machine associated with a particular server or particular hypervisor to reduce power consumption associated with executing that workload; scheduling a particular workload on a particular virtual machine associated with a particular server or particular hypervisor to reduce power consumption associated with executing that workload; migrating a particular workload from one virtual machine to another to reduce power consumption associated with executing that workload” Examiner’s Note: the business rules can include preferred vendor information and the profiling manager can receive hypervisor provider or manufacturer information. This information is then used to schedule and place workloads on different hosts). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date to combine the process of using vendor, provider, and manufacturer information to place a workload on a host of Coster with the identification of the SmartNIC vendor of Chawla, Gamage, Fong, and Lin for the purpose of creating a system that can select a host for a virtual machine based on the SmartNIC vendor. A person having ordinary skill in the art would have motivated to make this combination for the purpose of improving the performance of virtual machines deployed on hosts with SmartNICs made by specific vendors (Lin ¶ [0021] provides an example of improving performance based on vendor information). Response to Arguments Applicant's arguments filed 03/04/2026 have been fully considered but they are not persuasive. With regard to applicant’s arguments that claims 1-20 pass Step 2A Prong 1, applicant disagrees that the claims recite a judicial exception. MPEP § 2106.04(a)(III) states “the "mental processes" abstract idea grouping is defined as concepts performed in the human mind, and examples of mental processes include observations, evaluations, judgments, and opinions”. MPEP § 2106.04(a)(III)(C) states “Claims can recite a mental process even if they are claimed as being performed on a computer” The steps of identifying first resource requirements and availability, identifying a subset of hosts that meet a first criteria, identifying second smartNIC resource requirements and availability, and selecting a host that meets second criteria” involve observing information of the computer system. Next, using that information to filter hosts for a subset of hosts and then a select a host is a process is a process of evaluating if an available resource is more than a needed requirement. That process can be performed entirely in the mind. For example, a baker can mentally evaluate that a full five-pound bag of flour will be sufficient to provide flour for a recipe requiring one cup of flour. Examiner maintains that the claims are directed to a mental process and fail Step 2A Prong 1. With regard to applicant’s arguments that claims 1-20 pass Step 2A Prong 2, applicant argues that the claimed invention amounts to “particular machine”, the invention is not merely “apply it”, and that it does not link the use to a particular technological environment. MPEP § 2106.05(b)(I) states “The particularity or generality of the elements of the machine or apparatus, i.e., the degree to which the machine in the claim can be specifically identified”. MPEP § 2106.05(f) states “in order to make a claim directed to a judicial exception patent-eligible, the additional element or combination of elements must do "‘more than simply stat[e] the [judicial exception] while adding the words ‘apply it’"”. MPEP § 2106.05(h) states “MPEP § 2106.05(h) states “limitations that amount to merely indicating a field of use or technological environment in which to apply a judicial exception do not amount to significantly more than the exception itself, and cannot integrate a judicial exception into a practical application”. Examiner disagrees that the claimed invention amounts to a particular machine because the claims are broadly directed to a virtual machine manager that is communicatively tied to a plurality of hosts. Every virtual machine manager executes on a computer and manages the deployment and status of virtual machines, so it would be difficult to distinguish applicant’s virtual machine manager from others. Therefore, it cannot be a particular machine. The amendment claim adds a limitation that deploys the virtual machine to the selected host. Examiner disagrees that the claim features are not merely “apply it” because deploying the virtual machine to the selected host is realizing the mental process of selecting a host. Any process of selecting a host for deployment would need to be realized by an “apply it” deployment step. Examiner disagrees that claim features do not link the use of the judicial exception to a particular technological environment because the invention distinguishes between main processing resource and smartNIC processing resources. Both resources must exist so that the mental process can be performed and realized. Examiner maintains that the claims do not integrate the judicial exception into a practical application and fail Step 2A Prong 2. With regard to applicant’s arguments that claims 1-20 are pass Step 2B, applicant argues that the claim limitations amount to significantly more than the abstract idea. MPEP § 2106.05(I) states “an "inventive concept" is furnished by an element or combination of elements that is recited in the claim in addition to (beyond) the judicial exception, and is sufficient to ensure that the claim as a whole amounts to significantly more than the judicial exception itself”. Examiner disagrees that the claim limitations as a whole amount to significantly more than the abstract idea because the claim limitations present a mental process and additional elements of generic computing components to perform the mental process, an “apply it” step to realize the mental process, and limitations of the computing environment. Each additional element when analyzed, alone or in combination, do not amount to significantly more. The additional elements merely apply the mental process. Further, the first step of identifying a first subset of hosts from all hosts based on main processing system resource availability and the second step of selecting a host from the subset of hosts based on smartNIC resource availability are analogous to a coarse filter followed by a fine filter. The coarse filter is applied to all hosts and then the fine filter is applied to the results of the coarse filter. Both steps perform filtering, and both are a mental process. Using a coarse filter and then a fine filter may be a more efficient mental process. However, a more efficient mental process is still a mental process. Lastly, the virtual machine deployment step was reevaluated to not be an inventive concept that is other than what is well-understood, routine, and conventional activity because MPEP § 2106.05(d)(II) lists that “Receiving or transmitting data over a network” is well-understood, routine, and conventional computer activity. Deploying the virtual machine is a transmission of data. Examiner maintains that the claims do not amount to significantly more than the judicial exception and the claims fail Step 2B. Therefore, examiner maintains that claims 1-20 are rejected under 35 U.S.C. 101. With regard to applicant’s arguments to the 35 U.S.C. 103 rejections, applicant argues that Mestery and Govindan Kannan do not teach some of the claimed features. Examiner has considered applicant’s arguments; however, applicant’s arguments are considered moot because the new ground of rejection does not rely on Mestery and Govindan Kannan applied in the prior rejection of record for the teachings that the applicant has challenged in the argument. Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. US 11533362 B1 teaches Network Interface Controller Aware Placement Of Virtualized Workloads US 11561821 B1 teaches Controlling Placement Of Virtualized Resources Based On Desirability Index For Host Pools US 20140019964 A1 teaches System and Method for Automated Assignment of Virtual Machines and Physical Machines to Hosts Using Interval Analysis US 20200183703 A1 teaches SYSTEMS AND METHODS FOR SELECTING A TARGET HOST FOR MIGRATION OF A VIRTUAL MACHINE US 20100242045 A1 teaches METHOD AND SYSTEM FOR ALLOCATING A DISTRIBUTED RESOURCE Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). 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 PETER L YUAN whose telephone number is (571)272-5737. The examiner can normally be reached Mon-Fri 7:30am-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, Bradley Teets can be reached at 571-272-3338. 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. /PETER LI YUAN/Examiner, Art Unit 2197 /BRADLEY A TEETS/Supervisory Patent Examiner, Art Unit 2197
Read full office action

Prosecution Timeline

Jun 08, 2023
Application Filed
Dec 04, 2025
Non-Final Rejection mailed — §101, §103, §112
Feb 17, 2026
Interview Requested
Mar 03, 2026
Examiner Interview Summary
Mar 03, 2026
Applicant Interview (Telephonic)
Mar 04, 2026
Response Filed
Apr 01, 2026
Final Rejection mailed — §101, §103, §112 (current)

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

3-4
Expected OA Rounds
Grant Probability
Moderate
PTA Risk
Based on 0 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month