Network latency testing

In general, techniques are described that may allow a network element to analyze the performance of a network without using external equipment external to the network. In one example, a method includes injecting a plurality of data units onto the network, forwarding the plurality of data units around the network loop, injecting at least one timing data unit on to the network, forwarding the at least one timing data unit around the network loop, and determining at least one latency statistic correlated to the at least one characteristic of the forwarded plurality of data units.

TECHNICAL FIELD

The disclosure generally relates to computer networks and, more particularly, to network performance analysis techniques.

BACKGROUND

A computer network is a collection of interconnected computing devices that may exchange data and share resources. Often, in highly populated areas, the computer network is configured in a ring formation, where certain devices, such as layer 2 devices, e.g., a switch, are interconnected via network links in a ring. That is, each layer 2 device couples via a separate network link to two adjacent layer 2 devices, one clockwise and the other counterclockwise around the ring. When arranged in a ring, a network, e.g., an optical fiber network, a copper network, or a combination of both, is referred to as a “ring network.”

SUMMARY

In general, this disclosure describes techniques that may allow a network element to analyze the performance of a network, e.g., a ring network, or a network segment on the network without using any external equipment, e.g., a portable network performance analysis device, in order to identify potentially problematic traffic patterns before a service provider builds out the network, for example. Analyzing traffic patterns before building out a network may help a service provider to determine whether they should upgrade equipment, reconfiguring existing equipment, and/or reconfigure portions of the network, for example, in order to be able to deliver services that are not impacted by these particular traffic patterns.

Using various techniques described in this disclosure, a network element may inject data units into a loop configured on a network, e.g., an Ethernet ring network, to create a traffic pattern, inject timing data units into the loop, and determine, using the injected timing data units, one or more latency statistics as a function of the traffic patterns. These techniques may provide a mechanism whereby the network operator does not need a technician with any external equipment to analyze the performance of a network or network segment. Instead, a network element may autonomously analyze a network or network segment before network buildout, for example.

In one example, this disclosure is directed to a method that comprises configuring a network loop on a network having at least two network elements, forwarding, using each of the at least two network elements on the network, a plurality of data units around the network loop at a first rate, wherein each of the plurality of data units comprises at least one characteristic, injecting, using a first one of the at least two network elements on the network, at least one timing data unit on to the network, forwarding, using each of the at least two network elements on the network, the at least one timing data unit around the network loop, and determining, based on the at least one timing data unit, at least one latency statistic correlated to the at least one characteristic of the forwarded plurality of data units.

In another example, this disclosure is directed to a network element comprising a control unit configured to configure a network loop on a network having at least two network elements, forward, using each of the at least two network elements on the network, the plurality of data units around the network loop at a first rate, wherein each of the plurality of data units comprises at least one characteristic, inject, using a first one of the at least two network elements on the network, at least one timing data unit on to the network, forward, using each of the at least two network elements on the network, the at least one timing data unit around the network loop, and determine, based on the at least one timing data unit, at least one latency statistic correlated to the at least one characteristic of the forwarded plurality of data units.

In another example, this disclosure is directed to a computer-readable medium containing instructions. The instructions cause a processor to configure a network loop on a network having at least two network elements, forward, using each of the at least two network elements on the network, the plurality of data units around the network loop at a first rate, wherein each of the plurality of data units comprises at least one characteristic, inject, using the first one of the at least two network elements on the network, at least one timing data unit on to the network, forward, using each of the at least two network elements on the network, the at least one timing data unit around the network loop, and determine, based on the at least one timing data unit, at least one latency statistic correlated to the at least one characteristic of the forwarded plurality of data units.

DETAILED DESCRIPTION

Ring topologies, e.g., Ethernet ring topologies, are commonly used in networks as they require less optical fiber or copper for connectivity and provide an effective topology for creating a loop-free, layer 2 network with good convergence times. Ring topologies include a number of network elements (or “nodes”) connected such that each network element is connected to two other network elements, thereby forming a ring configuration. Ring topologies require a network element to be configured as a control node to block traffic in order to prevent a traffic loop around the ring network.

For certain types of data that do not include a specific destination, such as multicast or broadcast data, for example, each of the network elements in the ring network may simply forward this data around the ring to ensure that each network element forwards the data to every network element.

As network usage increases, network performance may degrade as hosts and network elements compete for shared resources. For example, packets transmitted by various hosts may contend for use of a network link. As the packets are received by a network element, the packets may be placed in a queue before the network element may transmit them over the link. As more packets are placed in the queue, the time delay, e.g., latency, through the network element and thus through the network, increases. In an extreme scenario, the number of packets received at a network element may overrun the queue, which may result in the network element dropping packets.

