Network power management

By predicting energy type usage parameters and identifying redundant links within network topology data, the method effectively manages network power consumption, optimizing energy usage while maintaining network performance.

WO2025072272A1PCT designated stage expired Publication Date: 2025-04-03JUNIPER NETWORKS INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/US2024/048321
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-26
Filing Date
2024-09-25
Publication Date
2025-04-03

AI Technical Summary

Technical Problem

Current network power management systems struggle to efficiently manage energy consumption in networks, particularly in determining energy-efficient network devices and optimizing network topology for reduced power usage.

Method used

The method involves receiving network topology data and historical energy data to predict energy type usage parameters of network devices, identifying redundant network links, and performing power management actions based on these predictions and analyses.

Benefits of technology

This approach helps conserve energy by identifying and optimizing energy usage patterns, reducing power consumption while maintaining network performance and throughput requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2024048321_03042025_PF_FP_ABST
    Figure US2024048321_03042025_PF_FP_ABST
Patent Text Reader

Abstract

In some implementations, a network control point may manage power consumption in a network. Some aspects may involve adjusting a network topology to manage network power consumption. For example, the resulting network power or power type consumption may be less than or equal to a power or power type budget specified by a network administrator.
Need to check novelty before this filing date? Find Prior Art

Description

NETWORK POWER MANAGEMENTCROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This Patent Application claims priority to India Provisional Patent Application No. 202341064553, filed on September 26, 2023, and entitled "UTILIZING ENERGY SOURCE METRICS, GEOGRAPHICAL ENERGY DATA, AND NETWORK DEVICE ENERGY USAGE TO DETERMINE ENERGY EFFICIENT NETWORK DEVICES”; India Provisional Patent Application No. 202341064523, filed on September 26, 2023, and entitled “UTILIZING NETWORK TRAFFIC TO DETERMINE A NETWORK TOPOLOGY IN DIGITAL TWIN MODE THAT SATISFIES A NETWORK THROUGHPUT REQUIREMENT”; India Provisional Patent Application No. 202341064504, filed on September 26, 2023, and entitled “A SELF-LEARNING SYSTEM TO ADJUST RESILIENCY FACTOR”; India Provisional Patent Application No. 202341064501, filed on September 26, 2023, and entitled “DEAD LINK DETECTION”; and India Provisional Patent Application No. 202341064554, filed on September 26, 2023, and entitled “ENERGY-SENSITIVE LOW-POWER NETWORK.” The disclosures of the pnor Applications are considered part of and are incorporated by reference into this Patent Application.BACKGROUND

[0002] Multiple network devices (e.g., routers, switches, and / or the like) may comprise a network. The network devices may transmit network traffic in the network over links that connect the network devices to each other. One or more links may form a path between two network devices in a network.SUMMARY

[0003] Some implementations described herein relate to a method. The method may include receiving network topology data of a network. The method may include receiving historical energy data associated with a network device in the network. The method may include identifying, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device. The method may include performing a power management action based on the predicted energy type usage parameter.

[0004] Some implementations described herein relate to a device. The device may include one or more memories and one or more processors. The one or more processors may be configured to receive network topology data of a network. The one or more processors may be configured to receive historical energy data associated with a network device in a network. The one or more processors may be configured to identify, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device. The one or more processors may be configured to identify, based on one or more weights of one or more network links of the network, a predicted network disruption factor. The one or more processors may be configured to perform a power management action based on the predicted network disruption factor.

[0005] Some implementations described herein relate to a non-transitory computer-readable medium that stores a set of instructions. The set of instructions, when executed by one or more processors of a device, may cause the device to receive network topology data of a network. The set of instructions, when executed by one or more processors of the device, may cause the device to receive historical energy data associated with a network device in a network. The set of instructions, when executed by one or more processors of the device, may cause the device to identify, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device. The set of instructions, when executed by one or more processors of the device, may cause the device to configure the network based on the predicted energy type usage parameter and one or more weights of one or more network links of the network.

[0006] Some implementations described herein relate to a method. The method may include receiving network topology data of a network. The method may include receiving network throughput data of the network. The method may include identifying, based on the network topology data and the network throughput data, one or more redundant network links in the network. The method may include performing a power-saving action based on the one or more redundant network links.

[0007] Some implementations described herein relate to a device. The device may include one or more memories and one or more processors. The one or more processors may be configured to receive network topology data of a network. The one or more processors may be configured to receive network throughput data of the network. The one or more processors may be configured to identify, based on the network topology data and the network throughput data, one or more redundant network links in the network. The one or more processors may be configured to perform a network link shutdown based on the one or more redundant network links.

[0008] Some implementations described herein relate to a non-transitory computer-readable medium that stores a set of instructions. The set of instructions, when executed by one or more processors of a device, may cause the device to receive network topology data of a network. The set of instructions, when executed by one or more processors of the device, may cause the device to receive network throughput data of the network. The set of instructions, when executed by one or more processors of the device, may cause the device to identify, based on the network topology data and the network throughput data, one or more redundant network links in the network. The set of instructions, when executed by one or more processors of the device, may cause the device to perform a power-saving action based on the one or more redundant network links.

[0009] Some implementations described herein relate to a method. The method may include receiving network topology data of a network. The method may include receiving network throughput data of the network. The method may include identifying, based on the network topology data and the network throughput data, a redundancy factor associated with the network. The method may include performing a power-saving action based on the redundancy factor.

[0010] Some implementations described herein relate to a device. The device may include one or more memories and one or more processors. The one or more processors may be configured to receive network topology data of a network. The one or more processors may be configured to receive network throughput data of the network. The one or more processors may be configured to identify, based on the network topology data and the network throughput data, a redundancy factor that indicates a quantity of redundant network links in the network to which a power-saving action is applicable. The one or more processors may be configured to perform the power-saving action based on the redundancy factor.

[0011] Some implementations described herein relate to a non-transitory computer-readable medium that stores a set of instructions. The set of instructions, when executed by one or more processors of a device, may cause the device to receive network topology data of a network. The set of instructions, when executed by one or more processors of the device, may cause the device to receive network throughput data of the network. The set of instructions, when executed by one or more processors of the device, may cause the device to identify a plurality of paths between two network devices in the network, wherein at least two paths of the plurality of paths are associated with equal costs. The set of instructions, when executed by one or more processors of the device, may cause the device to identify, based on the network topology data and the network throughput data, a redundancy factor associated with the network. The set of instructions, when executed by one or more processors of the device, may cause the device to perform a power-saving action based on the redundancy factor.

[0012] Some implementations described herein relate to a method. The method may include receiving network topology data of a network. The method may include receiving network throughput data of the network. The method may include identifying, based on the network topology data and the network throughput data, a network routing participation factor associated with the network. The method may include performing a power-saving action based on the network routing participation factor.

[0013] Some implementations described herein relate to a device. The device may include one or more memories and one or more processors. The one or more processors may be configured to receive network topology data of a network. The one or more processors may be configured to receive network throughput data of the network. The one or more processors may be configured to identify, based on the network topology data and the network throughput data, a network routing participation factor that indicates a routing activity level of a network link in a path in the network. The one or more processors may be configured to perform a power-saving action based on the network routing participation factor.

[0014] Some implementations described herein relate to a non-transitory computer-readable medium that stores a set of instructions. The set of instructions, when executed by one or more processors of a device, may cause the device to receive network topology data of a network. The setof instructions, when executed by one or more processors of the device, may cause the device to receive network throughput data of the network. The set of instructions, when executed by one or more processors of the device, may cause the device to identify, based on the network topology data and the network throughput data, a network routing participation factor associated with the network. The set of instructions, when executed by one or more processors of the device, may cause the device to identify a plurality of paths between two network devices in the network. The set of instructions, when executed by one or more processors of the device, may cause the device to perform a powersaving action based on the network routing participation factor.

[0015] Some implementations described herein relate to a method. The method may include receiving network topology data of a network. The method may include receiving energy cost data of the network. The method may include identifying, based on the network topology data and the energy cost data, energy cost routing table information associated with the network. The method may include performing a power-saving action based on the energy cost routing table information.

[0016] Some implementations described herein relate to a device. The device may include one or more memories and one or more processors. The one or more processors may be configured to receive network topology data of a network. The one or more processors may be configured to receive energy cost data of the network. The one or more processors may be configured to identify one or more energy cost shortest paths associated with a network device in the network. The one or more processors may be configured to identify, based on the network topology data and the energy cost data, energy cost routing table information associated with the network. The one or more processors may be configured to perform a power-saving action based on the energy cost routing table information.

[0017] Some implementations described herein relate to a non-transitory computer-readable medium that stores a set of instructions. The set of instructions, when executed by one or more processors of a device, may cause the device to receive network topology data of a network. The set of instructions, when executed by one or more processors of the device, may cause the device to receive energy cost data of the network. The set of instructions, when executed by one or more processors of the device, may cause the device to identify, based on the network topology data and the energy cost data, energy cost routing table information associated with the network. The set of instructions, when executed by one or more processors of the device, may cause the device to perform a power-saving action based on the energy cost routing table information.BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Fig. 1 is a diagram of an example implementation associated with a predicted energy type usage parameter.

[0019] Fig. 2 is a diagram of an example implementation associated with network control point modules for predicted energy type usage parameter identification.

[0020] Fig. 3 is a diagram of an example implementation associated with a flow involving the predicted energy type usage parameter.

[0021] Fig. 4 is a diagram of an example implementation associated with redundant network link identification.

[0022] Fig. 5 is a diagram of an example implementation associated with network control point modules for redundant network link identification.

[0023] Fig. 6 is a diagram of an example implementation associated with redundancy factor identification.

[0024] Fig. 7 is a diagram of an example implementation associated with network control point modules for redundancy factor identification.

[0025] Fig. 8 is a diagram of an example implementation associated with network routing participation factor identification.

[0026] Fig. 9 is a diagram of an example implementation associated with network control point modules for redundant network link identification.

[0027] Fig. 10 is a diagram of an example implementation associated with energy cost routing table information identification.

[0028] Fig. 11 is a diagram of an example implementation associated with network control point modules for energy cost routing table information identification.

[0029] Fig. 12 is a diagram of an example environment in which systems and / or methods described herein may be implemented.

[0030] Fig. 13 is a diagram of example components of a device associated with network power conservation.

[0031] Fig. 14 is a flowchart of an example process associated with predicted energy type usage parameter identification.

[0032] Fig. 15 is a flowchart of an example process associated with redundant network link identification.

[0033] Fig. 16 is a flowchart of an example process associated with redundancy factor identification.

[0034] Fig. 17 is a flowchart of an example process associated with network routing participation factor identification.

[0035] Fig. 18 is a flowchart of an example process associated with energy cost routing table information identification.DETAILED DESCRIPTION

[0036] The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings may identify the same or similar elements.

[0037] Aspects provided herein relate to power management in a network. Some aspects may involve adjusting a network topology to manage network power consumption. For example, the resulting network power or power type consumption may be less than or equal to a power or power type budget specified by a network administrator. Five examples are provided herein for managing network power consumption. Example 1 relates to managing network power consumption using a predicted energy type usage parameter. Example 2 relates to reducing network power consumption using one or more redundant network links. Example 3 relates to reducing network power consumption using a redundancy factor. Example 4 relates to reducing network power consumption using a network routing participation factor. Example 5 relates to reducing network power consumption using energy cost routing table information. Each example is discussed in turn below.EXAMPLE 1

[0038] Packets traveling from one point to another in the Internet can traverse various network devices (e.g., routers) located in data centers. Many modem data centers derive at least some power for the network devices from renewable (e.g., “green”) power sources. For example, a data center may use solar power for some or all of the energy requirements of the network devices. Energyconscious consumers may prefer routing paths that extend through green-energy network devices located in such data centers over routing paths that extend through non-green-energy network devices.

[0039] For example, three routing paths may be available from a first network device to a second network device. At a given point in time, a first routing path may consume 0% renewable energy and 100% non-renewable energy, a second routing path may consume 20% renewable energy and 80% non-renewable energy, and a third routing path may consume 80% renewable energy and 20% non- renewable energy. At the given point in time, packets traversing the first routing path may consume the least amount of green energy.

[0040] However, the percentage of renewable energy consumed by each routing path may vary over time (e.g., due to weather, location, or the like). For example, hydroelectric plants may be more efficient during the wet season than the dry season. Similarly, data centers that use solar energy may be considered “green” only during the daytime. For example, if the first routing path and the third routing path are both powered by solar electricity but located on opposite sides of the Earth, then the first routing path may become “green” during nighttime at the third routing path.

[0041] Manual tracking and administration of renewable energy consumption variability in a network is a tedious task that can consume excessive computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like. For example, because any modifications to a network configuration to meet renewable energy consumption requirements for the network may implicate changes to network device routing rules and / or policies and directly affect network performance metrics, such manual tracking and administration may involve monitoring and modification of the network performance metrics (e g., network bandwidth, network throughput, traffic speed, network latency, and / or the like).

[0042] Some implementations described herein predict a “green quotient” of a network device in a network. The green quotient may indicate an amount of green energy consumed, compared to an overall energy consumed at a given point in time. The green quotient may vary with time and / or other factors, such as a geolocation of the network device. In some implementations, a machine learning model may predict the green quotient of the network device using one or more of energy source metrics, geographical -region-specific energy data, network device energy usage, or the like In some implementations, the network may be configured based on the green quotient.

[0043] As a result, predicting the green quotient may help to conserve computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like that would otherwise have been consumed based on manual tracking and administration of renewable energy consumption variability in a network, monitoring and modification of network performance metrics (e.g., network bandwidth, network throughput, traffic speed, network latency, and / or the like), changing network device routing rules and / or policies that directly affect the network performance metrics, and / or the like. Moreover, the green quotient may help to achieve a level of renewable energy consumption provided in a service level agreement. Thus, the green quotient may help to increase (e.g., maximize) a “greenness” of the network.

[0044] Fig. 1 is a diagram of an example implementation 100 associated with a predicted energy type usage parameter. As shown in Fig. 1, example implementation 100 includes a network control point 110, a network 120, and network devices 130(l)-130(M). These devices are described in more detail below in connection with Fig. 12 and Fig. 13.

[0045] As shown by reference number 140, the network 120 may transmit, and the network control point 110 may receive, network topology data of the network 120. For example, the network topology data may indicate a network topology of the network 120, including the network devices 130(l)-130(M). The network topology data may be based on configurations of the network devices 130(l)-130(M) that are probed or otherwise discovered by the network control point 110 and / or dynamic telemetry data exported by the network devices 130(l)-130(M).

