DETAILED ACTION
Claims 1-20 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Information Disclosure Statement
The information disclosure statement (IDS) submitted on 8/1/2024 is being considered by the examiner.
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.
Claim 11 is rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claim 11 recites the limitation "the data packet" in Line 1. There is insufficient antecedent basis for this limitation in the claim.
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-20 are rejected under 35 U.S.C. 103 as being unpatentable over Budhia (US 11,895,015 B1) in view of Levy-Abegnoli (US 2020/0136999 A1).
With regards to Claim 1, Budhia teaches an edge device, comprising: one or more processors; and one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the edge device to perform operations comprising: implementing a first data distribution technique to distribute data packets across a set of paths (i.e., In block 404, the system determines one or more path selection factors to be used to identify a specific network load balancing algorithm to select a specific network path from the group of multiple network paths…, Col. 26, Lines 53-60). However, Budhia does not explicitly disclose upon determining an amount of network traffic handled by the edge device is above a threshold amount of network traffic, identifying, based on one or more values associated with the set of paths, that a first path of the set of paths is underutilized; receiving a first data packet directed to a destination; assigning the first data packet to the first path in a flow table associated with a second data distribution technique; and routing the first data packet across the first path in accordance with the second data distribution technique.
Levy-Abegnoli does teach upon determining an amount of network traffic handled by the edge device is above a threshold amount of network traffic, identifying, based on one or more values associated with the set of paths, that a first path of the set of paths is underutilized; receiving a first data packet directed to a destination; assigning the first data packet to the first path in a flow table associated with a second data distribution technique; and routing the first data packet across the first path in accordance with the second data distribution technique (i.e., the target access network device is configured to record based on the receiving, at least one metric indicative of a level of traffic congestion at the first and second core network devices, and transmit information regarding the recorded at least one metric to the controller. The controller is configured to adjust the load balancing algorithm based on the information regarding the at least one metric, Paragraph 12; Paragraphs 26-27) in order to keep latency at predictable levels (Paragraph 4). Therefore, based on Budhia in view of Levy-Abegnoli, it would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Levy-Abegnoli with the system of Budhia in order to keep latency at predictable level.
With regards to Claim 2, Budhia teaches wherein the first data distribution technique comprises a hashing technique (i.e., A first load balancing algorithm including but not limited to static hash-based member selection or a variant thereof may be identified, selected and/or applied to forwarding TCP segments or packets in the TCP traffic, Col. 4, Lines 10-17).
With regards to Claim 3, Budhia teaches wherein the second data distribution technique comprises a flow-based technique (i.e., There are multiple load balancing algorithms for distributing traffic or packets to the same destination across multiple paths in an MPG. Example load balancing algorithms may include, but are not necessarily limited to only, any of: dynamic load balancing, hash-based selection, round robin spraying, random spraying, and so on. Each of the load balancing algorithms has its own characteristics as compared with others of the load balancing algorithms. For example, some algorithms may maintain packet ordering in a traffic (or packet) flow, while others may re-order packets of the same traffic flow. A traffic flow may be a plurality of successive packets from a given source to a given destination. Additionally, optionally or alternatively, other flow determining attributes such as ports, protocols, etc., may be used to classify packets into different flows, Col. 3, Lines 47-67).
With regards to Claim 4, Budhia teaches wherein the operations further comprise generating a hash index value based on information about the data packet, wherein the hash index value is entered into the flow table (i.e., In an embodiment, a device 200 will typically store in its memories one or more forwarding tables (or equivalent structures) that map certain data unit attributes or characteristics to actions to be taken with respect to data units 205 having those attributes or characteristics, such as sending a data unit 205 to a selected path, or processing the data unit 205 using a specified internal component…., Col. 14, Lines 18--35).
With regards to Claim 5, Budhia teaches wherein the information about the data packet comprises information about at least one of a source address or destination address associated with the data packet (i.e., In an embodiment, a device 200 will typically store in its memories one or more forwarding tables (or equivalent structures) that map certain data unit attributes or characteristics to actions to be taken with respect to data units 205 having those attributes or characteristics, such as sending a data unit 205 to a selected path, or processing the data unit 205 using a specified internal component…. a tag or label in a packet's header, a source address, a destination address, a packet type, or any other suitable distinguishing property, Col. 14, Lines 18—35)
With regards to Claim 6, Budhia teaches the above disclosed subject matter. However, Bhudia does not explicitly disclose wherein the operations further comprise: receiving a second data packet directed to the destination device; determining that the second data packet is associated with the first data packet based on the flow table; and upon determining the that the second data packet is associated with the first data packet, routing the second data packet across the first path in accordance with the second data distribution technique. Levy-Abegnoli does teach wherein the operations further comprise: receiving a second data packet directed to the destination device; determining that the second data packet is associated with the first data packet based on the flow table; and upon determining the that the second data packet is associated with the first data packet, routing the second data packet across the first path in accordance with the second data distribution technique (i.e., Figure 4; Paragraphs 39-45) in order to keep latency at predictable levels (Paragraph 4). Therefore, based on Budhia in view of Levy-Abegnoli, it would have been obvious to one having ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Levy-Abegnoli with the system of Budhia in order to keep latency at predictable level.
With regards to Claim 7, Budhia teaches wherein the first path of the set of paths is identified as being underutilized if a current load associated with the first path is below an average load for the set of paths (i.e., In some operational scenarios, in which the network that includes the network node is not very loaded (e.g., as compared with user- and/or system-configured network load thresholds, etc.), the load balancing algorithm controller 306 may select or enable one or more load balancing algorithms (which may alternatively be referred to as path/member resolution algorithms, path/member selection algorithms, etc.) that maintains packet ordering in received packets to a destination, regardless of or independent of applications originating the packets and/or regardless of whether the selected load balancing algorithms evenly distribute packets across members (or network paths) in a path group, Col. 20, Lines 46-57).
The limitations of Claim 8 are rejected in the analysis of Claim 1 above, and the claim is rejected on that basis.
With regards to Claim 9, Budhia teaches wherein the first data distribution technique comprises using a hash algorithm to distribute data packets across the set of paths in a pseudo random manner (i.e., A first load balancing algorithm including but not limited to static hash-based member selection or a variant thereof may be identified, selected and/or applied to forwarding TCP segments or packets in the TCP traffic, Col. 4, Lines 10-17).
With regards to Claim 10, Budhia teaches wherein the first data packet is received from a client device in communication with the edge device (i.e., where ingress timestamp represents the time when the packet entered the network from an end user device or an edge node, Col. 22, Lines 9-31).
With regards to Claim 11, Budhia teaches wherein the data packet is directed to a client device in communication with the destination (i.e., Different nodes 110 within a network 100 may send, receive, and/or relay data units at different communication levels, or layers. For instance, a first node 110 may send a unit of data at the network layer (e.g., a TCP segment, etc.) to a second node 110 over a path that includes an intermediate node 110. This unit of data may be broken into smaller units of data at various sublevels before it is transmitted from the first node 110., Col. 5, Liens 37-55; ).
With regards to Claim 12, Budhia teaches wherein the destination comprises a second edge device accessible over the set of paths (i.e., Different nodes 110 within a network 100 may send, receive, and/or relay data units at different communication levels, or layers. For instance, a first node 110 may send a unit of data at the network layer (e.g., a TCP segment, etc.) to a second node 110 over a path that includes an intermediate node 110. This unit of data may be broken into smaller units of data at various sublevels before it is transmitted from the first node 110., Col. 5, Liens 37-55; ).
With regards to Claim 13, Budhia teaches wherein the set of paths are implemented within a network (i.e., Figure 1; Approaches, techniques, and mechanisms are disclosed for routing packets over a group of multiple paths. A packet to be forwarded over a computer network to a destination is received. A group of multiple network paths is available to forward to the packet to the destination, Col. 4, Lines 50-64)
With regards to Claim 14, Budhia teaches generating a hash index value based on information about the data packet; and entering the hash index value is entered into the flow table (i.e., In an embodiment, a device 200 will typically store in its memories one or more forwarding tables (or equivalent structures) that map certain data unit attributes or characteristics to actions to be taken with respect to data units 205 having those attributes or characteristics, such as sending a data unit 205 to a selected path, or processing the data unit 205 using a specified internal component…., Col. 14, Lines 18--35).
With regards to Claim 15, Budhia teaches wherein the information about the data packet comprises information about at least one of a source address or destination address associated with the data packet (i.e., In an embodiment, a device 200 will typically store in its memories one or more forwarding tables (or equivalent structures) that map certain data unit attributes or characteristics to actions to be taken with respect to data units 205 having those attributes or characteristics, such as sending a data unit 205 to a selected path, or processing the data unit 205 using a specified internal component…. a tag or label in a packet's header, a source address, a destination address, a packet type, or any other suitable distinguishing property, Col. 14, Lines 18—35)
With regards to Claim 16, Budhia teaches determining that a second path of the set of paths has failed; and updating one or more entries in the flow table associated with the second path to prevent data packets from being transmitted over the second path (i.e., In an embodiment, a device 200 will typically store in its memories one or more forwarding tables (or equivalent structures) that map certain data unit attributes or characteristics to actions to be taken with respect to data units 205 having those attributes or characteristics, such as sending a data unit 205 to a selected path, or processing the data unit 205 using a specified internal component. For instance, such attributes or characteristics may include a Quality-of-Service level specified by the data unit 205 or associated with another characteristic of the data unit 205, a flow control group, an ingress port 210 through which the data unit 205 was received, a tag or label in a packet's header, a source address, a destination address, a packet type, or any other suitable distinguishing property…, Col, 14, Lines 18-35, 50-63; ).
With regards to Claim 17, Budhia teaches a method comprising: receiving, at a source edge device, a data packet to be transmitted to a receiving edge device over a set of paths; determining, by the source edge device, whether a flow associated with the data packet has been allocated via a first data distribution technique; upon determining that the flow has not been allocated, determining whether the first data distribution technique is available for the flow; upon determining that the first data distribution technique is not available, using a second data distribution technique to distribute the data packet across the set of paths; and upon determining that the first data distribution technique is available, allocating the flow to a path in the set of paths and transmitting the data packet over the path (i.e., Hence, in response to determining, based in part or in whole on the application attributes, that the received packet belongs to or originates from a first application, the load balancing algorithm controller 306 may generate one or more first load balancing algorithm controls to select or enable a first load balancing algorithm (one of 308 of FIG. 3A), among the available load balancing algorithms, that can best perform path selection for the first application. A first member in the path group or a first network path may be selected by the first load balancing algorithm for forwarding the received packet., Col. 17, Lines 44-67).
With regards to Claim 18, Budhia teaches wherein determining whether the first data distribution technique is available for the flow comprises determining whether at least one path in the set of paths is not oversubscribed (i.e., Col. 17, Lines 44-67; For the purpose of illustrations, a plurality of load balancing (or path/member selection) algorithms such as 308 of FIG. 3A may be supported in a network node or switching device that implements a path group load balancing framework 300. These algorithms 308 may include a dynamic load balancing algorithm that monitor or use lapsed time between successive packets, real time path or port loading/utilization and/or other port- or path-specific operational statuses to optimize traffic or packet distributions across members of a given path group determined for a received packet or a packet flow including the received packet. The dynamic algorithm may be implemented to maintain packet ordering within the traffic flow, Col. 25, Lines 10-24).
With regards to Claim 19, Budhia teaches wherein the at least one path in the set of paths is not oversubscribed if a current load associated with the at least one path is below a first threshold load (i.e., In some operational scenarios, in which the network that includes the network node is not very loaded (e.g., as compared with user- and/or system-configured network load thresholds, etc.), the load balancing algorithm controller 306 may select or enable one or more load balancing algorithms (which may alternatively be referred to as path/member resolution algorithms, path/member selection algorithms, etc.) that maintains packet ordering in received packets to a destination, regardless of or independent of applications originating the packets and/or regardless of whether the selected load balancing algorithms evenly distribute packets across members (or network paths) in a path group, Col. 20, Lines 46-57).
With regards to Claim 20, Budhia teaches wherein determining whether the first data distribution technique is available for the flow comprises determining whether an entry can be created in a flow table associated with the first data distribution technique (i.e., In an embodiment, a device 200 will typically store in its memories one or more forwarding tables (or equivalent structures) that map certain data unit attributes or characteristics to actions to be taken with respect to data units 205 having those attributes or characteristics, such as sending a data unit 205 to a selected path, or processing the data unit 205 using a specified internal component. For instance, such attributes or characteristics may include a Quality-of-Service level specified by the data unit 205 or associated with another characteristic of the data unit 205, a flow control group, an ingress port 210 through which the data unit 205 was received, a tag or label in a packet's header, a source address, a destination address, a packet type, or any other suitable distinguishing property…, Col, 14, Lines 18-35, 50-63; ).
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SURAJ M JOSHI whose telephone number is (571)270-7209. The examiner can normally be reached Monday - Friday 8-6 ET.
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, Joon Hwang can be reached at (571)272-4036. 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.
/SURAJ M JOSHI/Primary Examiner, Art Unit 2447 March 27, 2026