In order to resolve network performance issues resulting from increased usage, for example, service providers may consider building out a network to increase capacity. Building out a network, however, may be an expensive undertaking that involves significant capital expenditures. Hence, it may be desirable for a service provider to analyze the performance of the network in order to determine whether there any particular loads, e.g., traffic patterns, that are degrading the performance of the network, for example. If one or more loads, e.g., traffic patterns, are identified as sources for the degraded network performance, the service provider may be able to upgrade or reconfigure equipment on the network, or reconfigure portions of the network, in order to resolve the network performance. In this manner, major capital expenditures incurred by building out the network may be deferred.

Typically, analyzing a network's performance may involve injecting data units onto the network and gathering statistics, e.g., latency statistics. Such a network performance analysis, however, is ordinarily a manual process and may require external equipment, e.g., a portable network performance analysis device.

Manually performing a network performance analysis, however, may suffer from one or more disadvantages. For example, a network technician may need to travel to one or more of the network elements on the network. In addition, test equipment external to the network, e.g., a network performance analyzer, may be needed to inject data units to test the network. Also, in order to inject data units using the network element, an extra port on the network element may be needed. Finally, if a problem is found following the manual testing, it may be difficult to determine if the problem is on the network or if there is a problem with the port or the test equipment. In general, this disclosure describes techniques that may allow a network element to analyze the performance of a network, e.g., a ring network, a network segment on a network, or a network element itself without using any external equipment, e.g., a portable network performance analysis device, prior to network buildout for example.

FIG. 1is a block diagram illustrating an example network, e.g., an Ethernet network, configured to perform a network latency test using various techniques described in this disclosure. As shown inFIG. 1, the simplified ring network10includes network elements12A-12M (“network elements12”) and links14A-14N (“links14”). In one example, the network elements may include the Calix E7-2 Ethernet Service Access Platform. The network elements12may be coupled via respective links14to form a ring topology. For example, the network element12A may be coupled to the network element12B via the link14A, the network element12B is coupled to the network element12C via the link14B, and so on, completing the ring with the network element12M coupled to the network element12A via the link14N.

In a ring topology, e.g., an Ethernet ring topology, there may be one control node and one or more non-control nodes connected one to another to form a ring. A network operator may designate a network element, e.g., network element12A, as the control node during creation and deployment of the ring network10. During normal operation, the control node is responsible for placing a block in the data path of the ring in order to prevent a traffic loop. The control node is also responsible for communicating with non-control nodes, via messaging protocols, on the ring network in order to manage and control ring topology changes.

The network elements12, e.g., a layer 2 device such as a layer 2 switch, receive and forward traffic from one or more customer devices subtended from the ring network10over ring network10. Each of the network elements12may also forward traffic received from other network elements via ring network10to one or more customer devices subtended from the ring network10. For simplicity, any customer devices subtended from the network elements12and capable of generating and/or receiving traffic via ring network10are not depicted, e.g., personal digital assistants (PDA), workstations, personal computers, laptop computers, television set-top boxes, voice-over-internet protocol (VoIP) telephones, or any other computing devices.

The example ring network10may be configured to provide a wide area network (WAN) or a metropolitan area network (MAN). To support a high level of data traffic, the links14may comprise optical fiber links to facilitate the rapid transfer of the traffic around ring network10. However, one or more links14may comprise copper wires. In some examples, the ring network10may be heterogeneous and comprise both copper and optical media as the links14. In other examples, the ring network10may be homogeneous and comprise only one type of media, e.g., optical fiber or copper, as the links14.

The ring topology of the ring network10may offer geographic coverage and resilience. That is, the ring network10may reach customer devices dispersed over wide geographic areas. The ring network10may provide resilience because traffic may be forwarded in both a clockwise direction and counterclockwise direction around the ring network10. By enabling both directions of forwarding, the network elements12may forward traffic so as to avoid one of links14that has failed, while still reaching every one of the network elements12.

The network element12A, acting as a control node, may include a primary port16and a secondary port18. In one implementation, the control node12A forwards traffic via the primary port16and blocks traffic via the secondary port18during normal operation in order to correct for traffic loops. A traffic loop may substantially impact the performance of the ring network by needlessly consuming network resources, such as switch processing time and memory as well as link bandwidth. Traffic that is blocked at the secondary port18may be discarded so that it is not forwarded through the loop again. Typically, the control node12A logically blocks the secondary port18. In other words, the control node12A may actively filter traffic arriving via the secondary port18, discarding or dropping certain traffic, such as data traffic, but allowing other traffic, such as control traffic used by the control node12A to monitor or otherwise control the ring network10. By blocking traffic arriving via the secondary port18in this manner, the control node12A ensures that data traffic does not continually loop through the ring network10during normal operation, while preserving the beneficial aspects of wide geographical coverage and resilience associated with the ring network.