[0046] In some examples, the network control point 110 may use the network topology data to create a digital twin of the network topology. For example, the digital twin (e.g., a “twinned network topology”) may represent the network topology. For example, the digital twin may be an emulated or virtual representation or version of the actual, physical network topology. The network control point 110 may use the digital twin to test pre-flight configurations and / or routing decisions without affecting the actual, physical network topology. For example, the network control point 110 may use the digital twin to analyze, diagnose, emulate, and / or control the network 120 based on data, models, interfaces, or the like. In some examples, the network control point 110 may periodically scan and / or determine (e.g., using a machine learning model) the network topology of the network 120 and update the digital twin in accordance with any recent changes to the network topology.

[0047] As shown by reference number 150, the network 120 may transmit, and the network control point 110 may receive, historical energy data associated with a network device 130 in the network 120. Additionally, or alternatively, the network control point 110 may receive the historical energy data from other sources, such as energy grid data providers. The historical energy data may be associated with the network device 130 in that the historical energy data may indicate past energy usage by the network device 130. For example, the historical energy data may include energy source metrics (e.g., one or more sources of energy consumed by the network device 130), geographical- region-specific energy data (e.g., how network devices located in the same geographical region as network device 130 tend to consume energy), energy usage of the network device 130, or the like.

[0048] As shown by reference number 160, the network control point 110 may identify, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device 130. The predicted energy type usage parameter (e.g., a green quotient) may indicate a level of energy of one or more energy types that the network device 130 is predicted to consume over a given time window. For example, the one or more energy types may include renewable and / or clean energy (e.g., “green” energy). Thus, the predicted energy type usage parameter may predict a “greenness” of the network device 130 for the given time window. In some examples, the network control point 110 may use machine learning techniques to identify the predicted energy type usage parameter of the network device 130. For example, a machine learning model of the network control point 110 may take the network topology data and the historical energy data as inputs and output the predicted energy type usage parameter.

[0049] In some aspects, the predicted energy type usage parameter may include a ratio of an amount of energy of an energy type predicted to be consumed by the network device 130 to a total amount of energy predicted to be consumed by the network device 130. For example, the predicted energy type usage parameter may be a ratio of total green energy used by the network device 130 against the total energy consumed by the network device 130 as measured in a given time window. For example, the predicted energy type usage parameter of the network device 130 being 70 for the next hour may indicate that the network device 130 will consume more green energy than “grey” energy (e.g., non-renewable or non-clean energy).

[0050] In some aspects, the network control point 110 may identify, based on one or more weights of one or more network links of the network 120, a predicted network disruption factor. In some examples, the network control point may generate the one or more weights based on the predicted energy type usage parameter. The predicted network disruption factor may indicate a predicted level of disruption to the network 120 that would be caused by the one or more weights if the one or more weights were configured on the network 120. For example, the predicted network disruption factor may indicate a disruption to network performance metrics caused by a proposed modification to network route weights and / or routing based on the predicted network disruption factor.

[0051] In some aspects, the predicted network disruption factor may include a ratio of a predicted network disruption metric that is based on the one or more weights to a reference network disruption metric. For example, the network control point 110 may calculate the predicted network disruption factor as a ratio of a new metric value (e.g., a metric value based on the one or more weights) against a required (e.g., reference) metric value. A disruption factor having a value of less than one may indicate that routing modifications predicted to make the network 120 greener will have negative effects, and a disruption factor having a value of greater than one may indicate that routing modifications predicted to make the network 120 greener will have positive effects. For example, if the predicted network disruption factor for a new routing modification suggestion is 0.9, then the corresponding network metric may be predicted to be negatively affected by a margin of 10%.

[0052] In some aspects, the predicted network disruption factor may include a predicted bandwidth disruption factor. For example, the predicted bandwidth disruption factor may predict a level of disruption to the bandwidth in the network 120 due to the one or more weights.

[0053] In some aspects, the predicted network disruption factor comprises a predicted throughput disruption factor. For example, the predicted throughput disruption factor may predict a level of disruption to the throughput in the network 120 due to the one or more weights.

[0054] In some aspects, the predicted network disruption factor comprises a predicted traffic speed disruption factor. For example, the predicted traffic speed disruption factor may predict a level of disruption to the traffic speed in the network 120 due to the one or more weights.

[0055] In some aspects, the predicted network disruption factor comprises a predicted traffic latency disruption factor. For example, the predicted traffic latency disruption factor may predict a level of disruption to the traffic latency in the network 120 due to the one or more weights.

[0056] As shown by reference number 170, the network control point 110 may perform a power management action based on the predicted energy type usage parameter. For example, the network control point 110 may identify the one or more weights based on the predicted energy type usage parameter, such that the one or more weights influence network routing to use greener network devices for traffic routing. For example, the network control point 110 may select network paths that contain network devices 130 having a high share of green (e.g., renewable) energy sources. Thus, the network 120 may use renewable or clean energy to route the network traffic.

[0057] In some aspects, performing the power management action may include configuring (e.g., modifying) the network 120 based on one or more weights of one or more network links of the network 120. For example, the network control point may identify the one or more weights based on the predicted energy type usage parameter, generate a configuration based on the one or more weights, and push the configuration to the network devices 130(l)-130(M).

[0058] In some aspects, the network control point 110 may generate a recommendation based on the predicted energy type usage parameter. For example, the network control point 110 may recommend the predicted energy type usage parameter (e.g., with a network policy comprising theone or more weights) to a network administrator. Additionally, or alternatively, the network control point 110 may indicate the predicted network disruption factor to the network administrator. In some examples, the network administrator may validate, review, and accept or reject the recommendation. If the recommendation is accepted, then the network control point 110 may generate a configuration and push the configuration to the network devices 130( 1)- 130(M) .

[0059] In some aspects, the network control point 110 may configure the network 120 based on a configured predicted network disruption factor threshold. The configured predicted network disruption factor threshold may be configured by a network administrator, and may indicate whether a policy (e.g., a policy comprising the one or more weights) are to be automatically applied. For example, the network administrator may configure automated acceptance of recommendations on weekends or on explicit dates if the configured predicted network disruption factor threshold (e.g., a performance disruption margin range) is within 25-50%. Additionally, or alternatively, the network administrator may configure automated acceptance of recommendations only if the configured predicted network disruption factor threshold (e.g., a performance disruption margin) is less than 10%.

[0060] As indicated above, Fig. 1 is provided as an example. Other examples may differ from what is described with regard to Fig. 1. The number and arrangement of devices shown in Fig. 1 are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 1. Furthermore, two or more devices shown in Fig. 1 may be implemented within a single device, or a single device shown in Fig. 1 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) shown in Fig. 1 may perform one or more functions described as being performed by another set of devices shown in Fig. 1.

[0061] Fig. 2 is a diagram of an example implementation 200 associated with network control point modules for predicted energy type usage parameter identification. As shown in Fig. 2, example implementation 200 includes the network control point 110, the network 120, and the network devices 130(l)-130(6).

[0062] As shown by reference number 205, the network devices 130(l)-130(6) may transmit, and a telemetry collector 210 of the network control point 110 may receive, one or more energy usage metrics. For example, the energy usage metrics may include historical energy data associated with the network devices 130( 1 )- 130(6) . The network control point 110 may store the energy usage metrics in a metric database 215 of the network control point 110.

[0063] A green quotient predictor 220 of the network control point 110 may receive, as input, the energy usage metrics from the metric database 215 The green quotient predictor 220 may also receive, as input, energy grid data from an energy grid data provider 225. The energy grid data may include, for example, one or more geographical locations of the network devices 130( 1)- 130(6) . The green quotient predictor 220 may generate (e.g., using machine learning techniques) a green quotientand provide the green quotient to a green routes discovery service 230 of the network control point 110. The green quotient may be the predicted energy type usage parameter.

[0064] As shown by reference number 235, the network devices 130(l)-130(6) may transmit, and a routing information base (RIB) 240 of the network control point 110 may receive, routing table entries of the network devices 130(l)-130(6). The green routes discovery service 230 may receive the routing table entries. The green routes discovery service 230 may identify one or more green routes based on the green quotient and the routing table entries. The one or more green routes may be energy-efficient routes, such as renewable-energy-based routes.

[0065] The green routes discovery service 230 may indicate the one or more green routes to a green route recommender 245 of the network control point 110. The green route recommender 245 may provide a recommendation of the one or more green routes to a user device 250. For example, the user device 250 may be used by a network administrator. The network administrator may accept the recommendation, and the green route recommender 245 may indicate the one or more green routes to a network configuration manager 255 of the network control point 110.

[0066] As shown by reference number 260, the network configuration manager 255 may configure the network devices 130( 1)- 130(6) with an updated network topology. In some examples, before configuring the network devices 130( 1)- 130(6) with the updated network topology, the network configuration manager 255 may receive a current network topology of the network devices 130(1)- 130(6).

[0067] As indicated above, Fig. 2 is provided as an example. Other examples may differ from what is described with regard to Fig. 2. The number and arrangement of devices shown in Fig. 2 are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 2. Furthermore, two or more devices shown in Fig. 2 may be implemented within a single device, or a single device shown in Fig. 2 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g ., one or more devices) shown in Fig. 2 may perform one or more functions described as being performed by another set of devices shown in Fig. 2.

[0068] Fig. 3 is a diagram of an example implementation 300 associated with a flow involving the predicted energy type usage parameter.

[0069] As shown by reference number 310, the network control point 110 may collect energy telemetry data of a network device in a network. For example, the energy telemetry data may include historical energy data of the network device. As shown by reference number 320, the network control point 110 may scan a network topology and create a digital twin of the topology. For example, the network control point 110 may receive network topology data of the network

[0070] As shown by reference number 330, the network control point 110 may predict a green quotient of the network device. For example, the green quotient may be a predicted energy type usage parameter for the network device. As shown by reference number 340, the network control point 110may determine a new routing link weight (e.g., a routing link cost). For example, the network control point 110 may identify one or more weights of one or more network links in the network. As shown by reference number 350, the network control point 110 may calculate one or more network performance disruption factors. For example, the one or more network performance disruption factors may be one or more predicted network disruption factors.

[0071] As shown by reference number 360, the network control point 110 may recommend the green quotient and an associated performance disruption cost to a network administrator or a network administrator function. For example, the associated performance disruption cost may be based on the one or more network performance disruption factors. The network administrator function may comprise configured thresholds that, if satisfied, enable the network control point 110 to automatically configure the network in accordance with the recommendation.

[0072] As shown by reference number 370, the network administrator or the network administrator function may evaluate the recommendation(s) per a network policy. As shown by reference number 380, the network administrator or the network administrator function may determine whether or not to accept the recommendation(s). As shown by reference number 390, if the network administrator or the network administrator function accepts the recommendation(s), then the network control point 110 may generate a configuration and push the configuration to the network device. As shown by reference number 320, if the network administrator or the network administrator function does not accept the recommendation(s), then the network control point 110 may scan the network topology and create (e.g., update) a digital twin of the topology.

[0073] As indicated above, Fig. 3 is provided as an example. Other examples may differ from what is described with regard to Fig. 3.

[0074] The predicted energy type usage parameter may help to conserve computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like that would otherwise have been consumed based on manual tracking and administration of renewable energy consumption variability in a network, monitoring and modification of network performance metrics (e.g., network bandwidth, network throughput, traffic speed, network latency, and / or the like), changing network device routing rules and / or policies that directly affect the network performance metrics, and / or the like. Moreover, the predicted energy type usage parameter may help to achieve a level of renewable energy consumption provided in a service level agreement. Thus, the predicted energy type usage parameter may help to increase (e.g., maximize) a “greenness” of the network.EXAMPLE 2

[0075] A network may be configured for a maximum throughput to handle peak traffic scenarios. However, a network does not always operate at the maximum configured throughput since the required network traffic throughput varies with time. For example, during weekends, holidays, and / or the like, the required network traffic throughput may be less than the maximum configuredthroughput. Maintaining the network for the maximum configured throughput can consume excessive power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like when the required network traffic throughout is less than the maximum configured throughput. Network administrators may manually analyze network traffic data to determine dynamic throughput requirements for the network and to identify network links to disable. However, statically or manually configuring a throughput requirement for a network is a tedious task and may be unsuitable for handling peak traffic scenarios.

[0076] Some implementations described herein use network traffic telemetry data to determine a network topology in a digital twin mode that satisfies a network throughput requirement in real time. In some examples, after generating the digital twin network, a system may receive a required network throughput in real time and determine, based on the required network throughput, a new network topology that reduces power consumption by the network while maintaining the required network throughput. The system may identify, in the network topology, redundant links that consume excessive power, and may disable the identified links for a period of time.

[0077] As a result, using the network traffic telemetry data to identify the redundant links may help to conserve computing resources, networking resources, and / or the like that would otherwise have been consumed based on performing route lookups for traffic associated with statically or manually configuring a network throughput requirement that is unsuitable for handling peak traffic scenarios, losing traffic during peak traffic scenarios due to configuring an unsuitable network throughput requirement, providing poor user experience during peak traffic scenarios due to configuring an unsuitable network throughput requirement, and / or the like.

[0078] Fig. 4 is a diagram of an example implementation 400 associated with redundant network link identification. As shown in Fig. 4, example implementation 400 includes a network control point 110, a network 120, and network devices 130(l)-130(M).

[0079] As shown by reference number 410, the network 120 may transmit, and the network control point 110 may receive, network topology data of the network 120. For example, the network topology data may indicate a network topology of the network 120, including the network devices 130(l)-130(M). The network topology data may be based on configurations of the network devices 130(l)-130(M) that are probed or otherwise discovered by the network control point 110 and / or dynamic telemetry data exported by the network devices 130(l)-130(M).

[0080] In some examples, the network control point 110 may use the network topology data to create a digital twin of the network topology. For example, the digital twin (e.g., a “twinned network topology”) may represent the network topology. For example, the digital twin may be an emulated or virtual representation or version of the actual, physical network topology. The network control point 110 may use the digital twin to test pre-flight configurations and / or routing decisions without affecting the actual, physical network topology. For example, the network control point 110 may use the digital twin to analyze, diagnose, emulate, and / or control the network 120 based on data, models,interfaces, or the like. In some examples, the network control point 110 may periodically scan and / or determine (e.g., using a machine learning model) the network topology of the network 120 and update the digital twin in accordance with any recent changes to the network topology.

[0081] As shown by reference number 420, the network 120 may transmit, and the network control point 110 may receive, network throughput data of the network 120. The network throughput data may indicate real-time network throughput of the network devices 130(l)-130(M). For example, the network throughput data may indicate how much network traffic is being routed by each of the network devices 130(l)-130(M).

