DETAILED ACTION
This Office Action is in response to the application filed on 09/30/2024.
Claims 1-23 are presented for examination.
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 08/05/2025 is in compliance with the provisions of 37 CFR 1.97. Accordingly, the information disclosure statement is being considered by the examiner.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-9, 11-23 are rejected under 35 U.S.C. 101 because the claimed invention is directed to an abstract idea without significantly more.
Regarding Claim 1 and 12, the claim(s) recite(s) “determining communication flows from communication collectives on the network; for all of the communication flows, determining groups of flows, wherein the communication flows in each respective group of the groups are correlated in time and in destination; for each respective group, pinning each communication flow in the respective group to a corresponding network link so that the communication flows in the respective group are evenly distributed across the network links;” and “A method, comprising: determining, by the TOR switch, topology information of the communication flows; for each of the communication collectives, determining, by the TOR switch, groups of communication flows, wherein the communication flows in each respective group are correlated in time and in destination; for each respective group, pinning, by the TOR switch, each communication flow in the respective group to a corresponding network link connected to the TOR switch so that the communication flows in the respective group are evenly distributed across network links connected to the TOR switch”
The limitations as drafted above is a process that under broadest reasonable interpretation covers performance of the limitations in the mind but for generic computer components and extra solution activities. That is, other than “A network switch, comprising: a first set of ports adapted to couple the network switch to source devices over a network; a second set of ports adapted to couple the network switch to network links; a processor; a non-transitory computer readable-medium; and instructions stored on the non-transitory computer readable-medium and translatable by the processor for… and sending the communication flows toward the network links as pinned”, “receiving, by a top-of-rack (TOR) switch from source devices, communication flows for communication collectives; sending, by the TOR switch, the communication flows toward the network links as pinned.”, the claim comprises limitations that can be performed in the human mind, and/or using pen and paper. In this case, a person can reasonably analyze network information to determine flows and topology of a network based on the flow information, group flows based on flow information, and assign flows evenly on links. If a claim under its broadest reasonable interpretation covers performance in the mind but for recitation of generic computer components and extra solution activities, then it falls within mental processes grouping of abstract idea. Accordingly, the claims recite an abstract idea.
This judicial exception is not integrated into a practical application. In particular the claims only recite the additional limitations of “A network switch, comprising: a first set of ports adapted to couple the network switch to source devices over a network; a second set of ports adapted to couple the network switch to network links; a processor; a non-transitory computer readable-medium; and instructions stored on the non-transitory computer readable-medium and translatable by the processor for… and sending the communication flows toward the network links as pinned” and “receiving, by a top-of-rack (TOR) switch from source devices, communication flows for communication collectives; sending, by the TOR switch, the communication flows toward the network links as pinned.” Regarding the hardware components, they are all well-known elements recited as performing routine activities. Regarding the sending step, it is merely an extra solution activity that outputs on the result of the abstract idea. Accordingly, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claims are therefore directed to an abstract idea.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed in respect to the integration of the abstract idea into a practical application, the elements of “A network switch, comprising: a first set of ports adapted to couple the network switch to source devices over a network; a second set of ports adapted to couple the network switch to network links; a processor; a non-transitory computer readable-medium; and instructions stored on the non-transitory computer readable-medium and translatable by the processor for… and sending the communication flows toward the network links as pinned” and “receiving, by a top-of-rack (TOR) switch from source devices, communication flows for communication collectives; sending, by the TOR switch, the communication flows toward the network links as pinned.” amount to no more than mere instructions to apply the abstract idea to generic computer elements. Mere instructions to apply the abstract idea to generic/well known elements and extra solution activities cannot provide an inventive concept. The claims are not patent eligible.
Regarding Claim 22, it recites in part “determining communication collectives on a network and communication flows that comprise the communication collectives; determining groups of flows that are correlated in time and in destination”
The limitations as drafted above is a process that under broadest reasonable interpretation covers performance of the limitations in the mind but for generic computer components and extra solution activities. That is, other than “A method, comprising: at a network switch operating in a monitor mode: and providing visibility of the communication flows and the communication collectives” the claim comprises limitations that can be performed in the human mind, and/or using pen and paper. In this case, a person can reasonably determine groups of flows based on metrics. If a claim under its broadest reasonable interpretation covers performance in the mind but for recitation of generic computer components and extra solution activities, then it falls within mental processes grouping of abstract idea. Accordingly, the claims recite an abstract idea.
This judicial exception is not integrated into a practical application. In particular the claims only recite the additional limitations of “A method, comprising: at a network switch operating in a monitor mode: and providing visibility of the communication flows and the communication collectives”. Regarding the hardware element, a network switch is a well known generic element recited as performing routine activities. Regarding the visibility step, it is merely an extra solution activity that outputs a visual representation of the result of the abstract idea. Accordingly, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claims are therefore directed to an abstract idea.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed in respect to the integration of the abstract idea into a practical application, the elements of “A method, comprising: at a network switch operating in a monitor mode: and providing visibility of the communication flows and the communication collectives” amount to no more than mere instructions to apply the abstract idea to generic computer elements and extra solution activity. Mere instructions to apply the abstract idea to generic/well known elements and extra solution activities cannot provide an inventive concept. The claims are not patent eligible.
Regarding Claims 2-9, 11, 13-21, and 22, they recite in part, “matching, based on rules built into the network switch, header fields of a communication flow to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution.”, “aggregating the topology information of the communication flows imported from each of the source devices into aggregate topology information for each of the communication collectives; and grouping the communication flows using the aggregate topology information”, “inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives, wherein the mapping is used to determine the groups of flows that are correlated in time and in destination”, “determining, based on a communicator identifier associated with the set of communication flows, whether the communication flows should be aggregated into information about a single communication collective, the communicator identifier associated with multiple collective instances; allocating, based on a routing protocol, communication flows in the single communication collective to a subset of the second set of ports;”, “snooping the communication flows from the source devices to identify a pattern of the communication flows as their constituent packets arrive at the network switch; and grouping the communication flows based on the pattern of the communication flows thus identified such that grouped communication flows come from same collective and are correlated in destination”, “wherein the communication flows in the respective group are maximally evenly distributed across the network links”, “wherein communication flows that share same memory-key for a given destination or share a virtual address region for a Remote Direct Memory Access (RDMA) operation can be deduced to be part of same collective”, “determining which ports are communicating with which other ports based on counters that record packets sent from a first port and received by a second port; and grouping a subset of the communication flows flowing between the first port and the second port”
The limitations as drafted above is a process that under broadest reasonable interpretation covers performance of the limitations in the mind but for generic computer components and extra solution activities. That is, other than “wherein each communication flow refers to a subset of communication traffic transmitted from a source node to a destination node for a job and wherein a communication collective includes one or more communication flows between a pair of nodes”, “wherein the network links are uplinks or downlinks”, “importing topology information of the communication flows from one or more of the source devices;”, “wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective”, “receiving a communicator identifier and a topology shape for a set of communication flows;”, “receiving a set of communication flows from different source devices; “sending the communication flows in the single communication collective to a destination through the subset of the second set of ports”, “wherein the communication flows from the source devices consist of Remote Direct Memory Access (RDMA) traffic”, “wherein the providing visibility of the communication collectives includes providing visibility of a topology shape of the communication collectives.” the claim comprises limitations that can be performed in the human mind, and/or using pen and paper. In this case, a person can reasonably determine groups of flows and topology based on collected information regarding flows, correlate this information to group flows, and determine optimal assigning of flows to links based on subsets of collected information. If a claim under its broadest reasonable interpretation covers performance in the mind but for recitation of generic computer components and extra solution activities, then it falls within mental processes grouping of abstract idea. Accordingly, the claims recite an abstract idea.
This judicial exception is not integrated into a practical application. In particular the claims only recite the additional limitations of “wherein each communication flow refers to a subset of communication traffic transmitted from a source node to a destination node for a job and wherein a communication collective includes one or more communication flows between a pair of nodes”, “wherein the network links are uplinks or downlinks”, “importing topology information of the communication flows from one or more of the source devices;”, “wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective”, “receiving a communicator identifier and a topology shape for a set of communication flows;”, “receiving a set of communication flows from different source devices” “sending the communication flows in the single communication collective to a destination through the subset of the second set of ports”, “wherein the communication flows from the source devices consist of Remote Direct Memory Access (RDMA) traffic”, “wherein the providing visibility of the communication collectives includes providing visibility of a topology shape of the communication collectives.” Regarding the description of the communication flow and the collective, under broadest reasonable interpretation, this describes a generic communication flow as it is typically between 2 nodes, and has a purpose for its data transmission, i.e. a job. The communication collective merely contains a single one of these flows. Regarding RDMA traffic, it is a well known type traffic broadly recited as being the type of data that is analyzed by the abstract idea. Regarding the topology shape, and unique identifier, under broadest reasonable interpretation, is merely a well-known descriptions of the topology such as route or path in a network that is obtained to perform the abstract idea, and any identifier that is part of the communication flows analyzed by the abstract idea. Regarding the remaining steps they are extra solution activities that are used to collect the information that is analyzed by the abstract idea, or output the result of the abstract idea. Accordingly, the additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claims are therefore directed to an abstract idea.
The claim(s) does/do not include additional elements that are sufficient to amount to significantly more than the judicial exception. As discussed in respect to the integration of the abstract idea into a practical application, the elements of “wherein each communication flow refers to a subset of communication traffic transmitted from a source node to a destination node for a job and wherein a communication collective includes one or more communication flows between a pair of nodes”, “wherein the network links are uplinks or downlinks”, “importing topology information of the communication flows from one or more of the source devices;”, “wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective”, “receiving a communicator identifier and a topology shape for a set of communication flows;”, “receiving a set of communication flows from different source devices” “sending the communication flows in the single communication collective to a destination through the subset of the second set of ports”, “wherein the communication flows from the source devices consist of Remote Direct Memory Access (RDMA) traffic”, “wherein the providing visibility of the communication collectives includes providing visibility of a topology shape of the communication collectives.” amount to no more than mere instructions to apply the abstract idea to generic computer elements and extra solution activities. Mere instructions to apply the abstract idea to generic/well known elements and extra solution activities cannot provide an inventive concept. The claims are not patent eligible.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1-3, 7, 11 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1).
Regarding Claim 1, Kamisetty discloses A network switch (Kamisetty: Fig. 9 para.0013 “ Some or all of the network management system 100 may be part of a network device, such as a network switch” para.0067 “FIG. 9 depicts an example of a network device 900 that can be adapted in accordance with some embodiments of the present disclosure. The network device 900 may be a switch” A switch comprising network management system 100), comprising:
a first set of ports adapted to couple the network switch to source devices over a network (Kamisetty: Fig. 9 para.0068 “ Each I/O module 906 a-906 p includes one or more input/output ports 910 a-910 p that are used by network device 900 to send and receive network packets.” Input ports that cause the switch to receive packets are the ports that are adapted to couple the switch to source devices, for example ports 910A);
a second set of ports adapted to couple the network switch to network links (Kamisetty: Fig. 9 para.0068 “ Each I/O module 906 a-906 p includes one or more input/output ports 910 a-910 p that are used by network device 900 to send and receive network packets.” The other set of ports 910P that can be used to send packets on various links associated with those ports.);
a processor (Kamisetty: Fig. 9 para.0067 Fig. 9 CPU 908);
a non-transitory computer readable-medium; and instructions stored on the non-transitory computer readable-medium and translatable by the processor for (Kamisetty: Fig. 9 920, para.0045 “In some embodiments, one or more of the processors may include a processing unit (e.g., x86-64 microprocessors) coupled to computer readable storage media that stores executable program code that causes the processing unit to perform operations described herein.” Computer readable storage medium storing program code to perform operations.):
determining communication flows from communication collectives on the network (Kamisetty: para.0023 “ As a non-limiting example, the flow group storage 206 may store data packets provided by the flow tracker 204 and may store one or more data structures, such as a session table, that record states of network data received from the flow group identifier 202. The flow group storage 206 may store some or all of the received data packets from the flow group identifier 202 based on the marking provided by the flow group identifier 202. The flow group storage 206 may also update a corresponding data structure (e.g., session table) based on the marking provided by the flow group identifier 202, such as by updating a field indicating a number of packets received for the particular network flow, the amount of data received for the particular network flow, a quality of service associated with the particular network flow, an indication of a security risk associated with the particular network flow, etc.” para.0065 “ In some implementations, determining, at 806, the second set of rules may include establishing a second session table to include an entry for second flow information regarding a second characteristic of the second flow.” Different communication flows, such as a first flow in Fig. 7 and a second flow in Fig. 8 are determined and maintained in different session tables, from the total set of packets of the network, i.e. communication collectives at a flow group storage 206.);
for all of the communication flows, determining groups of flows, wherein the communication flows in each respective group of the groups are correlated in time and in destination (Kamisetty: para.0043 “Moreover, the flow tracker 408 may export, to the exporter 504-1, information associated with the first flow group associated with the first set of rules 406. The information associated may include 5-tuple information (e.g., source IP address, destination port), times indicating the start or end of the defined flow group, number of packets in the flow, …” Para.0058 “The method 700 also includes classifying, at 704, by the network device, a first flow of data packets of the network data as belonging to a first defined flow group from among a plurality of defined flow groups.” Para.0065 “At 804, the method 800 includes classifying a second flow of data packets of the network data as belonging to a second defined flow group from among the plurality of defined flow groups.” Flow groups are defined using rules, that include same destination port and start or end times. Seen in Fig. 7-8, a first flow may be categorized as a first flow group, and a second flow may be categorized as a second flow group.);
for each respective group, pinning each communication flow in the respective group to a corresponding network link (Kamisetty: para.0036-0037 “For flows of data packets that match the characteristics of flow group 1, the data packets may be tunneled via encapsulations IPv4, IPv6, or voice over IP packets….For flows of data packets that match the characteristics of flow group 2, the data packets may be tunneled via encapsulations within IPv4, IPv6, or VXLAN packets.” Para.0049 “In some implementations, the set of rules 516 include instructions to change a forwarding port of data packets of a defined flow group to a different output port based on the set of criteria. As a result of the data packets 518 satisfying the set of criteria specified in the set of rules 516, the flow tracker engine 500 may send instructions to the ingress traffic manager 508 to forward data packets of the defined group from port 510-2, for example, instead of from port 510-1.” Each flow is pinned to particular types of links, for example those links that comprise particular encapsulations); and
sending the communication flows toward the network links as pinned (Kamisetty: para.0062 “As a result of determining in 710 that the first flow satisfies the first set of criteria in the first set of rules, the method 700 includes controlling 712 transmission first data associated with the first flow based on the first set of rules.” Para.0066 “Then, at 812, the method 800 includes controlling transmission of second data associated with the second flow as a result of the determination in 810 that the second set of criteria was satisfied.” The packets of the flows are transmitted according to the rules that include tunneling rules on corresponding links.).
However Kamisetty does not explicitly disclose for each respective group, pinning each communication flow in the respective group to a corresponding network link so that the communication flows in the respective group are evenly distributed across the network links
Lee discloses for each respective group, pinning each communication flow in the respective group to a corresponding network link so that the communication flows in the respective group are evenly distributed across the network links (Lee: para.0027 “ In a heterogeneous network system, users 210 generate 11 incoming user packet flows illustrated by arrows from 220a to 220k. In load balancer 230, weighted hash table 231 is used to distribute the incoming user packet flows to the available links. The weight in weighted hash table 231 is determined for each of link 241 to link 244. Link 241 and link 243 are faster links with a higher weight of 3. Link 242 and link 244 are slower links. The weight of link 242 is 2 and the weight of link 244 is 1. The incoming user packet flows or user packets are partitioned and hashed to each link based on the weight of each link.” Based on the quality of each link, each flow is evenly distributed and pinned to a particular link to account for the link. It should be noted that, alternatively, if each link were to have identical or similar weights, i.e. similar speeds and capacity, then each link could also each have the same number of flows, for example via round robin as in para.0004 Fig. 1 wherein each link has the same number of pinned flows.); and
sending the communication flows toward the network links as pinned (Lee: Fig. 2 para.0027 “As shown in FIG. 2, link 241 and link 243 are used to carry a larger portion of the incoming user packet flows or user packets to servers 250.” The flows are sent to the destinations based on the pinned links.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty with Lee in order to incorporate for each respective group, pinning each communication flow in the respective group to a corresponding network link so that the communication flows in the respective group are evenly distributed across the network links, and apply the concept of the load balancer to the switch in Kamisetty
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of maximizing throughput in a network (Lee: para.0003).
Regarding Claim 2, Kamisetty-Lee discloses claim 1 as set forth above.
Kamisetty further discloses wherein each communication flow refers to a subset of communication traffic transmitted from a source node to a destination node for a job (Kamisetty: para.0001 “Traffic in an internet protocol (IP) network typically comprises a set of flows, each flow including data packets. One flow, for example, may include data packets for streaming a movie whereas another flow may include data packets for providing email to a user.” Each flow comprises traffic from a source to a destination, such as a job of providing email from a email provider to a user or delivering a movie to a user device, i.e. from a source to a destination.) and
wherein a communication collective includes one or more communication flows between a pair of nodes (Kamisetty: para.0023 “ As a non-limiting example, the flow group storage 206 may store data packets provided by the flow tracker 204 and may store one or more data structures, such as a session table, that record states of network data received from the flow group identifier 202. The flow group storage 206 may store some or all of the received data packets from the flow group identifier 202 based on the marking provided by the flow group identifier 202. The flow group storage 206 may also update a corresponding data structure (e.g., session table) based on the marking provided by the flow group identifier 202, such as by updating a field indicating a number of packets received for the particular network flow, the amount of data received for the particular network flow, a quality of service associated with the particular network flow, an indication of a security risk associated with the particular network flow, etc.” para.0014 “The network data 106 is a sequence of data packets traveling from a source through a switch fabric to reach a destination and contains network data for a specific objective, such as rendering a webpage or streaming media content.” the set of flows handled at the switch include at least one flow between a source and destination node).
Regarding Claim 3, Kamisetty-Lee discloses claim 1 as set forth above.
Kamisetty further discloses matching, based on rules built into the network switch, header fields of a communication flow (Kamisetty: para.0039 “The fourth set of rules 416 specifies that a fourth flow group corresponds to all other data packets not belonging to the third flow group. Information identifying network flows belonging to the fourth flow group is added to an access list entitled “ip-permit-any.” Such information may include some or all of the 5-tuple information, number of data packets received, amount of data received, or other information contained in data packet headers.” Information in packet header fields may be used to match to a rule)
to a specific one of the network links that is programmed for the communication flow (Kamisetty: para.0036-0037 “For flows of data packets that match the characteristics of flow group 1, the data packets may be tunneled via encapsulations IPv4, IPv6, or voice over IP packets….For flows of data packets that match the characteristics of flow group 2, the data packets may be tunneled via encapsulations within IPv4, IPv6, or VXLAN packets.” Para.0049 “In some implementations, the set of rules 516 include instructions to change a forwarding port of data packets of a defined flow group to a different output port based on the set of criteria. As a result of the data packets 518 satisfying the set of criteria specified in the set of rules 516, the flow tracker engine 500 may send instructions to the ingress traffic manager 508 to forward data packets of the defined group from port 510-2, for example, instead of from port 510-1.” Each flow is pinned to particular types of links, for example those links that comprise particular encapsulations).
However Kamisetty does not explicitly disclose matching, based on rules built into the network switch, header fields of a communication flow to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution, wherein the network links are uplinks or downlinks.
Lee discloses matching, based on rules built into the network switch, source and destination of a communication flow (Lee: para.0004 “The set of packet flows contain 12 flows illustrated by arrows 120 a to 120 l. In load balancer 130, each flow is defined by the source and destination IP addresses, protocol types, and source and destination ports.”) to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution (Lee: para.0027 “The incoming user packet flows or user packets are partitioned and hashed to each link based on the weight of each link. As shown in FIG. 2, link 241 and link 243 are used to carry a larger portion of the incoming user packet flows or user packets to servers 250. Flows 120 a to 120 d are assigned to link 241 and flows 220 g to 220 j are allocated to link 243. Link 242 with a smaller weight is assigned with flows 220 e and 220 f. Link 244 with the smallest weight is only assigned with flow 220 k.” each flow is defined by its source and destination information, and each packet for the flows are matched to a particular link based on load balancing rules based on weights.),
wherein the network links are uplinks or downlinks (Lee: para.0027 “As shown in FIG. 2, link 241 and link 243 are used to carry a larger portion of the incoming user packet flows or user packets to servers 250.” Seen in Fig. 2, the links are uplinks to the server, or in para.0005 “A file download flow usually tries to maximize the utilization of available link capacity.” para.0035 “download traffic”, Can be a downlink that downloads from the server.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty with Lee in order to incorporate matching, based on rules built into the network switch, source and destination of a communication flow to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution, wherein the network links are uplinks or downlinks, and apply this concept to the packet header fields as used in Kamisetty for its matching, which includes source and destination information.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of maximizing throughput in a network (Lee: para.0003).
Regarding Claim 7, Kamisetty-Lee discloses claim 1 as set forth above.
Kamisetty further discloses wherein the instructions are further translatable by the processor for: receiving a set of communication flows from different source devices (Kamisetty: para.0014 “Network data 106 is transmitted to the network management system 100 by one or more source systems 108 over a network 110.” Para.0024 “As a specific example, the flow group rules 208 may identify a target flow group as being IPv6 packets that are coming from a particular source IP address (e.g., 3201:af8:d3b:80f4::1) or a range of IP addresses. ” flows from a plurality of sources are obtained.)
determining, based on a communicator identifier associated with the set of communication flows, whether the communication flows should be aggregated into information about a single communication collective (Kamisetty: para.0036 “A first set of rules 406 is implemented by a first flow tracker 408. The first set of rules 406 defines a flow group 1 as being network flows that are formatted according to either the IPv4 protocol or the IPv6 protocol, and that have a destination IP address in an IP address range of Addr1 to Addr10.” Based on a communicator identifier, such as IPv4 as well as other factors, flows may be determined to be aggregated into group 1.),
the communicator identifier associated with multiple collective instances (Kamisetty: para.0036 “A first set of rules 406 is implemented by a first flow tracker 408. The first set of rules 406 defines a flow group 1 as being network flows that are formatted according to either the IPv4 protocol or the IPv6 protocol, and that have a destination IP address in an IP address range of Addr1 to Addr10.” Para.0037 “For flows of data packets that match the characteristics of flow group 2, the data packets may be tunneled via encapsulations within IPv4, IPv6, or VXLAN packets.” Para.0041 “A plurality of sets of criteria may be established for an individual defined flow group to establish patterns for handling network flows based on different conditions. Hierarchies of flow groups may be established such that a network flow with characteristics matching two or more flow groups are evaluated in a defined order. As an example, the fourth set of rules 416 associated with the fourth flow group may be considered a default flow group with which network flows are associated that fail to satisfy the set of criteria of the third set of rules 412.” other groups may also be associated with combinations of requirements including the communicator identifier. Kamisetty further considers when flows match a plurality of groups. );
allocating, based on a routing protocol, communication flows in the single communication collective to a subset of the second set of ports (Kamisetty: Para.0049 “In some implementations, the set of rules 516 include instructions to change a forwarding port of data packets of a defined flow group to a different output port based on the set of criteria..” The group may be assigned a port.); and
sending the communication flows in the single communication collective to a destination through the subset of the second set of ports (Kamisetty: Para.0049 “As a result of the data packets 518 satisfying the set of criteria specified in the set of rules 516, the flow tracker engine 500 may send instructions to the ingress traffic manager 508 to forward data packets of the defined group from port 510-2, for example, instead of from port 510-1.” The flow of packets is sent on that port.).
Regarding Claim 11, Kamisetty-Lee discloses claim 1 as set forth above.
However Kamisetty does not explicitly disclose wherein the communication flows in the respective group are maximally evenly distributed across the network links.
Lee discloses wherein the communication flows in the respective group are maximally evenly distributed across the network links (Lee: para.0027 “ In a heterogeneous network system, users 210 generate 11 incoming user packet flows illustrated by arrows from 220a to 220k. In load balancer 230, weighted hash table 231 is used to distribute the incoming user packet flows to the available links. The weight in weighted hash table 231 is determined for each of link 241 to link 244. Link 241 and link 243 are faster links with a higher weight of 3. Link 242 and link 244 are slower links. The weight of link 242 is 2 and the weight of link 244 is 1. The incoming user packet flows or user packets are partitioned and hashed to each link based on the weight of each link.” Based on the quality of each link, each flow is evenly distributed and pinned to a particular link to account for the link. It should be noted that, alternatively, if each link were to have identical or similar weights, i.e. similar speeds and capacity, then each link could also each have the same number of flows, for example via round robin as in para.0004 Fig. 1 wherein each link has the same number of pinned flows. As the weights of the links in addition to flow metrics are used for this distribution, Lee distributes the flows in a maximally even manner).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty with Lee in order to incorporate wherein the communication flows in the respective group are maximally evenly distributed across the network links
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of maximizing throughput in a network (Lee: para.0003).
Claim(s) 4-6 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Yong et al. (hereinafter Yong, US 2015/0055652 A1).
Regarding Claim 4, Kamisetty-Lee discloses claim 1 as set forth above.
However Kamisetty-Lee does not explicitly disclose wherein the instructions are further translatable by the processor for: importing topology information of the communication flows from one or more of the source devices; aggregating the topology information of the communication flows imported from each of the source devices into aggregate topology information for each of the communication collectives; and grouping the communication flows using the aggregate topology information.
Yong discloses importing topology information of the communication flows from one or more of the source devices (Yong: para.0041 “In an embodiment, a border network node (e.g., border network node 508C described in FIG. 5) may be configured to establish a distribution tree and a multicast tree across one or more network areas (e.g., ISIS L1 areas and/or ISIS L2 areas) and to communicate multicast data traffic using the multicast tree. At step 902, method 900 may receive a flooding message from a tree root node (e.g., network node 510A described in FIG. 5) in a first network that comprises distribution tree root information (e.g., a tree root address) and multicast group information that identifies one or more network nodes associated with a multicast tree.” For multicast traffic for a particular tree);
aggregating the topology information of the communication flows imported from each of the source devices into aggregate topology information for each of the communication collectives (Yong: para.0037 “The network nodes in the L2 network area 604 may be configured to send multicast group membership information response messages (e.g., a group membership LSP response messages) to border network node 608A to announce a group membership for the multicast tree. Border network node 608A may be configured to maintain and/or to track the multicast group membership information for multicast trees in the network areas associated with the border network node 608A.” para.0042 “Returning to step 904, when the border network node is not configured as a designated forwarder method 900 may proceed to step 922. At step 922, method 900 may receive multicast group membership information from one or more network nodes in the first network area. At step 924, method 900 may compute a distribution tree in the first network area using the address of the tree root node and the multicast group information…. At step 926, method 900 may prune the distribution tree to generate a multicast tree. The distribution tree may be pruned based on the multicast group membership information using any suitable protocol as would be appreciated by one of ordinary skill in the art, and thereby may generate a multicast tree. … Method 900 may not send data traffic for the multicast tree into an adjacent network area.” each topology information is aggregated and maintained by the border node for multiple trees in the network areas for each network area separately, as multicast data for a particular network area may be sent to other areas.); and
grouping the communication flows using the aggregate topology information (Yong: para.0042 “At step 922, method 900 may receive multicast group membership information from one or more network nodes in the first network area…At step 928, method 900 may receive multicast data traffic from a host network node (e.g., host network nodes 512A-512F described in FIG. 5). At step 930, method 900 may send the data traffic to one or more host network nodes along the multicast tree in the first network area and may proceed to step 920 as previously described. Method 900 may not send data traffic for the multicast tree into an adjacent network area.” Flows of data from each node of the multicast tree group are grouped based on the aggregated topology information as the data is only sent to each other, thereby grouped for particular multicast groups.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty-Lee with that of Yong in order to incorporate wherein the instructions are further translatable by the processor for: importing topology information of the communication flows from one or more of the source devices; aggregating the topology information of the communication flows imported from each of the source devices into aggregate topology information for each of the communication collectives; and grouping the communication flows using the aggregate topology information.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improved traffic control based on message type (Yong: para.0004).
Regarding Claim 5, Kamisetty-Lee-Yong discloses claim 4 as set forth above.
However Kamisetty-Lee does not explicitly disclose wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective.
Yong further discloses wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective (Yong: para.0041 “In an embodiment, a border network node (e.g., border network node 508C described in FIG. 5) may be configured to establish a distribution tree and a multicast tree across one or more network areas (e.g., ISIS L1 areas and/or ISIS L2 areas) and to communicate multicast data traffic using the multicast tree. At step 902, method 900 may receive a flooding message from a tree root node (e.g., network node 510A described in FIG. 5) in a first network that comprises distribution tree root information (e.g., a tree root address) and multicast group information that identifies one or more network nodes associated with a multicast tree.” The message includes shape information, i.e. tree, as well as a tree root address, a unique identifier of the communication collective, i.e the multicast group).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty-Lee with that of Yong in order to incorporate wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improved traffic control based on message type (Yong: para.0004).
Regarding Claim 6, Kamisetty-Lee discloses claim 1 as set forth above.
Kamisetty further discloses receiving a communicator identifier for a set of communication flows (Kamisetty: para.0057-0058 “The method 700 includes receiving, by a network device, network data. … The first flow may be classified in 704 based on one or more characteristics of a set of packets of the network data, such as N-tuple information contained in a header packet (e.g., source IP address, a TCP/IP protocol of a data), based on inclusion of a set of data packets of the network data in an access list, or other characteristics of a set of data packets of the network data.” The characteristics about packets of a flow are received, any of which are communicator identifiers.);
wherein the instructions are further translatable by the processor for: wherein the communicator identifier is used to determine the groups of flows that are correlated in time and in destination (Kamisetty: para.0043 “Moreover, the flow tracker 408 may export, to the exporter 504-1, information associated with the first flow group associated with the first set of rules 406. The information associated may include 5-tuple information (e.g., source IP address, destination port), times indicating the start or end of the defined flow group, number of packets in the flow, …” Para.0058 “The method 700 also includes classifying, at 704, by the network device, a first flow of data packets of the network data as belonging to a first defined flow group from among a plurality of defined flow groups.” The communicator identifiers are used to map the flow to one of the flow groups).
However Kamisetty-Lee does not explicitly disclose receiving a communicator identifier and a topology shape for a set of communication flows; and inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives, wherein the mapping is used to determine the groups of flows that are correlated in time and in destination.
Yong discloses receiving a communicator identifier and a topology shape for a set of communication flows (Yong: para.0041 “At step 902, method 900 may receive a flooding message from a tree root node (e.g., network node 510A described in FIG. 5) in a first network that comprises distribution tree root information (e.g., a tree root address) and multicast group information that identifies one or more network nodes associated with a multicast tree.” Communicator identifiers for the members of the multicast tree, and tree root address that identifies the topology shape are received.); and
inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives (Yong: para.0042 “ At step 924, method 900 may compute a distribution tree in the first network area using the address of the tree root node and the multicast group information. Method 900 may compute a distribution tree using the multicast group membership information. Method 900 may not send multicast group membership information for the multicast tree into an adjacent network area. At step 926, method 900 may prune the distribution tree to generate a multicast tree. The distribution tree may be pruned based on the multicast group membership information using any suitable protocol as would be appreciated by one of ordinary skill in the art, and thereby may generate a multicast tree. .. Method 900 may not send data traffic for the multicast tree into an adjacent network area.” the obtained information is used to generate a multicast tree, that is all flows for the multicast tree are mapped to this configuration as packets may not be sent to any other area.),
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty-Lee with that of Yong in order to incorporate receiving a communicator identifier and a topology shape for a set of communication flows, inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives, such that the flow data is grouped into collectives according to topology shape prior to using the group analysis using flow tracker rules in Kamisetty based on time and destination.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improved traffic control based on message type (Yong: para.0004).
Claim(s) 8 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Paluch et al. (hereinafter Paluch, US 2023/0188470 A1).
Regarding Claim 8, Kamisetty-Lee discloses claim 1 as set forth above.
However Kamisetty-Lee does not explicitly disclose wherein the instructions are further translatable by the processor for: snooping the communication flows from the source devices to identify a pattern of the communication flows as their constituent packets arrive at the network switch; and grouping the communication flows based on the pattern of the communication flows thus identified such that grouped communication flows come from same collective and are correlated in destination.
Paluch discloses wherein the instructions are further translatable by the processor for: snooping the communication flows from the source devices to identify a pattern of the communication flows as their constituent packets arrive at the network switch (Paluch: para.0089 “One such traffic flow grouping pattern arises when multiple nodes are connecting and executing the same communication flows against the same node in the same time interval, indicating that the destination node is hosting a common service on the network. This pattern can be detected by grouping flows classified as being of the same type by destination IP and port and, in each group, sorting the flows based on their start time.” Traffic flows are monitored to identify patterns of access based on destination and time.); and
grouping the communication flows based on the pattern of the communication flows thus identified such that grouped communication flows come from same collective and are correlated in destination (Paluch: para.0089 “One such traffic flow grouping pattern arises when multiple nodes are connecting and executing the same communication flows against the same node in the same time interval, indicating that the destination node is hosting a common service on the network. This pattern can be detected by grouping flows classified as being of the same type by destination IP and port and, in each group, sorting the flows based on their start time.” The flows that match the destination and start time are grouped together. The flows are from the same collective of flows that access a common service on the network.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty-Lee with Paluch in order to incorporate wherein the instructions are further translatable by the processor for: snooping the communication flows from the source devices to identify a pattern of the communication flows as their constituent packets arrive at the network switch; and grouping the communication flows based on the pattern of the communication flows thus identified such that grouped communication flows come from same collective and are correlated in destination.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improving network utilization (Paluch: para.0091).
Claim(s) 9 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Paluch et al. (hereinafter Paluch, US 2023/0188470 A1) further in view of Srinivasan et al. (hereinafter Sri, US 2019/0379610 A1).
Regarding Claim 9, Kamisetty-Lee-Paluch discloses claim 8 as set forth above.
However Kamisetty-Lee-Paluch does not explicitly disclose wherein the communication flows from the source devices consist of Remote Direct Memory Access (RDMA) traffic.
Sri discloses wherein the communication flows from the source devices consist of Remote Direct Memory Access (RDMA) traffic (Sri: para.0031 “Egress monitor 167 can determine telemetry information such as whether incast at any egress port is detected, incast level, a flow rate out of any egress port, bandwidth utilized by a specific flow (e.g., low latency flow, remote direct memory access (RDMA) flow,” para.0035 “The intermediate queues can be configured dynamically based on latency, flow duration, or drop requirements of a packet or group of packets (e.g., flow or traffic class). For any given group of packets, queue assignment is made using hardware, firmware, or software control policy 204 ” RDMA flows can be received for assigning to a queue for a port based on its grouping, i.e. traffic class.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty-Lee-Paluch with that of Sri in order to incorporate wherein the communication flows from the source devices consist of Remote Direct Memory Access (RDMA) traffic, and apply the techniques of Kamisetty-Lee-Paluch to RDMA traffic as well as other types of traffic.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of proper handling of load in RDMA networks (Sri: para.0003).
Claim(s) 10 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Paluch et al. (hereinafter Paluch, US 2023/0188470 A1) further in view of Srinivasan et al. (hereinafter Sri, US 2019/0379610 A1) in view of Han et al. (hereinafter Han, US 2023/0403326 A1).
Regarding Claim 10, Kamisetty-Lee-Paluch-Sri discloses claim 9 as set forth above.
However Kamisetty-Lee-Paluch-Sri does not explicitly disclose wherein the RDMA traffic comprises RDMA messages, wherein a first packet of each RDMA message contains an indication that it is a start of a message, wherein the snooping comprises snooping only the first packet of each message to obtain information about a flow for grouping the flow.
Han discloses wherein the RDMA traffic comprises RDMA messages, wherein a first packet of each RDMA message contains an indication that it is a start of a message (Han: para.0156 “Specifically, regardless of a command message or a data message, a same message may be segmented into a plurality of packets, and information that can be used for distribution is usually present only in the first packet of the message… If a subsequent packet of the message is subsequently received, the shared connector 1123 may correspond the subsequent packet to the first packet by using an order-preserving feature of RDMA transmission, and distribute the subsequent packet to a corresponding controller 111 based on the corresponding first packet and a correspondence between the first packet and the controller 111, to maintain consistency of packets of a same message in distribution” para.0125 “If the length of the data is greater than the PMTU, a BTH operation code of the first packet is “RDMA WRITE first”, indicating that the packet is the first packet. ” the first packet of the RDMA message may include an indication that it is the start of the message.),
wherein the snooping comprises snooping only the first packet of each message to obtain information about a flow (Han: para.0156 “Specifically, regardless of a command message or a data message, a same message may be segmented into a plurality of packets, and information that can be used for distribution is usually present only in the first packet of the message… If a subsequent packet of the message is subsequently received, the shared connector 1123 may correspond the subsequent packet to the first packet by using an order-preserving feature of RDMA transmission, and distribute the subsequent packet to a corresponding controller 111 based on the corresponding first packet and a correspondence between the first packet and the controller 111, to maintain consistency of packets of a same message in distribution” only the first packet contains information used for distribution).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date to combine Kamisetty-Lee-Paluch-Sri with that of Han in order to incorporate wherein the RDMA traffic comprises RDMA messages, wherein a first packet of each RDMA message contains an indication that it is a start of a message, and wherein the snooping comprises snooping only the first packet of each message to obtain information about a flow, such that only the first packet of a group of packets for a message is used in the processes of Kamisetty-Lee-Paluch-Sri, as only the first packet in the group contains information needed for flow classification.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reduced processing that would occur based on only analyzing portions of messages in a flow (Han: para.0156).
Claim(s) 12-14, 18 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chachmon et al. (hereinafter Chach, US 2020/0028786 A1) in view of Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1).
Regarding Claim 12, Chach discloses A method, comprising: receiving, by a top-of-rack (TOR) switch from source devices, communication flows for communication collectives (Chach: para.0028 “In this embodiment, method 200 may begin with an operation 202 where an ingress TOR switch receives a packet associated with a packet flow.” Para.0032 “Additionally, in some embodiments, the average flow rate may be based on several recent path assignments for one or more traffic flows.” The TOR switch receives paths for a plurality of communication flows for communication collectives, i.e. all of the flows.);
determining, by the TOR switch, topology information of the communication flows (Chach: para.0030 “Based on the identification information obtained at operation 204, method 200 proceeds to an operation 206. At operation 206, the identification information for the packet flow is used to determine an instantaneous flow rate (also referred to as “i-rate”) for a first path from the source to the destination. For example, as shown in FIG. 1, first TOR switch 110 may determine an instantaneous flow rate for first path 180 from second host 132 to fifth host 138. In this embodiment, first path 180 is associated with a source (e.g., second host 132) and a destination (e.g., fifth host 138). In addition, first path 180 may also be associated with an outgoing port of first TOR switch 110. In this case, first path 180 is associated with first port 140 of first TOR switch 110.” Para.0022 “ In this embodiment, network 100 has a spine-leaf topology, with each spine switch 102, 104 having a link to each leaf/TOR switch 120, 122, 124.” For each packet received, topology information is determined i.e. path for the flow as the path traverses the leaf topology of the network seen in Fig. 1);
pinning, by the TOR switch, each communication flow in the respective group to a corresponding network link connected to the TOR switch so that the communication flows in the respective group are load balanced across network links connected to the TOR switch (Chach: para.0026 “According to the principles of the example embodiments described herein, techniques for flow rate based load balancing may be implemented by an ingress TOR switch to determine which path to use for a packet flow. For example, first TOR switch 110 may use flow rate based load balancing to determine whether to assign a packet flow along first path 180 or to a different path, such as a second path 182.” Para.0033 “At an operation 210, based on the comparison between the instantaneous flow rate to the average flow rate, the packet flow may be assigned to one of the first path or a second path.” The flows are assigned paths based on load balancing in view of flow rate.);
sending, by the TOR switch, the communication flows toward the network links as pinned (Chach: para.0033 “ In an example embodiment, at operation 210, the ingress TOR switch (e.g., first TOR switch 110) may assign the packet flow to the first path (e.g., first path 180) when the comparison between the instantaneous flow rate to the average flow rate indicates that the instantaneous flow rate is greater than or equal to the average flow rate.” The flows are sent along the path they are assigned.).
However Chach does not explicitly disclose for each of the communication collectives, determining, by the TOR switch, groups of communication flows, wherein the communication flows in each respective group are correlated in time and in destination; for each respective group, pinning, by the TOR switch, each communication flow in the respective group to a corresponding network link connected to the TOR switch so that the communication flows in the respective group are evenly distributed across network links connected to the TOR switch.
Kamisetty discloses for each of the communication collectives, determining, by the switch, groups of communication flows, wherein the communication flows in each respective group are correlated in time and in destination (Kamisetty: para.0013 “ Some or all of the network management system 100 may be part of a network device, such as a network switch” para.0043 “Moreover, the flow tracker 408 may export, to the exporter 504-1, information associated with the first flow group associated with the first set of rules 406. The information associated may include 5-tuple information (e.g., source IP address, destination port), times indicating the start or end of the defined flow group, number of packets in the flow, …” Para.0058 “The method 700 also includes classifying, at 704, by the network device, a first flow of data packets of the network data as belonging to a first defined flow group from among a plurality of defined flow groups.” Para.0065 “At 804, the method 800 includes classifying a second flow of data packets of the network data as belonging to a second defined flow group from among the plurality of defined flow groups.” Flow groups are defined using rules, that include same destination port and start or end times. Seen in Fig. 7-8, a first flow may be categorized as a first flow group, and a second flow may be categorized as a second flow group.);
for each respective group, pinning, by the switch, each communication flow in the respective group to a corresponding network link connected to the switch (Kamisetty: para.0036-0037 “For flows of data packets that match the characteristics of flow group 1, the data packets may be tunneled via encapsulations IPv4, IPv6, or voice over IP packets….For flows of data packets that match the characteristics of flow group 2, the data packets may be tunneled via encapsulations within IPv4, IPv6, or VXLAN packets.” Para.0049 “In some implementations, the set of rules 516 include instructions to change a forwarding port of data packets of a defined flow group to a different output port based on the set of criteria. As a result of the data packets 518 satisfying the set of criteria specified in the set of rules 516, the flow tracker engine 500 may send instructions to the ingress traffic manager 508 to forward data packets of the defined group from port 510-2, for example, instead of from port 510-1.” Each flow is pinned to particular types of links, for example those links that comprise particular encapsulations); and
sending the communication flows toward the network links as pinned (Kamisetty: para.0062 “As a result of determining in 710 that the first flow satisfies the first set of criteria in the first set of rules, the method 700 includes controlling 712 transmission first data associated with the first flow based on the first set of rules.” Para.0066 “Then, at 812, the method 800 includes controlling transmission of second data associated with the second flow as a result of the determination in 810 that the second set of criteria was satisfied.” The packets of the flows are transmitted according to the rules that include tunneling rules on corresponding links.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach with Kamisetty in order to incorporate for each of the communication collectives, determining, by the switch, groups of communication flows, wherein the communication flows in each respective group are correlated in time and in destination; for each respective group, pinning, by the switch, each communication flow in the respective group to a corresponding network link connected to the switch, and apply this concept to the TOR switch of Chach.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reducing the load of processing routing for flows and improving control of a network (Kamisetty: para.0012-0014).
However Chach-Kamisetty does not explicitly disclose for each respective group, pinning, by the TOR switch, each communication flow in the respective group to a corresponding network link connected to the TOR switch so that the communication flows in the respective group are evenly distributed across network links connected to the TOR switch
Lee discloses for each respective group, pinning, by the load balancer, each communication flow in the respective group to a corresponding network link connected to the load balancer so that the communication flows in the respective group are evenly distributed across network links connected to the load balancer (Lee: para.0027 “ In a heterogeneous network system, users 210 generate 11 incoming user packet flows illustrated by arrows from 220a to 220k. In load balancer 230, weighted hash table 231 is used to distribute the incoming user packet flows to the available links. The weight in weighted hash table 231 is determined for each of link 241 to link 244. Link 241 and link 243 are faster links with a higher weight of 3. Link 242 and link 244 are slower links. The weight of link 242 is 2 and the weight of link 244 is 1. The incoming user packet flows or user packets are partitioned and hashed to each link based on the weight of each link.” Based on the quality of each link, each flow is evenly distributed and pinned to a particular link to account for the link. It should be noted that, alternatively, if each link were to have identical or similar weights, i.e. similar speeds and capacity, then each link could also each have the same number of flows, for example via round robin as in para.0004 Fig. 1 wherein each link has the same number of pinned flows.); and
sending the communication flows toward the network links as pinned (Lee: Fig. 2 para.0027 “As shown in FIG. 2, link 241 and link 243 are used to carry a larger portion of the incoming user packet flows or user packets to servers 250.” The flows are sent to the destinations based on the pinned links.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty with Lee in order to incorporate for each respective group, pinning, by the load balancer, each communication flow in the respective group to a corresponding network link connected to the load balancer so that the communication flows in the respective group are evenly distributed across network links connected to the load balancer and apply the concept of the load balancer to the TOR switch in Chach-Kamisetty
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of maximizing throughput in a network (Lee: para.0003).
Regarding Claim 13, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
Chach further discloses wherein each communication flow refers to a subset of communication traffic transmitted from a source node to a destination node for a job (Chach: para.0013 “In packet switching networks, a “traffic flow” (also referred to as a “packet flow”) is a sequence or set of packets between a source node and a destination node which share common characteristics and/or identifiers. For example, a packet flow may include all packets sent during a particular connection, session, media stream, etc. ” a flow can be during a job such as media stream, between a source and destination node) and
wherein a communication collective includes one or more communication flows between a pair of nodes (Chach: para.0028 “In this embodiment, method 200 may begin with an operation 202 where an ingress TOR switch receives a packet associated with a packet flow.” Para.0032 “Additionally, in some embodiments, the average flow rate may be based on several recent path assignments for one or more traffic flows.” para.0013 “In packet switching networks, a “traffic flow” (also referred to as a “packet flow”) is a sequence or set of packets between a source node and a destination node which share common characteristics and/or identifiers. For example, a packet flow may include all packets sent during a particular connection, session, media stream, etc.” The TOR switch receives paths for a plurality of communication flows for communication collectives that includes at least one flow between a pair of nodes).
Regarding Claim 14, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
However Chach does not explicitly disclose wherein determining the groups of communication flows comprises matching, based on rules built in to the network switch, header fields of a communication flow to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution, wherein the network links are uplinks or downlinks.
Kamisetty further discloses wherein determining the groups of communication flows comprises matching, based on rules built in to the network switch, header fields of a communication flow (Kamisetty: para.0039 “The fourth set of rules 416 specifies that a fourth flow group corresponds to all other data packets not belonging to the third flow group. Information identifying network flows belonging to the fourth flow group is added to an access list entitled “ip-permit-any.” Such information may include some or all of the 5-tuple information, number of data packets received, amount of data received, or other information contained in data packet headers.” Information in packet header fields may be used to match to a rule)
to a specific one of the network links that is programmed for the communication flow (Kamisetty: para.0036-0037 “For flows of data packets that match the characteristics of flow group 1, the data packets may be tunneled via encapsulations IPv4, IPv6, or voice over IP packets….For flows of data packets that match the characteristics of flow group 2, the data packets may be tunneled via encapsulations within IPv4, IPv6, or VXLAN packets.” Para.0049 “In some implementations, the set of rules 516 include instructions to change a forwarding port of data packets of a defined flow group to a different output port based on the set of criteria. As a result of the data packets 518 satisfying the set of criteria specified in the set of rules 516, the flow tracker engine 500 may send instructions to the ingress traffic manager 508 to forward data packets of the defined group from port 510-2, for example, instead of from port 510-1.” Each flow is pinned to particular types of links, for example those links that comprise particular encapsulations).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach with Kamisetty in order to incorporate wherein determining the groups of communication flows comprises matching, based on rules built in to the network switch, header fields of a communication flow to a specific one of the network links that is programmed for the communication flow.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reducing the load of processing routing for flows and improving control of a network (Kamisetty: para.0012-0014).
However Kamisetty does not explicitly disclose wherein determining the groups of communication flows comprises matching, based on rules built in to the network switch, header fields of a communication flow to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution, wherein the network links are uplinks or downlinks.
Lee discloses matching, based on rules built into the network switch, source and destination of a communication flow (Lee: para.0004 “The set of packet flows contain 12 flows illustrated by arrows 120 a to 120 l. In load balancer 130, each flow is defined by the source and destination IP addresses, protocol types, and source and destination ports.”) to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution (Lee: para.0027 “The incoming user packet flows or user packets are partitioned and hashed to each link based on the weight of each link. As shown in FIG. 2, link 241 and link 243 are used to carry a larger portion of the incoming user packet flows or user packets to servers 250. Flows 120 a to 120 d are assigned to link 241 and flows 220 g to 220 j are allocated to link 243. Link 242 with a smaller weight is assigned with flows 220 e and 220 f. Link 244 with the smallest weight is only assigned with flow 220 k.” each flow is defined by its source and destination information, and each packet for the flows are matched to a particular link based on load balancing rules based on weights.),
wherein the network links are uplinks or downlinks (Lee: para.0027 “As shown in FIG. 2, link 241 and link 243 are used to carry a larger portion of the incoming user packet flows or user packets to servers 250.” Seen in Fig. 2, the links are uplinks to the server, or in para.0005 “A file download flow usually tries to maximize the utilization of available link capacity.” para.0035 “download traffic”, Can be a downlink that downloads from the server.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty with Lee in order to incorporate matching, based on rules built into the network switch, source and destination of a communication flow to a specific one of the network links that is programmed for the communication flow so as to achieve a balanced distribution, wherein the network links are uplinks or downlinks, and apply this concept to the packet header fields as used in Chach-Kamisetty for its matching, which includes source and destination information.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of maximizing throughput in a network (Lee: para.0003).
Regarding Claim 18, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
Chach further discloses receiving a set of communication flows from different source devices (Chach: para.0028 “In this embodiment, method 200 may begin with an operation 202 where an ingress TOR switch receives a packet associated with a packet flow.” Para.0032 “Additionally, in some embodiments, the average flow rate may be based on several recent path assignments for one or more traffic flows.” The TOR switch receives paths for a plurality of communication flows for communication collectives, i.e. all of the flows.).
However Chach does not explicitly disclose determining, based on a communicator identifier associated with the set of communication flows, whether the communication flows should be aggregated into information about a single communication collective, the communicator identifier associated with multiple collective instances; allocating, based on a routing protocol, communication flows in the single communication collective to a subset of the second set of ports; and sending the communication flows in the single communication collective to a destination through the subset of the second set of ports.
Kamisetty further discloses receiving a set of communication flows from different source devices (Kamisetty: para.0014 “Network data 106 is transmitted to the network management system 100 by one or more source systems 108 over a network 110.” Para.0024 “As a specific example, the flow group rules 208 may identify a target flow group as being IPv6 packets that are coming from a particular source IP address (e.g., 3201:af8:d3b:80f4::1) or a range of IP addresses. ” flows from a plurality of sources are obtained.)
determining, based on a communicator identifier associated with the set of communication flows, whether the communication flows should be aggregated into information about a single communication collective (Kamisetty: para.0036 “A first set of rules 406 is implemented by a first flow tracker 408. The first set of rules 406 defines a flow group 1 as being network flows that are formatted according to either the IPv4 protocol or the IPv6 protocol, and that have a destination IP address in an IP address range of Addr1 to Addr10.” Based on a communicator identifier, such as IPv4 as well as other factors, flows may be determined to be aggregated into group 1.),
the communicator identifier associated with multiple collective instances (Kamisetty: para.0036 “A first set of rules 406 is implemented by a first flow tracker 408. The first set of rules 406 defines a flow group 1 as being network flows that are formatted according to either the IPv4 protocol or the IPv6 protocol, and that have a destination IP address in an IP address range of Addr1 to Addr10.” Para.0037 “For flows of data packets that match the characteristics of flow group 2, the data packets may be tunneled via encapsulations within IPv4, IPv6, or VXLAN packets.” Para.0041 “A plurality of sets of criteria may be established for an individual defined flow group to establish patterns for handling network flows based on different conditions. Hierarchies of flow groups may be established such that a network flow with characteristics matching two or more flow groups are evaluated in a defined order. As an example, the fourth set of rules 416 associated with the fourth flow group may be considered a default flow group with which network flows are associated that fail to satisfy the set of criteria of the third set of rules 412.” other groups may also be associated with combinations of requirements including the communicator identifier. Kamisetty further considers when flows match a plurality of groups. );
allocating, based on a routing protocol, communication flows in the single communication collective to a subset of the second set of ports (Kamisetty: Para.0049 “In some implementations, the set of rules 516 include instructions to change a forwarding port of data packets of a defined flow group to a different output port based on the set of criteria..” The group may be assigned a port.); and
sending the communication flows in the single communication collective to a destination through the subset of the second set of ports (Kamisetty: Para.0049 “As a result of the data packets 518 satisfying the set of criteria specified in the set of rules 516, the flow tracker engine 500 may send instructions to the ingress traffic manager 508 to forward data packets of the defined group from port 510-2, for example, instead of from port 510-1.” The flow of packets is sent on that port.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach with Kamisetty in order to incorporate determining, based on a communicator identifier associated with the set of communication flows, whether the communication flows should be aggregated into information about a single communication collective, the communicator identifier associated with multiple collective instances; allocating, based on a routing protocol, communication flows in the single communication collective to a subset of the second set of ports; and sending the communication flows in the single communication collective to a destination through the subset of the second set of ports.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reducing the load of processing routing for flows and improving control of a network (Kamisetty: para.0012-0014).
Claim(s) 15-17 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chachmon et al. (hereinafter Chach, US 2020/0028786 A1) in view of Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Yong et al. (hereinafter Yong, US 2015/0055652 A1).
Regarding Claim 15, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
However Chach-Kamisetty-Lee does not explicitly disclose importing the topology information of the communication flows from one or more of the source devices; aggregating the topology information of the communication flows imported from each of the source devices into aggregate topology information for each of the communication collectives; and grouping the communication flows using the aggregate topology information.
Yong discloses importing topology information of the communication flows from one or more of the source devices (Yong: para.0041 “In an embodiment, a border network node (e.g., border network node 508C described in FIG. 5) may be configured to establish a distribution tree and a multicast tree across one or more network areas (e.g., ISIS L1 areas and/or ISIS L2 areas) and to communicate multicast data traffic using the multicast tree. At step 902, method 900 may receive a flooding message from a tree root node (e.g., network node 510A described in FIG. 5) in a first network that comprises distribution tree root information (e.g., a tree root address) and multicast group information that identifies one or more network nodes associated with a multicast tree.” For multicast traffic for a particular tree);
aggregating the topology information of the communication flows imported from each of the source devices into aggregate topology information for each of the communication collectives (Yong: para.0037 “The network nodes in the L2 network area 604 may be configured to send multicast group membership information response messages (e.g., a group membership LSP response messages) to border network node 608A to announce a group membership for the multicast tree. Border network node 608A may be configured to maintain and/or to track the multicast group membership information for multicast trees in the network areas associated with the border network node 608A.” para.0042 “Returning to step 904, when the border network node is not configured as a designated forwarder method 900 may proceed to step 922. At step 922, method 900 may receive multicast group membership information from one or more network nodes in the first network area. At step 924, method 900 may compute a distribution tree in the first network area using the address of the tree root node and the multicast group information…. At step 926, method 900 may prune the distribution tree to generate a multicast tree. The distribution tree may be pruned based on the multicast group membership information using any suitable protocol as would be appreciated by one of ordinary skill in the art, and thereby may generate a multicast tree. … Method 900 may not send data traffic for the multicast tree into an adjacent network area.” each topology information is aggregated and maintained by the border node for multiple trees in the network areas for each network area separately, as multicast data for a particular network area may be sent to other areas.); and
grouping the communication flows using the aggregate topology information (Yong: para.0042 “At step 922, method 900 may receive multicast group membership information from one or more network nodes in the first network area…At step 928, method 900 may receive multicast data traffic from a host network node (e.g., host network nodes 512A-512F described in FIG. 5). At step 930, method 900 may send the data traffic to one or more host network nodes along the multicast tree in the first network area and may proceed to step 920 as previously described. Method 900 may not send data traffic for the multicast tree into an adjacent network area.” Flows of data from each node of the multicast tree group are grouped based on the aggregated topology information as the data is only sent to each other, thereby grouped for particular multicast groups.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty-Lee with that of Yong in order to incorporate wherein the instructions are further translatable by the processor for: importing topology information of the communication flows from one or more of the source devices; aggregating the topology information of the communication flows imported from each of the source devices into aggregate topology information for each of the communication collectives; and grouping the communication flows using the aggregate topology information.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improved traffic control based on message type (Yong: para.0004).
Regarding Claim 16, Chach-Kamisetty-Lee-Yong discloses claim 15 as set forth above.
However Chach-Kamisetty-Lee does not explicitly disclose wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective.
Yong further discloses wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective (Yong: para.0041 “In an embodiment, a border network node (e.g., border network node 508C described in FIG. 5) may be configured to establish a distribution tree and a multicast tree across one or more network areas (e.g., ISIS L1 areas and/or ISIS L2 areas) and to communicate multicast data traffic using the multicast tree. At step 902, method 900 may receive a flooding message from a tree root node (e.g., network node 510A described in FIG. 5) in a first network that comprises distribution tree root information (e.g., a tree root address) and multicast group information that identifies one or more network nodes associated with a multicast tree.” The message includes shape information, i.e. tree, as well as a tree root address, a unique identifier of the communication collective, i.e the multicast group).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty-Lee with that of Yong in order to incorporate wherein the topology information of the communication flows contains a topology shape for each communication flow in a corresponding communication collective and a unique identifier for the corresponding communication collective.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improved traffic control based on message type (Yong: para.0004).
Regarding Claim 17, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
However Chach does not explicitly disclose receiving a communicator identifier and a topology shape for a set of communication flows; and inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives, wherein the mapping is used to determine the groups of flows that are correlated in time and in destination.
Kamisetty further discloses receiving a communicator identifier for a set of communication flows (Kamisetty: para.0057-0058 “The method 700 includes receiving, by a network device, network data. … The first flow may be classified in 704 based on one or more characteristics of a set of packets of the network data, such as N-tuple information contained in a header packet (e.g., source IP address, a TCP/IP protocol of a data), based on inclusion of a set of data packets of the network data in an access list, or other characteristics of a set of data packets of the network data.” The characteristics about packets of a flow are received, any of which are communicator identifiers.);
wherein the instructions are further translatable by the processor for: wherein the communicator identifier is used to determine the groups of flows that are correlated in time and in destination (Kamisetty: para.0043 “Moreover, the flow tracker 408 may export, to the exporter 504-1, information associated with the first flow group associated with the first set of rules 406. The information associated may include 5-tuple information (e.g., source IP address, destination port), times indicating the start or end of the defined flow group, number of packets in the flow, …” Para.0058 “The method 700 also includes classifying, at 704, by the network device, a first flow of data packets of the network data as belonging to a first defined flow group from among a plurality of defined flow groups.” The communicator identifiers are used to map the flow to one of the flow groups).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach with Kamisetty in order to incorporate receiving a communicator identifier for a set of communication flows, wherein the instructions are further translatable by the processor for: wherein the communicator identifier is used to determine the groups of flows that are correlated in time and in destination.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reducing the load of processing routing for flows and improving control of a network (Kamisetty: para.0012-0014).
However Chach-Kamisetty-Lee does not explicitly disclose receiving a communicator identifier and a topology shape for a set of communication flows; and inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives, wherein the mapping is used to determine the groups of flows that are correlated in time and in destination.
Yong discloses receiving a communicator identifier and a topology shape for a set of communication flows (Yong: para.0041 “At step 902, method 900 may receive a flooding message from a tree root node (e.g., network node 510A described in FIG. 5) in a first network that comprises distribution tree root information (e.g., a tree root address) and multicast group information that identifies one or more network nodes associated with a multicast tree.” Communicator identifiers for the members of the multicast tree, and tree root address that identifies the topology shape are received.); and
inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives (Yong: para.0042 “ At step 924, method 900 may compute a distribution tree in the first network area using the address of the tree root node and the multicast group information. Method 900 may compute a distribution tree using the multicast group membership information. Method 900 may not send multicast group membership information for the multicast tree into an adjacent network area. At step 926, method 900 may prune the distribution tree to generate a multicast tree. The distribution tree may be pruned based on the multicast group membership information using any suitable protocol as would be appreciated by one of ordinary skill in the art, and thereby may generate a multicast tree. .. Method 900 may not send data traffic for the multicast tree into an adjacent network area.” the obtained information is used to generate a multicast tree, that is all flows for the multicast tree are mapped to this configuration as packets may not be sent to any other area.),
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty-Lee with that of Yong in order to incorporate receiving a communicator identifier and a topology shape for a set of communication flows, inferring, utilizing the communicator identifier and the topology shape, a mapping from the set of communication flows to one or more communication collectives, such that the flow data is grouped into collectives according to topology shape prior to using the group analysis using flow tracker rules in Kamisetty based on time and destination.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improved traffic control based on message type (Yong: para.0004).
Claim(s) 19 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chachmon et al. (hereinafter Chach, US 2020/0028786 A1) in view of Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Paluch et al. (hereinafter Paluch, US 2023/0188470 A1).
Regarding Claim 19, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
However Chach-Kamisetty-Lee does not explicitly disclose snooping the communication flows from the source devices to identify a pattern of the communication flows as their constituent packets arrive at the network switch; and grouping the communication flows based on the pattern of the communication flows thus identified such that grouped communication flows come from same collective and are correlated in destination.
Paluch discloses snooping the communication flows from the source devices to identify a pattern of the communication flows as their constituent packets arrive at the network switch (Paluch: para.0089 “One such traffic flow grouping pattern arises when multiple nodes are connecting and executing the same communication flows against the same node in the same time interval, indicating that the destination node is hosting a common service on the network. This pattern can be detected by grouping flows classified as being of the same type by destination IP and port and, in each group, sorting the flows based on their start time.” Traffic flows are monitored to identify patterns of access based on destination and time.); and
grouping the communication flows based on the pattern of the communication flows thus identified such that grouped communication flows come from same collective and are correlated in destination (Paluch: para.0089 “One such traffic flow grouping pattern arises when multiple nodes are connecting and executing the same communication flows against the same node in the same time interval, indicating that the destination node is hosting a common service on the network. This pattern can be detected by grouping flows classified as being of the same type by destination IP and port and, in each group, sorting the flows based on their start time.” The flows that match the destination and start time are grouped together. The flows are from the same collective of flows that access a common service on the network.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty-Lee with Paluch in order to incorporate wherein the instructions are further translatable by the processor for: snooping the communication flows from the source devices to identify a pattern of the communication flows as their constituent packets arrive at the network switch; and grouping the communication flows based on the pattern of the communication flows thus identified such that grouped communication flows come from same collective and are correlated in destination.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of improving network utilization (Paluch: para.0091).
Claim(s) 20 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chachmon et al. (hereinafter Chach, US 2020/0028786 A1) in view of Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Marolia et al. (hereinafter Marolia, US 2019/0297015 A1).
Regarding Claim 20, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
However Chach does not explicitly disclose wherein communication flows that share same memory-key for a given destination or share a virtual address region for a Remote Direct Memory Access (RDMA) operation can be deduced to be part of same collective.
Kamisetty further discloses wherein communication flows that share same memory-key for a given destination or share a destination address can be deduced to be part of same collective (para.0043 “Moreover, the flow tracker 408 may export, to the exporter 504-1, information associated with the first flow group associated with the first set of rules 406. The information associated may include 5-tuple information (e.g., source IP address, destination port), times indicating the start or end of the defined flow group, number of packets in the flow, …” Para.0058 “The method 700 also includes classifying, at 704, by the network device, a first flow of data packets of the network data as belonging to a first defined flow group from among a plurality of defined flow groups.” Destination may be used to classify flows.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach with Kamisetty in order to incorporate wherein communication flows that share same memory-key for a given destination or share a destination address can be deduced to be part of same collective.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reducing the load of processing routing for flows and improving control of a network (Kamisetty: para.0012-0014).
However Chach-Kamisetty-Lee does not explicitly disclose wherein communication flows that share same memory-key for a given destination or share a virtual address region for a Remote Direct Memory Access (RDMA) operation can be deduced to be part of same collective
Marolia discloses a virtual address region for a Remote Direct Memory Access (RDMA) operation (Marolia: para.0027 “When network interface 250 receives a packet from a remote device via network 240 and uses one or more of a flow identifier, 5tuple, steering tag, and/or destination address to determine if content of the packet is to be copied to a memory buffer via accelerator scale-up fabric 258. Network interface 250 can determine a memory target location based on the physical address. “ para.0041 “In this example, network interface controller 300 identifies packet 308 is part of an RDMA connection by characteristics of its packet header. Based on received packet header (e.g., tagged buffer, memory address, and length of the remote destination buffer), network interface controller 300 can determine a destination address for a portion of a received packet. On systems where IOMMU is disabled, a destination memory address could be a physical address. On systems where IOMMU is enabled, a destination memory address is an IO Virtual Address (IOVA). An IOVA is to be converted to a physical address that can be decoded to make routing decisions.” A virtual destination address may be determined for the RDMA flow).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty-Lee with Marolia in order to incorporate a virtual address region for a Remote Direct Memory Access (RDMA) operation, such that RDMA flows may be grouped by the processes of Chach-Kamisetty-Lee using destination addresses. Chach discloses a TOR switch which typically handles RDMA requests and would be obvious to use these processes for RDMA flows with virtual addresses as described in Marolia.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reducing the load of processing routing for flows and improving control of a network (Kamisetty: para.0012-0014), for RDMA data that is typically handled by the TOR switch of Chach as described in Marolia (para.0016-0017 ToR switch, para.0025)
Claim(s) 21 is/are rejected under 35 U.S.C. 103 as being unpatentable over Chachmon et al. (hereinafter Chach, US 2020/0028786 A1) in view of Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Lee (US 2017/0223572 A1) in view of Eyada (US 2015/0055474 A1).
Regarding Claim 21, Chach-Kamisetty-Lee discloses claim 12 as set forth above.
However Chach does not explicitly disclose determining which ports are communicating with which other ports based on counters that record packets sent from a first port and received by a second port; and grouping a subset of the communication flows flowing between the first port and the second port.
Kamisetty further discloses grouping a subset of the communication flows flowing between the first port and the second port (Kamisetty: para.0043 “Moreover, the flow tracker 408 may export, to the exporter 504-1, information associated with the first flow group associated with the first set of rules 406. The information associated may include 5-tuple information (e.g., source IP address, destination port), times indicating the start or end of the defined flow group, number of packets in the flow, …” Para.0058 “The method 700 also includes classifying, at 704, by the network device, a first flow of data packets of the network data as belonging to a first defined flow group from among a plurality of defined flow groups.” Para.0065 “At 804, the method 800 includes classifying a second flow of data packets of the network data as belonging to a second defined flow group from among the plurality of defined flow groups.” Para.0024 “ In some embodiments, the one or more attributes may include elements of TCP/IP connections (e.g., 3-tuple, 5-tuple, N-tuple), such as communication protocol, source IP address, source port, destination IP address, and/or destination port, as a few non-limiting examples.” Flow groups are defined using rules, that include same destination port and source port, as well as other condition, for example those as described in rules in Fig. 4. Therefore a subset of flows between the same ports may be grouped.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach with Kamisetty in order to incorporate grouping a subset of the communication flows flowing between the first port and the second port.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of reducing the load of processing routing for flows and improving control of a network (Kamisetty: para.0012-0014).
However Chach-Kamisetty-Lee does not explicitly disclose determining which ports are communicating with which other ports based on counters that record packets sent from a first port and received by a second port.
Eyada discloses determining which ports are communicating with which other ports based on counters that record packets sent from a first port and received by a second port (Eyada: para.0028 “Periodically at step 504 the stack manager software reads the packet counter table memory 400 to obtain all of the count and total length values for each port pair, a port pair being the two ports between which various data flows are occurring. In step 506 the values are then sorted to find the highest usage port pairs. In step 508 the stack manager software then also monitors the used bandwidth of each port to determine available bandwidth at each port. Then, in step 510 for each port in each high usage port pair, the stack manager software determines other ports with enough available bandwidth to receive the flows for that port pair and that are closer than the existing port of the other VM.” Packets sent from one port to another are counted to identify high usage ports, and the flows for that port pair are identified for load balancing the bandwidth.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Chach-Kamisetty-Lee with that of Eyada in order to incorporate determining which ports are communicating with which other ports based on counters that record packets sent from a first port and received by a second port.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of identifying flows to be moved for other ports to manage load (Eyada: para.0028).
Claim(s) 22-23 is/are rejected under 35 U.S.C. 103 as being unpatentable over Kamisetty et al. (hereinafter Kamisetty, US 2023/0114898 A1) in view of Sakaki et al. (hereinafter Sakaki, US 2022/0150135 A1).
Regarding Claim 22, Kamisetty discloses A method, comprising: at a network switch operating in a monitor mode (Kamisetty: Fig. 9 para.0013 “ Some or all of the network management system 100 may be part of a network device, such as a network switch” para.0067 “FIG. 9 depicts an example of a network device 900 that can be adapted in accordance with some embodiments of the present disclosure. The network device 900 may be a switch” A switch comprising network management system 100, seen in at least Fig. 1, the management system comprises a plurality of monitoring components that controls traffic, para.0016 “Each of the network flow controllers 102 monitors and analyzes the network data 106 and controls transmission of at least some of the network data 106 and/or flow information of the network data 106 based on a defined set of rules.”):
determining communication collectives on a network and communication flows that comprise the communication collectives (Kamisetty: para.0023 “ As a non-limiting example, the flow group storage 206 may store data packets provided by the flow tracker 204 and may store one or more data structures, such as a session table, that record states of network data received from the flow group identifier 202. The flow group storage 206 may store some or all of the received data packets from the flow group identifier 202 based on the marking provided by the flow group identifier 202. The flow group storage 206 may also update a corresponding data structure (e.g., session table) based on the marking provided by the flow group identifier 202, such as by updating a field indicating a number of packets received for the particular network flow, the amount of data received for the particular network flow, a quality of service associated with the particular network flow, an indication of a security risk associated with the particular network flow, etc.” para.0065 “ In some implementations, determining, at 806, the second set of rules may include establishing a second session table to include an entry for second flow information regarding a second characteristic of the second flow.” Different communication flows, such as a first flow in Fig. 7 and a second flow in Fig. 8 are determined and maintained in different session tables, from the total set of packets of the network, i.e. communication collectives at a flow group storage 206 for flows that are for flow tracker 408 and flows for 414, each of which are collectives.); and
determining groups of flows that are correlated in time and in destination (Kamisetty: para.0043 “Moreover, the flow tracker 408 may export, to the exporter 504-1, information associated with the first flow group associated with the first set of rules 406. The information associated may include 5-tuple information (e.g., source IP address, destination port), times indicating the start or end of the defined flow group, number of packets in the flow, …” Para.0058 “The method 700 also includes classifying, at 704, by the network device, a first flow of data packets of the network data as belonging to a first defined flow group from among a plurality of defined flow groups.” Para.0065 “At 804, the method 800 includes classifying a second flow of data packets of the network data as belonging to a second defined flow group from among the plurality of defined flow groups.” Flow groups are defined using rules, that include same destination port and start or end times. Seen in Fig. 7-8, a first flow may be categorized as a first flow group, and a second flow may be categorized as a second flow group.).
However Kamisetty does not explicitly disclose providing visibility of the communication flows and the communication collectives by determining groups of flows that are correlated in time and in destination.
Sakaki discloses providing visibility of the communication flows and the communication collectives by determining groups of flows that are correlated in time and in destination (Sakaki: Fig. 13-14 para.0191 “Further, for example, it is possible to display the topology focused on a portion of a network or a portion of a flow in different layouts (the layout of FIG. 6 or FIG. 7, and the layout of FIG. 8) simultaneously.” Para.0186 “For example, the display modes for data symbols may be unified when a topology of an entire network is displayed, and differentiation may be performed among the display modes for data symbols when a topology focused on a portion of a network or a portion of a flow is displayed.” The flows that correlate in time and destination, as seen in Fig. 14, showing various flows concurrently that travel to particular destinations may be displayed.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty with that of Sakaki in order to incorporate providing visibility of the communication flows and the communication collectives by determining groups of flows that are correlated in time and in destination.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of showing a user the visual representation of the state of the network on various paths (Sakaki: para.0013), as the user generates rules for groups of flows in para.0035 in Kamisetty.
Regarding Calim 23, Kamisetty-Sakaki discloses claim 22 as set forth above.
However Kamisetty does not explicitly disclose wherein the providing visibility of the communication collectives includes providing visibility of a topology shape of the communication collectives.
Sakaki discloses wherein the providing visibility of the communication collectives includes providing visibility of a topology shape of the communication collectives (Sakaki: Fig. 13-14 para.0191 “Further, for example, it is possible to display the topology focused on a portion of a network or a portion of a flow in different layouts (the layout of FIG. 6 or FIG. 7, and the layout of FIG. 8) simultaneously.” Para.0186 “For example, the display modes for data symbols may be unified when a topology of an entire network is displayed, and differentiation may be performed among the display modes for data symbols when a topology focused on a portion of a network or a portion of a flow is displayed.” The flows that correlate in time and destination, as seen in Fig. 14, showing various flows concurrently that travel to particular destinations may be displayed on top of the topology of the network as seen in Fig 13-14 and 17.).
Therefore it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Kamisetty with that of Sakaki in order to incorporate wherein the providing visibility of the communication collectives includes providing visibility of a topology shape of the communication collectives.
One of ordinary skill in the art would have been motivated to combine because of the expected benefit of showing a user the visual representation of the state of the network on various paths (Sakaki: para.0013), as the user generates rules for groups of flows in para.0035 in Kamisetty.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure. Chao et al. US 2005/0002334 A1 Claim 1, abstract and Fig. 4, para.0155 0156 wherein flows of a flow group are assigned paths based on load balancing
Any inquiry concerning this communication or earlier communications from the examiner should be directed to EUI H KIM whose telephone number is (571)272-8133. The examiner can normally be reached 7:30-5 M-R, M-F alternating.
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, Kamal B Divecha can be reached at 5712725863. 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.
/EUI H KIM/ Examiner, Art Unit 2453
/KAMAL B DIVECHA/ Supervisory Patent Examiner, Art Unit 2453