Upon detecting a fault in the link14A, for example, a control node, e.g., the network element12A, may forward traffic via the link14N counterclockwise around the ring network10to reach the network element12B. The network element12B may, to avoid faulted the link14A, simultaneously forward traffic via the link14B clockwise around the ring network10to reach the control node, e.g., the network element12A. The ring network10therefore may support simultaneous forwarding of traffic in both the clockwise and counterclockwise directions to avoid the faulted link. Consequently, the ring network10may not only provide wide geographical coverage but resilience as well.

Analyzing the performance of a network, e.g., the ring network10, may help to determine whether there are particular loads, e.g., traffic patterns, that are problematic for the network. As mentioned above, a network operator typically needs a technician to travel to one or more of the network elements12on the network10in order to inject data units to test the network10. For instance, a network operator may need a technician to travel to the location of the network element12A and inject test data units onto the ring network10through an available port on the network element12A via a network performance analyzer. Then, the technician may need to travel to adjacent network element12B and perform measurements related to the injected data units. In this manner, the technician may test the network elements12A,12B and their connecting link14A.

In accordance with this disclosure and as will be described in more detail below, a network element, e.g., network element12A, may inject data units on the ring network10, e.g., an Ethernet network, and create a large traffic stream such that the network's performance, e.g., latency, may be analyzed with respect to the injected data units. These techniques may provide a mechanism whereby the network operator does not need a technician with any external equipment to analyze the performance of a network or network segment, e.g., link14A. Instead, a network element, e.g., network element12A, may autonomously analyze a network or network segment. As used in this disclosure, a “data unit” may include packets, frames, blocks, cells, segments, or any other unit of data, depending on the type of network.

In one example implementation, a VLAN may be configured onto the network10. Regarding configuring the VLAN on the ring network10, in some examples, each network element, e.g., network element12A-12M, configures a virtual local area network (VLAN)20that extends around the ring network10. The VLAN configuration may be accomplished either automatically or manually, e.g., via a network operator manually creating a VLAN on each network element.

In contrast to normal ring network operation, where traffic loops are undesirable, various techniques of this disclosure utilize a traffic loop to continually forward data units around the ring network10. In some examples, the data units may be forwarded around the ring network10at media speed, e.g., the speed of the optical fiber or the speed of the copper, until the loop is broken. To that end, the control node of the ring network, e.g., the network element12A, may unblock the secondary port18to configure a traffic loop in the ring network10on the VLAN20.

Once the loop has been created in the ring network10, the control node, e.g., network element12A, may begin generating and injecting a plurality of data units, e.g., a test traffic pattern or test load, onto the ring network10without manual intervention by a network operator. Then, the control node, e.g., network element12A may inject one or more timing data units, e.g., a Precision Timing Protocol (PTP) packet onto the ring network10, which are forwarded around the ring network10by the network elements12. While the data units of the test traffic pattern are forwarded around the ring network10on the VLAN20, each one of network elements12may gather one or more latency statistics, based on the timing data units, that are correlated to the test traffic pattern. Example latency statistics include the cumulative latency of the network and/or the individual latencies of one or more network elements.

Next, a remotely located computing device and/or one or more of the network elements12, e.g., the control node12A, may determine one or more latency statistics such that one or more timing degradation profiles as a function of traffic patterns may be determined. In this manner, a network element may autonomously analyze the performance of a network, network segment, and/or network element. In some examples, the control node, e.g., network element12A, may terminate the traffic loop, e.g., by blocking the secondary port18, prior to determining the latency statistics.

Although the ring network10ofFIG. 1depicts at least four network elements12, the techniques of this disclosure are not limited to such networks. Rather, the techniques of this disclosure may be used to analyze the performance of two network elements12, as described in more detail below with respect toFIG. 5. In addition, the techniques of this disclosure may also be used to validate a network subtended from the main network10, as described in more detail below with respect toFIG. 6.

In some example configurations, a large traffic stream may be created on the network10using loop configurations, as described below with respect toFIGS. 2-3.

FIG. 2is a block diagram illustrating a local loop configuration that can be used to implement various techniques of this disclosure. InFIG. 2, two unused ports, e.g., on the network element12A, may be wired together to create a virtual local area network (VLAN) loop that is local to the network element. More particularly, a cable23can connect the primary port16to the secondary port18, and a VLAN25can be configured on the primary port16and the secondary port18. The network element12A can generate and inject the traffic on either or both the primary and secondary ports16,18, which results in media saturation of the link23between the primary and secondary ports16,18. The traffic can be then injected onto the ring network10by, for example, enabling the VLAN25on a third port (not depicted) on network element12A. In another example, the network element12A can mirror the traffic on the secondary port18and transmit a copy of the traffic out a third port (not depicted) on the network element12A and onto the ring network10.