[0082] As shown by reference number 430, the network control point 110 may identify, based on the network topology data and the network throughput data, one or more redundant network links (RDLs) in the network 120. Two network links may be “redundant” if both network links can carry network traffic from the same source network device to the same destination network device. In some examples, the network control point 110 may use the network throughput data to determine a required network throughput. The network control point 110 may discover a new network topology that reduces the overall power consumed by the network 120 while maintaining the required network throughput.

[0083] In some examples, the digital twin network may include a weighted graph (G) of a network fabric (e g., a network topology graph representing the network topology of the network 120). The network control point 110 may determine required network links (RQLs) of the network as a set of edges required to satisfy the required network throughput. Additionally, or alternatively, the network control point 110 may determine RDLs of the network as a set of edges on which power-savmg actions may be performed. The network control point 110 may generate an output that includes the weighted graph with network links and / or edges having numbers indicating whether one or more power-saving actions are to occur.

[0084] In some aspects, the network control point 110 may identify a path in the network 120 as an only path between two network devices 130 in the network 120, and add a network link in the path to a set of one or more RQLs in the network. For example, upon determining that the quantity of paths between two network devices is equal to one, the network control point 110 may add the network link(s) of the path to a list of RQLs.

[0085] In some aspects, the network control point 110 may identify a path in the network 120 as one of a plurality of paths between two network devices 130 in the network 120. For example, the network control point 110 may determine that the quantity of paths between two network devices is greater than one.

[0086] In some aspects (e g., where the path is one of a plurality of paths), the network control point 110 may identify a throughput of the path as being less than a throughput threshold. For example, the throughput may be below a required throughput. The network control point 110 may add, based on the throughput being less than the throughput threshold, a network link in the path to aset of the one or more RDLs. For example, upon determining that the throughput is less than the throughput threshold, the network control point 110 may add the network link(s) of the path to a list of RDLs.

[0087] In some aspects (e.g., where the path is one of a plurality of paths), the network control point 110 may identify a throughput of the path as being equal to or greater than a throughput threshold. For example, the throughput may be equal to or greater than a required throughput. The network control point 110 may add, based on the throughput being equal to or greater than the throughput threshold, a network link in the path to a set of the one or more RQLs. For example, upon determining that the throughput is equal to or greater than the throughput threshold, the network control point 110 may add the network link(s) of the path to a list of RQLs.

[0088] In some aspects, the network control point 110 may identify a set of candidate network links in the network 120 by removing, from the set of the one or more RDLs, the set of one or more RQLs in the network. For example, the network control point 110 may remove any RQLs from the list of RDLs. The set of candidate network links may be candidates for a power-saving action. In some examples, the set of candidate network links may be referred to as “thin links.”

[0089] In some aspects, the network control point 110 may identify one or more network link throughput participation factors of one or more RQLs in the network 120. The network link throughput participation factor(s) may indicate a participation level of the RQL(s) in achieving a network throughput. For example, the network link throughput participation factor for an RQL may be a quantity of occurrences of the RQL in the list of RQLs. In some examples, a network link throughput participation factor may be referred to as an “edge thickness factor” or “ETkF.”

[0090] In some aspects, the network control point 110 may identify one or more network link throughput participation factors of the one or more candidate network links. The network link throughput participation factor(s) may indicate a participation level of the candidate network link(s) in achieving a network throughput. For example, the network link throughput participation factor for a candidate network link may be based on a quantity of occurrences of the candidate network link in a list of the one or more candidate network links, traffic metrics, user configured traffic metric thresholds, or the like. In some examples, a network link throughput participation factor may be referred to as an “edge thinness factor” or “ETnF.” In some examples, the higher a value of a network link throughput participation factor, the lower the participation level of corresponding candidate network link (e.g., the “thinner” the corresponding candidate network link).

[0091] In some examples, the network control point 110 may assign an ETnF value to all network links of a network topology graph (e.g., the weighted graph G). For example, if a network link is in the list of the one or more candidate network links, then the network control point 110 may assign a positive ETnF value to the network link. If a network link is not in the list of the one or more candidate network links, then the network control point 110 may assign a negative ETnF value to the network link. Additionally, or alternatively, if the network link is not in the list of the one or morecandidate network links, then the network control point 110 may assign a positive ETkF value to the network link.

[0092] As shown by reference number 440, the network control point 110 may perform a powersaving action based on the one or more RDL. For example, the network control point 110 may configure the network 120 to consume less power based on the one or more RDLs. Thus, the network 120 may avoid using RDLs to route the network traffic.

[0093] In some aspects, the power-saving action may include a network link shutdown. For example, the network control point 110 may disable the one or more RDLs for a given period of time.

[0094] Example pseudocode associated with identifying the RDLs is provided as follows.Input: A weighted graph of a network fabricOutput: A graph of the network fabric with links and / or edges having numbers indicating a need for power-saving actions.Data structures:RQL: Set of edges required to meet fabric traffic needsRDL: Set of edges on which power-saving actions can be takenOperation # 1 :Identify all nodes of the graph G(F,£).V = {vl, v2, v3, ... , vn}.Operation #2:For every pair of nodes (w, v) of the graph G, perform operations 3 to 6. Go to operation 7.Operation #3 :Identify the set of paths between pair of nodes u and v.Puv = {set of paths between nodes u and v}Operation #4:When the number of paths between the nodes is greater than 1. Go to operation 5.When the number of paths between the nodes is equal to 1, add the links of the path to the list of RQL. Go to operation 3.Operation #5 :Find the paths in Puv having a throughput that is less than a required throughput (RT) and add the edges and / or links of those paths to the list of RDL.Pbelow = {set of paths having throughput < RT}Operation #6:Find the paths in Puv having a throughput that is greater than or equal to RT and add the edges and / or links of those paths to the list of RQL.Pabove = {set of paths having throughput >= RT}Operation #7 :Find the links in the topology that can be subjected to low power actions. These links may be referred to as “thin links.”Ethin = {RDL - RQL}Operation #8:Find an ETkF of the links of the RQL list, where ETkF is the number of occurrences of a link in the RQL list.ETkF = {Number of occurrences of link in RQL}Operation #9:Find an ETnF of the thin links of the Ethin list using a count of occurrences of a link in the Ethm link, any traffic metrics, and / or user configured traffic metric thresholds.The ETnF is a number indicating the participation level of the link in achieving the network throughput. The higher the value, the thinner the link and the lower the participation level. ETnF = {Number of occurrences of link in Ethin}Operation #10:Assign an ETnF to all links of the network topology graph.For each link in the graph G:If link is in the Ethin list, then assign an ETnF to the link.If link is not in the Ethin list, then assign a negative value of the ETnF to the link.Operation #11:Device power-saving action for the links having positive ETnF values A power-saving action may involve shutdown of the link for a certain period of time.

[0095] As indicated above, Fig. 4 is provided as an example. Other examples may differ from what is described with regard to Fig. 4. The number and arrangement of devices shown in Fig. 4 are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 4. Furthermore, two or more devices shown in Fig. 4 may be implemented within a single device, or a single device shown in Fig. 4 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e g , one or more devices) shown in Fig. 4 may perform one or more functions described as being performed by another set of devices shown in Fig. 4.

[0096] Fig. 5 is a diagram of an example implementation 500 associated with network control point modules for redundant network link identification. As shown in Fig. 5, example implementation 500 includes the network control point 110, the network 120, and the network devices 130(1)- 130(10).

[0097] As shown by reference number 510, the network devices 130(1)- 130( 10) may transmit, and a telemetry collector 520 of the network control point 110 may receive, network topology data and / or network throughput data. The network control point 110 may store the network topology data and / or network throughput data in a telemetry database 530 of the network control point 110.

[0098] In some examples, the network control point 110 may provide the network topology data and / or network throughput data to a machine learning pipeline 540. For example, the machine learning pipeline 540 may feed into a network configuration manager 550 of the network control point 110, which may provide the network topology data and / or network throughput data to a network topology twinner 560 of the network control point 110. The network topology twinner 560 may generate a weighted graph of the network 120.

[0099] A network throughput optimizer 570 of the network control point 110 may identify one or more redundant edges of the weighted graph, and a low power network engine 580 of the network control point 110 may map the one or more redundant edges to one or more redundant network links of the network 120. The low power network engine 580 may indicate the redundant network link(s) to the network configuration manager 550.

[0100] As shown by reference number 590, the network configuration manager 550 may configure the network devices 130(l)-130(10) with an updated network topology. For example, as shown, the network configuration manager 550 may configure a shutdown of two redundant network links in the network 120.

[0101] As indicated above, Fig. 5 is provided as an example. Other examples may differ from what is described with regard to Fig. 5. The number and arrangement of devices shown in Fig. 5 are provided as an example In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 5. Furthermore, two or more devices shown in Fig. 5 may be implemented within a single device, or a single device shown in Fig. 5 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g ., oneor more devices) shown in Fig. 5 may perform one or more functions described as being performed by another set of devices shown in Fig. 5.

[0102] Identifying the one or more redundant links may help to conserve computing resources, networking resources, and / or the like that would otherwise have been consumed based on performing route lookups for traffic associated with statically or manually configuring a network throughput requirement that is unsuitable for handling peak traffic scenarios, losing traffic during peak traffic scenarios due to configuring an unsuitable network throughput requirement, providing poor user experience during peak traffic scenarios due to configuring an unsuitable network throughput requirement, and / or the like.EXAMPLE 3

[0103] Network administrators can configure a significant number of redundant links to support resiliency and to handle traffic congestion. During peak hours - when network throughput is high - all of the links can be fully utilized. Elowever, during off-peak hours, weekends, and holidays - when the network utilization is low - maintaining all of the links in active states can result in underutilization of the network, which can lead to excessive energy usage attributable to at least some of the links that are permitted to remain in active states. Excessive energy usage can consume excessive power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like.

[0104] For example, in a three-stage leaf-spine Clos fabric containing two hosts Hl and H2, four leaf nodes, and four spine nodes, there may be 64 parallel paths between the hosts Hl and H2 (assuming that all links have an equal capability). During peak hours, network packets from the host Hl can take any of the 64 paths to reach the host H2. However, during periods of low data activity, all 64 paths may remain active even though sufficient connectivity between the hosts Hl and H2 may be achieved with lower levels of redundancy in the network. Thus, the three-stage leaf-spine Clos fabric may use excessive energy to maintain all 64 paths in an active state during non-peak hours.

[0105] Some implementations described herein enable a network-traffic-aware, automated, and dynamic redundancy link controller to use machine learning techniques to determine a time-bound redundancy factor for a network topology. The redundancy factor may indicate a minimum level of redundancy that will provide sufficient connectivity in a network for a given time window. The controller may, based on the redundancy factor, periodically detect redundant network links in the topology and deactivate the one or more redundant links. For example, the three-stage leaf-spine Clos fabric may provide sufficient connectivity during periods of low data activity with lower redundancy than 64 parallel paths. For example, a first topology of the Clos fabric, in which a path N has no redundant paths (“2V+0 redundancy”), may have a resiliency factor of zero and be the most energy efficient of all possible topologies of the Clos fabric. A resiliency factor may indicate a quantity of redundant paths in a network. A second topology of the Clos fabric, in which the path A' has one redundant path (“A+l redundancy”), may have a resiliency factor of one. A third topology of the Closfabric, in which the path A' has two redundant paths (‘W+2 redundancy”), may have a resiliency factor of two. In some examples, depending on the redundancy factor, the controller may convert an N+X redundant network into an N+Y redundant network. For example, at non-peak hours, the controller may convert a topology that includes all 64 parallel paths to a lower-redundancy topology.

[0106] As a result, the redundancy factor may help to reduce excessive energy usage in the network by enabling the controller to lower a quantity of redundant paths during non-peak hours. For example, the controller may disable one or more redundant paths for a given time window, which may enable the network to refrain from spending power on the one or more redundant paths during the given time window. Thus, the redundancy factor may help to conserve power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like.

[0107] Fig. 6 is a diagram of an example implementation 600 associated with redundancy factor identification. As shown in Fig. 6, example implementation 600 includes a network control point 110 (e.g., a controller), a network 120, and network devices 130(l)-130(M).

[0108] As shown by reference number 610, the network 120 may transmit, and the network control point 110 may receive, network topology data of the network 120. For example, the network topology data may indicate a network topology of the network 120, including the network devices 130(l)-130(M). The network topology data may be based on configurations of the network devices 130(l)-130(M) that are probed or otherwise discovered by the network control point 110 and / or dynamic telemetry data exported by the network devices 130(l)-130(M).

[0109] In some examples, the network control point 110 may use the network topology data to create a digital twin of the network topology. For example, the digital twin (e.g., a “twinned network topology”) may represent the network topology. For example, the digital twin may be an emulated or virtual representation or version of the actual, physical network topology. The network control point 110 may use the digital twin to test pre-flight configurations and / or routing decisions without affecting the actual, physical network topology. For example, the network control point 110 may use the digital twin to analyze, diagnose, emulate, and / or control the network 120 based on data, models, interfaces, or the like. In some examples, the network control point 110 may periodically scan and / or determine (e.g., using a machine learning model) the network topology of the network 120 and update the digital twin in accordance with any recent changes to the network topology.

[0110] As shown by reference number 620, the network 120 may transmit, and the network control point 110 may receive, network throughput data of the network 120. The network throughput data may indicate real-time network throughput of the network devices 130(l)-130(M). For example, the network throughput data may indicate how much network traffic is being routed by each of the network devices 130(l)-130(M).

[0111] As shown by reference number 630, the network control point 110 may identify, based on the network topology data and the network throughput data, a redundancy factor associated with thenetwork 120. The redundancy factor may indicate a minimum level of redundancy that will provide sufficient connectivity for a given time window. The redundancy factor may be associated with the network 120 in that the redundancy factor may indicate the minimum level of redundancy that will provide sufficient connectivity in the network 120 for the given time window.

[0112] In some aspects, the redundancy factor may indicate a quantity of redundant network links in the network 120 to which a power-saving action is applicable Two network links may be “redundant” if both network links can carry network traffic from the same source network device to the same destination network device. For example, upon learning or deriving a redundancy factor of 60% for the next two hours, the network control point 110 may identify the redundant links in the network 120 and consider 40% for the power-saving action. For example, if the network control point 110 identifies three redundant links in the network topology, then the network control point 110 may consider one of the redundant links for the power-saving action.

[0113] In some examples, the digital twin network may include a weighted graph (G) of a network fabric (e.g., a network topology graph representing the network topology of the network 120). The network control point 110 may determine required edges (RQEs) of the network 120 as a set of edges required to satisfy fabric traffic needs. Additionally, or alternatively, the network control point 110 may determine redundant edges (RDEs) of the network 120 as a set of edges on which power-saving actions may be performed. The network control point 110 may generate an output that includes the weighted graph with pruned redundant links.

