Detecting miswiring in a leaf-spine topology of multiple network devices
By setting link metrics in data center networks and using the shortest path first model to detect path hop counts, erroneous wiring in leaf-ridge topologies is automatically identified and corrected, solving the problem of flooding performance degradation, saving resources and improving network efficiency.
Patent Information
- Application Number
- CN202310556715.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-03-06
- Filing Date
- 2021-02-24
- Publication Date
- 2026-01-16
- Estimated Expiration
- 2041-02-24
AI Technical Summary
Existing technologies cannot effectively detect and correct faulty cabling in leaf-spine topologies of multi-layer data center networks, leading to degraded flooding performance and service loss, and wasting computing and network resources.
By receiving topology data, setting the link metric to a common value, processing the path data using the shortest path first model, detecting the parity of the path hop count, and identifying erroneous wiring.
Automatically detects and corrects faulty wiring without changing configurations and protocols, saving computing and network resources and improving flooding performance.
Smart Images

Figure CN116405371B_ABST
Abstract
Description
[0001] This application is a divisional application of the application for patent with the application date of February 24, 2021, the application number of 202110209352.8, and the invention name of “Detecting miswiring in a leaf-spine topology of multiple network devices”. TECHNICAL FIELD
[0002] The present invention relates to the field of data center network topologies, and in particular, to detecting miswiring in a leaf-spine topology of multiple network devices. BACKGROUND
[0003] A leaf-spine topology of multiple network devices is a multi-tier data center network topology that includes leaf network devices (e.g., servers and storage devices connect to the leaf network devices) and spine network devices (e.g., the leaf network devices connect to the spine network devices). The leaf network devices can mesh into the spine to form an access layer that delivers network connectivity points for the servers. SUMMARY
[0004] According to some embodiments, a method can include receiving topology data that identifies a leaf-spine topology of multiple network devices, and setting link metrics associated with the topology data to a common value and generating modified topology data. The method can include removing, from the modified topology data, data that identifies connections to any devices outside of the leaf-spine topology to generate further modified topology data, and processing the further modified topology data with a shortest path first model to determine path data that identifies paths to destinations identified in the further modified topology data. The method can include processing the path data and the further modified topology data with the shortest path first model to determine particular path data that identifies shorter paths and longer paths to corresponding destinations, and processing the particular path data and the further modified topology data with the shortest path first model to determine hop counts associated with the shorter paths and the longer paths to the corresponding destinations. The method can include processing the hop counts with the shortest path first model to determine whether the hop counts associated with the shorter paths and the longer paths to the corresponding destinations are all odd values, all even values, or a combination of odd values and even values, and performing one or more actions based on determining whether the hop counts associated with the shorter paths and the longer paths to the corresponding destinations are all odd values, all even values, or a combination of odd values and even values.
[0005] According to some embodiments, a network device can include one or more memories and one or more processors to receive topology data identifying a leaf-spine topology of a plurality of network devices, and set link metrics associated with the topology data to a common value and to generate modified topology data. The one or more processors can process the modified topology data with a directed acyclic graph model to generate a directed acyclic graph identifying paths to destinations identified in the modified topology data. The one or more processors can process the directed acyclic graph to determine that a number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values, and can perform one or more actions based on determining that the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values.
[0006] According to some embodiments, a non-transitory computer-readable medium can store one or more instructions that, when executed by one or more processors of a network device, can cause the one or more processors to receive topology data identifying a leaf-spine topology of a plurality of network devices, and set link metrics associated with the topology data to a common value and to generate modified topology data. The one or more instructions can cause the one or more processors to process the modified topology data to determine path data identifying paths to destinations identified in the modified topology data. The one or more instructions can cause the one or more processors to process the path data and the modified topology data with a shortest path first model to determine particular path data identifying at least one shorter path and at least one longer path to corresponding destinations, and process the particular path data and the modified topology data with the shortest path first model to determine a number of hops associated with the at least one shorter path and the at least one longer path to corresponding destinations. The one or more instructions can cause the one or more processors to process with the shortest path first model to determine that the number of hops associated with the at least one shorter path and the at least one longer path to corresponding destinations are all odd values, all even values, or a combination of odd and even values, and determine whether there is a miswiring in the leaf-spine topology of the plurality of network devices based on determining that the number of hops associated with the at least one shorter path and the at least one longer path to corresponding destinations are all odd values, all even values, or a combination of odd and even values. The one or more instructions can cause the one or more processors to perform one or more actions based on determining whether there is a miswiring in the leaf-spine topology of the plurality of network devices. BRIEF DESCRIPTION OF DRAWINGS
[0007] Figures 1A-1L is a diagram of one or more example embodiments described herein.
[0008] Figure 2 FIG. 1 is a diagram of an example environment in which systems and / or methods described herein can be implemented.
[0009] Figure 3 and Figure 4 are Figure 2 FIG. 1 is a diagram of an example environment in which systems and / or methods described herein can be implemented.
[0010] Figures 5-7 FIG. 1 is a diagram of an example environment in which systems and / or methods described herein can be implemented. DETAILED DESCRIPTION
[0011] The following detailed description of example implementations refers to the accompanying drawings. The same reference numbers in different drawings can identify the same or similar elements.
[0012] Many data centers deploy dense leaf-spine network topologies. These network topologies have very well-defined connectivity, and many flooding optimization techniques employ standard connectivity and / or topologies. However, if there is a miswiring between network devices of a leaf-spine network topology and / or an incorrect connection between levels of a leaf-spine network topology, then flooding optimization techniques can experience issues that result in degraded flooding performance. Thus, current techniques for deploying leaf-spine network topologies waste computing resources (e.g., processing resources, memory resources, communication resources, etc.), network resources, and the like associated with experiencing degraded flooding performance, losing traffic in the network, attempting to recover lost traffic, and the like.
[0013] Some implementations described herein provide a network device that detects miswiring in a spine-leaf topology of a plurality of network devices. For example, the network device can receive topology data that identifies a spine-leaf topology of a plurality of network devices, and can set link metrics associated with the topology data to a common value and generate modified topology data. The network device can remove data from the modified topology data that identifies connections to devices outside of the spine-leaf topology to generate further modified topology data, and can process the further modified topology data with a shortest path first model to determine path data that identifies paths to destinations identified in the further modified topology data. The network device can process the path data and the further modified topology data with the shortest path first model to determine particular path data that identifies shorter paths and longer paths to corresponding destinations, and can process the particular path data and the further modified topology data with the shortest path first model to determine hop counts associated with the shorter paths and the longer paths to the corresponding destinations. The network device can process the hop counts with the shortest path first model to determine whether the hop counts associated with the shorter paths and the longer paths to the corresponding destinations are all odd values, all even values, or a combination of odd values and even values, and can perform one or more actions based on determining whether the hop counts associated with the shorter paths and the longer paths to the corresponding destinations are all odd values, all even values, or a combination of odd values and even values. Because the spine-leaf topology includes physical connections between network devices that are configured based on a defined system, the hop counts associated with the shorter paths and the longer paths to the same destination should all be odd values or all be even values. If the hop counts associated with the shorter paths and the longer paths to the same destination even include a single odd value included with even values or even include a single even value included with odd values, then the network device can determine that there is one or more miswirings associated with one or more of the shorter paths and / or one or more of the longer paths.
[0014] In this way, the network device can detect miswirings in a spine-leaf topology of a plurality of network devices. The network device can detect miswirings without requiring any configuration and protocol changes. When there are miswirings in the spine-leaf topology, the network device can detect the miswirings and can generate a warning about the miswirings such that the miswirings can be actively and proactively corrected. Thereby, computing resources (e.g., processing resources, memory resources, communication resources, etc.), network resources, etc. that would otherwise be wasted while experiencing a flood performance degradation, losing traffic in the network, attempting to recover the lost traffic, etc. are conserved.
[0015] Figures 1A-1L is a diagram of one or more example implementations 100 described herein. As Figures 1A-1LAs shown in FIG. 1, endpoint devices (e.g., servers, firewalls, edge devices, etc.) can communicate and / or exchange traffic with a spine-leaf network topology of network devices. The spine-leaf network topology can include a plurality of network devices (e.g., routers, gateways, bridges, switches, network interface controllers (NICs), etc.), such as a first network device (e.g., network device 1A), a second network device (e.g., network device IB), a third network device (e.g., network device 2A), etc. Figures 1A-1L The eight network devices shown in FIG. 1 are merely provided as an example of network devices, and in practice, the spine-leaf network topology can include additional network devices.
[0016] The spine-leaf network topology can include spine network devices and leaf network devices. A spine network device can be a network device that connects one or more leaf network devices. Each spine network device can connect to one or more core network devices, one or more network devices outside of the spine-leaf network topology, etc. A leaf network device can be a network device that connects to an endpoint device (e.g., a leaf network device can be IP reachable). Each leaf network device can be physically connected to each spine network device.
[0017] A leaf network device can not be connected to other leaf network devices in the same tier (as explained below). Similarly, a spine network device can not be connected to other spine network devices in the same tier. However, a spine network device can be connected to another spine network device in another tier. If a leaf network device is connected to another leaf network device in the same tier, then the connection can be a miswire. Similarly, if a spine network device is connected to another spine network device in the same tier, then the connection can be a miswire. As described above, a miswire can result in decreased flooding performance, traffic loss, etc.
[0018] As shown in FIG. 1 with reference number 105, the spine-leaf topology can include a plurality of physical connections (e.g., wires, cables, etc.) between the network devices. The physical connections can allow traffic to travel from one network device to another network device. Figure 1A For example, network devices 1A-1F can be leaf network devices (e.g., network devices 1A-1F can receive traffic from endpoint devices). Network devices 2A and 2B can be spine network devices. Each leaf network device (e.g., each of network devices 1A-1F) can be connected to each spine network device (e.g., each of network devices 2A and 2B). Network devices 1A-1F can be in the same tier. As such, there can be no physical connections between network devices 1A-1F. Similarly, network devices 2A and 2B can be in the same tier, and there can be no physical connections between network devices 2A and 2B.
[0019]
[0020] In some embodiments, there can be additional tiers or levels of network devices configured in a similar manner as the network devices described above. For example, there can be additional tiers of spine network devices. Each of the additional tiers of spine network devices can be physically connected to each of the spine network devices 2A and 2B.
[0021] As shown with reference number 110 in Figure 1B , the leaf-spine topology can include a plurality of network devices (e.g., labeled 1A, IB, 2A, 2B, etc.) arranged in tiers (e.g., tier TO, tier Tl, and tier T2). A tier can be a level of network devices, a stage of network devices, etc. Figure 1B The physical connections between the network devices are not shown. The physical connections can be configured in a similar manner as described above with respect to Figure 1A Each network device can be physically connected to each network device in an adjacent tier. Network devices in the same tier can not be physically connected to each other.
[0022] For example, network device 5A can be physically connected to network device 4A, network device 4B, network device 4C, network device 4D, network device 4E, and network device 4F. Network device 5A can not be physically connected to network device 5B, network device 5C, network device 5D, network device 5E, or network device 5F. Network device 4A can be physically connected to network device 5A, network device 5B, network device 5C, network device 5D, network device 5E, network device 5F, network device 3A, network device 3B, network device 3C, network device 3D, network device 3E, and network device 3F. All of the network devices included in the leaf-spine topology can include physical connections configured in a similar manner.
[0023] The network devices in tier TO (e.g., network devices 1A-1F and network devices 5A-5F) can be top-of-rack (ToR) network devices. The network devices in tier TO can be connected to one or more endpoint devices. The network devices in tier TO can be leaf network devices. The network devices in tiers Tl and T2 (e.g., network devices 2A-2F, network devices 3A-3F, and network devices 4A-4F) can be connected only to other network devices in the leaf-spine topology. The network devices in tiers Tl and T2 can be spine network devices.
[0024] The leaf-spine topology can execute one or more link state routing protocols, such as the Open Shortest Path First (OSPF) protocol, the Intermediate System to Intermediate System (ISIS) protocol, etc. As described below, each network device included in the leaf-spine topology can independently compute paths for traffic to each possible destination in the leaf-spine topology.
[0025] Traffic transmitted within the spine-leaf topology can be associated with a number of hops. The number of hops can indicate a number of transmissions of traffic from one network device within the spine-leaf topology to another network device within the spine-leaf topology. For example, the number of hops for traffic transmitted from network device 5A to network device 4A to network device 3B can be 2 (e.g., network device 5A to network device 4A is 1 hop, and network device 4A to network device 3B is 1 hop). As another example, the number of hops for traffic transmitted from network device 1C to network device 2E to network device 3B to network device 2A can be 3 (e.g., network device 1C to network device 2E is 1 hop, network device 2E to network device 3B is 1 hop, and network device 3B to network device 2A is 1 hop).
[0026] As shown in Figure 1C , a network device included in a spine-leaf topology can receive topology data. The topology data can identify a spine-leaf topology of a plurality of network devices, such as the spine-leaf topology shown in Figure 1B . The topology data can be a map of connectivity of the spine-leaf topology that shows which other network devices a network device is connected to. The topology data can identify all physical connections between network devices in the spine-leaf topology. The topology data can identify which network devices are physically connected (e.g., links between network devices) and which network devices are not physically connected.
[0027] The topology data can include one or more destinations for traffic. The one or more destinations can be one or more network devices included in the spine-leaf topology and / or one or more devices that are external to the spine-leaf topology and reachable via a network device of the spine-leaf topology. In some embodiments, the one or more destinations can be leaf network devices in the spine-leaf topology. In some embodiments, the destination can be all other network devices in the spine-leaf topology. For example, if the network device is network device 5A, the destination identified in the topology data can be every other network device except network device 5A (e.g., network devices 5B-F, network devices 4A-F, network devices 3A-F, etc.).
[0028] The topology data can identify link metrics. The link metrics can identify a value (e.g., cost) associated with traffic transmitted from one network device of the spine-leaf topology to another network device that is physically connected to a network device of the spine-leaf topology. The link metrics can identify that the cost of each link between each network device is the same. Alternatively, the link metrics can identify that the cost of each link between each network device is different (e.g., some links between network devices can have a higher cost than other links between other network devices).
[0029] As illustrated using reference numeral 115 in the attached diagram, a network device can set the link metric associated with topology data to a common value (e.g., one). The network device can set the link metric associated with topology data to the value one such that the cost of getting a service to any destination in the leaf-spine topology is the same as the number of hops associated with the service traversing the leaf-spine topology. The network device can modify the topology data while setting the link metric to a common value, resulting in modified topology data. In this way, the link metric associated with the topology data can be used to determine the number of network devices that a service traverses in the leaf-spine topology to reach the destination associated with the service.
[0030] As in Figure 1D As illustrated by reference numeral 120 in the attached diagram, a network device can remove data identifying connections from modified topology data to any devices outside the leaf network device to the leaf spine topology (e.g., endpoint devices, server devices, cloud computing platforms, etc.) to generate further modified topology data. The further modified topology data may include only data identifying connections between network devices within the leaf spine topology. Since connections to devices outside the leaf spine topology may or may not be physical connections, data identifying connections to devices outside the leaf spine topology can be discarded.
[0031] In some implementations, the modified topology data may not include data identifying connections from leaf network devices to one or more devices outside the leaf spine topology. Therefore, network devices may not need to remove data identifying connections from any devices outside the leaf network device to the leaf spine topology. Thus, in some implementations, the modified topology data may be equivalent to and interchangeable with further modified topology data.
[0032] As described above, a leaf-spine topology can include a defined system for configuring physical connections within the leaf-spine topology (e.g., each network device is physically connected to all network devices in an adjacent layer, but the network devices are not connected to other network devices in the same layer). Therefore, as described above, when determining whether any miswiring exists within the leaf-spine topology, any connections outside the leaf-spine topology can be ignored because connections to devices outside the leaf-spine topology may not follow the same defined system used to configure physical connections. As described below, since leaf network devices can connect to devices outside the leaf-spine topology, device connections from leaf network devices to devices outside the leaf-spine topology can be removed from the modified topology data so that only paths within the leaf-spine topology are calculated. This saves computational and / or network resources that would otherwise be used to perform path calculations for services to devices outside the leaf-spine topology.
[0033] like Figure 1EAs shown in FIG. 1, network devices can utilize a shortest path first (SPF) model to compute loop-free paths through a spine-leaf topology. The SPF model can include an algorithm used by the network devices to compute the shortest path between the network device and a given destination in the spine-leaf topology.
[0034] The SPF model can include a Dijkstra shortest path first algorithm. In some embodiments, an algorithm other than the Dijkstra shortest path first algorithm can be used by the SPF model. The SPF algorithm can determine the shortest path between two network devices. The SPF algorithm can determine the shortest path from a network device to all other network devices in the spine-leaf topology. The SPF algorithm can compare the cost of two paths from a network device to the same destination to determine the shortest path to the destination. For example, the SPF algorithm can compare the cost associated with each path based on link metrics to determine the shortest path to the destination.
[0035] The SPF algorithm can be generally modified as described below to detect miswiring within the spine-leaf topology based on comparing the cost associated with each path to a destination.
[0036] As shown with reference number 125, the network device can utilize the SPF model to process the further modified topology data to determine path data that identifies paths to the destinations identified in the further modified topology data (e.g., paths to all other network devices in the spine-leaf topology). In some embodiments, the network device can utilize the SPF model to process the further modified topology data to determine path data that identifies paths to destinations, where in this case the destinations are fewer than all other network devices in the spine-leaf topology. The paths can identify one or more network devices that traffic will traverse to reach the destinations. For example, if the network device is network device 5A and the destinations are network devices 2D, the paths can identify that traffic will travel from network device 5A to network device 4B to network device 3C to network device 2D. In some embodiments, the path data can only indicate the cost associated with each path based on link metrics.
[0037] The path data can include multiple possible paths to multiple destinations. In some embodiments, the path data can identify each possible path to each destination identified in the further modified topology data. For example, the path data can identify each possible path that traffic can follow to reach all other network devices in the spine-leaf topology from the network device.
[0038] As shown with reference number 125, the network device can utilize the SPF model to process the further modified topology data to determine path data that identifies paths to the destinations identified in the further modified topology data (e.g., paths to all other network devices in the spine-leaf topology). In some embodiments, the network device can utilize the SPF model to process the further modified topology data to determine path data that identifies paths to destinations, where in this case the destinations are fewer than all other network devices in the spine-leaf topology. The paths can identify one or more network devices that traffic will traverse to reach the destinations. For example, if the network device is network device 5A and the destinations are network devices 2D, the paths can identify that traffic will travel from network device 5A to network device 4B to network device 3C to network device 2D. In some embodiments, the path data can only indicate the cost associated with each path based on link metrics. Figure 1FAs shown, network devices can input path data and further modified topology data into the SPF model. As illustrated using reference numeral 130, the SPF model can process the path data and further modified topology data to determine specific path data. Specific path data can identify shorter and longer paths from the network device to the corresponding destination. The network device can identify the shorter and longer paths associated with each destination identified in the further modified topology data (e.g., the network device can identify shorter and longer paths to each other network device in the leaf-spine topology). The network device can use the SPF model to identify shorter and longer paths based on the cost associated with each path (e.g., a shorter path may have a lower cost than a longer path).
[0039] For example, suppose the network device is network device 5A, and the destination is network device 2B. Network device 5A can identify a first path with a cost of 3 (e.g., from network device 5A to network device 4A to network device 3A to network device 2B). Network device 5A can identify a second path with a cost of 5 (e.g., from network device 5A to network device 4A to network device 3B to network device 4C to network device 3D to network device 2B). Based on the fact that the cost associated with the first path is less than the cost associated with the second path, network device 5A can identify the first path as the shorter path and the second path as the longer path based on the SPF model. The first and second paths from network device 5A to network device 2B are provided merely as examples. In practice, network device 5A can identify every possible path from network device 5A to network device 2B and the cost associated with each possible path to identify multiple shorter and longer paths to the destination network device 2B.
[0040] As in Figure 1G As illustrated in Figure 135, network devices can use the SPF model to process specific path data and further modified topology data to determine the number of hops associated with shorter and longer paths to the corresponding destination. Network devices can use the SPF model to determine the number of hops associated with each path identified in the specific path data. Network devices can determine the number of hops associated with a path based on the cost associated with that path.
[0041] As described above, because the link metrics in the further modified topology data have been set to a common value, the cost associated with a path can correspond to the number of hops associated with the path. For example, if the common value of the link metrics is 1, then each transition in a path from one network device to another network device increases the cost associated with the path by 1. As described above, moving from one network device to another network device is associated with 1 hop. Thus, the number of hops associated with a path can be determined based on the cost associated with the path (e.g., if the cost associated with a path is 5, then the network device can determine that the number of hops associated with the path is 5).
[0042] In some implementations, the common value of the link metrics can be a value other than 1. The number of hops associated with a path can be determined by dividing the cost of the path by the common value. For example, the common value of the link metrics can be 5 and the cost of the path can be 20. The network device can determine that the number of hops associated with the path is 4 (e.g., 20 divided by 5).
[0043] As shown in Figure 1H and with reference to numeral 140, the network device can use the SPF model to process the number of hops to determine that the number of hops associated with the shorter path and the longer path corresponding to the destination are all odd values, all even values, or a combination of odd and even values. The network device can determine that the number of hops associated with each path from the network device to the destination are all odd values, all even values, or a combination of even and odd values.
[0044] As described above, the physical connections within the spine-leaf topology are configured according to the defined system. Thus, if the physical connections within the spine-leaf topology are correctly configured, the number of hops from the network device to the destination should always be an odd value or should always be an even value, regardless of the path taken to reach the destination.
[0045] If the number of hops associated with the paths from the network device to the same destination has a combination of odd and even values, then the physical connections within the spine-leaf topology are incorrectly configured (e.g., there is at least one miswiring). A miswiring can be a physical connection that does not follow the defined system described above. For example, a miswiring can be a physical connection between two network devices in the same layer (e.g., a physical connection between network device 5A and network device 5B). As another example, a miswiring can be a physical connection that is not between two network devices in adjacent layers (e.g., a physical connection between network device 5A and network device 3A).
[0046] The network device can compare the number of hops for different paths to each destination (e.g., paths to all (or less than all) other network devices in the spine-leaf topology). For example, the network device can use an SPF model to compare the number of hops for each possible path to a particular destination to determine whether the number of hops are all odd values, all even values, or a combination of odd and even values.
[0047] For this example, assume that the network device is network device 5A and the destination is network device 2B. If there are no miswirings in the spine-leaf topology, then each path from network device 5A to network device 2B should be associated with an odd number of hops. For example, the path from network device 5A to network device 4A to network device 3A to network device 2B is 3 hops. The path from network device 5A to network device 4B to network device 3C to network device 2C to network device 1C to network device 2B is 5 hops. However, assume that there is a miswiring between network device 2A and network device 2B (e.g., a physical connection between network device 2A and network device 2B). The path from network device 5A to network device 4A to network device 3A to network device 2A to network device 2B is 4 hops. The even number of hops associated with the path from network device 5A to network device 2B indicates a miswiring.
[0048] As further shown in Figure 1H The network device can determine that there is no miswiring associated with a path of the particular path data for which the number of hops are all odd values or all even values. For example, if the particular path data identifies a shorter path associated with 3 hops and a longer path associated with 5 hops, then the network device can determine that there is no miswiring associated with the path because both of the number of hops are odd values. Similarly, if the particular path data identifies a shorter path associated with 2 hops and a longer path associated with 6 hops, then the network device can determine that there is no miswiring associated with the path because both of the number of hops are even values.
[0049] As further shown in Figure 1HFurther illustrated with reference number 150, the network device can determine that there is at least one miswiring associated with a path of the particular path data for a number of hops that is a combination of an odd value and an even value. For example, if the particular path data identifies a shorter path associated with 3 hops and a longer path associated with 6 hops, then because the shorter path hop count is an odd value and the longer path hop count is an even value, the network device can determine that there is a miswiring associated with the path. Similarly, if the particular path data identifies a shorter path associated with 2 hops and a longer path associated with 5 hops, then because the shorter path hop count is an even value and the longer path hop count is an odd value, the network device can determine that there is a miswiring associated with the path.
[0050] Figures 1I-1K An example of another technique for determining whether a spine-leaf topology has at least one miswiring is provided. Instead of the example techniques described in connection with Figures 1F-1H , the example techniques of Figures 1I-1K may be used. Alternatively, the example techniques of Figures 1I-1K may be used in conjunction with the example techniques described in connection with Figures 1F-1H (e.g., both example techniques can be performed simultaneously, one example technique can be performed before the other example technique, the results of one example technique can be used as input to the other example technique, etc.).
[0051] As illustrated with reference number 155 in Figure 1I , the network device can use the SPF model to process the particular path data and the further modified topology data to prune longer paths to the corresponding destination. The network device can generate shortest path topology data that identifies shorter paths to the corresponding destination in the spine-leaf topology.
[0052] The shortest path topology data can be a list that identifies the shortest paths from the network device to each other network device in the leaf-spine topology. The network device can store a set of shorter paths in the shortest path topology data (e.g., a particular number of shorter paths, all shorter paths with a cost that satisfies a threshold, etc.). For example, the network device can use an SPF model to identify paths from the network device to a destination. As described above, the network device can compare the paths to the shortest paths associated with the destination stored in the shortest path topology data to determine whether the paths are shorter than the shortest paths stored in the shortest path topology data (e.g., by comparing the cost and / or the number of hops associated with each path). If the paths are shorter than the shortest paths, the network device can replace the shortest paths stored in the shortest path topology data with the paths (as described above, after comparing the number of hops to determine whether both are odd values, both are even values, or one is an odd value and one is an even value). The previous shortest paths stored in the shortest path topology data can be discarded. After comparing the number of hops, if the paths are longer than the shortest paths, the network device can discard the paths.
[0053] In some implementations, the network device can not discard the longer paths. The network device can store the longer paths in a data structure, such as a list. The longer paths can be accessible by the network device. The network device can compare the number of hops of a path identified by the network device to a destination to the number of hops of a longer path associated with the destination stored by the network device to determine whether there is a miswiring associated with the path.
[0054] As described above, the SPF algorithm can be configured such that the network device can use the SPF algorithm to determine whether there is a miswiring within the leaf-spine topology. An example of pseudocode associated with the SPF algorithm is shown below. In the pseudocode, the metric can be the number of hops associated with a path. The pseudocode includes three variables. TENT is a list of possible shortest paths, TOPO is the further modified topology data, and PATH is the shortest path topology data:
[0055]
[0056]
[0057] As shown in the Figure 1J The network device can utilize a directed acyclic graph (DAG) model. The DAG model can be used as an alternative to the SPF model, or the DAG model can be used in conjunction with the SPF model. The DAG model can be used to create a DAG associated with the leaf-spine topology. The further modified topology data can be input to the DAG model to create the DAG associated with the leaf-spine topology.
[0058] A Directed Acyclic Graph (DAG) can be a data structure that includes one or more nodes and one or more directed edges. Nodes can represent objects (such as network devices) or data. Directed edges can represent relationships between two nodes. For example, a DAG associated with a leaf-ridge topology can include nodes representing each network device in the leaf-ridge topology and directed edges representing each physical connection in the leaf-ridge topology.
[0059] As in Figure 1J As further illustrated by reference numeral 160 in the accompanying diagram, a network device can use a DAG model to process further modified topology data to generate a DAG that identifies the path to the destination identified in the further modified topology data. The further modified topology data can be the same as the further modified topology data described above relative to the SPF model.
[0060] A Directed Acyclic Graph (DAG) can include all other network devices in a leaf-ridge topology represented by nodes. A node can include a node identifier that identifies the network device it represents. A DAG can be identified by one or more directed edges within the DAG, where each path includes connections between two or more nodes in the DAG. For example, a DAG can identify paths from a network device to all other network devices in a leaf-ridge topology.
[0061] As in Figure 1K As illustrated by reference numeral 165 in the attached diagram, a network device can process a Directed Acyclic Graph (DAG) to determine whether the hop count associated with a path to a corresponding destination is all odd, all even, or a combination of odd and even. The network device can store the information identified in the DAG in a data structure (such as a list, table, etc.). The data structure can include nodes and connections between nodes. Therefore, the data structure can identify all paths to all other nodes. Each node can be identified using a node identifier associated with it. The network device can classify the data structure by the node identifiers. The resulting data structure can identify all (or fewer than all) possible paths already identified in the DAG associated with the leaf-ridge topology, classified by the node identifiers.
[0062] When the link metric identified in the further modified topology data can be set to a common value (e.g., 1), network devices can determine the number of hops associated with each path identified in the DAG based on the cost associated with each path. The number of hops associated with each path can be identified in the data structure.
[0063] As described above, if any node is reachable by both even and odd hop counts, there is a miswiring of physical connections in the leaf-spine topology. The network device can analyze the data structure to compare the hop counts associated with paths to a destination.
[0064] For example, when the data structure can be categorized by node identifiers, paths associated with reaching the same destination can be located proximate to each other in the data structure. The data structure can identify the hop counts associated with each path. The network device can compare the hop counts of different paths to the same destination to determine whether the hop counts associated with paths to the same destination are all even values, all odd values, or a combination of even and odd values.
[0065] For example, if the network device is network device 5A, the data structure associated with the DAG can identify all paths from network device 5A to all other network devices in the leaf-spine topology. The data structure can be categorized by node identifiers. For example, the data structure can be categorized such that all paths identified by the DAG from network device 5A to network device 2B can be categorized together. In this way, the network device can conserve computing and / or network resources that would otherwise be used to locate all paths from a network device to another network device in the leaf-spine topology.
[0066] As further shown in Figure 1K If the network device determines that the hop counts associated with paths to a corresponding destination are all odd values or all even values, the network device can determine that there is no miswiring associated with the paths identified in the DAG. For example, the network device can analyze the data structure associated with the DAG and compare the hop counts associated with paths from the network device to a destination. If the hop counts are all odd values or all even values, the network device can determine that there is no miswiring associated with the paths to the destination.
[0067] As shown with reference number 175, if the network device determines that the hop counts associated with paths to a corresponding destination are a combination of odd and even values, the network device can determine that there is one or more miswirings associated with the paths identified in the DAG. For example, the network device can analyze the data structure associated with the DAG and compare the hop counts associated with paths from the network device to a destination. If the hop counts associated with paths to the destination are a combination of odd and even values, the network device can determine that there is at least one miswiring associated with the paths to the destination.
[0068] As further shown in Figure 1LAs shown by reference number 180, the network device can perform one or more actions based on determining that there is at least one miswiring in the leaf-spine topology. In some embodiments, the one or more actions can include providing an alert to an endpoint device that identifies the miswiring. The endpoint device can be a device, server device, etc. associated with an operator of the network. For example, the network device can alert an endpoint device associated with an operator of the network so that the operator of the network can investigate, identify, and correct the miswiring. This can save computing resources and / or network resources that would otherwise be used to transmit traffic through the network less efficiently due to the miswiring.
[0069] In some embodiments, the one or more actions can include automatically dispatching a technician to correct the miswiring. For example, the network device can identify the miswiring and dispatch and / or assign a technician to correct the miswiring within the hardware of the leaf-spine topology. In this way, the network device can automatically cause performance of an action, thereby saving resources that would otherwise be used to schedule a particular action to be performed to cause personnel and / or other resources to perform the particular action, schedule the particular action to be performed, etc.
[0070] In some embodiments, the one or more actions can include automatically dispatching a robot or autonomous vehicle to correct the miswiring. For example, the network device can identify the miswiring and dispatch and / or assign a robot or autonomous vehicle to correct the miswiring within the hardware of the leaf-spine topology. In this way, the network device can automatically cause performance of an action, thereby saving resources that would otherwise be used to schedule a particular action to be performed to cause personnel and / or other resources to perform the particular action, schedule the particular action to be performed, etc.
[0071] In some embodiments, the one or more actions can include providing data in a log file that identifies the miswiring. The log file can be stored by the network device. For example, each time the network device identifies a miswiring, the network device can provide data to the log file. In this way, the log file can be used by the network device and / or devices associated with the network device for forensic purposes to identify one or more miswirings within the leaf-spine topology.
[0072] In some embodiments, the one or more actions can include providing data identifying the miswiring to a tool that determines a physical location of the miswiring. For example, the data identifying the miswiring can include identifying an identifier of the network device, identifying an identifier of a destination of the path associated with the miswiring, identifying an identifier of the network device (e.g., two network devices that are improperly physically connected) associated with the miswiring, to determine the network device associated with the miswiring, a time and date that the network device determined that there was a miswiring, etc., by analyzing the path associated with the miswiring based on the further modified topology data and the path associated with the miswiring. In this way, the tool can analyze the data to identify the physical location of the miswiring. The tool can enable a technician, a robot, or an autonomous vehicle to quickly identify the physical location of the miswiring and correct the miswiring within the hardware of the spine-leaf topology. In this way, the network device can conserve computing resources and / or network resources that would otherwise be used to search for the miswiring, analyze the hardware associated with the spine-leaf topology to identify the miswiring, transmit traffic through the spine-leaf topology when there is a miswiring (e.g., transmit traffic via an inefficient spine-leaf topology), etc.
[0073] In some embodiments, the one or more actions can include performing one or more tests on a topology of the network device based on the miswiring. For example, the one or more tests performed on the topology of the network device can include a test to identify physical connections associated with the network device, a test to identify which other network devices the network device is physically connected to, a test to determine a number of hops associated with one or more paths associated with the network device, etc. In this way, the one or more tests performed on the topology of the network device based on the miswiring can identify the network device that the miswiring is associated with. In this way, the network device can conserve computing resources and / or network resources that would otherwise be used to search for the miswiring, analyze the hardware associated with the spine-leaf topology to identify the miswiring, transmit traffic through the spine-leaf topology when there is a miswiring (e.g., transmit traffic via an inefficient spine-leaf topology), etc.
[0074] In some embodiments, the one or more actions can include updating a SPF model and / or a DAG model based on the miswiring. For example, the SPF model and / or the DAG model can be updated to remove a path from the further modified topology data associated with the miswiring. In this way, the network devices of the spine-leaf topology can not use the path associated with the miswiring to transmit traffic. In this way, the network device can conserve computing resources and / or network resources that would otherwise be used to transmit traffic via the path associated with the miswiring.
[0075] While the functionality described herein has been associated with a single network device of a leaf-spine topology, any network device within a leaf-spine topology can perform the same (or similar) functionality. In some embodiments, the functionality described herein with respect to a network device can be performed by a device external to the leaf-spine topology (e.g., a server device connected to a network device in the leaf-spine topology, a cloud computing platform, an endpoint device, etc.).
[0076] In this way, a network device can detect miswiring in a leaf-spine topology of multiple network devices. This saves computational resources (e.g., processing resources, memory resources, communication resources, etc.), network resources, and the like that would otherwise be wasted while experiencing a flood performance drop, losing traffic in the network, attempting to recover lost traffic, and the like. Moreover, the embodiments described herein use strict computerized processes to perform tasks that have not previously been performed. For example, there currently does not exist a technique to detect miswiring in a leaf-spine topology of multiple network devices in the manner described herein.
[0077] As indicated above, Figures 1A-1L are provided merely as examples. Other examples can differ from what is described in this regard. Figures 1A-1L Figures 1A-1L The number and arrangement of devices shown in Figures 1A-1L may be different. Additionally or alternatively, Figures 1A-1L Two or more devices shown in Figures 1A-1L may be implemented within a single device, or Figures 1A-1L A single device shown in Figure 2 may be implemented as multiple, distributed devices. Additionally or alternatively, A set of devices (e.g., one or more devices) of
[0078] may perform one or more functions described as being performed by another set of devices of Figure 2 Figure 2
[0079] The endpoint devices 210 include one or more devices capable of receiving, generating, storing, processing, and / or providing information (e.g., information described herein). For example, the endpoint devices 210 can include a mobile phone (e.g., a smart phone, a wireless phone, etc.), a laptop computer, a tablet computer, a desktop computer, a handheld computer, a gaming device, a wearable communication device (e.g., a smart watch, a pair of smart glasses, a heart rate monitor, a fitness tracker, smart clothing, smart jewelry, a head-mounted display, etc.), a network device, or a similar type of device. In some implementations, the endpoint devices 210 can receive network traffic from and / or can provide network traffic to other endpoint devices 210 via the network 230 (e.g., by routing packets through the network device 220 as an intermediary).
[0080] The network devices 220 include one or more devices capable of receiving, processing, storing, routing, and / or providing traffic (e.g., packets, other information, or metadata, etc.) in the manner described herein. For example, the network devices 220 can include routers, such as label switched routers (LSRs), label edge routers (LERs), ingress routers, egress routers, provider routers (e.g., provider edge routers, provider core routers, etc.), virtual routers, etc. Additionally or alternatively, the network devices 220 can include gateways, switches, firewalls, hubs, bridges, reverse proxies, servers (e.g., proxy servers, cloud servers, data center servers, etc.), load balancers, and / or similar devices. In some implementations, the network devices 220 can be physical devices implemented within a housing, such as a rack. In some implementations, the network devices 220 can be virtual devices implemented by one or more computer devices of a cloud computing environment or a data center. In some implementations, a group of network devices 220 can be a group of data center nodes for routing traffic flows through the network 230. The network devices 220 can be connected in a leaf-spine topology, as described herein.
[0081] The network 230 includes one or more wired and / or wireless networks. For example, the network 230 can 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, etc., and / or a combination of these or other types of networks.
[0082] Figure 2The number and arrangement of devices and networks shown in FIG. 1 are provided as one example. In practice, there can 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. 1. Furthermore, two or more devices shown in FIG. 1 can be implemented within a single device, or a single device shown in FIG. 1 can be implemented as multiple, distributed devices. Additionally or alternatively, environmental environment 100 of FIG. 1 can perform one or more functions described as being performed by another device of environment 100. Figure 2 As compared to the devices and / or networks shown in FIG. 1, there can 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. 1. Furthermore, two or more devices shown in FIG. 1 can be implemented within a single device, or a single device shown in FIG. 1 can be implemented as multiple, distributed devices. Additionally or alternatively, environment 200 of FIG. 2 can perform one or more functions described as being performed by another device of environment 200. Figure 2 As compared to the devices and / or networks shown in FIG. 1, there can 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. 1. Furthermore, two or more devices shown in FIG. 1 can be implemented within a single device, or a single device shown in FIG. 1 can be implemented as multiple, distributed devices. Additionally or alternatively, environment 200 of FIG. 2 can perform one or more functions described as being performed by another device of environment 200. Figure 3 As compared to the devices and / or networks shown in FIG. 1, there can 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. 1. Furthermore, two or more devices shown in FIG. 1 can be implemented within a single device, or a single device shown in FIG. 1 can be implemented as multiple, distributed devices. Additionally or alternatively, environment 200 of FIG. 2 can perform one or more functions described as being performed by another device of environment 200.
[0083] Figure 3 FIG. 3 is a diagram of example components of a device. Device 300 can correspond to network device 220. In some implementations, network device 220 can include one or more devices 300 and / or one or more components of device 300. As Figure 3 As shown in FIG. 3, device 300 can include one or more input components 305-1 through 305-A (A > 1) (hereinafter collectively referred to as input components 305, and individually as input component 305), a switching component 310, one or more output components 315-1 through 315-B (B > 1) (hereinafter collectively referred to as output components 315, and individually as output component 315), and a controller 320.
[0084] Input components 305 can be attachment points for physical links and can be entry points for incoming traffic, such as packets. Input components 305 can process incoming traffic, such as by performing data link layer encapsulation or decapsulation. In some implementations, input components 305 can transmit and / or receive packets. In some implementations, input components 305 can include input line cards that include one or more packet processing components (e.g., in the form of integrated circuits), such as one or more interface cards (IFCs), packet forwarding components, line card controller components, input ports, processors, memories, and / or input queues. In some implementations, device 300 can include one or more input components 305.
[0085] Switching component 310 can interconnect input components 305 with output components 315. In some embodiments, switching component 310 can be implemented via one or more crossbars, via buses, and / or with shared memory. Shared memory can act as a temporary buffer to store packets from input components 305 before the packets are finally scheduled for delivery to output components 315. In some embodiments, switching component 310 can enable input components 305, output components 315, and / or controller 320 to communicate.
[0086] Output components 315 can store packets and can schedule packets for transmission on an output physical link. Output components 315 can support data link layer encapsulation or decapsulation and / or various higher level protocols. In some embodiments, output components 315 can transmit packets and / or receive packets. In some embodiments, output components 315 can include output line cards that include one or more packet processing components (e.g., in the form of integrated circuits), such as one or more IFCs, packet forwarding components, line card controller components, output ports, processors, memories, and / or output queues. In some embodiments, device 300 can include one or more output components 315. In some embodiments, input components 305 and output components 315 can be implemented by the same set of components (e.g., and an input / output component can be a combination of input components 305 and output components 315).
[0087] Controller 320 includes a processor in the form of a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another type of processor or processing component. The processor is implemented in hardware, firmware, and / or software and hardware combinations. In some embodiments, processor 320 can include one or more processors that can be programmed to perform functions.
[0088] In some embodiments, controller 320 can include random access memory (RAM), read only memory (ROM), and / or another type of dynamic or static storage device (e.g., flash, magnetic, optical, etc.) that stores information and / or instructions for use by controller 320.
[0089] In some embodiments, the controller 320 can communicate with other devices, networks, and / or systems connected to the device 300 to exchange information about a network topology. The controller 320 can create a routing table based on the network topology information, can create a forwarding table based on the routing table, and can forward the forwarding table to the input component 305 and / or the output component 315. The input component 305 and / or the output component 315 can use the forwarding table to perform a routing lookup on an incoming and / or outgoing packet. In some cases, the controller 320 can create a session table based on information determined when initializing a link fault detection session, and can forward the session table to the input component 305 and / or the output component 315.
[0090] The controller 320 can perform one or more processes described herein. The controller 320 can perform these processes in response to executing software instructions stored by a non-transitory computer-readable medium. A computer-readable medium is defined herein as a non-transitory memory device. A memory device includes memory space within a single physical storage device or memory space spread across multiple physical storage devices.
[0091] The software instructions can be read into the memory and / or storage component associated with the controller 320 from another computer-readable medium or from another device via a communication interface. The software instructions stored in the memory and / or storage component associated with the controller 320 can, when executed, cause the controller 320 to perform one or more processes described herein. Additionally or alternatively, one or more processes described herein can be performed using hardwired circuitry, in place of software instructions or in combination with software instructions. Thus, the embodiments described herein are not limited to any specific combination of hardware circuitry and software.
[0092] Figure 3 The number and arrangement of components shown in FIG. 4 are provided as an example. In practice, there can be additional components, fewer components, different components, or differently arranged components than those shown in FIG. 4. Additionally or alternatively, a set of components (e.g., one or more components) of device 400 can perform one or more functions described as being performed by another set of components of device 400. Figure 4 The number and arrangement of components shown in FIG. 4 are provided as an example. In practice, there can be additional components, fewer components, different components, or differently arranged components than those shown in FIG. 4. Additionally or alternatively, a set of components (e.g., one or more components) of device 400 can perform one or more functions described as being performed by another set of components of device 400.
[0093] Figure 4 is a diagram of example components of a device 400. Device 400 can correspond to endpoint device 210 and / or network device 220. In some embodiments, endpoint device 210 and / or network device 220 can include one or more devices 400 and / or one or more components of device 400. As shown in FIG. 4, device 400 can include a bus 405, a processor 410, a memory 415, a storage component 420, an input component 425, an output component 430, a communication interface 435, and a power supply 440. Figure 4As shown in FIG. 4, the device 400 can include a bus 410, a processor 420, a memory 430, a storage component 440, an input component 450, an output component 460, and a communication interface 470.
[0094] The bus 410 includes a component that permits communication among the components of the device 400. The processor 420 is implemented in hardware, firmware, or a combination of hardware and software. The processor 420 is a central processing unit (CPU), a graphics processing unit (GPU), an accelerated processing unit (APU), a microprocessor, a microcontroller, a digital signal processor (DSP), a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), and / or another processing component. In some embodiments, the processor 420 includes one or more processors capable of being programmed to perform a function. The memory 430 includes a random access memory (RAM), a read only memory (ROM), and / or another type of dynamic or static storage device (e.g., a flash memory, a magnetic storage device, and / or an optical storage device, etc.) that stores information and / or instructions for use by the processor 420.
[0095] The storage component 440 stores information and / or software related to the operation and use of the device 400. For example, the storage component 440 can include a hard disk (e.g., a magnetic disk, an optical disk, a magneto-optic disk, and / or a solid state disk), a compact disc (CD), a digital versatile disc (DVD), a floppy disk, a cartridge, a magnetic tape, and / or another type of non-transitory computer-readable medium, along with a corresponding drive.
[0096] The input component 450 includes a component that permits the device 400 to receive information, such as via a user input (e.g., a touch screen display, a keyboard, a keypad, a mouse, a button, a switch, and / or a microphone). Additionally, or alternatively, the input component 450 can include a sensor (e.g., a global positioning system (GPS) component, an accelerometer, a gyroscope, and / or an actuator) for sensing information. The output component 460 includes a component that provides output information from the device 400 (e.g., a display, a speaker, and / or one or more light-emitting diodes (LEDs)).
[0097] The communication interface 470 includes a transceiver-like component (e.g., a transceiver and / or a separate receiver and transmitter) that enables the device 400 to communicate with other devices, such as via a wired connection, a wireless connection, or a combination of wired and wireless connections. The communication interface 470 can permit the device 400 to receive information from another device and / or provide information to another device. For example, the communication interface 470 can include an Ethernet interface, an optical interface, a coaxial interface, an infrared interface, a radio frequency (RF) interface, a universal serial bus (USB) interface, a Wi-Fi interface, a cellular network interface, and / or the like.
[0098] Device 400 can perform one or more processes described herein. Device 400 can perform these processes based on processor 420 executing software instructions stored by a non-transitory computer-readable medium, such as memory 430 and / or storage component 440.
[0099] Software instructions can be read into memory 430 and / or storage component 440 from another computer-readable medium or from another device via communication interface 470. The software instructions stored in memory 430 and / or storage component 440 can, when executed, cause processor 420 to perform one or more processes described herein. Additionally or alternatively, one or more processes described herein can be performed, in whole or in part, by hard- wired circuitry instead of, or in combination with, software instructions.
[0100] Figure 4 The number and arrangement of components shown in Figure 5 Device 400 can include additional components, fewer components, different components, or differently arranged components than those shown in
[0101] Figure 5 is a flow diagram of an example process 500 for detecting miswiring in a leaf-spine topology of a plurality of network devices. In some implementations, one or more process blocks of process 500 can be performed by a device (e.g., network device 220). In some implementations, one or more process blocks of process 500 can be performed by another device or a group of devices separate from or including the device, such as an endpoint device (e.g., endpoint device 210). Figure 5 Figure 5
[0102] As shown in Figure 5 Process 500 can include receiving topology data identifying a leaf-spine topology of a plurality of network devices, where the network devices are included in the leaf-spine topology of the plurality of network devices (block 510). For example, as described above, a device (e.g., using input component 305, switching component 310, controller 320, processor 420, communication interface 470, etc.) can receive topology data identifying a leaf-spine topology of a plurality of network devices. In some implementations, the network devices are included in the leaf-spine topology of the plurality of network devices.
[0103] As shown in Figure 5 As further shown in
[0104] As shown in Figure 5 As further shown in
[0105] As shown in Figure 5 As further shown in
[0106] As shown in Figure 5 As further shown in
[0107] As shown in Figure 5Further to the foregoing, process 500 can include processing the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations (block 560). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations.
[0108] Further to the foregoing, process 500 can include processing the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations (block 560). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations. Figure 5 Further to the foregoing, process 500 can include processing the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations (block 560). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations.
[0109] Further to the foregoing, process 500 can include processing the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations (block 560). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations. Figure 5 Further to the foregoing, process 500 can include processing the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations (block 560). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the particular path data and the further modified topology data with a shortest path first model to determine the number of hops associated with shorter paths and longer paths to corresponding destinations.
[0110] Process 500 can include additional implementations, such as any individual implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.
[0111] In a first implementation, performing one or more actions includes determining that no miswiring exists in a spine-leaf topology of the plurality of network devices when the number of hops associated with shorter paths and longer paths to corresponding destinations is determined to be all odd values or all even values.
[0112] In a second implementation, alone or in combination with the first implementation, performing the one or more actions includes determining that at least one miswire exists in the spine-leaf topology of the plurality of network devices when the number of hops associated with the shorter path and the longer path to the corresponding destination are determined to be a combination of an odd value and an even value.
[0113] In a third implementation, alone or in combination with one or more of the first implementation and the second implementation, performing the one or more actions includes providing an alert to the endpoint device identifying the miswire in the spine-leaf topology of the plurality of network devices when the miswire is identified based on a determination that the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; automatically dispatching a technician to correct the miswire in the spine-leaf topology of the plurality of network devices when the miswire is identified based on a determination that the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; or automatically dispatching a robot or an autonomous vehicle to correct the miswire in the spine-leaf topology of the plurality of network devices when the miswire is identified based on a determination that the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values.
[0114] In a fourth implementation, alone or in combination with one or more of the first implementation through the third implementation, performing the one or more actions includes providing data identifying the miswire in the spine-leaf topology of the plurality of network devices in a log file when the miswire is identified based on a determination that the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; providing data identifying the miswire in the spine-leaf topology of the plurality of network devices to a tool that determines a physical location of the miswire when the miswire is identified based on a determination that the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; or performing one or more tests on the spine-leaf topology based on the miswire in the spine-leaf topology of the plurality of network devices when the miswire is identified based on a determination that the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values.
[0115] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, the process 500 includes processing the particular path data and the further modified topology data with a shortest path first model to discard longer paths to corresponding destinations and generate shortest path topology data that identifies shorter paths to corresponding destinations in the spine-leaf topology.
[0116] In a sixth implementation, alone or in combination with one or more of the first through fifth implementations, a level of the plurality of network devices of the spine-leaf topology is connected to a next level of the plurality of network devices, and the network devices of the level are not connected to each other.
[0117] Although Figure 6 Example blocks of the process 500 are shown, but in some implementations, the process 500 can include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Figure 6 The process 500 can include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in
[0118] Figure 6 is a flow diagram of an example process 600 for detecting miswiring in a spine-leaf topology of a plurality of network devices. In some implementations, one or more of the process blocks of Figure 6 The one or more process blocks of Figure 6 The one or more process blocks of
[0119] As shown in Figure 6 The process 600 can include receiving topology data that identifies a spine-leaf topology of a plurality of network devices (block 610). For example, as described above, a device (e.g., using input component 305, switching component 310, controller 320, processor 420, communication interface 470, etc.) can receive topology data that identifies a spine-leaf topology of a plurality of network devices.
[0120] As further shown in Figure 6 The process 600 can include setting link metrics associated with the topology data to a common value and generating modified topology data (block 620). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can set link metrics associated with the topology data to a common value and generate modified topology data.
[0121] As shown in Figure 6Further to the foregoing, process 600 can include processing the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data (block 630). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data.
[0122] Further to the foregoing, process 600 can include processing the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data (block 630). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data. Figure 6 Further to the foregoing, process 600 can include processing the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data (block 630). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data.
[0123] Further to the foregoing, process 600 can include processing the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data (block 630). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data. Figure 6 Further to the foregoing, process 600 can include processing the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data (block 630). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can process the modified topology data with a directed acyclic graph model to generate a directed acyclic graph that identifies paths to the identified destinations in the further modified topology data.
[0124] Process 600 can include additional implementations, such as any individual implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.
[0125] In a first implementation, process 600 includes determining that no miswiring exists in the leaf-spine topology of the plurality of network devices when the hop counts associated with the paths to the corresponding destinations are determined to be all odd values or all even values.
[0126] In a second implementation, alone or in combination with the first implementation, process 600 includes determining that one or more miswirings exist in the leaf-spine topology of the plurality of network devices when the hop counts associated with the paths to the corresponding destinations are determined to be a combination of odd and even values.
[0127] In a third implementation, alone or in combination with one or more of the first and second implementations, performing one or more actions includes: providing an alert to an endpoint device identifying one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the number of hops associated with the path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; automatically dispatching a technician to correct one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the number of hops associated with the path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; or automatically dispatching a robot or an autonomous vehicle to correct one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the number of hops associated with the path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0128] In a fourth implementation, alone or in combination with one or more of the first through third implementations, performing one or more actions includes: providing data to a log file identifying one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the number of hops associated with the path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; providing data to a tool that determines a physical location of the one or more miswirings to the plurality of network devices when the one or more miswirings are identified based on determining that the number of hops associated with the path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; or performing one or more tests on the leaf-spine topology based on the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the number of hops associated with the path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0129] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, the process 600 includes providing a notification to an endpoint device indicating that there are no miswirings in the leaf-spine topology of the plurality of network devices when no miswirings are identified based on determining that the number of hops associated with the path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0130] In a sixth implementation, alone or in combination with one or more of the first implementation through the fifth implementation, the level of the plurality of network devices of the leaf-spine topology is connected to a next level of the plurality of network devices, and the network devices of the level are not connected to each other.
[0131] Although Figure 7 Example blocks of the process 600 are shown, but in some implementations, the process 600 can include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in Figure 7 Additionally or alternatively, two or more of the blocks of the process 600 can be performed in parallel.
[0132] Figure 7 is a flow diagram of an example process 700 for detecting miswiring in a leaf-spine topology of a plurality of network devices. In some implementations, one or more of the process blocks of Figure 7 may be performed by a device (e.g., the network device 220). In some implementations, one or more of the process blocks of Figure 7 may be performed by another device or a group of devices separate from or including the device, such as an endpoint device (e.g., the endpoint device 210).
[0133] As shown in Figure 7 the process 700 can include receiving topology data identifying a leaf-spine topology of a plurality of network devices, where the network device is included in the leaf-spine topology of the plurality of network devices (block 710). For example, as described above, a device (e.g., using the input component 305, the switching component 310, the controller 320, the processor 420, the communication interface 470, etc.) can receive topology data identifying a leaf-spine topology of a plurality of network devices. In some implementations, the network device is included in the leaf-spine topology of the plurality of network devices.
[0134] As further shown in Figure 7 the process 700 can include setting link metrics associated with the topology data to a common value and generating modified topology data (block 720). For example, as described above, a device (e.g., using the switching component 310, the controller 320, the processor 420, the memory 430, etc.) can set link metrics associated with the topology data to a common value and generate modified topology data.
[0135] As shown in Figure 7As further shown in
[0136] As further shown in Figure 7 As further shown in
[0137] As further shown in Figure 7 As further shown in
[0138] As further shown in Figure 7 As further shown in
[0139] As further shown in Figure 7Further to the foregoing, process 700 can include determining whether one or more miswirings exist in the leaf-spine topology of the plurality of network devices based on a determination that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values (block 770). For example, as described above, a device (e.g., using switching component 310, controller 320, processor 420, memory 430, etc.) can determine whether one or more miswirings exist in the leaf-spine topology of the plurality of network devices based on a determination that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0140] As further shown in Figure 7 Further to the foregoing, process 700 can include performing one or more actions based on a determination that one or more miswirings exist in the leaf-spine topology of the plurality of network devices (block 780). For example, as described above, a device (e.g., using switching component 310, output component 315, controller 320, processor 420, memory 430, storage component 440, communication interface 470, etc.) can perform one or more actions based on a determination that one or more miswirings exist in the leaf-spine topology of the plurality of network devices.
[0141] Process 700 can include additional implementations, such as any individual implementation or any combination of implementations described below and / or in connection with one or more other processes described elsewhere herein.
[0142] In a first implementation, process 700 includes determining that no miswirings exist in the leaf-spine topology of the plurality of network devices when the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are determined to be all odd values or all even values.
[0143] In a second implementation, alone or in combination with the first implementation, process 700 includes determining that one or more miswirings exist in the leaf-spine topology of the plurality of network devices when the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are determined to be a combination of odd and even values.
[0144] In a third implementation, alone or in combination with one or more of the first and second implementations, performing the one or more actions includes: providing an alert to the end-point device identifying the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; automatically dispatching a technician to correct the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; or automatically dispatching a robot or an autonomous vehicle to correct the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0145] In a fourth implementation, alone or in combination with one or more of the first through third implementations, performing the one or more actions includes: providing data to a log file identifying the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; providing data to a tool that determines a physical location of the one or more miswirings to the corresponding destination when the one or more miswirings are identified based on determining that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; or performing one or more tests on the leaf-spine topology based on the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining that the hop counts associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0146] In a fifth implementation, alone or in combination with one or more of the first through fourth implementations, the process 700 includes processing the particular path data and the modified topology data with a shortest path first model to discard the at least one longer path to the corresponding destination and generate shortest path topology data that identifies the at least one shorter path in the leaf-spine topology to the corresponding destination.
[0147] Although Figure 7 The example blocks of the process 700 are illustrated, but in some implementations, the process 700 can include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in the figure. Additionally, or alternatively, two or more of the blocks of the process 700 can be performed concurrently. The process 700 can include additional blocks, fewer blocks, different blocks, or differently arranged blocks than those depicted in the figure. Additionally, or alternatively, two or more of the blocks of the process 700 can be performed concurrently.
[0148] The foregoing disclosure provides illustration and description, but is not intended to be exhaustive or to limit implementations to the precise form disclosed. Modifications and variations can be possible in light of the above disclosure or can be acquired from practice of the implementations.
[0149] As used in this document, the term “component” is intended to be broadly interpreted to encompass hardware, firmware, or a combination of hardware and software.
[0150] It will be apparent that systems and / or methods, described herein, can be implemented in different forms of hardware, firmware, 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 were described herein without reference to specific software code — it being understood that software and hardware can be designed to implement the systems and / or methods based on the description herein.
[0151] 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. Indeed, many of the features can be combined in ways not specifically recited in the claims and / or disclosed in the specification. Although each dependent claim listed below can only stand directly in relation to one claim, the disclosure of various implementations includes each dependent claim in relation to each other claim in the set of claims.
[0152] Accordingly, unless clearly indicated otherwise, no statement, herein should be construed as limiting or critical. Also, as used herein, the articles “a” and “one” are intended to include one or more items, and can be used interchangeably with the phrase “one or more.” Further, as used herein, the article “the” is intended to include one or more items referenced by the article “the” and can be used interchangeably with “the one or more.” Also, as used herein, the term “set” is intended to include one or more items (for example, related items, unrelated items, a combination of related and unrelated items, and / or the like), and can 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 and the like are intended to be open-ended terms. Further, the phrase “based on” is intended to be open-ended, unless otherwise indicated. Also, as used herein, the term “or” is intended to be inclusive when used in a series of items (for example, “a, b, or c” or “a, b, and c”) unless otherwise indicated (for example, when used in the phrases “either-or” or “one-or-the-other”).
[0153] Example 1. A method comprising: receiving, by a network device, topology data identifying a spine-leaf topology of a plurality of network devices, wherein the network device is included in the spine-leaf topology of the plurality of network devices; setting, by the network device, a link metric associated with the topology data to a common value and generating modified topology data; removing, by the network device, data identifying connections from leaf network devices to any devices outside of the spine-leaf topology from the modified topology data to generate further modified topology data; processing, by the network device, the further modified topology data with a shortest path first model to determine path data, the path data identifying paths to destinations identified in the further modified topology data; processing, by the network device, the path data and the further modified topology data with the shortest path first model to determine particular path data identifying shorter paths and longer paths to corresponding destinations; processing, by the network device, the particular path data and the further modified topology data with the shortest path first model to determine hop counts associated with the shorter paths and the longer paths to the corresponding destinations; processing, by the network device, the hop counts with the shortest path first model to determine whether the hop counts associated with the shorter paths and the longer paths to the corresponding destinations are all odd values, all even values, or a combination of odd and even values; and performing, by the device, one or more actions based on determining whether the hop counts associated with the shorter paths and the longer paths to the corresponding destinations are all odd values, all even values, or a combination of odd and even values.
[0154] Example 2. The method of example 1, wherein performing one or more actions comprises determining that no miswiring exists in the spine-leaf topology of the plurality of network devices when the number of hops associated with the shorter path and the longer path to the corresponding destination are determined to all be odd values or all be even values.
[0155] Example 3. The method of example 1, wherein performing one or more actions comprises determining that at least one miswiring exists in the spine-leaf topology of the plurality of network devices when the number of hops associated with the shorter path and the longer path to the corresponding destination are determined to be a combination of odd values and even values.
[0156] Example 4. The method of example 1, wherein performing one or more actions comprises one or more of: providing an alert to an endpoint device identifying the miswiring in the spine-leaf topology of the plurality of network devices when the miswiring is identified based on determining whether the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; automatically dispatching a technician to correct the miswiring in the spine-leaf topology of the plurality of network devices when the miswiring is identified based on determining whether the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; or automatically dispatching a robot or autonomous vehicle to correct the miswiring in the spine-leaf topology of the plurality of network devices when the miswiring is identified based on determining whether the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values.
[0157] Example 5. The method of example 1, wherein performing one or more actions comprises one or more of: providing data identifying the miswiring in the spine-leaf topology of the plurality of network devices in a log file when the miswiring is identified based on determining whether the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; providing data identifying the miswiring in the spine-leaf topology of the plurality of network devices to a tool that determines a physical location of the miswiring when the miswiring is identified based on determining whether the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values; or performing one or more tests on the spine-leaf topology based on the miswiring in the spine-leaf topology of the plurality of network devices when the miswiring is identified based on determining whether the number of hops associated with the shorter path and the longer path to the corresponding destination are all odd values, all even values, or a combination of odd values and even values.
[0158] Example 6. The method of example 1, further comprising processing the specific path data and the further modified topology data with a shortest path first model to discard longer paths to corresponding destinations and generate shortest path topology data, the shortest path topology data identifying shorter paths to corresponding destinations in the spine-leaf topology.
[0159] Example 7. The method of example 1, wherein a level of the plurality of network devices of the spine-leaf topology is connected to a next level of the plurality of network devices, and the network devices of the level are not connected to each other.
[0160] Example 8. A device comprising: one or more memories; and one or more processors to: receive topology data identifying a spine-leaf topology of a plurality of network devices; set link metrics associated with the topology data to a common value and generate modified topology data; process the modified topology data with a directed acyclic graph model to generate a directed acyclic graph, the directed acyclic graph identifying paths to destinations identified in the modified topology data; process the directed acyclic graph to determine whether a number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values; and perform one or more actions based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values.
[0161] Example 9. The device of example 8, wherein the one or more processors in performing the one or more actions are to: determine that there is no miswiring in the spine-leaf topology of the plurality of network devices when the number of hops associated with paths to corresponding destinations are determined to be all odd values or all even values.
[0162] Example 10. The device of example 8, wherein the one or more processors in performing the one or more actions are configured to: determine that there is one or more miswirings in the spine-leaf topology of the plurality of network devices when the number of hops associated with paths to corresponding destinations are determined to be a combination of odd and even values.
[0163] Example 11. The device of example 8, wherein the one or more processors, when executing the one or more actions, are configured to one or more of: provide an alert to an endpoint device identifying one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values; automatically dispatch a technician to correct the miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values; or automatically dispatch a robot or an autonomous vehicle to correct one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values.
[0164] Example 12. The device of example 8, wherein the one or more processors, when executing the one or more actions, are configured to one or more of: provide data identifying one or more miswirings in the leaf-spine topology of the plurality of network devices to a log file when the one or more miswirings are identified based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values; provide data identifying one or more miswirings in the leaf-spine topology of the plurality of network devices to a tool that determines a physical location of the one or more miswirings when the one or more miswirings are identified based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values; or perform one or more tests on the leaf-spine topology based on one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values.
[0165] Example 13. The device of example 8, wherein the one or more processors, when executing the one or more actions, are configured to provide a notification to an endpoint device indicating that there are no miswirings in the leaf-spine topology of the plurality of network devices when no miswirings are identified based on determining whether the number of hops associated with paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values.
[0166] Example 14. The device of example 8, wherein a level of the plurality of network devices of the leaf-spine topology is connected to a next level of the plurality of network devices, and the plurality of network devices of the level are not connected to each other.
[0167] Example 15. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions that, when executed by one or more processors of a network device, cause the one or more processors to: receive topology data identifying a leaf-spine topology of a plurality of network devices, wherein the network device is included in the leaf-spine topology of the plurality of network devices; set a link metric associated with the topology data to a common value and generate modified topology data; process the modified topology data with a shortest path first model to determine path data, the path data identifying paths to destinations identified in the modified topology data; process the path data and the modified topology data with the shortest path first model to determine particular path data identifying at least one shorter path and at least one longer path to a corresponding destination; process the particular path data and the modified topology data with the shortest path first model to determine a number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination; process with the shortest path first model to determine whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; determine whether one or more miswirings exist in the leaf-spine topology of the plurality of network devices based on determining whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; perform one or more actions based on determining whether one or more miswirings exist in the leaf-spine topology of the plurality of network devices.
[0168] Example 16. The non-transitory computer-readable medium of Example 15, wherein the one or more instructions that cause the one or more processors to determine whether one or more miswirings exist in the leaf-spine topology of the plurality of network devices cause the one or more processors to: determine that no miswirings exist in the leaf-spine topology of the plurality of network devices when the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are determined to be all odd values or all even values.
[0169] Example 17. The non-transitory computer-readable medium of Example 15, wherein the one or more instructions that cause the one or more processors to determine whether one or more miswirings exist in the leaf-spine topology of the plurality of network devices cause the one or more processors to: determine that at least one miswiring exists in the leaf-spine topology of the plurality of network devices when the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are determined to be a combination of odd and even values.
[0170] Example 18. The non-transitory computer-readable medium of example 15, wherein the one or more instructions that cause the one or more processors to perform one or more actions cause the one or more processors to do one or more of: provide an alert to an endpoint device identifying the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; automatically dispatch a technician to correct the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; or automatically dispatch a robot or an autonomous vehicle to correct the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0171] Example 19. The non-transitory computer-readable medium of example 15, wherein the one or more instructions that cause the one or more processors to perform one or more actions cause the one or more processors to do one or more of: provide data identifying the one or more miswirings in the leaf-spine topology of the plurality of network devices to a log file when the one or more miswirings are identified based on determining whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; provide data identifying the one or more miswirings in the leaf-spine topology of the plurality of network devices to a tool that determines a physical location of the one or more miswirings when the one or more miswirings are identified based on determining whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values; or perform one or more tests on the leaf-spine topology based on the one or more miswirings in the leaf-spine topology of the plurality of network devices when the one or more miswirings are identified based on determining whether the number of hops associated with the at least one shorter path and the at least one longer path to the corresponding destination are all odd values, all even values, or a combination of odd and even values.
[0172] Example 20. The non-transitory computer-readable medium of Example 15, wherein the one or more instructions, when executed by the one or more processors, further cause the one or more processors to: process the particular path data and the modified topology data with a shortest path first model to discard at least one longer path to a corresponding destination and generate shortest path topology data, the shortest path topology data identifying at least one shorter path in the leaf-spine topology to the corresponding destination.
Claims
1. A method for miswiring detection in a leaf-spine topology for a network device, comprising: processing, by a network device, topology data associated with the network device using a shortest path first model to determine path data identifying paths to destinations identified in the topology data; processing, by the network device, the topology data using the shortest path first model to determine hop counts associated with shorter and longer paths to corresponding destinations; comparing, by the network device, the hop counts for different possible paths to a particular destination of the corresponding destinations to determine whether the hop counts from the different possible paths are all odd values, all even values, or a combination of odd and even values; and performing, by the network device, one or more actions based on determining whether the hop counts associated with the shorter and longer paths to the corresponding destinations are all odd values, all even values, or a combination of odd and even values, where performing the one or more actions comprises: performing a first action when the hop counts associated with the different possible paths to the particular destination are determined to be all odd values or all even values, and performing a second action when the hop counts associated with the different possible paths to the particular destination are determined to be a combination of odd and even values.
2. The method of claim 1, further comprising: storing in shortest path topology data all paths having a cost that satisfies a threshold.
3. The method of claim 1, wherein performing the one or more actions comprises: performing one or more tests on the topology data when miswiring is identified based on determining whether the hop counts associated with the different possible paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values.
4. The method of claim 1, wherein performing the one or more actions comprises: determining that there is no miswiring in the topology data of a network device when the hop counts associated with the shorter and longer paths to corresponding destinations are determined to be all odd values or all even values.
5. The method of claim 1, wherein performing the one or more actions comprises one or more of: providing data in a log file identifying miswiring in the topology data of a network device when the miswiring is identified based on determining whether the hop counts associated with the shorter and longer paths to corresponding destinations are all odd values, all even values, or a combination of odd and even values.
6. The method of claim 1, further comprising: discarding the longer path to a corresponding destination; and generating shortest path topology data identifying the shorter path to a corresponding destination.
7. The method of claim 1, further comprising: identifying a cost associated with traffic being transmitted from the network device to another network device connected to the network device via a leaf-spine topology.
8. A network device comprising: one or more memories; and one or more processors to: determine, with a shortest path first model, path data identifying paths to destinations, the destinations identified in topology data; process the path data and the topology data with the shortest path first model to determine a number of hops associated with different possible paths to a corresponding destination; compare the number of hops of the different possible paths to a particular destination of the corresponding destinations to determine whether the number of hops from the different possible paths are all odd values, all even values, or a combination of odd and even values; and perform one or more actions based on determining whether the number of hops associated with a shorter path to the corresponding destination are all odd values, all even values, or a combination of odd and even values, wherein the one or more processors to perform the one or more actions are to: perform a first action when the number of hops associated with the different possible paths to the particular destination are determined to be all odd values or all even values, and perform a second action when the number of hops associated with the different possible paths to the particular destination are determined to be a combination of odd and even values.
9. The network device of claim 8, wherein the one or more processors are to: receive the topology data identifying a leaf-spine topology of network devices, wherein the network device is included in the leaf-spine topology of network devices.
10. The network device of claim 8, wherein the one or more processors to compare the number of hops of the different possible paths to the particular destination are to: compare the number of hops of all possible paths to a particular destination of the corresponding destinations to determine whether the number of hops from the different possible paths are all odd values, all even values, or a combination of odd and even values.
11. The network device of claim 8, wherein the one or more processors are further to: identify a cost associated with traffic being transmitted from the network device to another network device connected to the network device.
12. The network device of claim 8, wherein the one or more processors to perform the one or more actions are to: provide an alert to an endpoint device identifying a miswire.
13. The network device of claim 8, wherein the one or more processors to perform the one or more actions are to: provide, to a tool determining a physical location of a miswire, data identifying the miswire in the topology data of network devices when the miswire is identified based on determining whether the number of hops associated with the different possible paths to a corresponding destination are all odd values, all even values, or a combination of odd and even values.
14. The network device of claim 8, wherein the one or more processors to perform the one or more actions are to: One or more tests are performed on the topology data when the miswiring is identified based on determining whether the hop counts associated with the different possible paths to a corresponding destination are all odd values, all even values, or a combination of odd and even values.
15. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions that, when executed by one or more processors of a network device, cause the network device to: determine path data to a destination using a shortest path first model, the destination being identified in topology data that identifies a leaf-spine topology of network devices, wherein the network device is included in the leaf-spine topology of network devices; compare hop counts of different possible paths to a particular destination to determine whether the hop counts from the different possible paths are all odd values, all even values, or a combination of odd and even values; and perform one or more actions based on determining whether the hop counts associated with the different possible paths to the particular destination are all odd values, all even values, or a combination of odd and even values, wherein the one or more instructions that cause the one or more processors to perform the one or more actions cause the one or more processors to: perform a first action when the hop counts associated with the different possible paths to the particular destination are determined to be all odd values or all even values, and perform a second action when the hop counts associated with the different possible paths to the particular destination are determined to be a combination of odd and even values.
16. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions further cause the one or more processors to: identify a cost associated with traffic being transmitted from the network device to another network device connected to the network device.
17. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions further cause the one or more processors to: store one or more paths in a data structure.
18. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions further cause the one or more processors to: store all paths having a cost that satisfies a threshold in the shortest path topology data.
19. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions that cause the one or more processors to perform the second action cause the one or more processors to: automatically dispatch a robot or an autonomous vehicle to correct the miswiring.
20. The non-transitory computer-readable medium of claim 15, wherein the one or more instructions that cause the one or more processors to perform the second action cause the one or more processors to: provide data identifying the miswiring to a tool that determines a physical location of the miswiring.
Citation Information
Patent Citations
Method and device for checking network topological structure for wire arrangement of printed circuit board
CN102571495A
Network topology optimization
CN105743691A