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 .
Claims 1-20 are pending.
Claim Objections
Claims 4, 9 are objected to because of the following informalities:
-- selecting an instance -- should be -- selecting the instance -- in claim 4.
-- data packet header information -- should be -- the data packet header information -- in claim 9.
Appropriate correction is required.
Specification
The title of the invention is not descriptive. A new title is required that is clearly indicative of the invention to which the claims are directed.
The disclosure is objected to because of the following informalities:
-- patrol -- should be -- protocol -- in [0022].
Appropriate correction is required.
Drawing
The drawings are objected to because of the following minor informalities:
Arrows 106, 119 should be bidirectional in fig. 1. Similar deficiency exists in fig. 2.
Corrected drawing sheets in compliance with 37 CFR 1.121(d) are required in reply to the Office action to avoid abandonment of the application. Any amended replacement drawing sheet should include all of the figures appearing on the immediate prior version of the sheet, even if only one figure is being amended. The figure or figure number of an amended drawing should not be labeled as “amended.” If a drawing figure is to be canceled, the appropriate figure must be removed from the replacement sheet, and where necessary, the remaining figures must be renumbered and appropriate changes made to the brief description of the several views of the drawings for consistency. Additional replacement sheets may be necessary to show the renumbering of the remaining figures. Each drawing sheet submitted after the filing date of an application must be labeled in the top margin as either “Replacement Sheet” or “New Sheet” pursuant to 37 CFR 1.121(d). If the changes are not accepted by the examiner, the applicant will be notified and informed of any required corrective action in the next Office action. The objection to the drawings will not be held in abeyance.
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.
Claims 1-20 are rejected under 35 U.S.C. 112 (b) as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or joint inventor regards as the invention.
The following claim language is not clearly understood:
Claim 1 recites “transmitting the data packet from the hardware accelerator to a flow admission service executed by a software-based load balancing component”, while claim 4 recites “selecting an instance of the software-based load balancing component to perform flow admission for the data packet based on the packet header information of the data packet”. It is unclear if the two software-based load balancing components are same or different or can be both.
Claim 2 recites “policies to determine the first packet transformation”, while claim 3 recites “packet transform policies”. It is unclear if the two policies i.e. transformation policy and transform policy” are same or different.
Claim 8 recites “corresponding reverse-direction flow entry” without clearly reciting what constitutes the reverse-direction flow entry.
Claim 16 recites “evicting flows”. It is unclear if the flows or flow entry is evicted.
Claims 10 and 17 recite elements of claim 1 and have similar deficiency as claim 1. Therefore, they are rejected for the same rational. Remaining dependent claims 2-9, 11-16 and 18-20 are also rejected due to similar deficiency inherited from the rejected independent claims.
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 10-16 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more or integrating into practical application.
Claims 10-16 are determined to be directed to an abstract idea. Examples of abstract ideas include at least Mathematical concepts, Mental process and Certain Methods of organizing human activity. Independent claim 10 is directed to “forwarding data packet to off-chip flow admission service if a data packet doesn’t belongs to a previously-defined flow but a new flow that is not yet defined, and transforming data packet if data packet belongs to a previously defined flow” at a high level of generality.
Step 1
As described in MPEP § 2106, subsection III, Step 1 of the eligibility analysis asks: Is the claim to a process, machine, manufacture or composition of matter?
Claim 10 recites a system comprising hardware accelerator, which falls within the “machine” category of 35 U.S.C. § 101. Thus, the analysis determines whether the claims recite a judicial exception and fail to integrate the exception into practical application. If both elements are satisfied, the claims are directed to a judicial exception under the first step of the Alice/Mayo test.
Step 2A Prong One
As described in MPEP § 2106, subsection III, Step 2A of the Office’s eligibility analysis is the first part of the Alice/Mayo test, i.e., the Supreme Court’s "framework for distinguishing patents that claim laws of nature, natural phenomena, and abstract ideas from those that claim patent-eligible applications of those concepts." Alice Corp. Pty. Ltd. v. CLS Bank Int'l, 573 U.S. 208, 217-18, 110 USPQ2d 1976, 1981 (2014) (citing Mayo, 566 U.S. at 77-78, 101 USPQ2d at 1967-68).
Step 2A is a two-prong inquiry, in which examiners determine in Prong One whether a claim recites a judicial exception, and if so, then determine in Prong Two if the recited judicial exception is integrated into a practical application of that exception.
Claim Elements
i
10. A disaggregated load balancing system configured to perform load balancing among a pool of servers configured to serve content of a domain, the disaggregated load balancing system comprising:
preamble with intended use
ii
a hardware accelerator configured to:
computing component
iii
access a local flow cache to determine whether a data packet in route to a domain belongs to a previously-defined flow or a new flow;
mental process abstract idea
iv
in response to determining that a data packet belongs to a new flow not yet defined within the local flow cache,
mental process abstract idea
v
forward the data packet off-chip to a flow admission service executed by a server; and
information transmission
vi
in response to determining that the data packet belongs to an existing flow with a corresponding flow entry within the local flow cache,
mental process abstract idea
vii
generate a transformed data packet by transforming the data packet according to a transformation defined within the corresponding flow entry.
packet transformation - WURC
The overall process described by steps [iii]-[iv] and [vi] in claim 10 describes “concepts performed in the human mind” or “observation, evaluation, judgement, opinion.” Memorandum, 84 Fed. Reg, 52. Thus steps [iii]-[iv] and [vi] recite the abstract concept of [m]ental processes.” For example, claim 10 in step [iii] recites “access a local flow cache to determine whether a data packet in route to a domain belongs to a previously-defined flow or a new flow”, which is directed to determining if data packet belongs to previously-defined flow or a new flow, and is a combination of observation, judgement, evaluation and opinion. Claim 10 in step [iv] recites “ in response to determining that a data packet belongs to a new flow not yet defined within the local flow cache,”, which is a combination of observation, evaluation, judgement and opinion, and may be performed by human mind. Similarly, Claim 10 in step [vi] recites “in response to determining that the data packet belongs to an existing flow with a corresponding flow entry within the local flow cache”, which is also a combination of observation, evaluation, judgement and opinion, and may be performed by human mind.
Therefore, claim 10 in steps [iii]-[iv] and [vi] recite elements that are combination of one or more of performing observation, evaluation, judgement and opinion according to the broadest reasonable interpretations of the claim elements and can be performed by human mind alone or with the aid of pen and paper. The courts consider a mental process (thinking) that "can be performed in the human mind, or by a human using a pen and paper" to be an abstract idea. CyberSource Corp. v. Retail Decisions, Inc., 654 F.3d 1366, 1372, 99 USPQ2d 1690, 1695 (Fed. Cir. 2011).
Thus, claim 10 recites a judicial exception.
Step 2A, Prong Two
As described in MPEP § 2106, subsection III, Step 2A of the Office’s eligibility analysis is the first part of the Alice/Mayo test, i.e., the Supreme Court’s "framework for distinguishing patents that claim laws of nature, natural phenomena, and abstract ideas from those that claim patent-eligible applications of those concepts." Alice Corp. Pty. Ltd. v. CLS Bank Int'l, 573 U.S. 208, 217-18, 110 USPQ2d 1976, 1981 (2014) (citing Mayo, 566 U.S. at 77-78, 101 USPQ2d at 1967-68).
Step 2A is a two-prong inquiry, in which examiners determine in Prong One whether a claim recites a judicial exception, and if so, then determine in Prong Two if the recited judicial exception is integrated into a practical application of that exception.
Because claim 10 recite a judicial exception, Analysis determines if the claim 10 recites additional elements that integrate the judicial exception into practical application.
In addition to the limitations of claim 10 discussed above that recite the abstract concepts, claim 10 also recites additional steps [i]-[ii], [v] and [vii]. Claim 10 in step [i] recites “disaggregated load balancing system configured to perform load balancing among a pool of servers configured to serve content of a domain”, which describes a load balancing system with intended use, and is neither inventive nor provide improvement to the technology / technical field. Claim 10 in step [ii] recites “a hardware accelerator configured to”, which is merely describe configuring a hardware accelerator. Hardware accelerator is considered common computing component and is neither inventive nor provide improvements to the technology / technical field. Claim 10 in step [v] recites “forward the data packet off-chip to a flow admission service executed by a server”, which is directed to transmitting information between computing components. Transmitting information is common computing activity and is neither inventive nor provide improvements to the technology and/or technical field. Claim 10 in step [vii] recites “generate a transformed data packet by transforming the data packet according to a transformation defined within the corresponding flow entry”, which is directed to transforming the packet e.g. adding/changing source/destination IP of the packet, applying rate-limiting rule or dropping the packet, and is performed commonly in the field of networking / packet processing, and is neither inventive nor provide improvements to the technology and/or technical field, at least as recited in claim 10. The Specification doesn’t provide additional details that would distinguish the additional limitations recited in claim 10 steps [i]-[ii], [v] and [vii] from a generic implementation of the abstract idea. Thus, the claim elements recited in steps [i]-[ii], [v] and [vii] , under broadest reasonable interpretation, do not integrate the judicial exception into a practical application. Thus, claim 10 recites a judicial exception without integrating into practical application.
Step 2B
As described in MPEP § 2106, subsection III, Step 2B of the Office’s eligibility analysis is the second part of the Alice/Mayo test, i.e., the Supreme Court’s "framework for distinguishing patents that claim laws of nature, natural phenomena, and abstract ideas from those that claim patent-eligible applications of those concepts." Alice Corp. Pty. Ltd. v. CLS Bank Int'l, 573 U.S. 208, 217, 110 USPQ2d 1976, 1981 (2014) (citing Mayo, 566 U.S. 66, 101 USPQ2d 1961 (2012)).
Step 2B asks: Does the claim recite additional elements that amount to significantly more than the judicial exception.
Because claims 10 is directed to judicial exception, analysis must determine, according to Alice, whether these claims recite an element, or combination of elements that is enough to ensure that the claim is directed to significantly more than a judicial exception.
The Memorandum, Section III (B) (footnote 36) states:
In accordance with existing guidance, an Examiner’s conclusion that an additional element (or combination of elements) is well understood, routine, conventional activity must be supported with a factual determination. For more information concerning evaluation of well-understood, routine, convention activity, see MPEP 2106.05(d), as modified by the USPTO Berkheimer Memorandum.
The Berkheimer Memorandum, Section III(A)(1) states:
A Specification demonstrates the well-understood, routine, conventional nature of additional elements when it describes the additional elements as well-understood or routine or conventional (or an equivalent term), as a commercially available product, on in a manner that indicates that the additional elements are sufficiently well-known that the specification does not need to describe the particulars of such additional elements to satisfy 35 §U.S.C. 112(a). A finding that an element is well-understood, routine, or conventional cannot be based only on the fact that the specification is silent with respect to describing such element.
As discussed above, under prong Two, in addition to the limitations of claim 10 discussed above that recite the abstract concepts, claim 10 also recites additional steps [i]-[ii], [v] and [vii]. Claim 10 in step [i] recites “disaggregated load balancing system configured to perform load balancing among a pool of servers configured to serve content of a domain”, which describes a load balancing system with intended use. As such load balancer is well-understood, routine and conventional (See background), and therefore, doesn’t amount to significantly more. Claim 10 in step [ii] recites “hardware accelerator”, which is also common computing component (See background). Claim 10 in step [v] recites “forward the data packet off-chip to a flow admission service executed by a server”, which is directed to transmitting information, which is common in the field of computing and doesn’t amount to significantly more (See MPEP 2106.05(d)ii). Claim 10 in step [vii] recites “generate a transformed data packet by transforming the data packet according to a transformation defined within the corresponding flow entry”, which is directed to transforming the packet e.g. adding/changing source/destination IP of the packet, applying rate-limiting rule or dropping the packet, and is performed commonly in the field of networking / packet processing (See prior arts in PTO-892). Further, the Specification does not provide additional details that would distinguish the recited elements from generic implementation in the combination. As such these additional claim elements are not directed to anything beyond conventional nature of these elements or otherwise more than well-understood, routine, conventional activity in the field of computing. These limitations either alone or in combination simply append well-understood, routine, conventional activities previously known to the industry, specified at a high level of generality, to the judicial exception.
As such, it has been recognized by court that receiving, processing, and storing data as well as receiving or transmitting data over a network are a well-understood, routine and conventional activities. Mortg. Grader, Inc. v. First choice Loan Servs. Inc., 811 F.3d 1314 (Fed. Cir. 2016) (generic computer components, such as interface, “network”, and “database,” fail to satisfy the inventive concept requirement); see also TLI Commc’ns, 823 F.3d 607; Elec. Power, 830 F.3d at 1350. There is no indication that the recited claim elements override the conventional use of known features or involve an unconventional arrangement or combination of elements such that the particular combination of generic technology results in anything beyond well-understood, routine, and conventional data gathering and output. Alice, 573 U.S. at 223 (“[T]he mere recitation of a generic computer cannot transform a patent ineligible abstract idea into a patent-eligible invention.”) See also Customedia Techs. LLC v. Dish Network Corp., 951 F.3d 1359, 1366(Fed. Cir. 2020) (“[T]he invocation of ‘already-available computers that are not themselves plausibly asserted to be an advance…amounts to a recitation of what is well-understood, routine, and conventional.”)(quoting SAP Am., Inc. v. InvestPic, LLC, 898F3.d 1161, 1170 (Fed. Cir. 2018)); and buySAFE, Inc. v. Google, Inc., 765 F.3d 1350, 1355(Fed. Cir 2014)(“That a computer receives and sends the information over a network -- with no further specification -- is not even arguably inventive.”).
Thus, Claims 10 is directed to judicial exception without integrating into practical application or amount to significantly more.
Claim 11 recites “a software-based load balancing component that executes the flow admission service and is configured to: determine the transformation to be applied to the data packet and other data packets of a same flow; and transmit a new flow entry to the hardware accelerator for storage in the local flow cache, the new flow entry identifying the transformation”, which is directed to determining the transformation and transmitting the transformation to the accelerator. Determining the transformation is a combination of observation, judgement, opinion and evaluation and is considered mental process abstract idea. Transmitting the transformation entry to the accelerator is common activity performed in the field of computing as recognized by one of ordinary skills in the art.
Claim 12 recites “the software-based load balancing component is further configured to: identify one or more relevant packet transform policies based on packet header information of the data packet; selecting, from the pool of servers, a service endpoint to receive the transformed data packet; and define the transformation based on evaluation of the one or more relevant packet transform policies and the service endpoint”, which is a combination of observation, judgement, opinion and evaluation and is considered mental process abstract idea.
Claim 13 recites “multiple instances of the hardware accelerator that each locally maintain a flow cache; and multiple instances of the software-based load balancing component each configured to communicate with and perform flow admission operations for data packets received by the multiple instances of the hardware accelerator”, which is directed to similar components/activity recited in the independent claim and don’t further impose limitations in such a manner to make the claim patent eligible.
Claim 14 recites “data stored within the flow cache of each of the multiple instances of the hardware accelerator is stored in a persistent flow cache accessible to the multiple instances of the software-based load balancing component”, which is directed to storing information and is commonly performed in the field of computing as recognized by one of ordinary skills in the art.
Claim 15 recites “the multiple instances of the hardware accelerator utilize a tunneling protocol to communicate with the multiple instances of the software-based load balancing component”, which is directed to well-understood, routine and conventional protocol as recognized by one of ordinary skills in the art and neither inventive nor provide improvement to the technology and/or technical field.
Claim 16 recites “wherein the multiple instances of the hardware accelerator are each configured to transmit traffic metrics to a database accessible to the multiple instances of the software-based load balancing component and wherein the traffic metrics are utilized to enforce an eviction protocol that selectively evicts flows from corresponding locations within the persistent flow cache and the local flow cache of the hardware accelerator”. As explained above, transmitting information is common in the field of computing. Selective evicting flows from the cache based on metric is a combination of observation, evaluation, judgement and opinion.
Therefore, the claim(s) 10-16 are rejected under 35 U.S.C. 101 as being directed to judicial exception without integrating into practical application or significantly more.
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-5, 7-13, 15, 17-20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Arulambalam et al. (US 2008/0285571 A1, hereafter Arulambalam) in view of Singh et al. (US 2024/0291907 A1, Singh).
As per claim 1, Arulambalam teaches the invention substantially as claimed including a method comprising:
receiving, at a hardware accelerator, a data packet in route ([0027] packet, stream, applied initially to the network accelerator, through traffic manager/arbiter i.e. load balancer, sent to destination / presentation device / paly operation [0101] fig. 2 network protocol accelerator or hardware accelerator) to a domain hosted by a service provider subscribed to a load-balancing service (fig. 1 server 27- packet source / destination CTRL PT 39 client35 [0002] digital video processing center, packet data transport applications; fig. 2 27-accelerator-43-arbiter i.e. load balancer-29);
performing a lookup operation in a flow cache stored on the hardware accelerator based on packet header information of the data packet (fig. 2 network accelerator 42 content addressable memory CAM 43 [0023] establish the routing to the new endpoint by setting up a new packet queue in the content addressable memory (CAM), hardware accelerator, operate, automaton, that finds the packet queue entries for an incoming packet, substitutes the necessary values, and passes the packet on toward its destination [0027] accelerator matches the packet to information in the content addressable memory CAM connection table [0048] packet, fixed header [0051] message headers);
in response to determining that the flow cache of the hardware accelerator does not include a flow entry that matches the packet header information of the data packet ([0023] data streaming communication management, transmission of addressed data packets, data paths, CAM file, hardware accelerator, no matching entry is found in the CAM file [0027] accelerator matches the packet to information in the content addressable memory CAM connection table; fig. 6 check for existing queue entry - no existing entry [0112] packet, doesn’t match an entry in the CAM look up table); transmitting the data packet from the hardware accelerator to a flow admission service executed by a software-based load balancing component ( [0104] traffic manager/arbiter, manage incoming and outgoing network traffic [0112] network accelerator, assigns them to appropriate traffic manager i.e. load balancer; RTSP process, receives, complete setup message, the CAM lookup parameters, determined, setup message, connection table entry in the CAM table is established for the RTP session [0141] system is initialized, first packet arrives [0142] AAP, determine, need to setup a connection upon analyzing the arrival packet, AAP writes the connection address into the free entry of the CAM so that later arrival packets with the same address will match the entry in the CAM.);
receiving, from the software-based load balancing component ([0112] Once the RTSP process receives a complete SETUP message, the CAM lookup parameters (source and destination IP addresses and ports, and transport protocol) are determined from the SETUP message (wholly or partly). connection table entry in the CAM table is established for the RTP session i.e. receiving [0113] session, established, network accelerator is ready to receive data), a new flow entry associated with the data packet that defines a first packet transformation for the data packet ([0109] address information is matched to an entry in the queue CAM, if not entry is found, the processor is signaled and an entry may be established by the processor, which is programmed for determining the appropriate queue entry values and storing them in the content addressable memory of the hardware accelerator; fig. 6 no existing entry-determine headers corresponding to packet handling requirements, program/load CAM with header filed values to replace original field values for interim);
updating the flow cache stored on the hardware accelerator to include the new flow entry ([0023] hardware accelerator, new streaming connection to new endpoint, associated header values, initiating, an entry in CAM, establish the routing to the new endpoint, setting up new packet queue in CAM); and
in response to determining that a subsequently-received data packet matches the packet header information of the new flow entry ([0027] accelerator matches the packet to information in the content addressable memory CAM connection table; fig. 6 check for existing queue entry - entry exists [0109] next packet received), processing the subsequently-received the data packet on the hardware accelerator and according to the first packet transformation ([0023] finds, packet queue entries, incoming packet, substitutes the necessary values, passes the packet on towards its destination [0027] accelerator matches the packet to information in CAM connection table, strips the layer three and four headers, insert new local header, altered local header, RTP header, RTP payload, sent through traffic manager to its destination [0147]; fig. 6 fig. 6 check for existing queue entry - entry exists; replace original field values with values from CAM and send packet).
Arulambalam requires setup message or initialization.
Singh, however, teaches receiving a data packet, updating the flow cache ([0030] determining if new packet e.g. part of a new flow should be allowed, add this flow to the data plane cache e.g. accelerator cache i.e. no set up message required).
It would have been obvious to one of ordinary skills in the art before the effective filing date of the invention was made to combine the teachings of Arulambalam with the teachings of Singh of adding flow of a new packet to the cache without requiring setup message to improve efficiency and allow cache flow to add new flows without requiring setup message to the method of Arulambalam as in the instant invention.
As per claim 2, Arulambalam teaches evaluating, by the flow admission service, one or more policies to determine the first packet transformation ([0104] traffic manager / arbiter, provide memory/disk access arbitration, manage incoming and outgoing traffic, input /output [0109] entry, established, determine appropriate queue entry values, storing them in the content addressable memory, hardware [0112] CAM lookup parameter, source/destination IP addresses and ports are determined from setup message [0113] record message, time range of the stream[0024] routing packets between source/destination, inserting intermediate processing steps, routing packet to two or more destination at the same time );
defining, by the flow admission service, the new flow entry that defines the first packet transformation ([0112] the CAM lookup parameters (source and destination IP addresses and ports, and transport protocol) are determined from the SETUP message (wholly or partly). A connection table entry in the CAM table is established for the RTP session); and
processing the data packet on the software-based load balancing component according to the first packet transformation ([0023] finds, packet queue entries, incoming packet, substitutes the necessary values, passes the packet on towards its destination [0024] When an RTSP RECORD or SEND message is received that has an established queue entry, responsibility for determining the outgoing header values is on the hardware accelerator, in data communication with the traffic manager and the central processor. [0027] accelerator matches the packet to information in CAM connection table, strips the layer three and four headers, insert new local header, altered local header, RTP header, RTP payload, sent through traffic manager to its destination [0147]; fig. 6 fig. 6 check for existing queue entry - entry exists; replace original field values with values from CAM and send packet [0117]) .
As per claim 3, Arulambalam teaches identifying, by the software-based load balancing component, one or more relevant packet transform policies based on the packet header information ([0024] determining the endpoints if the stream processing according to any programmable functions, functions include many or all of the functions that otherwise require a controller to decide via programmer software routings how to deal with each passing packets, such function can include routing of packets between sources and destinations, inserting intermediate processing steps, routing packets to two or more destinations at the same times);
selecting, from a pool of servers configured to serve content of the domain, a service endpoint to receive the transformed data packet ([0024] determining the endpoints if the stream processing according to any programmable functions, functions include many or all of the functions that otherwise require a controller to decide via programmer software routings how to deal with each passing packets, [0100] endpoints, originating or ultimate display device, compression /decompression / format changing device from which or to which a packet data signal may be directed);
defining the first packet transformation based on evaluation of the one or more relevant packet transform policies and the service endpoint ([0024] [0024] determining the endpoints if the stream processing according to any programmable functions, such function can include routing of packets between sources and destinations, inserting intermediate processing steps, routing packets to two or more destinations at the same times ); and
transmitting, from the software-based load balancing component, the new flow entry to the hardware accelerator ([0109] matched to no entry, entry, entry, established, storing ( i.e. must be transmitted) them in the content addressable memory of the hardware accelerator).
As per claim 4, Singh teaches wherein the load-balancing service is part of a disaggregated load balancing system that further includes multiple instances of the software-based load balancing component ( [0128] VCN 804 include one or more load balancers, configured to load balancer traffic across multiple instances in the subnet) and the method further includes:
selecting an instance of the software-based load balancing component to perform flow admission for the data packet based on the packet header information of the data packet ([0128] VCN A 804 load balancer, provided for a subnet, configured to load balance traffic across multiple compute instance on the subnet, load balancer, provided to load balance traffic across subnets i.e. packet is load balanced across subnets i.e. selection of load balancer for a particular packet and then within the subnet).
As per claim 5, Arulambalam teaches wherein the load-balancing service is part of a disaggregated load balancing system that further includes:
the hardware accelerator that each locally maintain a flow cache (fig. 2 accelerator 42 CAM 43); and
the software-based load balancing component each configured to communicate with and perform flow admission operations for data packets received by the hardware accelerator (fig. 2 traffic manager/arbiter-accelerator 42 ).
Singh teaches remaining claim elements of multiple instances of the hardware accelerators ([0036] NVDs, smart NICs, accelerator [0166] smart NICs 910, 912, host machines 902, 906 and 908, i.e. multiple accelerators; fig. 10 1010 1012); and
multiple instances of the software based load balancing component ([0036] NVDs, smart NICs, data plane [0166] smart NICs 910, 912, host machines 902, 906 and 908, i.e. multiple data planes; fig. 10 1010 1012 [0070] accelerator 409, insert packets into queue based on load balancing algorithms [0100] [0124] VCNs, one or more regions, deploy, compute instances, include load balancers [0128]).
As per claim 7, Arulambalam teaches wherein the multiple instances of the hardware accelerator utilize a tunneling protocol to communicate with the multiple instances of the software-based load balancing component ([0036] NVDs, smart NICs, accelerator [0166] smart NICs 910, 912, host machines 902, 906 and 908, i.e. multiple accelerators; fig. 10 1010 1012 [0034] programming data plane, maintain, data plane memory e.g. cache, separate from accelerate cache, [0036] NVDs, smart NICs, data plane [0166] smart NICs 910, 912, host machines 902, 906 and 908, i.e. multiple data planes; fig. 10 1010 1012 [0070] accelerator 409, insert packets into queue based on load balancing algorithms [0100] [0124] VCNs, one or more regions, deploy, compute instances, include load balancers [0128] [0134] communication channel, over public / private communication networks, protocol may be IPsec VPN i.e. tunneling protocol).
As per claim 8, Arulambalam teaches detecting, by the hardware accelerator, a flow termination flag in the data packet ([0076] PT-payload type, terminate the RTP stream );
in response to detection of the flow termination flag ([0076] PT-payload type, terminate the RTP stream), evicting the flow entry from the flow cache of the hardware accelerator ([0114] changes can be made by terminating or modifying the CAM table entry).
Singh teaches remaining claim elements of and transmitting an eviction notification to the software-based load balancer ([0033] accelerator, generate, packet, indicate, flow, candidate for removal);
in response to receipt of the eviction notification, deleting the flow entry and a corresponding reverse-direction flow entry from a persistent flow cache ([0033] programming data plane, instructions, managing flow entries for either or both of the caches in respective planes, respective entries for the particular flow in both aches, deleted, may itself delete the entry from its own cache [0081] data plane, similar data path, reverse direction).
As per claim 9, Arulambalam teaches performing, by the hardware accelerator, a filtering table lookup operation based on data packet header information to determine whether a target endpoint of the data packet has been predesignated for acceleration ([0027] accelerator match the packet to the information in the CAM connection table [0023] [0108] matches the identification on an incoming packet to an entry in the CAM i.e. designated for acceleration); and in response to determining that the target endpoint has not been predesignated for acceleration ([0027] accelerator match the packet to the information in the CAM connection table; [0023] no matching entry is find in the CAM file), transmitting the data packet to the software-based load balancing component for a packet transformation operation ([0104] traffic manager/arbiter, manage incoming and outgoing network traffic [0109] if no entry is found i.e. not designated for acceleration [0112] network accelerator, assigns them i.e. packets to appropriate traffic manager i.e. load balancer; RTSP process, receives, complete setup message, the CAM lookup parameters, determined, setup message, connection table entry in the CAM table is established for the RTP session [0141] system is initialized, first packet arrives [0142] AAP, determine, need to setup a connection upon analyzing the arrival packet, AAP writes the connection address into the free entry of the CAM so that later arrival packets with the same address will match the entry in the CAM).
Claim 10 recites a load balancing among a pool of servers (Singh: fig.1 NVD 1010 1012) comprising elements similar to claim 1, and forward the data packet off-chip server instead (Singh : fig. 10 NVDs 1010 1012 host machine 1002 i.e. off-chip [0128] ). Therefore, it is rejected for the same rationale.
Claim 11 recites elements of part of claims 2 and 3. Therefore, it is rejected for the same rationale.
Claim 12 recites elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 13 recites elements similar to claim 5. Therefore, it is rejected for the same rationale.
Claim 15 recites elements similar to claim 7. Therefore, it is rejected for the same rationale.
Claim 17 recites tangible computer-readable storage media encoding processor-executable instructions for executing a computer process for load balancing among a pool of servers configured to serve content of a domain comprising elements similar to claim 1. Therefore, it is rejected for the same rationale.
Claim 18 recites tangible computer-readable storage media for elements similar to claim 2. Therefore, it is rejected for the same rationales.
Claim 19 recites the tangible computer-readable storage media for elements similar to claim 3. Therefore, it is rejected for the same rationale.
Claim 20 recites the tangible computer-readable storage media for elements similar to claim 4. Therefore, it is rejected for the same rationale.
Allowable Subject Matter
Claims 6, and 14 are objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form to overcome the rejections set forth in this office action and including all of the limitations of the base claim and any intervening claims.
Examiners Note
Applicant is further reminded of that the cited paragraphs and in the references as applied to the claims above for the convenience of the applicant(s) and although the specified citations are representative of the teachings of the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested from the applicant in preparing responses, to fully consider all of the references in entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
Gong; Qing et al. (US 10157085 B2) teaches Techniques For Decentralized Load Balancing
Chan; Yuk L. et al. (US 20150301869 A1) teaches load balancing with granularity redistributable workloads
Basavaiah; Murali et al. (US 20200382584 A1) teaches partitioning health monitoring in a global server load balancing system
Gupte; Shaunak et al. (US 20220035684 A1) teaches dynamic load balancing of operations for real-time deep learning analysis
Krishna; Gopi et al. (US 9379982 B1) teaches adaptive stateless load balancing
Pfister; Pierre et al. (US 20180219783 A1) teaches reliable load-balancer using segment routing and real-time application monitoring
Imai; Yuji (US 20100057898 A1) teaches load balancer setting method
HARPER; Matthew Hayden et al. (US 20160065479 A1) teaches distributed input/output architecture for network function virtualization
Singh et al. (US 2024/0291762 A1) teaches efficient flow management utilizing unified logging
Reasons for Allowance
The combination of prior arts of record do not expressly teach or render obvious the limitations of “multiple instance of the hardware accelerator that each locally maintain a flow cache; and multiple instances of the software-based load balancing component each configured to perform flow admission operations for data packets received by the multiple instances of the hardware accelerator and flow cache of each of the multiple instance of the hardware accelerator is stored in persistence flow cache accessible to the multiple instances of the software-based load balancing component”, when taken in the context of the claims as a whole, as recited in the dependent claims 6 and 14 were not disclosed in the prior arts of record.
Authorization for Internet Communication
Applicant is encouraged to submit an authorization to communicate with the Examiner via the internet by making the following statement (MPEP 502.03)
“Recognizing that internet communications are not secure, I hereby authorize the USPTO to communicate with the undersigned and practitioners in accordance with 37 CFR 1.33 and 37 CFR 1.34 concerning any subject matter of this application by video conferencing, instant messaging, or electronic mail. I understand that a copy of these communications will be made of record in the application file.”
Please note that the above statement can only by submitted via Central Fax (not Examiner’s Fax), Regular postal mail, or EFS Web using PTO/SB/439.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ABU ZAR GHAFFARI whose telephone number is (571)270-3799. The examiner can normally be reached on Monday-Thursday 9:00 - 17:00 Hrs.
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, Aimee Lee can be reached on 571-272-4169. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see http://pair-direct.uspto.gov. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ABU ZAR GHAFFARI/Primary Examiner, Art Unit 2195