FIG. 3is a block diagram illustrating a loop-back mode configuration that can be used to implement various techniques of this disclosure. InFIG. 3, one unused port, e.g., on the network element12A, may be put in a loop-back mode. For example, the primary port16can be placed in either an internal or external loop-back mode. The network element12A can generate and inject traffic out the primary port16. The primary port16is configured to copy all ingress traffic to a mirror port, which is the primary port16. Thus, the primary port16reflects all ingress traffic because of the mirror operation and the primary port reflects all egress traffic because of the loop-back mode, as represented at reference number27inFIG. 3. The traffic can be then injected onto the ring network10by, for example, mirroring the traffic on the primary port18and transmitting a copy of the traffic out another port, e.g., a secondary port, on the network element12A and onto the ring network10. This configuration can create a similar effect as the VLAN loop ofFIG. 1.

The loop-back mode ofFIG. 3can be either physical or logical. For example, using a loop-back plug or by connecting the transmit fiber to the receive fiber can physically create a loop-back mode. Alternatively, the Media Access Control (MAC) layer and/or the Physical Layer (PHY) of the network element can logically support a loop-back mode,

FIG. 4is a block diagram illustrating, in more detail, an example of the network element12A shown inFIG. 1that may implement various techniques described in this disclosure. AlthoughFIG. 4illustrates the network element12A, each of network elements12may be similarly configured. As shown inFIG. 4, the network element12A includes the primary port16and the secondary port18, where the primary port16interfaces with the link14N (ofFIG. 1) and the secondary port18interfaces with the link14A (ofFIG. 1). The primary port16and the secondary port18are illustrated in this manner merely for exemplary purposes and represent logical designations. That is, currently designated secondary port18may be re-designated as a primary port and the primary port16may also be re-designated as a secondary port. Although not shown for ease of illustration purposes, the network element12A may comprise additional ports for receiving additional links14.

The network element12A also includes a control unit22that couples to the primary port16and the secondary port18. The control unit22may comprise one or more processors24that execute software instructions, such as those used to define a software or computer program, stored in a computer-readable storage medium such as a memory device26(e.g., a Flash memory, random access memory (RAM), or any other type of volatile or non-volatile memory that stores instructions), or a storage device (e.g., a disk drive, or an optical drive). Alternatively, the control unit22may comprise dedicated hardware, such as one or more integrated circuits, one or more Application Specific Integrated Circuits (ASICs), one or more Application Specific Special Processors (ASSPs), one or more Field Programmable Gate Arrays (FPGAs), or any combination of the foregoing examples of dedicated hardware, for performing the techniques described in this disclosure.

As seen inFIG. 4, the network element12A may further include a network performance test module28(or “test module28”) to implement various techniques of this disclosure. In one example, the test module28may autonomously analyze the performance of the network. The test module28may cause a control unit of a network element, e.g., network element12A, to configure a VLAN on a ring network. That is, the test module28may configure a VLAN, e.g., VLAN20ofFIG. 1, on the ports16,18of the network element12A.

Assuming that the network element12A is the control node of the ring network10, the test module28of the network elements12A may also generate and transmit to each of the other network elements12B-12M of the ring network10one or more data units comprising profile information in order to configure the VLAN, e.g., VLAN20ofFIG. 1, on ports of the network elements12B-12M. Upon receiving the data units, each of the network elements12B-12M of the ring network10may configure the VLAN20and forward the data units to an adjacent network element12until the VLAN20is configured on all the network elements. In other example implementations, the network operator may manually create the VLAN20on the ring network10.

In some examples, a VLAN need not be used for testing. As indicated above, rather than using a VLAN, a loop-back configuration can be used to generate a traffic stream and inject that stream onto the network.

In order to configure a network loop on the ring network10, the test module28may unblock the secondary port18. By unblocking the secondary port18of the network element12A, any data units injected onto the ring network10may continue to be forwarded around the ring by each of the network elements12.

Upon configuring the VLAN and the network loop on the ring network10, the test module28may, in some examples, cause the control unit22to inject a plurality of data units, e.g., a test traffic pattern or test load, for the network performance testing, onto the ring network10. In some example implementations, the test module28may cause the control unit22to generate the plurality of data units, e.g., test traffic pattern or test load. These data units may be considered “artificial” in the sense that they are not traffic patterns existing on the network during normal use or operation.

In other example implementations, the test module28may cause the control unit22to retrieve the plurality of data units from memory, e.g., the memory26. For example, various traffic patterns from the ring network10and/or another existing network during normal operation may be captured and stored. These traffic patterns may include, for example, video, data, and voice traffic, which have various priorities and packet sizes, VLAN information, and the like. These data units may also be considered “artificial” in the sense that they are not traffic patterns existing on the network during normal use or operation.