[0114] In some aspects, the network control point 110 may identify a path in the network as an only path between two network devices 130 in the network 120, and add a network link in the path to a set of one or more required network links in the network. For example, upon determining that the quantity of paths between two network devices is equal to one, the network control point 110 may add the network link(s) (e.g., edge(s)) of the path to a list of RQEs.

[0115] In some aspects, the network control point 110 may identify a plurality of paths between two network devices 130 in the network 120. For example, the network control point 110 may determine that the quantity of paths between two network devices 130 is greater than one.

[0116] In some aspects, the network control point 110 may identify one or more shortest paths of the plurality of paths, and add a network link in the one or more shortest paths to a set of one or more required network links in the network 120. For example, upon determining that the quantity of paths between the two network devices 130 is greater than one, the network control point 110 may obtain the shortest path(s) between the two network devices 130 using Dijkstra’s algorithm, a forwarding information base (FIB), or the like. In some examples, the network control point 110 may check for equal cost multi-path (ECMP) paths (e.g., paths having an equal cost) by comparing respective sums of weights of the shortest paths. If there are no such ECMP paths, then the network control point 110 may add the network link(s) (e.g., edge(s)) of the shortest path to a list of RQEs.

[0117] In some aspects, the network control point 110 may identify one or more non-shortest paths of the plurality of paths, and add a network link in the one or more non-shortest paths to a set of one or more redundant network links in the network 120. In some examples, upon determining that the quantity of paths between the two network devices 130 is greater than one, the network control point 110 may check for ECMP paths by comparing respective sums of weights of the shortest paths. If there are no such ECMP paths, then the network control point 110 may obtain the non-shortest path(s) between the two network devices 130 using an FIB database. In cases where the quantity of non- shortest paths is greater than one, the network control point 110 may use the redundancy factor to select (e.g., prune) a quantity of redundant paths. The network control point 110 may add the network link(s) (e.g., edge(s)) of the non-shortest paths (e.g., pruned non-shortest paths) to a list of RDEs.

[0118] In some aspects, at least two paths of the plurality of paths may be associated with equal costs. The at least two paths may be associated with equal costs in that the at least two paths may be ECMP paths. For example, the at least two paths may be shortest paths of the plurality of paths.

[0119] In some aspects, the network control point 110 may identify a prunable path of the at least two paths, and add a network link in the prunable path to a set of one or more redundant network links in the network 120. For example, the network control point 110 may determine the prunable paths based on an ECMP prune factor configured by a network administrator. For example, if three paths are associated with equal costs, and the ECMP prune factor is 50%, then the quantity of prunable paths may be one. The network control point 110 may select one of the three paths for pruning based on traffic metrics of the three paths, and add the network link(s) (e.g ., edges) of the prunable path to the list of RDEs.

[0120] In some aspects, the network control point 110 may identify a non-prunable path of the at least two paths, and add a network link in the non-prunable path to a set of one or more required network links in the network 120. For example, the network control point 110 may determine the non-prunable paths based on the ECMP prune factor. For example, if three paths are associated with equal costs, and the ECMP prune factor is 50%, then the quantity of non-prunable (e.g., retained) paths may be two. The network control point 110 may add the network link(s) (e.g., edges) of the non-prunable paths to the list of RQEs.

[0121] In some aspects, the network control point 110 may identify at least two paths of the plurality of paths associated with equal costs and at least one path of the plurality of paths associated with a cost that is different than the equal costs, and add a network link in the at least one path to a set of one or more redundant network links in the network 120. For example, the network control point 110 may identify both ECMP paths and non-ECMP paths in the plurality of paths between the two network devices 130. In such cases, the network control point 110 may add the network link(s) (e g , edges) of the non-ECMP paths (e g., prunable paths) to the list of RQEs.

[0122] As shown by reference number 640, the network control point 110 may perform a powersaving action based on the redundancy factor. For example, the network control point 110 may11configure the network 120 to consume less power based on the redundancy factor. For example, the network control point 110 may disable one or more redundant links for a given period of time.

[0123] Example pseudocode associated with identifying the redundancy factor is provided as follows.Input: A weighted graph of a network fabricOutput: A weighted graph of the passed network fabric with pruned linksData structures:RQE: Set of edges required to meet fabric traffic needsRDE: Set of edges on which power-saving actions can be takenOperation # 1 :Identify all nodes of the graphV= {vl, v2, v3, ... , vn}.Operation #2:For every pair of nodes (M, V) of the graph G, perform the following operations.Operation #3 :Identify the set of paths between pair of nodes u and v.P = {set of paths between nodes u and v}Operation #4:When the number of paths between the nodes is greater than 1. Go to operation 5.When the number of paths between the nodes is equal to 1. Go to operation 7.When the number of paths between the nodes is less than 1. Go to operation 3.Operation #5 :[Case: When more than one paths exist between the nodes]Find the shortest paths among the paths between node u and v using Dijkstra’s algorithm or a FIB.Pshortest = {shortest paths between node u and v}Check for ECMP paths by comparing the sum of weights of the paths.Pecmp = get ecmp _paths (Pshortest)When at least two ECMP paths exist between nodes u and v. Go to operation 6.[Case: No ECMP paths: there are two or more paths of unequal weight]Pnon shortest = Identify non-shortest paths of these paths using a FIB database.When the number of non-shortest paths is greater than one:Consider user input parameter (“redundancy factor”) to select a number of redundant paths to be allowed to continue.Predundant = Prune lnfleunce Junction( influence _type=redundant, redundancy Jdctor, Pnon shortest, metrics...)Add edges of non-shortest paths to RDE.Add edges of shortest paths to RQE.Go to operation 3.Operation #6:[Case: When at least two paths exist with equal costs among shortest paths]Find ECMP paths that are redundant using an administrator-configured ECMP prune factor.These paths are to be considered for low-power actions. count_prunable_ecmp_paths = floor(Pecmp / ecmp_prune_percentage)Example:Select count_prunable_ecmp_paths number of paths from Pecmp path set based on traffic metrics.Pecmp_prunable = prune influence function!) influence _type=ecmp, Pecmp, count _prunable_ecmp _paths, metrics...)Add edges of the Pecmp_prunable to the RDE list.Add edges of retained ECMP paths to the RQE list.[Case : When there is a mix of ECMP and regular paths, the regular paths can be considered redundant] prunable_non_ecmp_paths = {P - Pecmp}Add edges of paths of prunable_non_ecmp_paths to the RDE.Operation #7 :Add edges of the path to the RQE list.Operation #8:Return RDE

[0124] As indicated above, Fig. 6 is provided as an example. Other examples may differ from what is described with regard to Fig. 6. The number and arrangement of devices shown in Fig. 6 are provided as an example In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 6. Furthermore, two or more devices shown in Fig. 6 may be implemented within a single device, or a single device shown in Fig. 6 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) shown in Fig. 6 may perform one or more functions described as being performed by another set of devices shown in Fig. 6.

[0125] Fig. 7 is a diagram of an example implementation 700 associated with network control point modules for redundancy factor identification. As shown in Fig. 7, example implementation 700 includes the network control point 110, the network 120, and the network devices 130( 1)- 130(8).

[0126] As shown by reference number 710, the network devices 130(l)-130(8) may transmit, and a telemetry collector 720 of the network control point 110 may receive, network topology data and / or network throughput data. The network control point 110 may store the network topology data and / or network throughput data in a telemetry database 730 of the network control point 110.

[0127] In some examples, the network control point 110 may provide the network topology data and / or network throughput data to a machine learning pipeline 740. For example, the machine learning pipeline 740 may feed into a network configuration manager 750 of the network control point 110, which may provide the network topology data and / or network throughput data to a network topology twinner 760 of the network control point 110. The network topology twinner 760 may generate a weighted graph of the network 120.

[0128] A low power network engine 770 of the network control point 110 may identify one or more redundancy factors associated with the network 120. The low power network engine 770 may indicate the redundant network link(s) to the network configuration manager 750. As shown by reference number 780, the network configuration manager 750 may configure the network devices 130( 1 )- 130(8) with an updated network topology. For example, as shown, the network configuration manager 750 may configure a shutdown of four redundant network links in the network 120.

[0129] As indicated above, Fig. 7 is provided as an example. Other examples may differ from what is described with regard to Fig. 7. The number and arrangement of devices shown in Fig. 7 are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig 7. Furthermore, two or more devices shown in Fig. 7 may be implemented within a single device, or a single device shown in Fig. 7 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., oneor more devices) shown in Fig. 7 may perform one or more functions described as being performed by another set of devices shown in Fig. 7.

[0130] Identifying the redundancy factor may help to reduce excessive energy usage in the network by enabling the controller to lower a quantity of redundant paths during non-peak hours. For example, the controller may disable one or more redundant paths for a given time window, which may enable the network to refrain from spending power on the one or more redundant paths during the given time window. Thus, identifying the redundancy factor may help to conserve power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like.EXAMPLE 4

[0131] Large datacenters can have hundreds of switches and routers, which can be connected by network links and / or interfaces of varying speeds. However, the presence of a network link does not necessarily mean that the network link can participate in network routing (e.g., carry traffic). In some examples, a network link may not participate in network routing because a network device to which the network link is connected may lack an egress path. In some examples, a network link may not participate in network routing due to a missing configuration or a lack of information in routing and forwarding tables. In some examples, a network link may not participate in network routing due to a speed mismatch (e.g., because routing protocols may ignore slower links in the presence of a highspeed link). Links that are present but do not participate in network routing (and, thus, may not contribute to achieving a required network throughput) may be referred to as “dead links.”

[0132] Dead links often occur because network administrators commonly connect network links in a non-prescribed manner (e.g., network administrators rarely examine a network topology before creating network links). Furthermore, dead links may persist indefinitely, such as until a network administrator notices the dead links by manually examining the network topology and corrects for the dead links. As a result, dead links can consume excessive power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like, without contributing to achieving a minimum network throughput. This impact on network cost can increase for dead links that have high bandwidth or are configured for a maximum bandwidth.

[0133] Some implementations described herein enable a controller to mitigate dead links. In some examples, the controller may obtain traffic telemetry data of network links and one or more participation factors of the network links in network routing. For example, the controller may determine a participation factor (e.g., a participation level of a network link in routing) using forwarding table data of network devices in the network. The controller may, based on the traffic telemetry data and the participation factor(s), detect one or more dead links. For example, because a dead link is unlikely to participate in routing of network traffic, network links having low participation factors may be dead links. In some examples, the controller may detect dead links in the network topology using a digital network twin. The controller may apply a power-saving action onthe one or more dead links, such as deactivating (e.g., shutting down) the one or more dead links for a given amount of time. In some examples, the network controller may identify and / or deactivate the dead links periodically.

[0134] As a result, detecting dead links can help to reduce excessive consumption of power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like. For example, deactivating the detected dead links, such as dead links that have high bandwidth or are configured for a maximum bandwidth, may help to reduce network cost with little or no impact on network throughput.

[0135] Fig. 8 is a diagram of an example implementation 800 associated with network routing participation factor identification. As shown in Fig. 8, example implementation 800 includes a network control point 110 (e.g., a controller), a network 120, and network devices 130(l)-130(M).

[0136] As shown by reference number 810, the network 120 may transmit, and the network control point 110 may receive, network topology data of the network 120. For example, the network topology data may indicate a network topology of the network 120, including the network devices 130(l)-130(M). The network topology data may be based on configurations of the network devices 130(l)-130(M) that are probed or otherwise discovered by the network control point 110 and / or dynamic telemetry data exported by the network devices 130(l)-130(M).

[0137] In some examples, the network control point 110 may use the network topology data to create a digital twin of the network topology. For example, the digital twin (e.g., a “twinned network topology”) may represent the network topology. For example, the digital twin may be an emulated or virtual representation or version of the actual, physical network topology. The network control point 110 may use the digital twin to test pre-flight configurations and / or routing decisions without affecting the actual, physical network topology. For example, the network control point 110 may use the digital twin to analyze, diagnose, emulate, and / or control the network 120 based on data, models, interfaces, or the like. In some examples, the network control point 110 may periodically scan and / or determine (e.g., using a machine learning model) the network topology of the network 120 and update the digital twin in accordance with any recent changes to the network topology.

[0138] As shown by reference number 820, the network 120 may transmit, and the network control point 110 may receive, network throughput data of the network 120. The network throughput data may indicate real-time network throughput of the network devices 130(l)-130(M). For example, the network throughput data may indicate how much network traffic is being routed by each of the network devices 130(l)-130(M).

[0139] As shown by reference number 830, the network control point 110 may identify, based on the network topology data and the network throughput data, a network routing participation factor associated with the network 120. The network routing participation factor may indicate a level of participation of a network link in network routing. The network routing participation factor may beassociated with the network 120 in that the network routing participation factor may indicate the level of participation of the network link in network routing in the network 120.

[0140] In some aspects, the network routing participation factor may indicate a routing activity level of a network link in a path in the network 120. The routing activity level may indicate how active the network link is in routing network traffic in one or both directions of the network link.

[0141] In some examples, the digital twin network may include a weighted graph (G) of a network fabric (e g., a network topology graph representing the network topology of the network 120). The network control point 110 may determine redundant edges (RDedges) of the network 120 as a set of edges on which power-saving actions may be performed. The network control point 110 may generate an output as a set of dead edges with tagged weights.

[0142] In some aspects, the network control point 110 may identify a plurality of paths between two network devices 130 in the network 120. For example, the network control point 110 may determine that the quantity of paths between two network devices 130 is greater than one.

[0143] In some aspects, the network control point 110 may identify one or more shortest paths of the plurality of paths, and add a network link in a path of the one or more shortest paths to a set of one or more redundant network links in the network 120. For example, upon determining that the quantity of paths between the two network devices 130 is greater than one, the network control point 110 may obtain the shortest path(s) between the two network devices 130 using Dijkstra’s algorithm, an FIB, or the like. The network control point 110 may add the network link (e.g., an edge) to a list of RDedges.

[0144] In some aspects, the network control point 110 may add the network link to the set of one or more redundant network links based on the path and another path of the one or more shortest paths being associated with equal costs. The path and the other path may be associated with equal costs in that the path and the other path may be ECMP paths (e.g., paths having an equal cost). In some examples, the network control point 110 may check for ECMP paths by comparing respective sums of weights of the shortest paths. If the path is not an ECMP path, then the network control point 110 may add the network link (e.g., edge) to the list of RDedges.

