Prosecution Insights
Last updated: April 19, 2026
Application No. 17/876,460

OFFLOADING STATEFUL SERVICES FROM GUEST MACHINES TO HOST RESOURCES

Final Rejection §101§102§103§DP
Filed
Jul 28, 2022
Examiner
TONG, JUSTIN CHE-CHUN
Art Unit
2196
Tech Center
2100 — Computer Architecture & Software
Assignee
VMware, Inc.
OA Round
2 (Final)
33%
Grant Probability
At Risk
3-4
OA Rounds
3y 6m
To Grant
89%
With Interview

Examiner Intelligence

Grants only 33% of cases
33%
Career Allow Rate
8 granted / 24 resolved
-21.7% vs TC avg
Strong +56% interview lift
Without
With
+56.0%
Interview Lift
resolved cases with interview
Typical timeline
3y 6m
Avg Prosecution
23 currently pending
Career history
47
Total Applications
across all art units

Statute-Specific Performance

§101
22.9%
-17.1% vs TC avg
§103
43.4%
+3.4% vs TC avg
§102
15.4%
-24.6% vs TC avg
§112
14.0%
-26.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 24 resolved cases

Office Action

§101 §102 §103 §DP
DETAILED ACTION Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This Office Action is in response to amendment filed on 08/08/2025. Response to Amendment By this amendment, claims 1, 3-4, 6-7, 11, 13, 15-16, and 18-19 are amended. Claims 2 and 14 are canceled. Claims 21-22 are newly added claims. Therefore, claims 1, 3-13, and 15-22 are pending. Any objections and rejections not repeated below is withdrawn due to Applicant's amendment. Response to Arguments Applicant's arguments filed 08/08/2025 have been fully considered but they are not persuasive. Applicant argues in substance: Claims 1-20 are rejected under 35 U.S.C. 101 as directed to an abstract idea, which is not integrated into a practical application, and without reciting significantly more than the abstract idea… With regard to point (a), Examiner agrees with Applicant and all 101 claim rejections are withdrawn due to Applicant’s amendments. The claims are withdrawn because they are directed to a specific architecture and hardware configuration (first and second caches, VNIC within virtualization software, PNIC with stateful service capability) and address a networking problem to offload stateful per-flow services mid-stream without losing connection state (as noted on page 13 of Applicant’s Arguments). Claims 1-20 are rejected on the ground of non-statutory double patenting as being unpatentable over claims 1-20 of US 2024/0036898 Al (US Application No. 17/876,457). Claims 1-20 are rejected on the ground of non-statutory double patenting as being unpatentable over claims 1-20 of US 2024/0039803 Al (US Application No. 17/876,452). In response, a terminal disclaimer is being filed concurrently herewith. Therefore, withdrawal of the rejections is respectfully requested. With regard to point (b), Examiner agrees with Applicant and all double patenting claim rejections are withdrawn due to Applicant filing terminal disclaimers. Claims 1-2, 4-8, 10-11, 13-14, and 16-20 are rejected under 35 U.S.C. 102 as anticipated by Ang (US 2020/0028785). In response, the claims have been amended to more clearly distinguish over Ang… With regard to point (c), due to claim amendments, Zuo et al. Pat. No. US 8,930,690 B2 (hereafter Zuo) has been utilized to cure the stated deficiencies. Therefore, the claims are still rejected for the reasons in this Office Action’s 103 rejection below. Argument has not been found to be persuasive. Claims 3, 9, and 15 are rejected under 35 U.S.C. 103 as unpatentable over Ang in view of Brar (US 2022/0206908). Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Ang in view of Koponen (US 10,193,771). It is respectfully submitted that the amended claims are patentable over these cited references because the secondary references cited by the examiner do not remedy Ang 's deficiencies. They do not disclose or suggest preserving and transferring the state data for a particular flow so that the PNIC can continue the stateful processing. Accordingly, claim 1 and its dependent claims, claims 3-12, are allowable. Claims 13 and new claim 21 are allowable for the same reasons as claim 1. In addition, claims 15-20, each of which depends from claim 13, and claims 22-23, each of which depends from claim 21, are allowable based on their dependency from an allowable claim. With regard to point (d), due to claim amendments, Zuo et al. Pat. No. US 8,930,690 B2 (hereafter Zuo) has been utilized to cure the stated deficiencies. Therefore, the independent and dependent claims are still rejected for the reasons in this Office Action’s 103 rejection below. Argument has not been found to be persuasive. Claim Objections Claims 16-17 and 21-22 are objected to because of the following informalities: In Claim 16, “at least one data message processing service in the set of stateful data message processing services” should read “at least one stateful data message processing service in the set of stateful data message processing services”. In Claim 21, “wherein the non-transitory machine readable medium stores instructions for a machine” should read “wherein the non-transitory computer readable medium stores instructions for a machine”. In Claim 21, “determining that a physical network interface card (PNIC) of the host computer is available” should read “determining that the physical network interface card (PNIC) of a host computer is available”. Any claim not specifically mentioned above, is objected due to its dependency on an objected claim. Appropriate correction is required. 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. Claims 1, 3-11, 13, and 15-22 are rejected under 35 U.S.C. 103 as being unpatentable over Zuo et al. Pat. No. US 8,930,690 B2 (hereafter Zuo) in view of Brar et al. Pub. No. US 2022/0206908 Al (hereafter Brar which was cited in the IDS filed 05/04/2023). Regarding claim 1, Zuo teaches a method for offloading a set of stateful data message processing services from a machine executing on a host computer to a physical network interface card (PNIC) of the host computer (Col. 5 lines 57-60: ”FIG. 1 illustrates an example computer architecture 100 that facilitates offloading packet processing to a physical NIC for networking device virtualization.”, Note: Packet processing actions are the set of stateful data message processing services), the method comprising: at a virtual network interface card (VNIC) that executes within a set of virtualization software executing on the host computer and that is connected to the machine, wherein the machine, the VNIC, and the set of virtualization software execute on a set of processing units of the host computer (Col. 5 lines 62-67: “Host 102 provides a virtualization environment. For example, host 102 may include a parent partition (which executes a host operating system) and one or more child partitions. Each child partition can be viewed as providing a virtualized hardware environment for executing a corresponding virtual machine, such as virtual machine 108.”, Col. 6 lines 3-8: “Each virtual machine (including virtual machine 108) executes one or more virtualized applications, such as an operating system, application software, etc. As depicted, virtual machine 108 includes network stack 108a (e.g., a TCP/IP stack), virtual NIC driver 108b, and virtual function driver 108c.”) … determining that the PNIC is available to perform the set of stateful data message processing services for a subsequent second set of data messages belonging to the particular data message flow (Col. 12 lines 12-22: “In computer architecture 400, however, virtual NIC driver 408b at virtual machine 408 includes outgoing flow list 408d. Thus, virtual NIC driver 408b maintains information about some or all of the outgoing flows. As such, even before sending a network packet to virtual function 420 with virtual function driver 408c, virtual NIC driver 408b can determine whether the network packet matches an outgoing flow based on outgoing flow list 408d. If a match is found, then the network packet may also match a flow in outgoing flow cache 412a (if the flow has been offloaded to physical NIC 410).”, Note: The VNIC sends the subsequent packet to PNIC for processing as the flow of the packet is in the outgoing flow cache) … and directing the PNIC to store the set of configuration data in a second cache that is accessible by the PNIC (Col. 11 lines 29-40: “Method 300 also includes an act of an act of the virtual switch maintaining one or more flow table tables for the virtual machine (act 304). For example, states 106 can include one or both of outgoing flow table 106c for virtual machine 108 or incoming flow table 106d for virtual machine 108. Method 300 also includes an act of the virtual switch offloading at least a portion of the one or more flow tables to the physical NIC (act 306). For example, virtual switch 104 can offload one or more flows from outgoing flow table 106c to outgoing flow cache 112a. Additionally or alternatively, virtual switch 104 can offload one or more flows from incoming flow table 106d to incoming flow cache 112b.”, Col. 7 lines 59-66: “flows may also be defined in terms of conditions (tuples) and actions. Flows store context about network connections, and can be used to determine how to handle a current packet in a stream or context based on previous packets in the stream or context. Flows may be subject to timeout. In some embodiments, flows are stored in one or more flow tables, such as an incoming flow table and/or an outgoing flow table.”, Col. 7 lines 20-26: “Tuples may include, for example source and/or destination network address (e.g., IP address, when IP is being used), source and/or destination port, protocol (e.g., Transmission Control Protocol (TCP), User Datagram Protocol (UDP)), source and/or destination hardware address (e.g., Ethernet MAC address), or combinations thereof.”, Note: The outgoing flow cache 112a is the second cache; and the flow tuples, flow network connection contexts, and flow actions all combined are the set of configuration data) and to perform the set of stateful data message processing services for the subsequent second set of data messages belonging to the particular data message flow using the set of configuration data that is stored in the second cache (Col. 8 lines 54-62: “For example, subsequent to a flow being offloaded to physical NIC 110, physical NIC 110 may receive a subsequent packet of the same stream (e.g., from virtual machine 108 over data path 114 or from another computer system over external interface 126). In this circumstance, virtual bridge 112 can match the subsequent packet to a flow state in the appropriate flow cache 112a, 112b, and perform the action defined in the flow itself, without first sending the packet to virtual switch 104.”). Zuo fails to teach storing a set of configuration data that is received from the machine and include state data for a particular data message flow associated with the machine, in a first cache accessible to the VNIC, and using the set of configuration data that is stored in the first cache to perform the set of stateful data message processing services for a first set of data messages belonging to the particular data message flow associated with the machine … providing, through a communications channel between the VNIC and the PNIC, the set of configuration data including the state data for the particular data message flow associated with the machine that is stored in the first cache to the PNIC. In analogous art Brar teaches storing a set of configuration data that is received from the machine and include state data for a particular data message flow associated with the machine, in a first cache accessible to the VNIC ([0008] “…storing a first VNIC-related information, wherein the first VNIC-related information comprises information identifying a first set of one or more packet flows and state information for the first set of one or more packet flows…”, Note: The VNIC-related information is the set of configuration data, and Fig. 22 shows cache in the processing unit that is used when executing the virtual machines and their respective VNICs), and using the set of configuration data that is stored in the first cache to perform the set of stateful data message processing services for a first set of data messages belonging to the particular data message flow associated with the machine ([0008] “…storing a first VNIC-related information, wherein the first VNIC related information comprises information identifying a first set of one or more packet flows and state information for the first set of one or more packet flows…”, [0129] “…For example, as part of the packet processing pipeline, the NVD executes or invokes functionality corresponding to the VNIC (also referred to as executes the VNIC) associated with source compute instance…”, Note: The VNIC-related information is the set of configuration data, and Fig. 22 shows cache in the processing unit that is used when executing the virtual machines and their respective VNIC functionalities/services) … providing, through a communications channel between the VNIC and the PNIC, the set of configuration data including the state data for the particular data message flow associated with the machine that is stored in the first cache to the PNIC ([0007] “…the set of VNICs including a first VNIC performing forwarding of packets for a set of one or more packet flows; storing, by the NVD, a first VNIC-related information, wherein the first VNIC-related information comprises information identifying a first set of one or more packet flows and state information for the first set of one or more packet flows…”, [0115] “…an NVD is implemented as an interface card referred to as a smartNIC…”, Note: The VNIC-related information is the set of configuration data, and Fig. 22 shows cache in the processing unit that is used when executing the virtual machines and their respective VNICs). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Zuo to incorporate the teachings of Brar to provide services to customers in a reliable and highly available manner (Brar [0284] “In certain embodiments, the IaaS systems described herein may include a suite of applications, middleware, and database service offerings that are delivered to a customer in a self-service, subscription-based, elastically scalable, reliable, highly available, and secure manner…”). Regarding claim 3, Zuo and Brar teach the method of claim 1, and Zuo further teaches wherein the set of configuration data comprises (i) security session configuration data associated with the particular data message flow (Col. 7 lines 59-66: “flows may also be defined in terms of conditions (tuples) and actions. Flows store context about network connections, and can be used to determine how to handle a current packet in a stream or context based on previous packets in the stream or context. Flows may be subject to timeout. In some embodiments, flows are stored in one or more flow tables, such as an incoming flow table and/or an outgoing flow table.”, Col. 7 lines 20-26: “Tuples may include, for example source and/or destination network address (e.g., IP address, when IP is being used), source and/or destination port, protocol (e.g., Transmission Control Protocol (TCP), User Datagram Protocol (UDP)), source and/or destination hardware address (e.g., Ethernet MAC address), or combinations thereof.”, Note: The flow tuples in flow tables are the security session configuration data of flows), (ii) session state data associated with the particular data message flow (Col. 11 lines 29-33: “Method 300 also includes an act of an act of the virtual switch maintaining one or more flow table tables for the virtual machine (act 304). For example, states 106 can include one or both of outgoing flow table 106c for virtual machine 108 or incoming flow table 106d for virtual machine 108”, Col. 7 lines 59-66: “flows may also be defined in terms of conditions (tuples) and actions. Flows store context about network connections, and can be used to determine how to handle a current packet in a stream or context based on previous packets in the stream or context. Flows may be subject to timeout. In some embodiments, flows are stored in one or more flow tables, such as an incoming flow table and/or an outgoing flow table.”, Note: The flow network connection contexts in flow tables are the session state data of flows), and (iii) a set of service rules that define the set of stateful data message processing services for the particular data message flow (Col. 7 lines 59-66: “flows may also be defined in terms of conditions (tuples) and actions. Flows store context about network connections, and can be used to determine how to handle a current packet in a stream or context based on previous packets in the stream or context. Flows may be subject to timeout. In some embodiments, flows are stored in one or more flow tables, such as an incoming flow table and/or an outgoing flow table.”, Note: The actions done in response to a matching tuple of a flow in flow tables are the set of service rules of flows). Regarding claim 4, Zuo and Brar teach the method of claim 1, Zuo further teaches the set of virtualization software is a first set of virtualization software (Col. 5 lines 62-67: “Host 102 provides a virtualization environment. For example, host 102 may include a parent partition (which executes a host operating system) and one or more child partitions. Each child partition can be viewed as providing a virtualized hardware environment for executing a corresponding virtual machine, such as virtual machine 108.”), and Brar further teaches the PNIC is a smartNIC comprising a processor executing a second set of virtualization software ([0115] “…an NVD is implemented as an interface card referred to as a smartNIC…”, [0114] “Referring back to FIG. 2, an NVD is a physical device or component that performs one or more network and/or storage virtualization functions. An NVD may be any device with one or more processing units (e.g., CPUs, Network Processing Units (NPUs), FPGAs, packet processing pipelines, etc.), memory including cache, and ports. The various virtualization functions may be performed by software/firmware executed by the one or more processing units of the NVD.”); and the second set of virtualization software executes at least one service engine for performing at least one stateful data message processing service in the set of stateful data message processing services ([0120] “An NVD implements or performs network virtualization functions. These functions are performed by software/firmware executed by the NVD. Examples of network virtualization functions include without limitation: packet encapsulation and de-capsulation functions; functions for creating a VCN network; functions for implementing network policies such as VCN security list (firewall) functionality; functions that facilitate the routing and forwarding of packets to and from compute instances in a VCN; and the like. In certain embodiments, upon receiving a packet, an NVD is configured to execute a packet processing pipeline for processing the packet and determining how the packet is to be forwarded or routed…”, Note: The packet processing pipeline is the service engine). Regarding claim 5, Zuo and Brar teach the method of claim 4, and Brar further teaches wherein the at least one service engine comprises a service virtual machine ([0129] “…On the NVD, the packet is processed using a packet processing pipeline, which can include execution of one or more VNICs, and the VR associated with the VCN. For example, as part of the packet processing pipeline, the NVD executes or invokes functionality corresponding to the VNIC (also referred to as executes the VNIC) associated with source compute instance…”, Note: The packet processing pipeline (service engine) executes the functionality corresponding to the VNIC of a source compute instance virtual machine). Regarding claim 6, Zuo and Brar teach the method of claim 1, and Brar further teaches wherein determining that the PNIC is able to perform the set of stateful data message processing services comprises determining that the PNIC is a smartNIC ([0115] “…an NVD is implemented as an interface card referred to as a smartNIC…”, [0114] “Referring back to FIG. 2, an NVD is a physical device or component that performs one or more network and/or storage virtualization functions. An NVD may be any device with one or more processing units (e.g., CPUs, Network Processing Units (NPUs), FPGAs, packet processing pipelines, etc.), memory including cache, and ports. The various virtualization functions may be performed by software/firmware executed by the one or more processing units of the NVD.”). Regarding claim 7, Zuo and Brar teach the method of claim 1, and Zuo further teaches wherein the set of stateful data message processing services comprises at least two of a firewall service, a load balancing service, an IPsec (Internet protocol security) service, and an encapsulation and decapsulation service (Col. 7 lines 37-40: “Rule actions can comprise any appropriate packet routing and/or manipulation operation. For example, some exemplary rule actions may include deny, allow, Network Address Translation (NAT), map, meter, decapsulate, encapsulate, etc.”, Col. 8 line 42: “virtual switch may implement stateful firewalls”, Note: Rule actions are the set of stateful data message processing services wherein firewall and encapsulation/decapsulation services are shown). Regarding claim 8, Zuo and Brar teach the method of claim 7, and Zuo further teaches wherein the firewall service comprises a connection tracking service (Col. 7 lines 60-63: “Flows store context about network connections, and can be used to determine how to handle a current packet in a stream or context based on previous packets in the stream or context. Flows may be subject to timeout.”, Note: Connections of flows are tracked). Regarding claim 9, Zuo and Brar teach the method of claim 7, and Brar further teaches wherein the IPsec service comprises an authentication service and an encryption service ([0093] “The PE concept can also be used to extend the private access for the service to customer's on-premises networks and data centers, by allowing the traffic to flow through FastConnect/IPsec links and the private endpoint in the customer VCN. Private access for the service can also be extended to the customer's peered VCNs, by allowing the traffic to flow between LPG 132 and the PE in the customer's VCN.”, [0053] “…Traffic between availability domains is usually encrypted.”, Note: Traffic is allowed/denied (authentication service) and encrypted (encryption service)). Regarding claim 10, Zuo and Brar teach the method of claim 1, and Zuo further teaches receiving a particular data message from the machine (Col. 12 lines 16-19: “As such, even before sending a network packet to virtual function 420 with virtual function driver 408c, virtual NIC driver 408b can determine whether the network packet matches an outgoing flow based on outgoing flow list 408d.”, Note: The network packet is the data message); determining that the particular data message belongs to the particular data message flow (Col. 12 lines 16-19: “As such, even before sending a network packet to virtual function 420 with virtual function driver 408c, virtual NIC driver 408b can determine whether the network packet matches an outgoing flow based on outgoing flow list 408d.”, Note: The network packet is the data message, and the outgoing flow is the data message flow); and forwarding the particular data message to the PNIC for processing by the PNIC (Col. 12 lines 40-45: “As such, outgoing flow list 408d may contain a list of flow (i.e., conditional information used to match a packet to a flow) with no action information. Outgoing flow list 408d may therefore provide only enough information to enable virtual NIC driver 408b to make the decision of whether to send the packet to physical NIC 410 or to host 402.”, Col. 12 lines 16-22: “As such, even before sending a network packet to virtual function 420 with virtual function driver 408c, virtual NIC driver 408b can determine whether the network packet matches an outgoing flow based on outgoing flow list 408d. If a match is found, then the network packet may also match a flow in outgoing flow cache 412a (if the flow has been offloaded to physical NIC 410).”). Regarding claim 11, Zuo and Brar teach the method of claim 1, and Zuo further teaches at the VNIC, directing the PNIC to forward data messages that are directed to the machine and that do not belong to the particular data message flow to the machine (Col. 10 lines 57-64: “Act 208 also includes, when the network packet does not match with a flow in the one or more flow tables, an act of the physical NIC passing the network packet to the host for processing against the one or more rule sets (act 214). For example, if the network packet does not match a flow in outgoing flow cache 112a or incoming flow cache 112b, virtual bridge 112 can send the packet to virtual switch 104 at host 102 for additional processing.”, Note: The packets are the data messages). Regarding claim 13, Brar further teaches a non-transitory machine readable medium storing instructions for a machine and a set of virtualization software that are executing on a set of processing units of a host computer, and for a virtual network interface card (VNIC) connected to the machine and executing within the set of virtualization software on the set of processing units of the host computer, the VNIC comprising sets of instructions for ([0005] “…Various embodiments are described herein, including methods, systems, non-transitory computer-readable storage media storing programs, code, or instructions executable by one or more processors, and the like.”, [0104] “…For example, in FIG. 2, host machine 202 executes a virtual machine compute instance 268 that is associated with VNIC 276…”, Note: The virtual machine is the set of virtualization software). The other limitations are substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons. Regarding claim 15, it is an article of manufacture claim whose limitations are substantially the same as those of claim 3. Accordingly, it is rejected for substantially the same reasons. Regarding claim 16, Zuo and Brar teach the non-transitory machine readable medium of claim 15, Zuo further teaches the set of virtualization software is a first set of virtualization software (Col. 5 lines 62-67: “Host 102 provides a virtualization environment. For example, host 102 may include a parent partition (which executes a host operating system) and one or more child partitions. Each child partition can be viewed as providing a virtualized hardware environment for executing a corresponding virtual machine, such as virtual machine 108.”), and Brar further teaches the PNIC is a smartNIC comprising a processor executing a second set of virtualization software ([0115] “…an NVD is implemented as an interface card referred to as a smartNIC…”, [0114] “Referring back to FIG. 2, an NVD is a physical device or component that performs one or more network and/or storage virtualization functions. An NVD may be any device with one or more processing units (e.g., CPUs, Network Processing Units (NPUs), FPGAs, packet processing pipelines, etc.), memory including cache, and ports. The various virtualization functions may be performed by software/firmware executed by the one or more processing units of the NVD.”); and the second set of virtualization software executes at least one service engine for performing at least one stateful data message processing service in the set of stateful data message processing services ([0120] “An NVD implements or performs network virtualization functions. These functions are performed by software/firmware executed by the NVD. Examples of network virtualization functions include without limitation: packet encapsulation and de-capsulation functions; functions for creating a VCN network; functions for implementing network policies such as VCN security list (firewall) functionality; functions that facilitate the routing and forwarding of packets to and from compute instances in a VCN; and the like. In certain embodiments, upon receiving a packet, an NVD is configured to execute a packet processing pipeline for processing the packet and determining how the packet is to be forwarded or routed…”, Note: The packet processing pipeline is the service engine). Regarding claim 17, Zuo and Brar teach the non-transitory machine readable medium of claim 16, and Brar further teaches wherein the at least one service engine comprises a service virtual machine ([0129] “…On the NVD, the packet is processed using a packet processing pipeline, which can include execution of one or more VNICs, and the VR associated with the VCN. For example, as part of the packet processing pipeline, the NVD executes or invokes functionality corresponding to the VNIC (also referred to as executes the VNIC) associated with source compute instance…”, Note: The packet processing pipeline (service engine) executes the functionality corresponding to the VNIC of a source compute instance virtual machine). Regarding claim 18, it is an article of manufacture claim whose limitations are substantially the same as those of claim 6. Accordingly, it is rejected for substantially the same reasons. Regarding claim 19, it is an article of manufacture claim whose limitations are substantially the same as those of claim 7. Accordingly, it is rejected for substantially the same reasons. Regarding claim 20, it is an article of manufacture claim whose limitations are substantially the same as those of claim 10. Accordingly, it is rejected for substantially the same reasons. Regarding claim 21, Brar further teaches a computer system comprising a set of processing units, a non-transitory computer readable medium, and a physical network interface card (PNIC), wherein the non-transitory machine readable medium stores instructions for a machine and a set of virtualization software that are executing on the set of processing units, and for a virtual network interface card (VNIC) connected to the machine and executing within the set of virtualization software on the set of processing units, the VNIC comprising sets of instructions for ([0005] “…Various embodiments are described herein, including methods, systems, non-transitory computer-readable storage media storing programs, code, or instructions executable by one or more processors, and the like.”, [0104] “…For example, in FIG. 2, host machine 202 executes a virtual machine compute instance 268 that is associated with VNIC 276, and VNIC 276 is executed by NVD 210 connected to host machine 202…”, [0115] “…an NVD is implemented as an interface card referred to as a smartNIC…”, Note: The virtual machine is the set of virtualization software). The other limitations are substantially the same as those of claim 1. Accordingly, it is rejected for substantially the same reasons. Regarding claim 22, it is a machine claim whose limitations are substantially the same as those of claims 3 and 7. Accordingly, it is rejected for substantially the same reasons. Claim 12 is rejected under 35 U.S.C. 103 as being unpatentable over Zuo et al. Pat. No. US 8,930,690 B2 (hereafter Zuo) in view of Brar et al. Pub. No. US 2022/0206908 Al (hereafter Brar which was cited in the IDS filed 05/04/2023) as applied to claims 1, 3-11, 13, and 15-22 above, and further in view of Koponen et al. Pub. No. US 10,193,771 B2 (hereafter Koponen which was cited in the IDS filed 10/07/2022). Regarding claim 12, Zuo and Brar teach the method of claim 1. Zuo and Brar fail to teach wherein the particular data message flow comprises an elephant flow. In analogous art Koponen teaches wherein the particular data message flow comprises an elephant flow (Col. 1 lines 16-18: “An elephant flow represents a long-lived flow or a continuous traffic flow that is typically associated with high volume connection.”). It would have been obvious to a person having ordinary skill in the art prior to the effective filing date of the claimed invention to have modified Zuo and Brar to incorporate the teachings of Koponen to provide a classification for large data transfers (Koponen Col. 1 lines 21-23: “whereas elephants tend to be associated with large data transfers in which throughput is far more important than latency”). Conclusion The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. In particular, US 20120079478 A1 is cited because it discloses processing packets at NICs. In addition, US 20190089641 A1 is cited because it discloses offloading connection tracking of flows to a NIC cache. 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. Examiner respectfully requests, in response to this Office action, support be shown for language added to any original claims on amendment and any new claims. That is, indicate support for newly added claim language by specifically pointing to page(s) and line number(s) in the specification and/or drawing figure(s). This will assist Examiner in prosecuting the application. When responding to this Office Action, Applicant is advised to clearly point out the patentable novelty which he or she thinks the claims present, in view of the state of the art disclosed by the references cited or the objections made. He or she must also show how the amendments avoid such references or objections. See 37 CFR 1.111 (c). 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. Any inquiry concerning this communication or earlier communications from the examiner should be directed to JUSTIN CHE-CHUN TONG whose telephone number is (703)756-1737. The examiner can normally be reached Monday-Thursday: 7:30 AM to 5:00 PM EST. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, April Y Blair can be reached on (571)270-1014. 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. /J.C.T./Examiner, Art Unit 2196 /APRIL Y BLAIR/Supervisory Patent Examiner, Art Unit 2196
Read full office action