The traffic patterns can be stored along with their timestamps. The test module28may use the stored timestamps to compute spacing information between the data units of the traffic patterns, e.g., inter-packet gap information. The spacing information can allow the stored traffic patterns to be accurately regenerated, e.g., by the network element12A, so as to simulate the original traffic patterns. Capturing and recreating these real-world traffic patterns on the ring network10may more accurately test the performance of the ring network10than generating random traffic patterns.

The injected artificial data units may then be forwarded around the ring network10by network elements12. In some examples, the data units may be forwarded at media speed. Media speed is the maximum load that the medium, e.g., optical fiber or copper, may sustain. Injecting a number of data units into the loop results in media speed forwarding of the injected data units. By way of comparison, optical fiber is generally able to sustain a higher speed of transmission of data units than copper.

In other examples, the control unit22of a network element12may forward the data units around at another rate, e.g., less than media speed. For example, the test module28may establish rate limiting on the configured test VLAN20. For example, the test module28may establish a 10 Megabit loop on the VLAN20that is running continuously on a 10 Gigabit ring network10. In some examples, the control unit22may perform traffic shaping techniques in order to rate limit the network during the performance analysis.

The injected plurality of data units comprises one or more characteristics that at least partially define a traffic pattern. Characteristics may include, for example, a size of a data unit, a priority level of a data unit, VLAN information, and a type of data unit. For purposes of this disclosure, a “type” of data unit refers to voice, data, and video, where voice is a first type of data unit, video is a second type of data unit, and data is a third type of data unit.

As one example, a first plurality of data units that includes video data units may represent a first traffic pattern. As another example, a second plurality of data units that includes voice data units may represent a second traffic pattern. As another example, a third plurality of data units that includes a particular VLAN ID may represent a third traffic pattern. As another example, a fourth plurality of data units that includes a particular priority level may represent a fourth traffic pattern. As another example, a fifth plurality of data units that includes a particular VLAN ID may represent a fifth traffic pattern. Network and/or network element latency with respect to each of these characteristics may then be determined and reported.

In some instances, it may be desirable to test the network and/or network element latency using traffic patterns that include two or more characteristics. For example, a sixth plurality of data units that includes voice data units and a priority level may represent a sixth traffic pattern. Other combinations of characteristics are within the scope of this disclosure as would be understood by a person of ordinary skill in the art and, for purposes of conciseness, the combinations of characteristics will not be described in more detail. Network and/or network element latency with respect to these combinations of characteristics may then be determined and reported.

In some example implementations, one or more baseline latency statistics may be determined prior to injecting the plurality of data units onto the network. For example, the cumulative latency of the network and/or the individual latencies of one or more network elements may be determined before a load is applied. Later, one or more of the baseline latencies may be compared to one or more latencies determined under load conditions.

After injecting the plurality of data units onto the network10, a timing module30of the control unit22, e.g., of the control node, may cause the control unit22to generate and inject one or more timing data units, e.g., PTP packets, onto the ring network10at the top of the ring, e.g., network element12A. Each timing data unit may have a field that includes an accumulated time, e.g., a correction field of a PTP packet, as the timing data unit traverses the ring. At the network element originating the timing data unit, e.g., network element12A, there is zero accumulated time in the field as the timing data unit exits the network element.

As the timing data unit enters a downstream network element, e.g., network element12B, the processor24of the network element may capture a copy of the timing data unit and read the field that includes the accumulated time, e.g., a correction field of a PTP packet. The processor24may then store the accumulated time, e.g., latency statistics, in the latency counter32of the memory26.

In this manner, the latency counter32may store the delay from the network element12A (upstream node) to the network element12B (current node). As mentioned above, the network element12B received a timing data unit from the network element12A that had zero accumulated delay. The processor24of the network element12B may capture and store the timing information that it received from the timing data unit as a function of the characteristics of the traffic pattern in the latency counter32for later performance analysis purposes.

As seen inFIG. 4, the control unit22may include a timer34. Just prior to exiting the network element, the processor24may retrieve timing information from the timer34of network element12B (ΔT1inFIG. 1) and timestamp the timing data unit. The control unit22may then forward the updated timing data unit to the next network element on the ring network10, e.g., network element12C.

Upon receiving the timing data unit, the next network element on the ring network, e.g., network element12C, may repeat the process described above. As the network element12C receives the timing data unit, the processor24of network element12C may capture a copy of the timing data unit, read the field that includes the accumulated time (ΔT1inFIG. 1), and store the accumulated time in the latency counter32of the memory26. The processor24may store the accumulated time, e.g., latency statistics, as a function of the characteristics of the traffic pattern in the latency counter32of the network element12C for later performance analysis purposes.

Just prior to exiting the network element, the processor24of the network element12C may retrieve timing information from the timer34(ΔT2inFIG. 1) and update the timing data unit to add the latency contributed by the network element12C. In this case, the accumulated time is the sum of ΔT1(latency caused by network element12B)+ΔT2(latency caused by network element12C). The control unit22may then forward the updated timing data unit to the next network element on the ring network10, e.g., network element12D (not depicted).