[0145] In some aspects, the network control point 110 may add the network link to the set of one or more redundant network links based on a traffic throughput of the network link not satisfying a traffic throughput threshold. For example, if the traffic throughput (e.g., as measured by a percentage of network link capacity that is used to carry network traffic) is less than the traffic throughput threshold (e.g., a configured threshold in terms of a percentage of network link capacity), then the network control point 110 may add the network link (e.g., edge) to the list of RDedges.

[0146] In some aspects, the network control point 110 may add the network link to the set of one or more redundant network links based on a traffic throughput direction ratio of the network link satisfying a traffic throughput direction ratio threshold. For example, if the traffic throughput direction ratio (e.g., a ratio of a traffic throughput in a first direction of the network link to a traffic throughput in a second direction of the network link) is less than the traffic throughput direction ratiothreshold (e.g., a configured threshold), then the network control point 110 may add the network link (e.g., edge) to the list of RDedges.

[0147] In some aspects, the network control point 110 may identify a weight of the network link based on a quantity of occurrences of the network link in the set of one or more redundant network links. For example, the network control point 110 may determine the weight by counting a quantity of occurrences of the network link in the list of RDedges. The weight may be referred to as a “dead link weight.” In some examples, the network control point 110 may add the network link (and / or all the network links in the list of RDedges) to a set of dead links with the weight.

[0148] As shown by reference number 840, the network control point 110 may perform a powersaving action based on the network routing participation factor. For example, the network control point 110 may configure the network 120 to consume less power based on the network routing participation factor. For example, the network control point 110 may disable one or more dead links for a given period of time.

[0149] Example pseudocode associated with identifying the network routing participation factor is provided as follows.Input: A weighted graph of a network fabricOutput: A weighted graph of dead edges with tagged weightsData structures:RDedges: Set of edges on which power-saving actions can be takenOperation # 1 :Identify all nodes of the graph G(V,E).V = {vl, v2, v3, ... , vn}.Operation #2:For every pair of nodes (w, v) of the graph G, perform operations 3-5.Operation #3 :Identify the set of paths between pair of nodes u and v.P = {set of paths between nodes u and v]Operation #4:When the number of paths between the nodes is greater than 1. Go to operation 5.When the number of paths between the nodes is equal to 1. Go to operation 3.When the number of paths between the nodes is less than 1. Go to operation 3.Operation #5 :[Case: When more than one paths exist between the nodes]Find the shortest paths among the paths between node u and v using Dijkstra’s algorithm or a FIB.Pshortest = {shortest paths between node u and v}Check for ECMP paths by comparing the sum of weights of the paths.Pecmp = get ecmp _paths (Pshortest)When at least two ECMP paths exist between nodes u and v.If a link is not part of Pecmp, then add the link to the RDedges list.If a link is carrying less traffic than a configured percentage threshold of the link capacity, the add the link to the RDedges list.If a two-directional traffic ratio (e.g., reception versus transmission) of a link is higher than a configured threshold, then add the link to the RDedges list.Operation #6:Find a dead link weight for each edge in the RDedges list by counting the number of occurrences of edges in the RDedges list. Add each edge to a dead links set along with the dead link weight. Return the dead links set.

[0150] As indicated above, Fig. 8 is provided as an example. Other examples may differ from what is described with regard to Fig. 8. The number and arrangement of devices shown in Fig. 8 are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 8. Furthermore, two or more devices shown in Fig. 8 may be implemented within a single device, or a single device shown in Fig. 8 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) shown in Fig. 8 may perform one or more functions described as being performed by another set of devices shown in Fig. 8.

[0151] Fig. 9 is a diagram of an example implementation 900 associated with network control point modules for redundant network link identification. As shown in Fig. 9, example implementation 900 includes the network control point 110, the network 120, and the network devices 130(1)- 130(10).

[0152] As shown by reference number 905, the network devices 130( l)-130( 10) may transmit, and a telemetry collector 910 of the network control point 110 may receive, network topology data and / ornetwork throughput data. The network control point 110 may store the network topology data and / or network throughput data in a telemetry database 915 of the network control point 110.

[0153] As shown by reference number 920, the network devices 130( 1)- 130( 10) may transmit, and an FIB 925 of the network control point 110 may receive, one or more routing table entries. In some examples, a link traffic metrics calculator 930 may receive the network topology data and / or network throughput data from the telemetry database 15 and the one or more routing table entries from the FIB 925.

[0154] The link traffic metrics calculator 930 may calculate one or more traffic metrics of network links in the network 120 and transmit, to a network topology digital twinner 935 of the network control point 110, an indication of the traffic metric(s). In some examples, the network topology digital twinner 935 may generate a weighted graph of the network 120 based on the traffic metric(s). A low power network engine 940 of the network control point 110 may identify one or more network routing participation factors based on the weighted graph. The low power network engine 940 may indicate the network routing participation factor(s) to the network configuration manager 945.

[0155] As shown by reference number 950, the network configuration manager 945 may configure the network devices 130(l)-130(10) with an updated network topology. For example, as shown, the network configuration manager 945 may configure a shutdown of two dead links in the network 120. In some examples, before configuring the network devices 130(l)-130(6) with the updated network topology, the network configuration manager 255 may receive a current network topology of the network devices 130(l)-130(6).

[0156] As indicated above, Fig. 9 is provided as an example. Other examples may differ from what is described with regard to Fig. 9. The number and arrangement of devices shown in Fig. 9 are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 9. Furthermore, two or more devices shown in Fig. 9 may be implemented within a single device, or a single device shown in Fig. 9 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) shown in Fig. 9 may perform one or more functions described as being performed by another set of devices shown in Fig. 9.

[0157] Identifying the network routing participation factor may help to reduce excessive consumption of power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like. For example, the network routing participation factor may enable deactivation of one or more dead links, such as dead links that have high bandwidth or are configured for a maximum bandwidth. Thus, the network routing participation factor may help to reduce network cost with little or no impact on network throughput.EXAMPLE 5

[0158] Network devices in a datacenter use routing protocols, such as border gateway protocol (BGP) and / or open shortest path first (OSPF), to determine the shortest path between any two nodes.The network devices use the routing protocols to exchange indications of costs associated with respective links (“link costs”). The network devices may store the link costs in a link state database (LSDB) and use the link costs to calculate the shortest paths.

[0159] Link cost is based on the speed of the link, and not on energy associated with routing traffic over the link. In addition, routing protocols, which are in layer 3, ignore intermediate layer 2 connections. For example, a network topology may include a first, direct 100 Gbps path between two network devices and a second, indirect 100 Gbps path between the two network devices. The second path may be indirect in that the second path may contain an intermediate, layer 2 switch. Because link state does not include layer 2 information, the network devices may ignore the layer 2 switch and equally distribute incoming traffic across both links, even though the second path consumes more energy than the first path due to the presence of the layer 2 switch in the second path. Furthermore, varying geographical regions of the first and second paths may lead to excessive routing and transmission costs. As a result, speed-based routing can consume excessive power, computing resources, processing resources, memory resources, communication resources, networking resources, and / or the like.

[0160] Some implementations described herein relate to energy-sensitive network routing. In some examples, a controller may periodically collect various network metrics from every network device (e.g., every routing device) of a topology. One such network metric may be an energy cost metric (e.g., a bit cost metric). Each interface or link of each network device may be associated with an energy cost metric value. For example, when building a twinned network topology, the controller may assign an energy cost metric value to every link of the twinned network topology. For example, the controller may run a shortest path finding algorithm on the twinned network topology to determine an energy cost metric routing table (e.g., a bit cost based routing table) for each network device. The controller may push energy cost metric routing tables to respective network devices. Thus, in some examples, the controller may delegate, to the network devices, energy cost based routing decisions. For example, the network devices may determine which path to use for routing based on the energy cost metric routing tables.

[0161] As a result, the energy cost metric may conserve power, computing resources, processing resources, memory resources, communication resources, networking resources, reduce routing and transmission costs, and / or the like. For example, in the network topology with the first and second paths between the two network devices, the network devices may use the energy cost metric to route more network traffic over the first path than the second path, thereby reducing energy consumed by the layer 2 switch.

[0162] Fig. 10 is a diagram of an example implementation 1000 associated with energy cost routing table information identification. As shown in Fig. 10, example implementation 1000 includes a network control point 110 (e.g., a controller), a network 120, and network devices 130(l)-130(M).

[0163] As shown by reference number 1010, the network 120 may transmit, and the network control point 110 may receive, network topology data of the network 120. For example, the network topology data may indicate a network topology of the network 120, including the network devices 130(l)-130(M). The network topology data may be based on configurations of the network devices 130(l)-130(M) that are probed or otherwise discovered by the network control point 110 and / or dynamic telemetry data exported by the network devices 130(l)-130(M).

[0164] In some examples, the network control point 110 may use the network topology data to create a digital twin of the network topology. For example, the digital twin (e.g., a “twinned network topology”) may represent the network topology. For example, the digital twin may be an emulated or virtual representation or version of the actual, physical network topology. The network control point 110 may use the digital twin to test pre-flight configurations and / or routing decisions without affecting the actual, physical network topology. For example, the network control point 110 may use the digital twin to analyze, diagnose, emulate, and / or control the network 120 based on data, models, interfaces, or the like. In some examples, the network control point 110 may periodically scan and / or determine (e.g., using a machine learning model) the network topology of the network 120 and update the digital twin in accordance with any recent changes to the network topology.

[0165] As shown by reference number 1020, the network 120 may transmit, and the network control point 110 may receive, energy cost data of the network 120. The network energy cost data may indicate energy expended due to routing over respective network links in the network 120. In some examples, the network energy cost data may indicate bit costs of the respective network links (e.g., energy costs to route a bit over the respective network links).

[0166] In some aspects, the energy cost data may be network telemetry data. For example, the network 120 may transmit, and the network control point 110 may receive, network telemetry data that includes the energy cost data, geolocations of the network devices 130(l)-130(M), power usage of the network devices 130(l)-130(M), approximate lengths of network links in the network 120, or the like.

[0167] As shown by reference number 1030, the network control point 110 may identify, based on the network topology data and the energy cost data, energy cost routing table information associated with the network 120. The energy cost routing table information may be information that is to be stored in energy cost routing tables of the respective network devices 130(l)-130(M). An energy cost routing table may store an indication of an energy cost (e.g., a bit cost) for each network link configured at a given network device 130.

[0168] In some aspects, the network control point 110 may identify one or more energy cost shortest paths associated with a network device 130 in the network 120. An energy cost shortest path (e.g., an energy cost based shortest path) may be associated with a network device 130 in that the energy cost shortest path may include (e.g., terminate at) the network device 130. For example, the network control point 110 may identify a shortest path that is based on energy cost for each networkdevice 130. In some examples, the network control point 110 may identify the energy cost shortest path using a shortest path finding algorithm, such as Dijkstra’s algorithm.

[0169] In some aspects, the network control point 110 may identify the one or more energy cost shortest paths based on an energy cost associated with performing routing via one or more energy cost shortest paths. An energy cost shortest path may be a path that consumes the least energy out of a plurality of paths to carry network traffic. The energy cost may be associated with performing routing via the energy cost shortest path(s) in that the energy cost may represent energy that would be expended due to performing routing via the energy cost shortest path(s). For example, the energy cost shortest path may be a bit cost shortest path (e.g., a bit cost based shortest path), which may be a path that consumes the least energy, out of a plurality of paths, to carry a bit.

[0170] In some aspects, the energy cost routing table information may be associated with multiple network devices 130 in the network 120. The energy cost routing table information may be associated with multiple network devices 130 in that the energy cost routing table information may be information that is to be stored in energy cost routing tables of the multiple network devices 130. The multiple network devices 130 may include every network device 130 in the network 120 that is configured to perform routing using the energy cost routing table.

[0171] As shown by reference number 1040, the network control point 110 may perform a powersaving action based on the energy cost routing table information. In some examples, the network control point 110 may enable the network devices 130(l)-130(M) to perform routing based on the energy cost routing table information. For example, the network control point 110 may delegate energy cost based routing decision-making to the network devices 130(l)-130(M).

[0172] In some aspects, the network control point 110 may transmit, and the network 120 (e.g., network devices 130(l)-130(M)) may receive, the energy cost routing table information. For example, the network control point 110 may push the energy cost routing table information to the network devices 130(l)-130(M). In some examples, the network devices 130(l)-130(M) may store the energy cost routing table information in respective energy cost routing tables. While configured to run in a lower-power mode, the network devices 130(l)-130(M) may perform energy cost based routing using the energy cost routing tables. For example, a network device 130 may select a path from an energy cost routing table and validate the path for one or more metric constraints (e.g., bandwidth). If the constraints are validated positively, then the network device 130 may modify a routing table of the network device 130 by replacing a current route entry of the routing table with an entry from the energy cost routing table.

[0173] In some aspects, the network control point 110 may receive a request for the energy cost routing table information. For example, the network devices 130(l)-130(M) may periodically pull the energy cost routing table information from the network control point 110. The network control point 110 may transmit, and the network 120 (e.g., network devices 130(l)-130(M)) may receive, theenergy cost routing table information in response to the request for the energy cost routing table information.

[0174] Example pseudocode associated with identifying the network routing participation factor is provided as follows.Operation #1: The network control point 110 may probe the network 120 to obtain configuration of all network devices 130 (e.g., network nodes) of the network 120. When probing is unavailable, use telemetry data exported by network devices 130 to discover the network topology.Operation #2: Build a digital twin of the network 120 using the configuration and telemetry data of the network devices 130. The telemetry data may include bit cost metric(s), geolocation, power usage, approximate link lengths of the network devices 130, or the like.Operation #3: For every node of the twinned network topology, the network control point 110 may obtain bit cost based shortest paths using any shortest path finding algorithms, such as Dijkstra’s algorithm. The bit cost based shortest path of a node may be a path that consumes a lowest power to transmit a bit to the node. After obtaining the best paths (e.g., the bit cost based shortest paths), the network control point 110 may prepare a routing table, which may be referred to as a bit cost route table, for every node using the bit cost.Operation #4: Push the bit cost route table of every twinned network device to the actual network device 130 of the network topology through a network configuration controller of the network control point 110. In some cases, the network device may pull the bit cost route table periodically.Operation #5 : When configured to run in a low power mode, the routing engine of a network device 130 of the network topology may consult or refer to the received bit cost route table in making route decisions. The routing engine may choose a path from bit cost route table and validate the path for bandwidth and other metric constraints.Operation #6: Upon validating the constraints positively, the routing engine of the network device 130 may modify a routing table of the network device 130 by replacing a route entry in the routing table with an entry in the bit cost route table.

[0175] As indicated above, Fig. 10 is provided as an example. Other examples may differ from what is described with regard to Fig. 10. The number and arrangement of devices shown in Fig. 10are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 10. Furthermore, two or more devices shown in Fig. 10 may be implemented within a single device, or a single device shown in Fig. 10 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) shown in Fig. 10 may perform one or more functions described as being performed by another set of devices shown in Fig. 10.