Prosecution Timeline

Jul 28, 2022
Application Filed
May 01, 2025
Non-Final Rejection — §101, §102, §103
Aug 05, 2025
Interview Requested
Aug 08, 2025
Response Filed
Aug 11, 2025
Examiner Interview Summary
Nov 14, 2025
Final Rejection — §101, §102, §103 (current)

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12602256
PROCESS INVOCATION RESPONSIVE TO CONFIGURATION DEPLOYMENT
2y 5m to grant Granted Apr 14, 2026
Patent 12536042
SYSTEM AND METHOD OF UTILIZING CONTAINERS ON AN INFORMATION HANDLING SYSTEM
2y 5m to grant Granted Jan 27, 2026
Patent 12517758
METHOD AND SYSTEM FOR MANAGING ELECTRONIC DESIGN AUTOMATION ON CLOUD
2y 5m to grant Granted Jan 06, 2026
Patent 12498935
ELASTICALLY MANAGING WORKERS OF MULTI-WORKER WORKLOADS ON ACCELERATOR DEVICES
2y 5m to grant Granted Dec 16, 2025
Patent 12487854
MULTILAYER PROCESSING ENGINE IN A DATA ANALYTICS SYSTEM
2y 5m to grant Granted Dec 02, 2025
Study what changed to get past this examiner. Based on 5 most recent grants.

AI Strategy Recommendation

Get an AI-powered prosecution strategy using examiner precedents, rejection analysis, and claim mapping.
Powered by AI — typically takes 5-10 seconds

Prosecution Projections

3-4
Expected OA Rounds
33%
Grant Probability
89%
With Interview (+56.0%)
3y 6m
Median Time to Grant
Moderate
PTA Risk
Based on 24 resolved cases by this examiner. Grant probability derived from career allow 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