This process of accumulating time in the field of the timing data unit and forwarding the timing data unit continues until the timing data unit reaches the network element that originated the timing data unit, e.g., the network element12A. As the network element12A receives the timing data unit, the processor24of network element12A may capture a copy of the timing data unit and retrieve the timing information. In this case, the sum at network element12A is (ΔT1+ΔT2+ . . . +ΔT12), or the sum of delays of each network element12on the network. This sum is the cumulative latency for the network, e.g., the ring network10. Network element12A, the originating network element, may correlate the cumulative latency statistics for the network as a function of packet sizes, rates, priorities, VLAN IDs, and the like.

In order to determine the individual latencies for each respective network element12on the network10, the control unit22of the network element12A may generate and transmit a request. In response, each respective network element12may retrieve from their respective latency counter34the previously stored latency statistics correlated to one or more characteristics of the forwarded plurality of data units. The control unit22of the network element12A may then subtract the received timing information for each respective network element12from the cumulative latency of the network in order to determine the individual latency statistics on each individual network element correlated to the one or more characteristics of the forwarded plurality of data units.

For example, the network element12C received a timing data unit with ΔT1in the correction field, a network element12D (not depicted inFIG. 1) received a timing data unit with ΔT1+ΔT2in the correction field, a network element12E (not depicted inFIG. 1) received a timing data unit with ΔT1+ΔT2+ΔT3in the correction field and so forth until the network element12M received a timing data unit with ΔT1+ΔT2+ . . . +ΔT12in the correction field. Each network element is aware of the cumulative delay at egress of an upstream neighbor. That is, each network element12is aware of all the previous network element delays, but not its own delay. The control unit22of the network element12A, or a remote device, may determine the actual latency ΔT for each individual network element arithmetically from the received timing information for each respective network element12and the received aggregate latency information.

Once one or more latency statistics have been determined for a first characteristic of the forwarded plurality of data units is determined, one or more latencies with respect to a second characteristic of the forwarded plurality of data units may be determined in a manner similar to that described above.

In this manner, latency statistics with respect to the injected plurality of data units, e.g., a traffic pattern, may be determined for the entire ring network10(aggregate delay) and/or for each individual network element12(node delay). In this manner, the techniques of this disclosure may allow network performance information to be determined, e.g., latency, as a function of the tested traffic patterns. By analyzing the delay at each point on the network, for example, the network element12A or another device may identify points of congestion.

In some examples, the rate at which the plurality of data units is forwarded around the network10may be adjusted. Then, a network element or remote device may determine, based on the timing data unit(s), one or more latency statistics correlated to the rate.

In one example implementation, the test module28may define a priority level for the plurality of data units injected onto the ring network10for performance analysis. For example, the test module28may assign a lower priority to the plurality of data units used for network validation than that which the control unit22assigns to the data units used to communicate with the other network elements in the ring network10. By assigning a lower priority to the data units used for network validation and a higher priority to communication data units between network elements, the control node12A may be able to communicate with all the other network elements12B-12M despite the saturation of the ring network10during testing.

It should be noted that the techniques of this disclosure are not limited to any particular ring protocol. As such, the techniques of this disclosure may be implemented using ring protocols that include, but are not limited to, Rapid Ring Protection Protocol, Resilient Ethernet Protocol, IEEE 802.17 Resilient Packet Ring Protocol, and RFC-3619. As one example implementation, the techniques of this disclosure may run in parallel with a ring protection protocol by configuring a VLAN on the ring and a loop on the VLAN in the manner described above.

In some example implementations, the test module28sets the timer34for a specified time. Once the timer34reaches the specified time, the test of the performance of the network and/or network element(s) is complete. In order to break the network loop, the test module28may block the secondary port18of the network element12A. By blocking the secondary port18of the network element12A, any data units injected onto the ring network10will be prevented from being forwarded around the ring.

As indicated above, in some examples, one of the network elements, e.g., the control node, may determine one or more latency statistics correlated to one or more characteristics of the forwarded plurality of data units of the network and/or one or more network elements on the network based on the one or more timing data units, e.g., PTP packets. In other examples, the network elements may gather the latency information correlated to the one or more characteristics of the forwarded plurality of data units and relay that information to a remote device, e.g., a device that is not part of the ring network10, to determine one or more latency statistics. For example, the information may be relayed to a network management system (not depicted) that may determine one or more latency statistics.

In this manner, a network element may autonomously analyze the performance of a network, e.g., before network build out. As mentioned above, autonomously analyzing the performance of a network using the techniques described above may advantageously reduce the need for external test equipment and technicians to test the network, and may improve the diagnostics of the network by reducing the number of variables if a problem is found, e.g., a port on a network element or the external test equipment.