[0176] Fig. 11 is a diagram of an example implementation 1100 associated with network control point modules for energy cost routing table information identification. As shown in Fig. 11, example implementation 1100 includes the network control point 110, the network 120, and the network devices 130(1)- 130(2). As shown, the network 120 may include two paths between the network devices 130(l)-130(2): a first, direct path between the network devices 130( 1)- 130(2), and a second path between the network devices 130( 1)- 130(2) that includes a layer 2 switch (“SI”). The first and second paths have equal speeds of 100 Gbps, and the second path consumes more energy than the first path due to the layer 2 switch.

[0177] As shown by reference number 1110, the network devices 130( 1 )- 130( 10) may transmit, and a telemetry collector 1120 of the network control point 110 may receive, network data. The network data may include energy cost data, such as bit cost metrics for the network devices 130(1) and 130(2). The network control point 110 may store the network data in a telemetry database 1130 of the network control point 110.

[0178] As shown by reference number 1140, the network devices 130(1) and 130(2) may transmit, and a network topology discovery service 1150 of the network control point 110 may receive, one or more configurations of the network devices 130(1) and 130(2). In some examples, the network topology discovery service 1150 may also receive the network data from the telemetry database 1130.

[0179] The network topology discovery service 1150 may transmit, and a network topology digital twinner 1160 of the network control point 110 may receive, an indication of the network data and / or the configurations. In some examples, the network topology digital twinner 1160 may generate a weighted graph of the network 120 based on the network data and / or the configurations. A twinned routing engine 1170 of the network control point 110 may identify energy cost routing table information based on the weighted graph. The twinned routing engine 1170 may indicate the energy cost routing table information to a network configuration controller 1180 of the network control point 110.

[0180] As shown by reference number 1190, the network configuration controller 1180 may configure the network devices 130(1) and 130(2) with energy cost routing tables based on the energy cost routing table information. The network devices 130(1) and 130(2) may make routing decisions based on the energy cost routing tables, such as routing more packets over the first path than the second path, which may help to conserve energy in the network 120

[0181] As indicated above, Fig. 11 is provided as an example. Other examples may differ from what is described with regard to Fig. 11. The number and arrangement of devices shown in Fig. 11 are provided as an example. In practice, there may be additional devices, fewer devices, different devices, or differently arranged devices than those shown in Fig. 11. Furthermore, two or more devices shown in Fig. 11 may be implemented within a single device, or a single device shown in Fig. 11 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) shown in Fig. 11 may perform one or more functions described as being performed by another set of devices shown in Fig. 11.

[0182] Identifying the energy cost routing table information may help to conserve power, computing resources, processing resources, memory resources, communication resources, networking resources, reduce routing and transmission costs, and / or the like. For example, in a network topology with a first direct path between two network devices and a second path between the two network devices that includes a layer 2 switch, the network devices may use the energy cost metric to route more network traffic over the first path than the second path, thereby reducing energy consumed by the layer 2 switch.DISCUSSION RELATING TO EXAMPLES 1-5

[0183] Fig. 12 is a diagram of an example environment 1200 in which systems and / or methods described herein may be implemented. As shown in Fig. 12, environment 1200 may include a network control point device 1210, a group of network devices 1220 (shown as network device 1220- 1 through network device 1220-N), and a network 1230. Devices of environment 1200 may interconnect via wired connections, wireless connections, or a combination of wired and wireless connections.

[0184] Network control point device 1210 includes one or more devices capable of receiving, generating, storing, processing, and / or providing information, such as information described herein. For example, network control point device 1210 may include a mobile phone (e.g., a smart phone or a radiotelephone), a laptop computer, a tablet computer, a desktop computer, a handheld computer, a network device, a group of server devices, or a similar type of device. In some implementations, endpoint device 1210 may receive information from and / or may provide information to network devices 1220.

[0185] Network device 1220 includes one or more devices capable of receiving, processing, storing, routing, and / or providing traffic (e.g., a packet or other information or metadata) in a manner described herein. For example, network device 1220 may include a router, such as a label switching router (LSR), a label edge router (LER), an ingress router, an egress router, a provider router (e.g., a provider edge router or a provider core router), a virtual router, or another type of router.Additionally, or alternatively, network device 1220 may include a gateway, a switch, a firewall, a hub, a bridge, a reverse proxy, a server (e.g., a proxy server, a cloud server, or a data center server), a load balancer, and / or a similar device. In some implementations, network device 1220 may be a physicaldevice implemented within a housing, such as a chassis. In some implementations, network device 1220 may be a virtual device implemented by one or more computer devices of a cloud computing environment or a data center. In some implementations, a group of network devices 1220 may be a group of data center nodes that are used to route traffic flow through network 1230.

