Global bandwidth aware adaptive routing
By introducing a global bandwidth-aware adaptive routing system into the Ethernet communication system, the problem of difficulty in rebalancing traffic in the event of link failure or congestion is solved, and higher network performance and reliability are achieved, especially suitable for AI training scenarios with high bandwidth requirements.
Patent Information
- Application Number
- CN202411165531.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-06
- Filing Date
- 2024-08-23
- Publication Date
- 2025-02-25
AI Technical Summary
In the face of link failure or congestion, existing Ethernet communication systems are difficult to effectively rebalance traffic, resulting in degradation of network performance, especially in scenarios such as AI training.
By introducing a global bandwidth-aware adaptive routing system into the switch, using an event-driven mechanism, traffic rebalancing is performed based on downstream capacity information, adaptive routing algorithms are modified to select the optimal route, and the dependence of convection control and congestion control is reduced.
Automatic traffic rebalancing in the case of link failure or congestion is achieved, improving network reliability and performance, especially in AI training scenarios with high bandwidth requirements.
Smart Images

Figure CN119520380A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application is related to and claims the benefit of priority of Indian Patent Application No. 202311057144 filed on August 25, 2023, the entire contents of which are incorporated herein by reference for all intents and purposes. Technical Field
[0003] At least one embodiment relates to Ethernet communications, and more particularly to global bandwidth-aware adaptive routing in Ethernet communications. Background Art
[0004] Communications protocols may be provided for certain network communications such as Ethernet to implement communications standards. In an example, such network communications may support artificial intelligence (AI) training workloads that require large east-west network bandwidth. Adaptive routing may be provided in network communications to maximize network utilization by load balancing traffic based on local switch states such as queue lengths and port utilization. In addition, AI training may include performance that is highly sensitive to changes in network conditions (including congestion, latency, and drops). Faulty links in the network may result in reduced bandwidth and potential congestion, particularly as AI-related aspects of network communications may be running at high utilization. Adaptive routing allows rebalancing decisions to be based on local state, and rebalancing decisions will not cause upstream switches or routers to divert traffic away from downstream devices when downstream devices are subject to events such as reduced bandwidth capacity in the event of a link failure or congestion. BRIEF DESCRIPTION OF THE DRAWINGS
[0005] Figure 1 A system suitable for an embodiment of global bandwidth-aware adaptive routing in Ethernet communications is shown;
[0006] Figure 2 Various aspects of a system for global bandwidth-aware adaptive routing in Ethernet communications are illustrated in accordance with at least one embodiment;
[0007] Figure 3 illustrates a topology associated with a system for global bandwidth-aware adaptive routing in Ethernet communications in accordance with at least one embodiment;
[0008] Figure 4 Aspects of computers and processors of a system for global bandwidth-aware adaptive routing in Ethernet communications are illustrated in accordance with at least one embodiment;
[0009] Figure 5 A process flow illustrating a system for global bandwidth-aware adaptive routing in Ethernet communications according to at least one embodiment is shown;
[0010] Figure 6 Another process flow in a system for global bandwidth-aware adaptive routing in Ethernet communications is shown in accordance with at least one embodiment; and
[0011] Figure 7 Yet another process flow in a system for global bandwidth-aware adaptive routing in Ethernet communications in accordance with at least one embodiment is shown. DETAILED DESCRIPTION
[0012] Figure 1 A system 100 for an embodiment of global bandwidth-aware adaptive routing in Ethernet communications is shown, as described herein. The system 100 and the method for such a system 100 enable adaptive routing to rebalance transmission load distribution based on the relative downstream capacity across multiple paths indicated by the event when the event occurs. This can achieve optimal adjustment and reduce the reliance on fabric-based flow control or endpoint-based congestion control. This ultimately minimizes the impact of link failures in the fabric on performance. For example, in a lossless fabric, congestion may trigger a coarse-grained flow control mechanism, such as per-priority flow control (PFC), which may cause head-of-line blocking or may cause network diffusion across multiple hops. This may be detrimental to unrelated traffic flows and may result in significant performance degradation.
[0013] In addition, endpoint-based congestion control provides relief by reducing the transmission rate, thereby avoiding congestion altogether. The system 100 includes at least one circuit that can be an execution unit of a processor within a leaf switch 106, 114. The leaf switch 106, 114 can be associated with a corresponding rack or other Ethernet grouping 2 102, 1 110 of a host or other endpoint 1-N 104, 1-N 112, as shown. In addition, the system 100 includes at least a spine switch or gateway 108 as part of one or more interconnect devices 120 to provide Ethernet communication 116 between multiple leaf switches 106, 114. Therefore, each Ethernet grouping 2 102, 1 110 of a host or other endpoint 1-N 104, 1-N 112 can communicate within the grouping using a leaf switch and can communicate across the grouping using a spine switch or gateway 108. However, since endpoints may not have complete knowledge of their associated networks, such endpoint-based congestion control may overcorrect to the lowest common denominator among multiple routes or paths, resulting in excessive overall performance degradation.
[0014] In at least one embodiment, a system 100 for global bandwidth-aware adaptive routing in network communications includes at least one switch representing a separate endpoint in the network communications, such as a leaf switch closest to a local host for determining events related to changes in network bandwidth between the local host and a remote host. For example, a remote leaf switch 106 closest to a failed or congested link of a remote host 1-N 104 may have information related to the failed or congested link. The remote leaf switch 106 is located downstream of the local host 112 and the local leaf switch LS1 114 and is capable of transmitting this information to the local leaf switch 114. The local leaf switch LS1 114 is capable of providing a routing protocol for network communications, wherein the routing protocol can be used to modify adaptive routing in the leaf switch to select from different routes for network communications between the local host and the remote host. In this way, changes in network bandwidth in remote hosts that are located downstream relative to at least one switch and relative to the local host can be taken into account.
[0015] In at least one embodiment, the system includes one or more circuits associated with at least one switch. The one or more circuits are used to determine an event associated with a change in network bandwidth between a local host and a remote host. The one or more circuits further provide a routing protocol for network communications. The routing protocol is used to modify adaptive routing in at least one switch to select from different routes for network communications between the local host and the remote host.
[0016] In at least one embodiment, a method for global bandwidth-aware adaptive routing in network communications includes: determining, using at least one switch, an event associated with a change in network bandwidth between a local host and a remote host. The method also includes: modifying an adaptive route in the at least one switch to select from different routes for network communications between the local host and the remote host. The method also includes: providing a routing protocol for network communications to enable communication routing between the local host and the remote host using one of the different routes based in part on the modification of the adaptive route.
[0017] In at least one embodiment, such a system and method provides changes to adaptive routing as an algorithm that is unaware of downstream capacity by using downstream capacity information to enhance adaptive routing decisions and rebalancing traffic based on weights determined based on downstream capacity information. For example, in the Border Gateway Protocol (BGP) for Ethernet communications, the Weighted-Equal Cost Multipath (W-ECMP) link bandwidth extension community attribute can be used with the delivery propagation option, which is also cited herein as a routing protocol to modify various aspects of the adaptive routing algorithm. This allows when a link in the structure fails or a congestion event occurs, the nearest router or switch (e.g., within a predetermined hop distance of the local host associated with the event) sends notifications or communication updates for the affected routes and next hops with less bandwidth. In at least one embodiment, any other protocol with the ability to send relevant metadata such as routing information instead of BGP can embody the method of global bandwidth-aware adaptive routing in Ethernet communications herein.
[0018] Therefore, in at least one embodiment, an upstream router or switch that receives the notification can use the updated relative weights in its corresponding adaptive routing algorithm to determine different routes. For example, an event can be converted into a weight, such as one of a lower, neutral, or higher weight, which can be used by a modification feature of a routing protocol to perform a modification of an adaptive route associated with downstream traffic. This approach can resolve failure or congestion events when they occur. The adaptive routing algorithm of an upstream router or switch can cause the distribution of traffic loads based on changes in weights therein, and the weights can change based on changes in local states (such as queue lengths, port utilization). By routing around these points in network communications, congestion and failure events can be avoided.
[0019] In at least one embodiment, a router or switch includes a data path of different routes that can be selected as part of an adaptive routing algorithm therein, and the adaptive routing algorithm can be modified using weights in a routing protocol so that the adaptive routing algorithm is both weight-aware and weight-unaware for any adaptive routing hardware. For hardware with weight awareness, adaptive routing is only a rebalancing decision based on path weights. For hardware without weight awareness, the routing protocol of this article can enable calculations to be effective so that the transmission capacity of the lower weight path is reduced. This can be achieved by removing the next hop interface (such as for transmission purposes) toward the lower weighted adjacent path from the next hop group. Both methods reflect a routing protocol for modifying adaptive routing in at least one switch to select from different routes for network communication between a local host and a remote host. Adaptive routing can be aware of the global bandwidth of the remote host or the target host, and can obtain the amount of traffic sent by members across the ECMP arrangement. The system of this article uses an interface associated with at least one switch to receive instructions to enable the determination of events associated with changes in network bandwidth and to enable the determination of routing protocols for network communication. Upon receiving an event in a communication associated with the remote host, at least one hop in a series of next hops to the remote host as part of a routing protocol may be removed based in part on the communication to provide modification to adaptive routing in at least one switch.
[0020] Figure 2 Various aspects of a system 200 for global bandwidth-aware adaptive routing in Ethernet communications according to at least one embodiment are shown. The system 200 is at least partially subject to a border gateway protocol (BGP) for determining an optimal network route for a data communication link 206 using Ethernet. For example, switches and routers including leaf switches and spine switches LSN 106, LS1 114, LSN2 114, SS1 202A, SSN 202B can exchange routing information using announcements 204 that are configuration-based communications or messages of a specific type about an associated network. Such communications can include bandwidth information associated with the network. Leaf switches and spine switches LSN 106, LS1 114, LSN2 114, SS1 202A, SSN 202B that are capable of exchanging routing information for BGP or any other supported protocol may be referred to herein as peers or BGP peers. Therefore, these peers are not limited to BGP, but may be in reference to BGP or any other protocol that has the ability to signal relevant metadata for global bandwidth-aware adaptive routing in Ethernet communications.
[0021] In addition, BGP can be considered as an exterior gateway protocol (EGP) for exchanging routing information between routers or switches in different Ethernet groups 1 110, 2 102. The routing information may include a complete route to each destination, such as from a local host to a remote host. When BGP uses the routing information to prepare routing table 220 and other tables related to network reachability, it also enables switches or routers to exchange this information across Ethernet groups 1 110, 2 102. Therefore, BGP peers can use announcements 204 to publish routes between each other. For example, a BGP peer can store a routing table 220, which may include routing information received from an announcement 204, local routing information for local routes (such as not including a backbone switch or gateway), and information that a BGP peer can announce to other peers in a separate announcement. In addition, routing table 220 may be generated in part by an adaptive routing algorithm 208. Routing table 220 may be used by the routing process of a BGP peer to select the best or active route, and may also announce such best or active routes to other BGP peers. However, BGP peers may be configured to advertise different routes to the same destination BGP peer or host.
[0022] The BGP peer that sends the first announcement to the route can assign one of the different values to the route to at least identify the starting point of the route, so that the lowest starting point value can be selected during the selection from one of the different routes. BGP also provides equal cost multi-path routing (ECMP), which uses multiple routes that may have similar or identical characteristics such as latency in a reference route or reference link capacity. ECMP-based load balancing of the data communication link 206 can be enabled on different routes. In addition, ECMP can be configured using the interface of the switch or router, allowing external BGP (EBGP) peers to have up to 512 different routes. Therefore, this may lead to the expansion of the network scale to increase the number of BGP peer interconnections of a designated router or switch to improve latency and data flow.
[0023] In at least one embodiment, the advertisement 204 may include a BGP update. The BGP update may include a header; a list of withdrawn routes, such as using Internet Protocol (IP) address prefixes associated with withdrawn service or unreachable routes; infeasible route lengths for such withdrawn routes; route attributes, including route origin, multiple exit discriminator (MED), route preference of the origin, aggregation information, common information, confederation information, and route reflection; network layer reachability information NLRI (network layer reachability information) including these IP address prefixes of the advertised reachable routes; and a total route attribute length of route attributes pointing to reachable routes to a destination BGP peer or host.
[0024] In at least one embodiment, the weighted ECMP (or W-ECMP) herein can address the use of bandwidth community attributes that are advertised as a reflection of available capacity. For example, when a data communication link 206C between a spine switch SSN 202B and a leaf switch LSN 106 fails, representing a failure downstream of other leaf switches LS1-LSN2 114, LS2-LSN3 222 and local hosts 1-N 112, these other leaf switches may receive a BGP update in the advertisement 204 with a reduced weight for the prefix specified after the leaf switch LSN 106 and the next hop until the problematic spine switch SSN 202B. Although a direct coupling is shown between each spine switch SS1 202A, SSN 202B and leaf switch LSN 106, there may be BGP peers, such as other routers or switches LS1-LSN2 114, LS2-LSN3 222 that require further hops between the local host and the remote host. The weight of the prefix assigned after the leaf switch LSN 106 and the next hop until the spine switch SSN 202B is reduced (such as using another data communication link 206B) so that only the affected prefixes can experience the change in load distribution and can converge to a predetermined capacity (such as 5 / 6 of the total theoretical bandwidth). th ratio).
[0025] Therefore, in at least one embodiment, Figure 2A system 200 for global bandwidth-aware adaptive routing in network communications is shown, the system using at least a leaf switch LSN 106 to determine an event related to a change in network bandwidth between a local host 1-N 112 and a remote host 1-N 104. The change may be a failure or congestion event of a data communication link 206C. At least the leaf switch LSN 106 may provide a routing protocol 214 for network communications. The network communications may include advertisements 204 sent from at least one leaf switch LSN 106 to spine switches SS1 202A, LS1 114, LSN2 114, SSN 202B, LS2-N3 222 in the network. The routing protocol 214 may be used to modify 218 an adaptive route such as an adaptive routing algorithm 208 in at least one switch LSN 106. The modification 218 is used to select from different routes represented by different hops 212 for network communications between the local host and the remote host. A different hop 212 enables a different route to be used, such as using a data communication link 206B from another leaf switch N2 114 to the spine switch SSN 202B.
[0026] In at least one embodiment, Figure 2 The system 200 is also shown to include multiple links between each leaf switch LSN 106 to each spine switch SSN 202B, although this is not shown for all leaf switches and all spine switches. The system 200 is capable of identifying an event as a failed or congested data communication link 206C in at least one different route between a local host 1-N 112 and a remote host 1-N 104. Such a failed or congested data communication link 206C may be one of the links between a leaf switch LSN 106 and a spine switch SSN 202B (the other being data communication link 206B). In addition, a failed or congested link may cause a change in the network bandwidth between the local host and the remote host. For example, the network bandwidth may be monitored based at least in part on a comparison with a predetermined number of hops (hoptime) for monitoring data packets transmitted through different routes. When the number of hops of at least one link exceeds a predetermined number of hops, the link may be considered in a failure or congestion event.
[0027] In at least one embodiment, the system 200 uses a routing protocol 214 with a BGP-enabled network that enables communication of events such as routing information associated with a failed or congested data communication link 206C between at least one switch and other switches in network communications. In addition, the routing protocol 214 also includes a conversion feature to convert events from an announcement 204 or a monitored event to a weighted value such as an attached weight 216. The routing protocol 214 includes a modification feature for modifying 218 the adaptive routing algorithm 208 using the weighted value.
[0028] In at least one embodiment, the modification 218 to the adaptive routing algorithm 208 includes additional weights 216 for several different hops 212 of different data communication links 206A-C for network communications between a local host and a remote host. The additional weights may be incorporated in any manner suitable for the disclosure herein including the portion of the weights 210 of the normalized or quantified adaptive routing algorithm 208. The weight change removes at least one next hop so that at least a failed or congested data communication link 206C may be bypassed. Instead, another data communication link 206B may be used. In at least one embodiment, at least one leaf switch LSN 106 includes an interface such as a command line interface (CLI) for receiving instructions to enable determination of events related to changes in network bandwidth and to enable determination of a routing protocol 214 for network communications. For example, an administrator of a portion or the entire network may make at least software and firmware changes to provide the W-ECMP method herein.
[0029] In at least one embodiment, the at least one leaf switch LSN 106 is located within a predetermined hop distance from the remote host 1104. For example, the leaf switch LSN 106 is the closest switch that is one hop away from the remote host 1104. The leaf switch LSN 106 includes an adaptive routing algorithm 208 for performing aspects described herein for global bandwidth-aware adaptive routing in network communications. In addition, the at least one leaf switch LSN 106 is further capable of receiving events in announcements 204 communications associated with the remote host, such as receiving events from a spine switch SSN 202B that is the highest packet-related switch associated with multiple remote hosts 1-N 104. The at least one leaf switch LSN 106 is further capable of removing at least one of several next hops to the remote host. For example, a hop associated with one leaf switch LSN 106 is enabled to be bypassed, and instead, the routing table 220 is updated by the adaptive routing algorithm 208 to include a hop using another leaf switch N2 114 to provide a different data communication link 206B as part of the routing protocol. Another leaf switch N2 114 can also provide a different data communication link 206B based in part on the advertisement 204 transmitted to the other leaf switch N2 114 to provide its modified adaptive routing.
[0030] Thus, in at least one embodiment, the system 200 includes one or more circuits associated with at least one leaf switch N114. However, the one or more circuits may span multiple switches to enable the W-ECMP method of the present invention to be performed. The one or more circuits may include at least one execution unit of a processor to determine an event associated with a change in network bandwidth between a local host and a remote host. The one or more circuits can provide a routing protocol for network communications so that the routing protocol can be used to modify adaptive routing in at least one switch to select from different routes for network communications between a local host and a remote host.
[0031] In at least one embodiment, free range routing (FRR) can be used with the W-ECMP method of this invention. FRR includes network routing software functions to provide a protocol daemon for BGP and can be used in the following ways: and The BGP-based FRR protocol can be used to perform operations on Unix-like platforms. In addition, FRR in BGP can be run in multiple autonomous systems simultaneously through virtual routing and forwarding. In at least one embodiment, adaptive routing occurs transparently to the kernel of the operating system and to the FRR requirements.
[0032] In at least one embodiment, FRR provides a next hop group (NHG) to reach a determined prefix. Whenever a next hop weight changes, such as a decrease or increase in the weight of some of the multiple next hops, the NHG is provided. FRR can be enabled as part of the routing protocol 214 to include a conversion feature to convert the community value of the advertisement 204, such as an incoming community value reflecting a downstream bandwidth event, into a proportional weight, thereby providing additional weights 216 in the W-ECMP member in such a way that the cumulative value of the individual weights 210 is normalized to 100. The adaptive routing algorithm 208 can rely on the weights associated with a single neighbor or next hop group and the available active next hop links to derive the actual number of links to be changed, which reflects the modification 218 of the adaptive routing in at least one switch to select a route for network communication between a local host and a remote host from different routes.
[0033] In at least one embodiment, a neighbor group is a grouping of different links between two or more switches. A neighbor group can be provided as a forwarding entity such as a set of switches and routers to rebalance data communications toward a specific remote host that uses a grouping of different links and each switch in the different links uses a global identifier. For example, to calculate additional weights for different peers, the methods herein consider all next hops, which may be more than one hop and connected to the same peer. The determination of all next hops can be provided by a controller that operates as a control plane for the network, such as the controller herein. Figure 1 The controller provides all the next hops to the forwarding entity such as a switch or a router. Alternatively, the forwarding entity can infer the identity based on the next hop attributes (such as the next MAC address) encoded using a global identifier.
[0034] In at least one embodiment, grouping next hops into unique neighbor groups can be performed as part of the routing protocol 214. There may be multiple links connected to a particular leaf switch and one or more backbone switches. The routing protocol 214 ensures neighbor (or grouping) information to decide which link(s) to remove to reduce the bandwidth capacity of a particular backbone switch. For example, in order to identify all next hops connected to a particular BGP peer, the same basic MAC (media access control) address can be assigned to all adaptive routing (AR) enabled ports in the BGP peer. For non-AR enabled ports, there may be no change in behavior, and non-AR enabled ports may include a unique MAC address assigned to each non-AR enabled physical port. An application programming interface (API) may be provided to set the basic MAC. This approach ensures that all next hops with the same neighborhood MAC are referred to as a "neighborhood group" and means that next hops belonging to the same neighborhood group are hosted by the same BGP peer.
[0035] Figure 3 A topology 300 is shown in connection with a system for global bandwidth-aware adaptive routing in Ethernet communications in accordance with at least one embodiment. In at least one embodiment, global bandwidth-aware adaptive routing may be provided with an algorithm represented by a routing protocol 214. The routing protocol 214 may be applied under certain conditions and in accordance with Figure 3For example, routing protocol 214 is applicable only if all next hops are provided by switch ports capable of adaptive routing 208. In addition, routing protocol 214 is applicable only if there are multiple next hops in the NHG, if there are multiple neighborhood groups in the NHG (where the neighborhood groups are identified by unique next hop MACs), or if there are next hops with different weights (such as if all next hops have the same weight, then no exclusion or modification related to the next hop is possible).
[0036] In at least one embodiment, when the next hop belongs to the same neighborhood group and includes different weights, the routing protocol 214 does not need to exclude these next hops because they represent an asymmetric topology. In at least one embodiment, the routing protocol 214 can be executed by a loop through all next hops to identify the next hop and its associated neighborhood group, which has the highest weight (also referred to as maximum weight herein) among other neighborhood groups. Then, the routing protocol 214 can include an iterative process for iterating each next hop present in the NHG. In the iteration, if a specific neighborhood group has only one next hop, it may not be necessary to apply the exclusion or modification described herein. Then, the next hop can be added to the active next hop list of the ECMP group.
[0037] In at least one embodiment, routing protocol 214 includes that if the weight of the next hop matches the maximum weight, then it may not be necessary to apply the exclusion or modification described herein. On the contrary, all of these next hops can be added to the active next hop list of the ECMP group. In addition, routing protocol 214 includes determining a weight reduction ratio. The weight reduction ratio of each neighborhood group except the neighborhood group with the maximum weight can be determined. The derivation of the weight reduction ratio between the weight of the current neighborhood group and the weight of the neighborhood group with the maximum weight can be performed. For example, when one of the weights of a neighborhood group is 33 and the maximum weight is 66, the ratio can be determined to be 50%, 0.50 or 1 / 2). In order to derive the weight reduction ratio, the weight of the neighborhood group can be divided by the maximum weight.
[0038] In at least one embodiment, the routing protocol 214 includes determining the actual number of next hops to be excluded or modified based on the weight reduction ratio. This can be performed for each such neighborhood group having a weight different from the maximum weight. In addition, the exclusion or modification of the number of next hops can be based on the weight reduction ratio (determined as above) and can be based on the total number of next hops available in the neighborhood group. For example, when the weight reduction ratio of the current neighborhood group is 25%, it may be necessary to reduce the next hop capacity of the neighborhood group to one-fourth of the total count of next hops. In addition, if there are four next hops available in the neighborhood group, exclusion or modification of three of the next hops can be performed to achieve the purpose of reducing 75% capacity. However, if only two next hops are available in the neighborhood group, the exclusion or modification is only for a single link, because the value of 75% in the two available links is one. In addition, if the weight reduction ratio of the current neighborhood group is 50%, it may be necessary to halve the next hop capacity; and if there are two next hops available in the neighborhood group, exclusion or modification of one of the next hops can be performed. Similarly, if four next hops are available, exclusion or modification of two of the four next hops may be performed to achieve a 50% reduction in capacity; if three next hops are available, exclusion or modification may only be performed on a single link of the three next hops.
[0039] In at least one embodiment, routing protocol 214 includes that if the ratio between the weight of the current neighborhood group and the weight of the neighborhood group with the largest weight is 75%, then the next hop capacity can be reduced to three quarters of the total link capacity. When there are 4 next hops available in the neighborhood group, exclusion or modification to one of the next hops can be performed to achieve the purpose of reducing the capacity by 25%. When the number of next hops in the neighborhood group is two or three, then there is no need to perform exclusion or modification on any link in the ECMP group because the resulting number of next hops subject to such exclusion or modification may not exist.
[0040] Thus, in at least one embodiment, for each neighborhood group, the derivation of the number of next hops to be excluded or modified can be based on the weight reduction ratio and the total number of next hops available in the neighborhood group, which is given by (1 - weight reduction ratio) × (number of next hops present in the neighborhood group). In at least one embodiment, regardless of the weight reduction ratio, at least one next hop can be retained in each neighborhood group. Further, for any local link failure / recovery event, the routing protocol 214 herein may be executed repeatedly so that the link capacity reduction based on weights can take into account the latest available set of links. The remaining number of next hops can be added to the active next hop list of the ECMP group, and the ECMP group update can be applied to the software development kit (SDK) associated with the adaptive routing algorithm 208. In at least one embodiment, the modification 218 can be used to select the links to be excluded for a given backbone in a consistent manner across different capacity reduction instances. This makes the global bandwidth-aware adaptive routing system in Ethernet communication predictable. Since the next hops may be stored in the NHG after the switch sorts the next hops based on port information, the routing protocol 214 herein allows the selection of the top N next hops from M available next hops to be programmed into the SDK (where N < M). Thus, after the top N next hops are installed, the remaining (M - N) next hops will be subject to the exclusion or modification described throughout this document.
[0041] In the illustrated topology 300 subject to the routing protocol 214 described above, there are four backbone switches SS1 202A, SSN 202B, SS2 302A, SS3 302B, and four leaf switches LS1 114, LSN 106 which are connected to the four backbone switches SS1 202A, SSN 202B, SS2 302A, SS3 302B using multiple links (represented by the label "x3" to indicate at least three available links) between each leaf switch LSN 106, LS1 114 and the backbone switches SS1 202A, SSN 202B, SS2 302A, SS3 302B. When one link (represented by the label "x1" for its three links) between the backbone switch SS1 202A and the leaf switch LS1 114 fails or becomes congested, then all other leaf switches (commonly referred to by the leaf switch LSN 106) will see a weight reduction for three paths (such as, in one example, three paths out of a total of twelve paths between each leaf switch and the backbone switch) of the routing prefix hosted behind the affected leaf switch LS1 114. For the leaf switch LS1 114, the steady-state weight on each next hop may be a value of "8". This allows the total weight to be adjusted to around "96" (determined by the product of the links and the weights, such as 12 × 8).
[0042] In at least one embodiment, following a remote failure of a link such as between spine switch SS1 202A and leaf switch LS1 114 that is downstream relative to local host 112, the adjusted weights advertised from spine switches SS3-SSN to leaf switch LS1 114 will be, for example, a value of "9" (reflecting a higher weight) at each of their next hops. In addition, the weight from spine switch SS1 202A to leaf switch LS1 114 is "6" (reflecting a relatively neutral weight, to a higher weight) in at least three next hops. This gives a total weight of approximately "99" (using link multiplication similar to that provided above, i.e., (9×9)+(3×6)). Although FRR assigns weights to available next hops based on the incoming link bandwidth extension community portion in the routing information, the total weight among the next hops can be normalized to 100. In one example, the maximum weight attached to such a topology would be "9", and the weight reduction ratio for the portion of the neighborhood group for the spine switch SS1 202A that reflects the modification 218 using the additional weight 216 would be determined to be "0.666667" (reflecting a weight reduction ratio of 6 / 9). Such a weight reduction ratio may be applied to the next hop that results in the neighborhood group associated with the spine switch SS1 202A being modified. This would provide a value of approximately "1" ((1-0.66666)×3). For this determination, the "1" value is a reference to one of the available links from the neighborhood group associated with the spine switch SS1 202A that is to be modified (such as excluded from three available links).
[0043] In at least one embodiment, if a link between the spine switch SS1 202A and the leaf switch LS1 114 fails locally, further NHG updates may be announced to provide newer weights to modify the adaptive routing. The newer weights may be announced from the spine switches SS2 302A, SSN 302B, SSN 202B to the leaf switch LS1 114, and may be values such as "10" on each of their next hops, while the newer weights announced from the spine switch SS1 202A to the leaf switch LS1 114 are "5" in two of the remaining next hops. This allows the total weight to be determined to be approximately "100" (provided by (9x 10) + (2x 5)). When a local failure occurs simultaneously with a remote failure, the maximum weight value used may be "10", and the weight reduction ratio of the neighbor group of the spine switch SS1 202A will be determined to be "5" (according to the weight reduction ratio of 5 / 10) because "5" is the weight of the neighbor group associated with the spine switch SS1 202A. The number of next hops to be excluded for the neighbor group will be one (determined by (1-0.5)×2). For this determination, one link from the neighbor group will be excluded from the two available links, thereby reflecting the modification of the adaptive routing in at least one switch to select from different routes for network communication between the local host and the remote host.
[0044] In at least one embodiment, the topology 300 may include four spine switches SS1 202A, SSN 202B, SS2 302A, SS3 302B, with leaf switches LS1 114, LSN 106 connected to the spine switches SS1 202A, SSN 202B, SS2 302A, SS3 302B using multiple links (reflected by the marking x3 as at least three available links) between each leaf switch LS1 106, LSN 114 and the spine switches SS1 202A, SSN 202B, SS2 302A, SS3 302B. The leaf switch LS1 114 is at a steady-state weight advertised from another leaf switch LSN 106 for a prefix including the leaf switch LS1 114. For example, the steady-state weight of the next hop may be "8", and the total weight may be determined to be approximately 96. In the event of a link failure of two links (referenced as "y1") between the spine switch SS2 302A and the leaf switch LSN 106, there may be only a single link connecting the two switches. In the leaf switch LS1 114, the weight of each of the nine next hops of the remaining spine switches SS1 202A, SSN 202B, and SS3302B may be approximately "10", while the weights of the three next hops advertised from the spine switch in question (spine switch SS2 302A) may be "3". This allows the total weight to be determined to be approximately "99". In this case, the maximum weight assigned is approximately "10", and the weight reduction ratio of the neighbor group of the spine switch in question (spine switch SS2302A) is 0.3 (determined by 3 / 10). Therefore, the number of next hops to be excluded for the neighbor group associated with the switch in question (spine switch SS2 302A) will be two (determined by (1-0.3) x 3). Using this calculation, two links from the neighborhood group of backbone switch SS2 302A will be excluded from the three available links, also reflecting the modification of adaptive routing in at least one switch to select from different routes for network communications between the local host and the remote host.
[0045] In at least one embodiment, if there is another failure in the link set between the leaf switch LS1 114 and the spine switch SS1 202A following the link failure on the leaf switch LSN 106, there may be a single remaining link for this leaf switch and spine switch combination. As a result, on the leaf switch LS1 114, the weight of each of the six next hops of the remaining spine switches SSN202B, SS2 302A, SS3 302B may be about "12", while the weight of the only remaining next hop advertisement for the spine switch SS1 202A will be "12" and the weight of the 3 next hop advertisements from the spine switch SS2 302A may be provided as "4" (reflecting the lower weight relative to the neutral weight and the higher weight). The total weight after such weight correction can be determined to be 96 (determined by (6×12)+(1×12)+(3×4)). Therefore, in this case, the maximum weight may be determined to be "12", and the de-weight ratio of the neighborhood group associated with the spine switch SS2 302A may be a value of 0.33 (determined by the de-weight ratio 4 / 12), where "4" is the weight of the neighborhood group of the spine switch SS2 302A. Thus, the number of next hops to be excluded for the neighborhood group associated with the spine switch SS2 302A would be 2 (determined by (1-0.333)×3). For such a determination, 2 links in the neighborhood group associated with the spine switch SS2 302A would be excluded from the 3 available links. Furthermore, since the weight of the neighborhood group associated with the spine switch SS1 202A is the same as the maximum weight, it may not be necessary to exclude any links to the spine switch SS1 202A.
[0046] Although these weight determinations are described herein by converting features to convert events into weight values, and by modifying features to modify adaptive routing using weight values, so that the routing protocol is implemented, these are merely exemplary and non-limiting. The routing protocol is used to modify adaptive routing in at least one switch, such as using Figure 1-3 The examples in the embodiment of the present invention provide partial support for selecting a route for network communications between a local host and a remote host from different routes. The selection can be enabled in the leaf switch or the spine switch or a combination thereof based in part on a determination made in at least one of such leaf switches or spine switches that may be closest to a failed or congested link downstream (reflecting the remote location) relative to the local host.
[0047] In at least one embodiment, AR load balancing can be applied to underlying packets sent to a remote virtual tunnel endpoint (VTEP). For example, W-ECMP can be configured on an underlying prefix (such as, using a VTEP address) to apply adaptive routing-based load balancing traffic on the underlying packets. For example, for a virtual extensible LAN (VXLAN), encapsulated packets may be sent from one VTEP to another VTEP. Even if W-ECMP is enabled on an overlay prefix, AR load balancing does not need to be applied. However, W-ECMP load balancing may also be applied. Therefore, adaptive routing as used herein refers to routing related to adaptive routing or provided routing, as long as a routing table associated with the next hop is provided and the routing table can be modified using the routing protocol in this article.
[0048] Figure 4 A computer and processor aspect 400 of a system for global bandwidth-aware adaptive routing in Ethernet communications 116 according to at least one embodiment is shown. According to at least one embodiment, the computer and processor aspect 400 may be performed by one or more processors including a system on a chip (SOC) or some combination thereof with a processor that may include an execution unit to execute instructions. Such one or more processors may include a CPU, a DPU, and a GPU, and may be located in one of the leaf switches or spine switches described throughout this document. In addition, the computer and processor aspect may be located within one or more of the Ethernet hosts 1-N 104, 1-N 112 or the Ethernet / interconnect devices 106, 108, 114, 120.
[0049] In at least one embodiment, the computer and processor aspect 400 may include, but is not limited to, components such as a processor 402 to employ an execution unit such as in the embodiments described herein including logic for executing algorithms for processing data according to the present disclosure. In at least one embodiment, the computer and processor aspect 400 may include a processor such as available from Intel Corporation in Santa Clara, California. Processor series, Xeon TM , 、XScale TM and / or StrongARM TM , Core TM or Nervana TM 1 microprocessor, although other systems (including PCs, engineering workstations, set-top boxes, and the like) with other microprocessors may also be used. In at least one embodiment, the computer and processor aspects 400 may execute a processor from Redmond, Washington. Provided by the company Operating system version, you can also use other operating systems (such as and ), embedded software and / or a graphical user interface.
[0050] Embodiments may be used in other devices such as handheld devices and embedded applications. Some examples of handheld devices include mobile phones, Internet protocol devices, digital cameras, personal digital assistants ("PDAs"), and handheld PCs. In at least one embodiment, the embedded application may include a microcontroller, a digital signal processor ("DSP"), a system on a chip, a network computer ("NetPC"), a set-top box, a network hub, a wide area network ("WAN") switch, or any other system that can execute one or more instructions according to at least one embodiment.
[0051] In at least one embodiment, the computer and processor aspect 400 may include, but is not limited to, a processor 402, which may include, but is not limited to, one or more execution units 408 to perform operations according to the present disclosure. Figure 1-3 and Figure 5-7 At least one or more of the described techniques are used to perform various aspects. In at least one embodiment, the computer and processor aspect 400 is a single processor desktop or server system, but in another embodiment, the computer and processor aspect 400 can be a multi-processor system.
[0052] In at least one embodiment, the processor 402 may include, for example, but is not limited to, a complex instruction set computer ("CISC") microprocessor, a reduced instruction set computing ("RISC") microprocessor, a very long instruction word ("VLIW") microprocessor, a processor implementing a combination of instruction sets, or any other processor device such as, for example, a digital signal processor. In at least one embodiment, the processor 402 may be coupled to a processor bus 410 that may transmit data signals between the processor 402 and other components in the computer and processor aspect 400.
[0053] In at least one embodiment, processor 402 may include, but is not limited to, level 1 ("L1") internal cache memory ("cache") 404. In at least one embodiment, processor 402 may have a single internal cache or multiple levels of internal cache. In at least one embodiment, cache 404 may reside external to processor 402. Other embodiments may also include a combination of internal and external caches, depending on the particular implementation and needs. In at least one embodiment, register file 406 may store different types of data in various registers, including, but not limited to, integer registers, floating point registers, status registers, and instruction pointer registers.
[0054] In at least one embodiment, an execution unit 408, including but not limited to logic to perform integer operations and floating point operations, also resides in the processor 402. In at least one embodiment, the processor 402 may also include a microcode ("ucode") read-only memory ("ROM") that stores microcode for certain macroinstructions. In at least one embodiment, the execution unit 408 may include logic for processing a packed instruction set 409.
[0055] In at least one embodiment, by including packed instruction set 409 along with associated circuitry for executing the instructions in the instruction set of a general purpose processor, operations used by many multimedia applications can be performed using packed data in processor 402. In at least one embodiment, many multimedia applications can be accelerated and executed more efficiently by using the full width of the processor's data bus to perform operations on packed data, which can eliminate the need to transfer smaller units of data over the processor's data bus to perform one or more operations one data element at a time.
[0056] In at least one embodiment, execution unit 408 may also be used in microcontrollers, embedded processors, graphics devices, DSPs, and other types of logic circuits. In at least one embodiment, computer and processor aspects 400 may include, but are not limited to, memory 420. In at least one embodiment, memory 420 may be a dynamic random access memory ("DRAM") device, a static random access memory ("SRAM") device, a flash memory device, or another memory device. In at least one embodiment, memory 420 may store instructions 419 and / or data 421 represented by data signals that may be executed by processor 402.
[0057] In at least one embodiment, the system logic chip may be coupled to the processor bus 410 and the memory 420. In at least one embodiment, the system logic chip may include, but is not limited to, a memory controller hub ("MCH") 416, and the processor 402 may communicate with the MCH 416 via the processor bus 410. In at least one embodiment, the MCH 416 may provide a high bandwidth storage path 418 to the memory 420 for instruction and data storage and for storage of graphics commands, data, and textures. In at least one embodiment, the MCH 416 may direct data signals between the processor 402, the memory 420, and other components in the computer and processor aspect 400, and bridge data signals between the processor bus 410, the memory 420, and the system I / O interface 422. In at least one embodiment, the system logic chip may provide a graphics port for coupling to a graphics controller. In at least one embodiment, the MCH 416 may be coupled to the memory 420 via a high bandwidth storage path 418, and the graphics / video card 412 may be coupled to the MCH 416 via an accelerated graphics port ("AGP") interconnect 414.
[0058] In at least one embodiment, the computer and processor aspects 400 may use the system I / O interface 422 as a proprietary hub interface bus to couple the MCH 416 to the I / O controller hub 430. In at least one embodiment, the ICH 430 may provide direct connection to certain I / O devices through a local I / O bus. In at least one embodiment, the local I / O bus may include, but is not limited to, a high-speed I / O bus used to connect peripherals to the memory 420, the chipset, and the processor 402. Examples may include (but are not limited to) an audio controller 429, a firmware hub ("flash BIOS") 428, a wireless transceiver 426, a data store 424, a legacy I / O controller 423 including a user input and keyboard interface 425, a serial expansion port 427 (such as a universal serial bus ("USB") port), and a network controller 434. In at least one embodiment, the data store 424 may include a hard drive, a floppy drive, a CD-ROM device, a flash memory device, or other mass storage device.
[0059] In at least one embodiment, Figure 4 The computer and processor aspects 400 are shown including interconnected hardware devices or "chips", while in other embodiments, Figure 4 An exemplary SoC may be shown. In at least one embodiment, Figure 4 The devices shown can be used with proprietary interconnects, standardized interconnects (e.g. ) or some combination thereof. In at least one embodiment, one or more components of the computer and processor aspect 400 are interconnected using a Compute Express Link (CXL) interconnect.
[0060] In at least one embodiment, therefore, Figure 1-4 The illustrated system includes one or more execution units 408 in an Ethernet host 1-N 104, 1-N 112 or an Ethernet / interconnect device 106, 108, 114, 120 to support global bandwidth-aware adaptive routing in Ethernet communications. For example, at least one execution unit 408 of a host or an Ethernet / interconnect device supports communicating with other processing units of other hosts or other Ethernet / interconnect devices using global bandwidth-aware adaptive routing. At least one execution unit 408 further determines an event associated with a change in network bandwidth between a local host and a remote host. At least one execution unit 408 further provides a routing protocol for network communications. The routing protocol can be used to modify adaptive routing in at least one switch to select from different routes for network communications between a local host and a remote host.
[0061] Figure 5 According to at least one embodiment, Figure 1-4 A process flow or method 500 for global bandwidth-aware adaptive routing in Ethernet communications in a system of FIG. 500 includes determining 502, using at least one switch, an event associated with a change in network bandwidth between a local host and a remote host. The method 500 may include using 504 adaptive routing in at least one switch to provide a routing table of different routes, and the routing table is subject to modification caused by the event. For example, the method 500 includes determining 506 that different routes are generated, where the different routes may be represented by a hop or next hop associated with a neighborhood group. The method 500 includes providing 508 a routing protocol for modifying the adaptive routing based in part on the event. The method 500 includes enabling 510 routing between the local host and the remote host using one of the different routes between the local host and the remote host. In step 510, routing is based in part on the modification of the adaptive routing to select one of the different routes.
[0062] In at least one embodiment, the method 500 enables the event to be a faulty or congested link in a different route between the local host and the remote host. In addition, the faulty or congested link may also result in a change in the network bandwidth between the local host and the remote host. For example, the method 500 includes a routing protocol associated with BGP, which enables communication of events between at least one switch and other switches in network communication using, for example, announcement communications.
[0063] Figure 6Another process flow or method 600 in a system for global bandwidth-aware adaptive routing in Ethernet communications according to at least one embodiment is shown. The method 600 may support Figure 5 600. For example, the method 600 includes initiating 602 a routing protocol in a supported switch or router. The method 600 includes: converting 604 an event into a weighted value using a conversion feature of the routing protocol. The adaptive routing weights may be retrieved from an algorithm associated with adaptive routing, such as from a routing table (or associated with a routing table). The method 600 includes verifying 606 the availability of the adaptive routing weights. The method 600 includes: performing 608 a modification of the adaptive routing using a modification feature of the routing protocol that uses the weighted values in an algorithm associated with adaptive routing. Step 608 may support Figure 5 Step 508 in .
[0064] Figure 7 An additional process flow or method 700 is shown in a system for global bandwidth-aware adaptive routing in Ethernet communications according to at least one embodiment. The method 700 may support Figure 5 Method 500 or Figure 6 For example, the method 700 includes: receiving 702 an instruction via an interface associated with at least one switch. The method 700 includes: enabling 704 a determination of an event associated with a change in network bandwidth based in part on the instruction (as shown in step 502). Figure 3 As explained in the example topology of , there may be multiple events. Therefore, it is possible to verify 706 that all events are determined so that all events are converted 604 to appropriate weight values. The method 700 includes: enabling 708 the determination of a routing protocol for network communication. For example, in network communication, different routing protocols may address different events, such as a link failure to a leaf switch, a link failure to a spine switch, or a congestion event. Therefore, an appropriate routing protocol can be determined to apply an appropriate weight value as a ratio, for example, to change at least Figure 3 Neighborhood groups that combine descriptions.
[0065] In at least one embodiment, the method described herein includes: determining at least one switch for performing such modification in step 508 based in part on a predetermined hop distance from the remote host. The at least one switch is adapted to perform an adaptive routing algorithm and is capable of performing the modification using a routing protocol corresponding to W-ECMP herein. The method herein includes: receiving an event in a communication from a remote host to at least one switch, and removing at least one hop of a provided next hop from the adaptive route, wherein the next hop is at least between the remote host and the local host. The removal is part of the routing protocol and is based in part on the communication to provide the modification of the adaptive route in the at least one switch.
[0066] Other variations are within the spirit of the present disclosure. Thus, while the disclosed technology is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described in detail above. However, it should be understood that it is not intended to limit the present disclosure to one or more specific forms disclosed, but on the contrary, it is intended to cover all modifications, alternative constructions, and equivalents that fall within the spirit and scope of the present disclosure as defined by the appended claims.
[0067] In the context of describing the disclosed embodiments (especially in the context of the following claims), the use of the terms "one" and "a kind of" and "said" and similar indicators should be interpreted as covering both the singular and the plural, unless otherwise indicated herein or clearly contradicted by the context, and not as a definition of the term. Unless otherwise noted, the terms "comprise", "have", "include" and "contain" should be interpreted as open terms (meaning "including but not limited to"). When not modified and referring to a physical connection, "connection" should be interpreted as being partially or completely contained in, attached to or connected together, even if there is an intervening object. Unless otherwise indicated herein, the statement of the value range herein is intended only to be used as a shorthand method to refer to each individual value falling within the range individually, and each individual value is incorporated into the specification as it is individually stated herein. In at least one embodiment, unless otherwise indicated or the context is contradictory, the use of the term "set" (e.g., "item set") or "subset" will be interpreted as a non-empty set including one or more members. Furthermore, unless otherwise stated or contradicted by context, the term "subset" of a corresponding set does not necessarily mean a proper subset of the corresponding set, but rather a subset and a corresponding set may be equivalent.
[0068] Unless otherwise expressly stated or otherwise clearly contradicted by context, conjunction language (such as phrases of the form "at least one of A, B, and C" or "at least one of A, B, and C") is also understood together with context to be generally used to present that an item, term, etc. can be any non-empty subset of the set of A or B or C, or A and B and C. For example, in the exemplary example of a group with three members, the conjunction phrases "at least one of A, B, and C" and "at least one of A, B, and C" refer to any of the following groups: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C}. Therefore, such conjunction language is generally not intended to imply that certain embodiments require the presence of at least one of A, at least one of B, and at least one of C, respectively. In addition, unless otherwise stated or contradicted by context, the term "plurality" means a plurality of states (e.g., "a plurality of items" means a plurality of items). In at least one embodiment, the number of items in the plurality is at least two, but can be more when explicitly or by context so indicates. Further, the phrase "based on" means "based at least in part on" rather than "based solely on" unless stated otherwise or otherwise clear from the context.
[0069] The operations of the processes described herein may be performed in any suitable order, unless otherwise indicated herein or otherwise clearly contradictory to the context. In at least one embodiment, processes such as those described herein (or variations and / or combinations thereof) are performed under the control of one or more computer systems configured with executable instructions, and are implemented by hardware or a combination thereof as code (e.g., executable instructions, one or more computer programs, or one or more applications) that is executed together on one or more processors. In at least one embodiment, the code is stored on a computer-readable storage medium, for example, in the form of a computer program including a plurality of instructions that can be executed by one or more processors.
[0070] In at least one embodiment, the computer-readable storage medium is a non-transitory computer-readable storage medium that does not include transient signals (e.g., propagating transient electrical or electromagnetic transmissions) but includes non-transitory data storage circuits (e.g., buffers, caches, and queues) within a transceiver of transient signals. In at least one embodiment, code (e.g., executable code or source code) is stored on a collection of one or more non-transitory computer-readable storage media having executable instructions stored thereon (or other memory for storing executable instructions), which when executed (i.e., due to being executed) by one or more processors of a computer system causes the computer system to perform the operations described herein. In at least one embodiment, a set of non-transitory computer-readable storage media includes a plurality of non-transitory computer-readable storage media, and one or more of the individual non-transitory storage media in the plurality of non-transitory computer-readable storage media lack all codes, while the plurality of non-transitory computer-readable storage media collectively store all codes. In at least one embodiment, the executable instructions are executed so that different instructions are executed by different processors. For example, a non-transitory computer-readable storage medium stores instructions, a main central processing unit ("CPU") executes some instructions, and a graphics processing unit ("GPU") executes other instructions. In at least one embodiment, different components of the computer system have separate processors, and different processors execute different subsets of instructions.
[0071] In at least one embodiment, the arithmetic logic unit is a group of combinational logic circuits that accept one or more inputs to produce a result. In at least one embodiment, the processor uses the arithmetic logic unit to implement mathematical operations such as addition, subtraction, or multiplication. In at least one embodiment, the arithmetic logic unit is used to implement logical operations such as logical AND / OR or XOR. In at least one embodiment, the arithmetic logic unit is stateless and is made of physical switching elements, such as semiconductor transistors arranged to form logic gates. In at least one embodiment, the arithmetic logic unit can be constructed as an asynchronous logic circuit with an internal state that is not maintained in an associated register group. In at least one embodiment, the processor uses the arithmetic logic unit to combine operands stored in one or more registers of the processor and generate an output that can be stored by the processor in another register or storage location.
[0072] In at least one embodiment, as a result of processing instructions retrieved by the processor, the processor presents one or more inputs or operands to the arithmetic logic unit, causing the arithmetic logic unit to produce a result based at least in part on the instruction code provided to the input of the arithmetic logic unit. In at least one embodiment, the instruction code provided by the processor to the ALU is based at least in part on the instruction executed by the processor. In at least one embodiment, the combinational logic in the ALU processes the inputs and produces outputs that are placed on a bus within the processor. In at least one embodiment, the processor selects a target register, memory location, output device, or output storage location on an output bus so that the processor is clocked to send the result produced by the ALU to a desired location.
[0073] Thus, in at least one embodiment, a computer system is configured to implement one or more services that individually or collectively perform the operations of the processes described herein, and such a computer system is configured with applicable hardware and / or software capable of performing the operations. Further, a computer system implementing at least one embodiment of the present disclosure is a single device, and in another embodiment, is a distributed computer system comprising multiple devices that operate differently, such that the distributed computer system performs the operations described herein, and such that a single device does not perform all operations.
[0074] The use of any and all examples or exemplary language (e.g., "such as") provided herein is intended only to better illustrate embodiments of the present disclosure and does not limit the scope of the present disclosure unless otherwise required. Language in the specification should not be construed as indicating any non-claimed element is essential to the practice of the present disclosure.
[0075] In the specification and claims, the terms "coupled" and "connected" and their derivatives may be used. It should be understood that these terms are not intended to be synonymous with each other. On the contrary, in specific examples, "connected" or "coupled" may be used to indicate that two or more elements are in direct or indirect physical or electrical contact with each other. "Coupled" may also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.
[0076] Unless specifically stated otherwise, it will be appreciated that throughout the specification terms such as "processing," "computing," "calculating," "determining," or similar terms refer to the action and / or process of a computer or computing system or similar electronic computing device that manipulates and / or transforms data represented as physical (such as electronic) quantities within the computing system's registers and / or memories into other data similarly represented as physical quantities within the computing system's memories, registers, or other such information storage, transmission, or display devices.
[0077] In a similar manner, the term "processor" may refer to any device or part of a device that processes electronic data from registers and / or memory and converts the electronic data into other electronic data that can be stored in registers and / or memory. A "computing platform" may include one or more processors. As used herein, a "software" process may include, for example, software and / or hardware entities that perform work over time, such as tasks, threads, and intelligent agents. Moreover, each process may refer to multiple processes for executing instructions sequentially or in parallel, continuously or intermittently. In at least one embodiment, the terms "system" and "method" are used interchangeably herein, as long as the system can embody one or more methods and the method can be considered a system.
[0078] In this document, reference may be made to obtaining, acquiring, receiving or inputting analog or digital data into a subsystem, a computer system or a computer-implemented machine. In at least one embodiment, the process of obtaining, acquiring, receiving or inputting analog and digital data may be accomplished in various ways, such as by receiving data as a parameter of a function call or a call to an application programming interface. In at least one embodiment, the process of obtaining, acquiring, receiving or inputting analog or digital data may be accomplished by transmitting data via a serial or parallel interface. In at least one embodiment, the process of obtaining, acquiring, receiving or inputting analog or digital data may be accomplished by transmitting data from a providing entity to an acquiring entity via a computer network. In at least one embodiment, reference may also be made to providing, outputting, transmitting, sending or presenting analog or digital data. In different examples, the process of providing, outputting, transmitting, sending or presenting analog or digital data may be accomplished by transmitting data as an input or output parameter of a function call, a parameter of an application programming interface or an inter-process communication mechanism.
[0079] Although the description herein sets forth example embodiments of the described technology, other architectures may be used to implement the described functionality and are intended to be within the scope of the present disclosure. In addition, although a specific distribution of responsibilities may be defined above for descriptive purposes, the various functions and responsibilities may be distributed and divided in different ways depending on the environment.
[0080] In addition, although the subject matter has been described in language specific to structural features and / or methodological acts, it is to be understood that the subject matter claimed in the appended claims is not necessarily limited to the specific features or acts described. Instead, the specific features and acts are disclosed as exemplary forms of implementing the claims.
Claims
1. A system for global bandwidth-aware adaptive routing in network communications, comprising: At least one switch for determining an event associated with a change in network bandwidth between a local host and a remote host and providing a routing protocol for the network communication, the routing protocol to be used to modify adaptive routing in the at least one switch to select from different routes for the network communication between the local host and the remote host.
2. The system of claim 1, wherein the event is a failed or congested link in the different routes between the local host and the remote host, the failed or congested link causing a change in the network bandwidth between the local host and the remote host.
3. The system of claim 1, wherein the routing protocol is associated with a Border Gateway Protocol (BGP), the Border Gateway Protocol (BGP) enabling communication of the event between the at least one switch and other switches in the network communication.
4. The system of claim 1, wherein the routing protocol includes a conversion feature for converting the event into a weighted value and includes a modification feature for performing a modification of the adaptive route using the weighted value.
5. The system of claim 1 , wherein the modification of the adaptive routing comprises: A weight change of a plurality of next hops of the different routes is provided for the network communication between the local host and the remote host, wherein the weight change removes at least one of the plurality of next hops.
6. The system of claim 1, wherein the at least one switch includes an interface for receiving instructions to enable determination of the event associated with a change in the network bandwidth and to enable determination of the routing protocol for use with the network communications.
7. The system of claim 1, wherein the at least one switch is within a predetermined hop distance from the remote host and includes an adaptive routing algorithm, the at least one switch further configured to: receiving the event in a communication associated with the remote host; and At least one of a plurality of next hops for the remote host is removed based in part on the communication as part of the routing protocol to provide modification of the adaptive routing in the at least one switch.
8. A system comprising: One or more circuits, the one or more circuits associated with at least one switch, for determining an event associated with a change in network bandwidth between a local host and a remote host and providing a routing protocol for the network communication, the routing protocol to be used to modify adaptive routing in the at least one switch to select from different routes for the network communication between the local host and the remote host.
9. The system of claim 8, wherein the event is a failed or congested link in the different routes between the local host and the remote host, the failed or congested link causing a change in the network bandwidth between the local host and the remote host.
10. The system of claim 8, wherein the routing protocol is associated with a Border Gateway Protocol (BGP), the Border Gateway Protocol enabling communication of the event between the at least one switch and other switches in the network communication.
11. The system of claim 8, wherein the routing protocol includes a conversion feature for converting the event into a weighted value and includes a modification feature for performing a modification of the adaptive route using the weighted value.
12. The system of claim 8, wherein the modification of the adaptive routing comprises: A weight change of a plurality of next hops of the different routes is provided for the network communication between the local host and the remote host, wherein the weight change removes at least one of the plurality of next hops.
13. The system of claim 8, wherein the one or more circuits are further configured to: Instructions are received to enable determination of the event associated with a change in the network bandwidth and to enable determination of the routing protocol to use for the network communications.
14. The system of claim 8, wherein the at least one switch is within a predetermined hop distance from the remote host and includes an adaptive routing algorithm, the one or more circuits further configured to: receiving the event in a communication associated with the remote host; and At least one of a plurality of next hops for the remote host is removed based in part on the communication as part of the routing protocol to provide modification to the adaptive route.
15. A method for global bandwidth-aware adaptive routing in network communications, comprising: determining, using at least one switch, an event associated with a change in network bandwidth between a local host and a remote host; providing a routing protocol to be used to modify adaptive routing based in part on the event; as well as Routing is enabled between the local host and the remote host using one of a plurality of different routes between the local host and the remote host, the routing being based in part on modifying the adaptive route to select the one of the plurality of different routes.
16. The method of claim 15, wherein the event is a failed or congested link in the different routes between the local host and the remote host, the failed or congested link causing a change in the network bandwidth between the local host and the remote host.
17. The method of claim 15, wherein the routing protocol is associated with a Border Gateway Protocol (BGP), the Border Gateway Protocol (BGP) enabling communication of the event between the at least one switch and other switches in the network communication.
18. The method of claim 15, further comprising: Using a conversion feature of the routing protocol, converting the event into a weighted value; as well as Modification of the adaptive route is performed using a modification feature of the routing protocol that uses the weighted values in an algorithm associated with the adaptive route.
19. The method of claim 15, further comprising: receiving an instruction via an interface associated with the at least one switch; enabling determination of said event associated with a change in said network bandwidth; as well as A determination of the routing protocol to be used for the network communications is enabled.
20. The method of claim 15, further comprising: determining the at least one switch based in part on a predetermined hop distance from the remote host, the at least one switch comprising an adaptive routing algorithm; receiving the event in a communication from the remote host to the at least one switch; as well as At least one of a plurality of next hops for the remote host is removed based in part on the communication as part of the routing protocol to provide for modification of the adaptive routing in the at least one switch.
Citation Information
Cited By
Global bandwidth-aware adaptive routing
US20260222332A1