Although the performance analysis techniques of this disclosure were described above with respect to a network with at least four network elements, the techniques of this disclosure are not so limited. As shown and described in more detail below with respect toFIG. 5, the techniques of this disclosure may also be applied to two network elements, e.g., the network elements12A and12B ofFIG. 4.

In another example implementation, one or more latency statistics can be periodically determined during normal operation of the ring network10. That is, one or more latency statistics can be periodically determined without generating and injecting artificial traffic onto the ring network10. In such an implementation, while “normal” traffic is traversing the ring network10during normal operations, a network element12, e.g., network element12A, can periodically inject one or more timing data units on to the ring network10. Each of the network elements12on the ring network10can forward the timing data unit(s) around the ring network12. Based on the timing data unit(s), a network element12(or a remotely located computing device) can determine one or more latency statistics in the manner described above.

In some example configurations, a network element12or a remotely located computing device can compare the periodically determined latency statistic(s) to a threshold value(s). If the determined latency statistic(s) exceeds the threshold value(s), e.g., by a specified amount, the network element12or the remotely located computing device can initiate a threshold crossing alarm to alert an operator of the latency conditions on the ring network10.

In another example implementation, multiple network elements12on a ring network10can configure multiple loops on the ring network10. These multiple network elements12can also generate and inject traffic onto the ring network10in the manner described in this disclosure.

For example, the network element12A ofFIG. 1can configure a first loop on the ring network10and generate and inject data units onto the first loop that is forwarded around the ring network10. In addition, the network element12B ofFIG. 1can configure a second loop on the ring network10and generate and inject data units onto the second loop that is forwarded around the ring network10at the same time that traffic is being forwarded on the first loop.

In some examples, the network element12A can inject data units onto the first loop of the ring network10in a clockwise direction and the network element12B can inject data units onto the second loop of the ring network10in a counterclockwise direction. Using multiple network elements to create multiple loops to generate and inject data units from different locations and/or different directions on the ring network10can, for example, create a higher level of saturation than can be achieved with only a single network element.

FIG. 5is a block diagram illustrating the example network elements12A and12B ofFIG. 4configured to implement various techniques described in this disclosure. InFIG. 5, the network elements12A and12B are similar to the network element12A depicted inFIG. 4and, for purposes of conciseness, will not be described in detail again.

To test two network elements, e.g., the network elements12A and12B, a first port is connected to a second port. For example, inFIG. 5, the primary port16A of network element12A is connected via a link36to the secondary port18B of network element12B, and the primary port16B of network element12B is connected to the secondary port of network element12A via a link38. In some examples, a test module28of network element12A (or network operator) may configure a VLAN, e.g., VLAN40, on the primary ports16A,16B and secondary ports18A,18B.

Upon configuring the VLAN, the test module28of network element12A may cause the control unit22to generate a plurality of data units for the network performance testing and forward the plurality of data units out the primary port16A. After injecting the plurality of data units onto the VLAN40, a timing module30of the control unit22of the network element12A, e.g., of the control node, may cause the control unit22to generate and inject one or more timing data units, e.g., PTP packets. Each timing data unit may have a field that includes an accumulated time, e.g., a correction field of a PTP packet, as the timing data unit traverses the ring. At the network element originating the timing data unit, e.g., network element12A, there is zero accumulated time in the field.

As network element12B receives the timing data unit, e.g., PTP packet, the processor24of the network element12B may capture a copy of the timing data unit and retrieve the timing information. The processor24may store the timing information that it received from the timing data unit as a function of the characteristics of the traffic pattern in the latency counter32of the network element12B for later performance analysis purposes.

Just prior to exiting the network element, the processor24may retrieve timing information from the timer34of network element12B (ΔT1) and timestamp the timing data unit. The control unit22may then forward the updated timing data unit back to the network element12A.

As the network element12A receives the timing data unit, the processor24of the network element12A may capture a copy of the timing data unit and retrieve the timing information of the timing data unit, as described above with respect toFIG. 4.

As mentioned above, in some examples, the test module28may set the timer34for a specified time. Once the timer34reaches the specified time, the network performance is complete. In order to break the network loop, the test module28may remove the VLAN40. In other example configurations, it is also possible to break the network loop using one or more of the following techniques: configuring the VLAN40to be in a “blocking” state, configuring a filter to drop the VLAN40data units, and placing the port on which the VLAN40is configured to drop all data units. In this manner, a network element may autonomously analyze network performance before network build out, for example.

FIG. 6is a block diagram illustrating an example ring network with a subtended network that may implement various techniques described in this disclosure. More particularly,FIG. 6depicts a main ring network10that includes network elements12A-12M and a subtended ring network50that includes network elements12A,12M, and12N connected by links14N,51A, and51B. In some examples, the main ring network10may be an existing, live network and subtended network50may be a later-added network that the network operator would like to consider building out, for example.