[0186] Network 1230 includes one or more wired and / or wireless networks. For example, network 1230 may include a packet switched network, a cellular network (e.g., a fifth generation (5G) network, a fourth generation (4G) network, such as a long-term evolution (LTE) network, a third generation (3G) network, a code division multiple access (CDMA) network, a public land mobile network (PLMN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), a telephone network (e.g., the Public Switched Telephone Network (PSTN)), a private network, an ad hoc network, an intranet, the Internet, a fiber optic-based network, a cloud computing network, or the like, and / or a combination of these or other types of networks.

[0187] The number and arrangement of devices and networks shown in Fig. 12 are provided as an example. In practice, there may be additional devices and / or networks, fewer devices and / or networks, different devices and / or networks, or differently arranged devices and / or networks than those shown in Fig. 12. Furthermore, two or more devices shown in Fig. 12 may be implemented within a single device, or a single device shown in Fig. 12 may be implemented as multiple, distributed devices. Additionally, or alternatively, a set of devices (e.g., one or more devices) of environment 1200 may perform one or more functions described as being performed by another set of devices of environment 1200.

[0188] Fig. 13 is a diagram of example components of a device 1300 associated with network power conservation. The device 1300 may correspond to the network control point device 1210 and / or the network devices 1220. In some implementations, the network control point device 1210 and / or the network devices 1220 may include one or more devices 1300 and / or one or more components of the device 1300. As shown in Fig. 13, the device 1300 may include a bus 1310, a processor 1320, a memory 1330, an input component 1340, an output component 1350, and / or a communication component 1360.

[0189] The bus 1310 may include one or more components that enable wired and / or wireless communication among the components of the device 1300. The bus 1310 may couple together two or more components of Fig. 13, such as via operative coupling, communicative coupling, electronic coupling, and / or electric coupling. For example, the bus 1310 may include an electrical connection (e.g., a wire, a trace, and / or a lead) and / or a wireless bus. The processor 1320 may include a central processing unit, a graphics processing unit, a microprocessor, a controller, a microcontroller, a digital signal processor, a field-programmable gate array, an application-specific integrated circuit, and / or another type of processing component. The processor 1320 may be implemented in hardware, firmware, or a combination of hardware and software. In some implementations, the processor 1320may include one or more processors capable of being programmed to perform one or more operations or processes described elsewhere herein.

[0190] The memory 1330 may include volatile and / or nonvolatile memory. For example, the memory 1330 may include random access memory (RAM), read only memory (ROM), a hard disk drive, and / or another type of memory (e g., a flash memory, a magnetic memory, and / or an optical memory). The memory 1330 may include internal memory (e.g., RAM, ROM, or a hard disk drive) and / or removable memory (e.g., removable via a universal serial bus connection). The memory 1330 may be a non-transitory computer-readable medium. The memory 1330 may store information, one or more instructions, and / or software (e.g., one or more software applications) related to the operation of the device 1300. In some implementations, the memory 1330 may include one or more memories that are coupled (e.g., communicatively coupled) to one or more processors (e.g., processor 1320), such as via the bus 1310. Communicative coupling between a processor 1320 and a memory 1330 may enable the processor 1320 to read and / or process information stored in the memory 1330 and / or to store information in the memory 1330.

[0191] The input component 1340 may enable the device 1300 to receive input, such as user input and / or sensed input. For example, the input component 1340 may include a touch screen, a keyboard, a keypad, a mouse, a button, a microphone, a switch, a sensor, a global positioning system sensor, a global navigation satellite system sensor, an accelerometer, a gyroscope, and / or an actuator. The output component 1350 may enable the device 1300 to provide output, such as via a display, a speaker, and / or a light-emitting diode. The communication component 1360 may enable the device 1300 to communicate with other devices via a wired connection and / or a wireless connection. For example, the communication component 1360 may include a receiver, a transmitter, a transceiver, a modem, a network interface card, and / or an antenna.

[0192] The device 1300 may perform one or more operations or processes described herein. For example, a non-transitory computer-readable medium (e g., memory 1330) may store a set of instructions (e.g., one or more instructions or code) for execution by the processor 1320. The processor 1320 may execute the set of instructions to perform one or more operations or processes described herein. In some implementations, execution of the set of instructions, by one or more processors 1320, causes the one or more processors 1320 and / or the device 1300 to perform one or more operations or processes described herein. In some implementations, hardwired circuitry may be used instead of or in combination with the instructions to perform one or more operations or processes described herein. Additionally, or alternatively, the processor 1320 may be configured to perform one or more operations or processes described herein. Thus, implementations described herein are not limited to any specific combination of hardware circuitry and software

[0193] The number and arrangement of components shown in Fig. 13 are provided as an example. The device 1300 may include additional components, fewer components, different components, or differently arranged components than those shown in Fig. 13. Additionally, or alternatively, a set ofcomponents (e.g., one or more components) of the device 1300 may perform one or more functions described as being performed by another set of components of the device 1300.

[0194] Fig. 14 is a flowchart of an example process 1400 associated with predicted energy type usage parameter identification. In some implementations, one or more process blocks of Fig. 14 are performed by a device (e.g., network control point 110). In some implementations, one or more process blocks of Fig. 14 are performed by another device or a group of devices separate from or including the device, such as a network control point (e.g., network control point 1210) and / or a network device (e.g., network device 1220). Additionally, or alternatively, one or more process blocks of Fig. 14 may be performed by one or more components of device 1300, such as processor 1320, memory 1330, input component 1340, output component 1350, and / or communication component 1360.

[0195] As shown in Fig. 14, process 1400 may include receiving network topology data of a network (block 1410). For example, the device may receive network topology data of a network, as described above.

[0196] As further shown in Fig. 14, process 1400 may include receiving historical energy data associated with a network device in the network (block 1420). For example, the device may receive historical energy data associated with a network device in the network, as described above.

[0197] As further shown in Fig. 14, process 1400 may include identifying, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device (block 1430). For example, the device may identify, based on the network topology data and the histoneal energy data, a predicted energy type usage parameter of the network device, as described above.

[0198] As further shown in Fig. 14, process 1400 may include performing a power management action based on the predicted energy type usage parameter (block 1440). For example, the device may perform a power management action based on the predicted energy type usage parameter, as described above.

[0199] Process 1400 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.

[0200] In a first implementation, the predicted energy type usage parameter comprises a ratio of an amount of energy of an energy type predicted to be consumed by the network device to a total amount of energy predicted to be consumed by the network device.

[0201] In a second implementation, alone or in combination with the first implementation, process 1400 includes identifying, based on one or more weights of one or more network links of the network, a predicted network disruption factor.

[0202] In a third implementation, alone or in combination with one or more of the first and second implementations, the predicted network disruption factor comprises a ratio of a predicted network disruption metric that is based on the one or more weights to a reference network disruption metric.

[0203] In a fourth implementation, alone or in combination with one or more of the first through third implementations, the predicted network disruption factor comprises a predicted bandwidth disruption factor.

[0204] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, the predicted network disruption factor comprises a predicted throughput disruption factor.

[0205] In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, the predicted network disruption factor comprises a predicted traffic speed disruption factor.

[0206] In a seventh implementation, alone or in combination with one or more of the first through sixth implementations, the predicted network disruption factor comprises a predicted traffic latency disruption factor.

[0207] In an eighth implementation, alone or in combination with one or more of the first through seventh implementations, performing the power management action comprises configuring the network based on one or more weights of one or more network links of the network.

[0208] In a ninth implementation, alone or in combination with one or more of the first through eighth implementations, process 1400 includes generating a recommendation based on the predicted energy type usage parameter.

[0209] In a tenth implementation, alone or in combination with one or more of the first through ninth implementations, configuring the network comprises configuring the network based on a configured predicted network disruption factor threshold.

[0210] Although Fig. 14 shows example blocks of process 1400, in some implementations, process 1400 includes additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Fig. 14. Additionally, or alternatively, two or more of the blocks of process 1400 may be performed in parallel.

[0211] Fig. 15 is a flowchart of an example process 1500 associated with redundant network link identification. In some implementations, one or more process blocks of Fig. 15 are performed by a device (e.g., network control point 110). In some implementations, one or more process blocks of Fig. 15 are performed by another device or a group of devices separate from or including the device, such as a network control point (e.g., network control point 1210) and / or a network device (e.g., network device 1220). Additionally, or alternatively, one or more process blocks of Fig 15 may be performed by one or more components of device 1300, such as processor 1320, memory 1330, input component 1340, output component 1350, and / or communication component 1360.

[0212] As shown in Fig. 15, process 1500 may include receiving network topology data of a network (block 1510). For example, the device may receive network topology data of a network, as described above.

[0213] As further shown in Fig. 15, process 1500 may include receiving network throughput data of the network (block 1520). For example, the device may receive network throughput data of the network, as described above.

[0214] As further shown in Fig. 15, process 1500 may include identifying, based on the network topology data and the network throughput data, one or more redundant network links in the network (block 1530). For example, the device may identify, based on the network topology data and the network throughput data, one or more redundant network links in the network, as described above.

[0215] As further shown in Fig. 15, process 1500 may include performing a power-saving action based on the one or more redundant network links (block 1540). For example, the device may perform a power-saving action based on the one or more redundant network links, as described above.

[0216] Process 1500 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.

[0217] In a first implementation, process 1500 includes identifying a path in the network as an only path between two network devices in the network, and adding a network link in the path to a set of one or more required network links in the network.

[0218] In a second implementation, alone or in combination with the first implementation, process 1500 includes identifying a path in the network as one of a plurality of paths between two network devices in the network.

[0219] In a third implementation, alone or in combination with one or more of the first and second implementations, identifying the one or more redundant network links comprises identifying a throughput of the path as being less than a throughput threshold, and adding, based on the throughput being less than the throughput threshold, a network link in the path to a set of the one or more redundant network links.

[0220] In a fourth implementation, alone or in combination with one or more of the first through third implementations, process 1500 includes identifying a set of candidate network links in the network by removing, from the set of the one or more redundant network links, a set of one or more required network links in the network.

[0221] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, process 1500 includes identifying one or more network link throughput participation factors of the one or more candidate network links.

[0222] In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, process 1500 includes identifying a throughput of the path as being equal to or greater than a throughput threshold, and adding, based on the throughput being equal to or greaterthan the throughput threshold, a network link in the path to a set of one or more required network links in the network.

[0223] In a seventh implementation, alone or in combination with one or more of the first through sixth implementations, process 1500 includes identifying one or more network link throughput participation factors of one or more required network links in the network.

[0224] In an eighth implementation, alone or in combination with one or more of the first through seventh implementations, the power-saving action comprises a network link shutdown.

[0225] Although Fig. 15 shows example blocks of process 1500, in some implementations, process 1500 includes additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Fig. 15. Additionally, or alternatively, two or more of the blocks of process 1500 may be performed in parallel.

[0226] Fig. 16 is a flowchart of an example process 1600 associated with redundancy factor identification. In some implementations, one or more process blocks of Fig. 16 are performed by a device (e.g., network control point 110). In some implementations, one or more process blocks of Fig. 16 are performed by another device or a group of devices separate from or including the device, such as a network control point (e.g., network control point 1210) and / or a network device (e.g., network device 1220). Additionally, or alternatively, one or more process blocks of Fig. 16 may be performed by one or more components of device 1300, such as processor 1320, memory 1330, input component 1340, output component 1350, and / or communication component 1360.

[0227] As shown in Fig. 16, process 1600 may include receiving network topology data of a network (block 1610). For example, the device may receive network topology data of a network, as described above.

[0228] As further shown in Fig. 16, process 1600 may include receiving network throughput data of the network (block 1620). For example, the device may receive network throughput data of the network, as described above.

[0229] As further shown in Fig. 16, process 1600 may include identifying, based on the network topology data and the network throughput data, a redundancy factor associated with the network (block 1630). For example, the device may identify, based on the network topology data and the network throughput data, a redundancy factor associated with the network, as described above.

[0230] As further shown in Fig. 16, process 1600 may include performing a power-saving action based on the redundancy factor (block 1640). For example, the device may perform a power-saving action based on the redundancy factor, as described above.

[0231] Process 1600 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.

[0232] In a first implementation, the redundancy factor indicates a quantity of redundant network links in the network to which the power-saving action is applicable.

[0233] In a second implementation, alone or in combination with the first implementation, process 1600 includes identifying a path in the network as an only path between two network devices in the network, and adding a network link in the path to a set of one or more required network links in the network.

[0234] In a third implementation, alone or in combination with one or more of the first and second implementations, process 1600 includes identifying a plurality of paths between two network devices in the network.

[0235] In a fourth implementation, alone or in combination with one or more of the first through third implementations, process 1600 includes identifying one or more shortest paths of the plurality of paths, and adding a network link in the one or more shortest paths to a set of one or more required network links in the network.

[0236] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, process 1600 includes identifying one or more non-shortest paths of the plurality of paths, and adding a network link in the one or more non-shortest paths to a set of one or more redundant network links in the network.

[0237] In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, at least two paths of the plurality of paths are associated with equal costs.

[0238] In a seventh implementation, alone or in combination with one or more of the first through sixth implementations, process 1600 includes identifying a prunable path of the at least two paths, and adding a network link in the prunable path to a set of one or more redundant network links in the network.

[0239] In an eighth implementation, alone or in combination with one or more of the first through seventh implementations, process 1600 includes identifying a non-prunable path of the at least two paths, and adding a network link in the non-prunable path to a set of one or more required network links in the network.

[0240] In a ninth implementation, alone or in combination with one or more of the first through eighth implementations, process 1600 includes identifying at least two paths of the plurality of paths associated with equal costs and at least one path of the plurality of paths associated with a cost that is different than the equal costs, and adding a network link in the at least one path to a set of one or more redundant network links in the network.

[0241] Although Fig. 16 shows example blocks of process 1600, in some implementations, process 1600 includes additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Fig. 16. Additionally, or alternatively, two or more of the blocks of process 1600 may be performed in parallel.

[0242] Fig. 17 is a flowchart of an example process 1700 associated with network routing participation factor identification. In some implementations, one or more process blocks of Fig. 17 are performed by a device (e.g., network control point 110). In some implementations, one or moreprocess blocks of Fig. 17 are performed by another device or a group of devices separate from or including the device, such as a network control point (e.g., network control point 1210) and / or a network device (e.g., network device 1220). Additionally, or alternatively, one or more process blocks of Fig. 17 may be performed by one or more components of device 1300, such as processor 1320, memory 1330, input component 1340, output component 1350, and / or communication component 1360.

[0243] As shown in Fig. 17, process 1700 may include receiving network topology data of a network (block 1710). For example, the device may receive network topology data of a network, as described above.

[0244] As further shown in Fig. 17, process 1700 may include receiving network throughput data of the network (block 1720). For example, the device may receive network throughput data of the network, as described above.

[0245] As further shown in Fig. 17, process 1700 may include identifying, based on the network topology data and the network throughput data, a network routing participation factor associated with the network (block 1730). For example, the device may identify, based on the network topology data and the network throughput data, a network routing participation factor associated with the network, as described above.

[0246] As further shown in Fig. 17, process 1700 may include performing a power-saving action based on the network routing participation factor (block 1740). For example, the device may perform a power-saving action based on the network routing participation factor, as described above.

[0247] Process 1700 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.

[0248] In a first implementation, the network routing participation factor indicates a routing activity level of a network link in a path in the network.

[0249] In a second implementation, alone or in combination with the first implementation, process 1700 includes identifying a plurality of paths between two network devices in the network.

[0250] In a third implementation, alone or in combination with one or more of the first and second implementations, process 1700 includes identifying one or more shortest paths of the plurality of paths, and adding a network link in a path of the one or more shortest paths to a set of one or more redundant network links in the network.

[0251] In a fourth implementation, alone or in combination with one or more of the first through third implementations, adding the network link to the set of one or more redundant network links comprises adding the network link to the set of one or more redundant network links based on the path and another path of the one or more shortest paths being associated with equal costs.

[0252] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, adding the network link to the set of one or more redundant network linkscomprises adding the network link to the set of one or more redundant network links based on a traffic throughput of the network link not satisfying a traffic throughput threshold.

[0253] In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, adding the network link to the set of one or more redundant network links comprises adding the network link to the set of one or more redundant network links based on a traffic throughput direction ratio of the network link satisfying a traffic throughput direction ratio threshold.

[0254] In a seventh implementation, alone or in combination with one or more of the first through sixth implementations, process 1700 includes identifying a weight of the network link based on a quantity of occurrences of the network link in the set of one or more redundant network links.

[0255] Although Fig. 17 shows example blocks of process 1700, in some implementations, process 1700 includes additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Fig. 17. Additionally, or alternatively, two or more of the blocks of process 1700 may be performed in parallel.

[0256] Fig. 18 is a flowchart of an example process 1800 associated with energy cost routing table information identification. In some implementations, one or more process blocks of Fig. 18 are performed by a device (e.g., network control point 110). In some implementations, one or more process blocks of Fig. 18 are performed by another device or a group of devices separate from or including the device, such as a network control point (e.g., network control point 1210) and / or a network device (e.g., network device 1220). Additionally, or alternatively, one or more process blocks of Fig. 18 may be performed by one or more components of device 1300, such as processor 1320, memory 1330, input component 1340, output component 1350, and / or communication component 1360.

[0257] As shown in Fig. 18, process 1800 may include receiving network topology data of a network (block 1810). For example, the device may receive network topology data of a network, as described above.

[0258] As further shown in Fig. 18, process 1800 may include receiving energy cost data of the network (block 1820). For example, the device may receive energy cost data of the network, as described above.

[0259] As further shown in Fig. 18, process 1800 may include identifying, based on the network topology data and the energy cost data, energy cost routing table information associated with the network (block 1830). For example, the device may identify, based on the network topology data and the energy cost data, energy cost routing table information associated with the network, as described above.

[0260] As further shown in Fig. 18, process 1800 may include performing a power-saving action based on the energy cost routing table information (block 1840). For example, the device may perform a power-saving action based on the energy cost routing table information, as described above.

[0261] Process 1800 may include additional implementations, such as any single implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.

[0262] In a first implementation, the energy cost data comprises network telemetry data.

[0263] In a second implementation, alone or in combination with the first implementation, process 1800 includes identifying one or more energy cost shortest paths associated with a network device in the network.

[0264] In a third implementation, alone or in combination with one or more of the first and second implementations, identifying the one or more energy cost shortest paths comprises identifying the one or more energy cost shortest paths based on an energy cost associated with performing routing via the one or more energy cost shortest paths.

[0265] In a fourth implementation, alone or in combination with one or more of the first through third implementations, the energy cost routing table information is associated with multiple network devices in the network.

[0266] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, performing the power-saving action comprises transmitting the energy cost routing table information.

[0267] In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, process 1800 includes receiving a request for the energy cost routing table information.

[0268] Although Fig. 18 shows example blocks of process 1800, in some implementations, process 1800 includes additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Fig. 18. Additionally, or alternatively, two or more of the blocks of process 1800 may be performed in parallel.

[0269] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit the implementations to the precise forms disclosed. Modifications and variations may be made in light of the above disclosure or may be acquired from practice of the implementations.

[0270] As used herein, traffic or content may include a set of packets. A packet may refer to a communication structure for communicating information, such as a protocol data unit (PDU), a service data unit (SDU), a network packet, a datagram, a segment, a message, a block, a frame (e.g., an Ethernet frame), a portion of any of the above, and / or another type of formatted or unformatted unit of data capable of being transmitted via a network.

[0271] As used herein, satisfying a threshold may, depending on the context, refer to a value being greater than the threshold, greater than or equal to the threshold, less than the threshold, less than or equal to the threshold, equal to the threshold, not equal to the threshold, or the like.

[0272] As used herein, the term “component” is intended to be broadly construed as hardware, firmware, or a combination of hardware and software. It will be apparent that systems and / or methods described herein may be implemented in different forms of hardware, firmware, and / or a combination of hardware and software. The actual specialized control hardware or software code used to implement these systems and / or methods is not limiting of the implementations. Thus, the operation and behavior of the systems and / or methods are described herein without reference to specific software code - it being understood that software and hardware can be used to implement the systems and / or methods based on the description herein.

[0273] Even though particular combinations of features are recited in the claims and / or disclosed in the specification, these combinations are not intended to limit the disclosure of various implementations. In fact, many of these features may be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim listed below may directly depend on only one claim, the disclosure of various implementations includes each dependent claim in combination with every other claim in the claim set. As used herein, a phrase referring to “at least one of’ a list of items refers to any combination of those items, including single members. As an example, “at least one of: a, b, or c” is intended to cover a, b, c, a-b, a-c, b-c, and a-b-c, as well as any combination with multiple of the same item.

[0274] When “a processor” or “one or more processors” (or another device or component, such as “a controller” or “one or more controllers”) is described or claimed (within a single claim or across multiple claims) as performing multiple operations or being configured to perform multiple operations, this language is intended to broadly cover a variety of processor architectures and environments. For example, unless explicitly claimed otherwise (e.g., via the use of “first processor” and “second processor” or other language that differentiates processors in the claims), this language is intended to cover a single processor performing or being configured to perform all of the operations, a group of processors collectively performing or being configured to perform all of the operations, a first processor performing or being configured to perform a first operation and a second processor performing or being configured to perform a second operation, or any combination of processors performing or being configured to perform the operations. For example, when a claim has the form “one or more processors to: perform X; perform Y; and perform Z,” that claim should be interpreted to mean “one or more processors to perform X; one or more (possibly different) processors to perform Y; and one or more (also possibly different) processors to perform Z.”

[0275] No element, act, or instruction used herein should be construed as critical or essential unless explicitly described as such. Also, as used herein, the articles “a” and “an” are intended to include one or more items, and may be used interchangeably with “one or more.” Further, as used herein, the article “the” is intended to include one or more items referenced in connection with the article “the” and may be used interchangeably with “the one or more.” Furthermore, as used herein, the term “set” is intended to include one or more items (e.g., related items, unrelated items, or a combination ofrelated and unrelated items), and may be used interchangeably with “one or more.” Where only one item is intended, the phrase “only one” or similar language is used. Also, as used herein, the terms “has,” “have,” “having,” or the like are intended to be open-ended terms. Further, the phrase “based on” is intended to mean “based, at least in part, on” unless explicitly stated otherwise. Also, as used herein, the term “or” is intended to be inclusive when used in a series and may be used interchangeably with “and / or,” unless explicitly stated otherwise (e g., if used in combination with “either” or “only one of’).

Claims

WHAT IS CLAIMED IS:

1. A method, comprising: receiving network topology data of a network; receiving historical energy data associated with a network device in the network; identifying, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device; and performing a power management action based on the predicted energy type usage parameter.

2. The method of claim 1, wherein the predicted energy type usage parameter comprises a ratio of an amount of energy of an energy type predicted to be consumed by the network device to a total amount of energy predicted to be consumed by the network device.

3. The method of claim 1, further comprising: identifying, based on one or more weights of one or more network links of the network, a predicted network disruption factor.

4. The method of claim 3, wherein the predicted network disruption factor comprises a ratio of a predicted network disruption metric that is based on the one or more weights to a reference network disruption metric.

5. The method of claim 3, wherein the predicted network disruption factor comprises a predicted bandwidth disruption factor.

6. The method of claim 3, wherein the predicted network disruption factor compnses a predicted throughput disruption factor.

7. The method of claim 3, wherein the predicted network disruption factor comprises a predicted traffic speed disruption factor.

8. The method of claim 3, wherein the predicted network disruption factor comprises a predicted traffic latency disruption factor.

9. The method of claim 1, wherein performing the power management action comprises configuring the network based on one or more weights of one or more network links of the network.

10. The method of claim 9, further comprising:generating a recommendation based on the predicted energy type usage parameter.

11. The method of claim 9, wherein configuring the network comprises: configuring the network based on a configured predicted network disruption factor threshold.

12. A device, comprising: one or more memories; and one or more processors to: receive network topology data of a network; receive historical energy data associated with a network device in a network; identify, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device; identify, based on one or more weights of one or more network links of the network, a predicted network disruption factor; and perform a power management action based on the predicted network disruption factor.

13. The device of claim 12, wherein the predicted network disruption factor comprises a ratio of an amount of energy of an energy type predicted to be consumed by the network device to a total amount of energy predicted to be consumed by the network device.

14. The device of claim 12, wherein the predicted network disruption factor comprises a predicted bandwidth disruption factor.

15. The device of claim 12, wherein the predicted network disruption factor comprises a predicted throughput disruption factor.

16. The device of claim 12, wherein the predicted network disruption factor comprises a predicted traffic speed disruption factor.

17. The device of claim 12, wherein the predicted network disruption factor comprises a predicted traffic latency disruption factor.

18. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a device, cause the device to:receive network topology data of a network; receive historical energy data associated with a network device in a network; identify, based on the network topology data and the historical energy data, a predicted energy type usage parameter of the network device; and configure the network based on the predicted energy type usage parameter and one or more weights of one or more network links of the network.

19. The non-transitory computer-readable medium of claim 18, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: generate a recommendation based on the predicted energy type usage parameter.

20. The non-transitory computer-readable medium of claim 18, wherein the one or more instructions, that cause the device to configure the network, cause the device to: configure the network based on a configured predicted network disruption factor threshold.

21. A method, comprising: receiving network topology data of a network; receiving network throughput data of the network; identifying, based on the network topology data and the network throughput data, one or more redundant network links in the network; and performing a power-saving action based on the one or more redundant network links.

22. The method of claim 21, further comprising: identifying a path in the network as an only path between two network devices in the network; and adding a network link in the path to a set of one or more required network links in the network.

23. The method of claim 21 , further comprising: identifying a path in the network as one of a plurality of paths between two network devices in the network.

24. The method of claim 23, wherein identifying the one or more redundant network links comprises: identifying a throughput of the path as being less than a throughput threshold; and adding, based on the throughput being less than the throughput threshold, a network link in the path to a set of the one or more redundant network links.

25. The method of claim 24, further comprising: identifying a set of candidate network links in the network by removing, from the set of the one or more redundant network links, a set of one or more required network links in the network.

26. The method of claim 25, further comprising: identifying one or more network link throughput participation factors of the one or more candidate network links.

27. The method of claim 23, further comprising: identifying a throughput of the path as being equal to or greater than a throughput threshold; and adding, based on the throughput being equal to or greater than the throughput threshold, a network link in the path to a set of one or more required network links in the network.

28. The method of claim 21, further comprising: identifying one or more network link throughput participation factors of one or more required network links in the network.

29. The method of claim 21, wherein the power-saving action comprises a network link shutdown.

30. A device, comprising: one or more memories; and one or more processors to: receive network topology data of a network; receive network throughput data of the network; identify, based on the network topology data and the network throughput data, one or more redundant network links in the network; and perform a network link shutdown based on the one or more redundant network links.

31. The device of claim 30, wherein the one or more processors are further to: identify a path in the network as an only path between two network devices in the network; and add a network link in the path to a set of one or more required network links in the network.

32. The device of claim 30, wherein the one or more processors are further to:identify a path in the network as one of a plurality of paths between two network devices in the network.

33. The device of claim 32, wherein the one or more processors, to identify the one or more redundant network links, are to: identify a throughput of the path as being less than a throughput threshold; and add, based on the throughput being less than the throughput threshold, a network link in the path to a set of the one or more redundant network links.

34. The device of claim 33, wherein the one or more processors are further to: identify a set of candidate network links in the network by removing, from the set of the one or more redundant network links, a set of one or more required network links in the network.

35. The device of claim 34, wherein the one or more processors are further to: identify one or more network link throughput participation factors of the one or more candidate network links.

36. The device of claim 32, wherein the one or more processors are further to: identify a throughput of the path as being equal to or greater than a throughput threshold; and add, based on the throughput of the path being equal to or greater than the throughput threshold, a network link in the path to a set of one or more required network links in the network.

37. The device of claim 30, wherein the one or more processors are further to: identify one or more network link throughput participation factors of one or more required network links in the network.

38. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a device, cause the device to: receive network topology data of a network; receive network throughput data of the network; identify, based on the network topology data and the network throughput data, one or more redundant network links in the network; and perform a power-saving action based on the one or more redundant network links.

39. The non-transitory computer-readable medium of claim 38, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: identify a path in the network as one of a plurality of paths between two network devices in the network.

40. The non-transitory computer-readable medium of claim 38, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: identify a path in the network as an only path between two network devices in the network; and add a network link in the path to a set of one or more required network links in the network.

41. A method, comprising: receiving network topology data of a network; receiving network throughput data of the network; identifying, based on the network topology data and the network throughput data, a redundancy factor associated with the network; and performing a power-saving action based on the redundancy factor.

42. The method of claim 41, wherein the redundancy factor indicates a quantity of redundant network links in the network to which the power-saving action is applicable.

43. The method of claim 41 , further comprising: identifying a path in the network as an only path between two network devices in the network; and adding a network link in the path to a set of one or more required network links in the network.

44. The method of claim 41, further comprising: identifying a plurality of paths between two network devices in the network.

45. The method of claim 44, further comprising: identifying one or more shortest paths of the plurality of paths; and adding a network link in the one or more shortest paths to a set of one or more required network links in the network.

46. The method of claim 44, further comprising: identifying one or more non-shortest paths of the plurality of paths; andadding a network link in the one or more non-shortest paths to a set of one or more redundant network links in the network.

47. The method of claim 44, wherein at least two paths of the plurality of paths are associated with equal costs.

48. The method of claim 47, further comprising: identifying a prunable path of the at least two paths; and adding a network link in the prunable path to a set of one or more redundant network links in the network.

49. The method of claim 47, further comprising: identifying a non-prunable path of the at least two paths; and adding a network link in the non-prunable path to a set of one or more required network links in the network.

50. The method of claim 44, further comprising: identifying at least two paths of the plurality of paths associated with equal costs and at least one path of the plurality of paths associated with a cost that is different than the equal costs; and adding a network link in the at least one path to a set of one or more redundant network links in the network.

51. A device, comprising: one or more memories; and one or more processors to: receive network topology data of a network; receive network throughput data of the network; identify, based on the network topology data and the network throughput data, a redundancy factor that indicates a quantity of redundant network links in the network to which a power-saving action is applicable; and perform the power-saving action based on the redundancy factor.

52. The device of claim 51, wherein the one or more processors are further to: identify a path in the network as an only path between two network devices in the network; and add a network link in the path to a set of one or more required network links in the network.

53. The device of claim 51, wherein the one or more processors are further to: identify a plurality of paths between two network devices in the network.

54. The device of claim 53, wherein the one or more processors are further to: identify one or more shortest paths of the plurality of paths; and add a network link in the one or more shortest paths to a set of one or more required network links in the network.

55. The device of claim 53, wherein the one or more processors are further to: identify one or more non-shortest paths of the plurality of paths; and add a network link in the one or more non-shortest paths to a set of one or more redundant network links in the network.

56. The device of claim 53, wherein at least two paths of the plurality of paths are associated with equal costs.

57. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a device, cause the device to: receive network topology data of a network; receive network throughput data of the network; identify a plurality of paths between two network devices in the network, wherein at least two paths of the plurality of paths are associated with equal costs; identify, based on the network topology data and the network throughput data, a redundancy factor associated with the network; and perform a power-saving action based on the redundancy factor.

58. The non-transitory computer-readable medium of claim 57, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: identify a prunable path of the at least two paths; and add a network link in the prunablc path to a set of one or more redundant network links in the network.

59. The non-transitory computer-readable medium of claim 57, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: identify a non-prunable path of the at least two paths; andadd a network link in the non-prunable path to a set of one or more required network links in the network.

60. The non-transitory computer-readable medium of claim 57, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: identify a prunable path of the at least two paths; and add a network link in one or more non-shortest paths of the plurality of paths to a set of one or more redundant network links in the network.

61. A method, comprising: receiving network topology data of a network; receiving network throughput data of the network; identifying, based on the network topology data and the network throughput data, a network routing participation factor associated with the network; and performing a power-saving action based on the network routing participation factor.

62. The method of claim 61, wherein the network routing participation factor indicates a routing activity level of a network link in a path in the network.

63. The method of claim 61, further comprising: identifying a plurality of paths between two network devices in the network.

64. The method of claim 63, further comprising: identifying one or more shortest paths of the plurality of paths; and adding a network link in a path of the one or more shortest paths to a set of one or more redundant network links in the network.

65. The method of claim 64, wherein adding the network link to the set of one or more redundant network links comprises: adding the network link to the set of one or more redundant network links based on the path and another path of the one or more shortest paths being associated with equal costs.

66. The method of claim 64, wherein adding the network link to the set of one or more redundant network links comprises: adding the network link to the set of one or more redundant network links based on a traffic throughput of the network link not satisfying a traffic throughput threshold.

67. The method of claim 64, wherein adding the network link to the set of one or more redundant network links comprises: adding the network link to the set of one or more redundant network links based on a traffic throughput direction ratio of the network link satisfying a traffic throughput direction ratio threshold.

68. The method of claim 64, further comprising: identifying a weight of the network link based on a quantity of occurrences of the network link in the set of one or more redundant network links.

69. A device, comprising: one or more memories; and one or more processors to: receive network topology data of a network; receive network throughput data of the network; identify, based on the network topology data and the network throughput data, a network routing participation factor that indicates a routing activity level of a network link in a path in the network; and perform a power-saving action based on the network routing participation factor.

70. The device of claim 69, wherein the one or more processors are further to: identify a plurality of paths between two network devices in the network.

71. The device of claim 70, wherein the one or more processors are further to: identify one or more shortest paths of the plurality of paths; and add the network link to a set of one or more redundant network links in the network, wherein the network link is in a path of the one or more shortest paths.

72. The device of claim 71, wherein the one or more processors, to add the network link to the set of one or more redundant network links, are to: add the network link to the set of one or more redundant network links based on the path and another path of the one or more shortest paths being associated with equal costs.

73. The device of claim 71, wherein the one or more processors, to add the network link to the set of one or more redundant network links, are to: add the network link to the set of one or more redundant network links based on a traffic throughput of the network link not satisfying a traffic throughput threshold.

74. The device of claim 71, wherein the one or more processors, to add the network link to the set of one or more redundant network links, are to: add the network link to the set of one or more redundant network links based on a traffic throughput direction ratio of the network link satisfying a traffic throughput direction ratio threshold.

75. The device of claim 71, wherein the one or more processors are further to: identify a weight of the network link based on a quantity of occurrences of the network link in the set of one or more redundant network links.

76. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a device, cause the device to: receive network topology data of a network; receive network throughput data of the network; identify, based on the network topology data and the network throughput data, a network routing participation factor associated with the network; identify a plurality of paths between two network devices in the network; and perform a power-saving action based on the network routing participation factor.

77. The non-transitory computer-readable medium of claim 76, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: identify one or more shortest paths of the plurality of paths; and add a network link in a path of the one or more shortest paths to a set of one or more redundant network links in the network.

78. The non-transitory computer-readable medium of claim 77, wherein the one or more instructions, that cause the device to add the network link to the set of one or more redundant network links, cause the device to: add the network link to the set of one or more redundant network links based on the path and another path of the one or more shortest paths being associated with equal costs.

79. The non-transitory computer-readable medium of claim 77, wherein the one or more instructions, that cause the device to add the network link to the set of one or more redundant network links, cause the device to: add the network link to the set of one or more redundant network links based on a traffic throughput of the network link not satisfying a traffic throughput threshold.

80. The non-transitory computer-readable medium of claim 77, wherein the one or more instructions, that cause the device to add the network link to the set of one or more redundant network links, cause the device to: add the network link to the set of one or more redundant network links based on a traffic throughput direction ratio of the network link satisfying a traffic throughput direction ratio threshold.

81. A method, comprising: receiving network topology data of a network; receiving energy cost data of the network; identifying, based on the network topology data and the energy cost data, energy cost routing table information associated with the network; and performing a power-saving action based on the energy cost routing table information.

82. The method of claim 81, wherein the energy cost data comprises network telemetry data.

83. The method of claim 81 , further comprising: identifying one or more energy cost shortest paths associated with a network device in the network.

84. The method of claim 83, wherein identifying the one or more energy cost shortest paths comprises: identifying the one or more energy cost shortest paths based on an energy cost associated with performing routing via the one or more energy cost shortest paths.

85. The method of claim 81 , wherein the energy cost routing table information is associated with multiple network devices in the network.

86. The method of claim 81, wherein performing the power-saving action comprises: transmitting the energy cost routing table information.

87. The method of claim 86, further comprising: receiving a request for the energy cost routing table information.

88. A device, comprising: one or more memories; and one or more processors to:receive network topology data of a network; receive energy cost data of the network; identify one or more energy cost shortest paths associated with a network device in the network; identify, based on the network topology data and the energy cost data, energy cost routing table information associated with the network; and perform a power-saving action based on the energy cost routing table information.

89. The device of claim 88, wherein the one or more processors are further to: identify one or more energy cost shortest paths associated with a network device in the network.

90. The device of claim 88, wherein the one or more processors, to identify the one or more energy cost shortest paths, are to identify the one or more energy cost shortest paths based on an energy cost associated with performing routing via the energy cost shortest path.

91. The device of claim 88, wherein the energy cost routing table information is associated with multiple network devices in the network.

92. The device of claim 88, wherein the one or more processors are further to: transmit the energy cost routing table information.

93. The device of claim 92, wherein the one or more processors are further to: receive a request for the energy cost routing table information.

94. A non-transitory computer-readable medium storing a set of instructions, the set of instructions comprising: one or more instructions that, when executed by one or more processors of a device, cause the device to: receive network topology data of a network; receive energy cost data of the network; identify, based on the network topology data and the energy cost data, energy cost routing table information associated with the network; and perform a power-saving action based on the energy cost routing table information.

95. The non-transitory computer-readable medium of claim 94, wherein the energy cost data comprises network telemetry data.

96. The non-transitory computer-readable medium of claim 94, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: identify one or more energy cost shortest paths associated with a network device in the network.

97. The non-transitory computer-readable medium of claim 96, wherein the one or more instructions, that cause the device to identify the one or more energy cost shortest paths, cause the device to: identify the one or more energy cost shortest paths based on an energy cost associated with performing routing via the energy cost shortest path.

98. The non-transitory computer-readable medium of claim 94, wherein the energy cost routing table information is associated with multiple network devices in the network.

99. The non-transitory computer-readable medium of claim 94, wherein the one or more instructions, that cause the device to perform the power-saving action, cause the device to: transmit the energy cost routing table information.

100. The non-transitory computer-readable medium of claim 99, wherein the one or more instructions, when executed by the one or more processors, further cause the device to: receive a request for the energy cost routing table information.

Citation Information

Patent Citations

  • Network routing protocol power saving method for network elements

    US20140192677A1

  • System and method for energy cost aware routing

    US20160226757A1

  • Augmented power control within a datacenter using predictive modeling

    US20180082224A1