The performance of either one or both of the network10and the subtended network50, or a portion of either, may be analyzed using the techniques of this disclosure. Analysis of the ring network10was described above and, for purposes of conciseness, will not be described in detail again.

The performance of the subtended network50may be analyzed in a manner similar to that described above with respect to the ring network10. In some examples, the network element12A may act as a control node for both the ring network10and the subtended network50. In other examples, the ring network10and the subtended network50may each have their own control node, e.g., the network element12A as the control node for the network10and the network element12N as the control node for the subtended network50.

Similar to what was described above, a network element, e.g., network element12A, may inject a plurality of data units and one or more timing data units, e.g., on a virtual local area network (VLAN), configured on the subtended network50, e.g., an Ethernet network. In this manner, the network element may autonomously analyze the performance of a network or network segment.

In example implementations using a VLAN for testing the subtended network50, each network element, e.g., network element12A,12M, and12N may configure a VLAN52that extends around the subtended network50. The VLAN configuration may be accomplished either automatically or manually, e.g., via a network operator manually creating a VLAN on each network element. An example method of automatic VLAN configuration was described above and, for purposes of conciseness, will not be described again.

To create a network loop, the control node of the subtended network, e.g., the network element12A, may unblock the port54to configure a loop in the subtended network50on the VLAN52. Once the loop has been created in the subtended network50, the control node, e.g., network element12A, may begin generating and injecting a plurality of data units and timing data units onto the subtended network50in the manner described above. While the data units and timing data units are forwarded around the subtended network50on the VLAN52, each one of network elements12A,12M, and12N may gather latency information correlated to one or more characteristics of the forwarded data units, e.g., size, type, VLAN ID, priority level, and the like, based on the timing data units.

In some examples, after a period of time, the control node, e.g., network element12A, may terminate the network loop, e.g., by blocking the port54. Next, a remotely located computing device and/or one or more of the network elements12, e.g., the control node12A, may determine one or more latency statistics correlated to the one or more characteristics of the forwarded plurality of data units based on the one or more timing data units. In this manner, a network element may autonomously analyze the performance of a subtended network before network build out, for example.

In another example implementation, multiple network elements12on the ring network10and the subtended ring network50can configure multiple loops. These multiple network elements12can also generate and inject traffic onto the ring network10and the subtended ring network50in the manner described in this disclosure.

For example, the network element12A ofFIG. 6can configure a first loop on the ring network10and generate and inject traffic onto the first loop that is forwarded around the ring network10. In addition, the network element12N ofFIG. 6can configure a second loop on the subtended ring network50and generate and inject traffic onto the second loop that is forwarded around the subtended ring network50at the same time that traffic is being forwarded on the first loop. In this manner, multiple ring topologies can be tested simultaneously.

FIG. 7is a flow chart illustrating an example method of autonomously analyzing the performance of a network or network element using various techniques of this disclosure. In the example method ofFIG. 7, shown generally at100, the test module28of the control unit22of a network element, e.g., network element12A, may configure a network loop on a network having at least two network elements (102). In some examples, the test module28may optionally generate (or retrieve from memory) a plurality of artificial data units having one or more characteristics, e.g., a size of a data unit, a priority level of a data unit, VLAN information, and a type of data unit, and inject the data units onto a network (104). Whether the plurality of data units are artificially generated (or retrieved from memory) or the result of traffic during normal operations, each of the network elements12of the network may forward the data units around the network loop, at a first speed, e.g., media speed (106). The timing module30may then cause the control unit22to generate and inject one or more timing data units, e.g., PTP packets, onto the ring network10at the top of the ring, e.g., network element12A (108). Each of the network elements12of the network may forward the timing data units around the network loop (110).

As described above, each of the network elements and, in particular, the processor24, may capture a copy of the timing data unit and read the field that includes the accumulated time, e.g., a correction field of a PTP packet. The processor24may then store the accumulated time, e.g., in the correction field, in the latency counter32of the memory26and correlate the time to the one or more characteristics of the data units.

In some examples, one of the network elements, e.g., the control node, may determine one or more latency statistics, e.g., cumulative latency for the network, latency of one or more individual network elements, and the like, that are correlated to one or more characteristics of the forwarded plurality of data based on the one or more timing data units, e.g., PTP packets (112). For example, the control node may determine a cumulative network latency for video packets and individual network element latency for video packets.

In other examples, the network elements may gather the latency information correlated to the one or more characteristics of the forwarded plurality of data units and relay that information to a remote device, e.g., a device that is not part of the ring network10, to determine one or more latency statistics. For example, the information may be relayed to a network management system (not depicted) that may determine whether there are any network errors.

It should be noted that although the techniques of this disclosure were described above with respect to wired configurations, e.g., optical or copper, the techniques of this disclosure may also be applied to wireless networks.