PROTOCOL FOR CLOCK DISTRIBUTION AND LOOP RESOLUTION
In response to a network topology change, a clock root node calculates a new clock path for each affected node by building a clock source topology tree, and identifying from that tree a path to the network node from a clock source of higher or equal stratum relative to that network node. The root node then sends a network message to each node indicating the new path that the node should use. Each node receives the message and compares the new path with the existing path. If the paths are different then the node acquires the new path just received in the message. If the paths are the same then the node does nothing and discards the message.
Latest ROCKSTAR CONSORTIUM US LP Patents:
- OPTICAL SWITCH AND PROTOCOLS FOR USE THEREWITH
- OPTICAL SWITCH AND PROTOCOLS FOR USE THEREWITH
- OPTICAL SWITCH AND PROTOCOLS FOR USE THEREWITH
- Controlling allocation of a portion of a shared channel to use for control information
- Cross-connect using ethernet multiplexors for a simple metro ethernet network
This application is a continuation of U.S. patent application Ser. No. 13/362,319 filed Jan. 31, 2012, which is a continuation of U.S. patent application Ser. No. 11/609,966 filed Dec. 13, 2006, both of which are hereby incorporated herein by reference.
FIELD OF THE INVENTIONThis invention relates generally to the field of network communications, and more particularly to clock distribution and loop resolution.
BACKGROUND OF THE INVENTIONTiming loops are known to present a problem for distribution of timing signals in a communications network. In SONET/SDH networks, for example, network elements (“NEs”) may each derive their timing from another NE. If the chain of timing derivation forms a loop which is isolated from an external reference timing source, this is a timing loop. In general, a SONET Network that has been properly configured will not suffer from a timing loop problem. However, it is sometimes difficult to avoid timing loops without sophisticated network management tools.
Although conceptually simple, timing loops tend to be insidious problems in the real world. Timing loops preclude the affected NEs from being synchronized to the primary reference clock (“PRC”) and cause mysterious bit errors which are difficult to analyze and correct. The clock frequencies are traceable to an unpredictable unknown quantity, i.e., the hold-in frequency limit of one of the affected NE clocks. By design, this is bound to be well outside the expected accuracy of the clock after several days in holdover, so performance is almost certain to become severely degraded.
The importance of proper timing distribution and synchronization in a network is illustrated in the following situation. If two pieces of equipment that are synchronized to different clock sources are joined by a trunk, input buffers on the interfaces at each node periodically overflow at one end or underflow at the other end. This overflow or underflow condition is commonly known as a frame slip because an overflow condition usually causes one or more frames of data to be discarded. Clocking problems typically cause frame slips on circuit-line interfaces, especially circuit lines to TDM devices such as a PBX. Frame slips can occur on either or both ends of the line. In a TDM-based network, almost every frame slip causes data to be lost since there is likely to be data contained in at least one timeslot of every frame.
Isolating the cause of a timing loop condition is difficult for at least two reasons. One reason is that the cause is unintentional, e.g., a lack of diligence in analyzing all fault conditions, or an error in provisioning. The second reason is that there are no sync-specific alarms associated with timing loops since each affected NE accepts the situation as normal. Consequently, the network administrator must carry out trouble isolation, relying on a knowledge of the sync distribution topology and on an analysis of data on slip counts and pointer counts.
SUMMARY OF THE INVENTIONIn accordance with one embodiment of the invention, in a network in which information about nodal adjacency and nodal clock quality level are available, a method for configuring and maintaining network clock distribution infrastructure comprises the steps of: selecting, from among a plurality of candidate Primary Reference Clocks (PRCs), a root node; detecting, by the root node, a network topology change; calculating a new clock distribution path for a node affected by the network topology change; and signaling, by the root node to the affected node, an indication of the new clock distribution path.
The method may be executed by constructing a clock distribution tree (“CDT”) starting from a clock root node which interfaces to a primary reference clock, e.g., a Stratum 1 clock. A CDT protocol reconfigures the tree in response to detection of a topology change including network node failure, link failure, and nodes addition and removal. The protocol also recognizes multi-link trunks between network nodes and ensures that only one link in the trunk at any one time is used for timing distribution, if needed. As will be apparent from the detailed description below, the protocol can be applied to networks that distribute timing at Layer 1, i.e., Physical Layer, or higher layers of the Open System Interconnect (“OSI”) model.
One advantage of the protocol is that it allows for temporarily unavailable clock sources to be automatically reinstated for clock synchronization. When a failure causes a topology change, the root node updates clock distribution paths, which can result in a change in clock source. When the failure is repaired, and the original clock source is again available, the root node updates clock distribution paths in order to utilize the original clock source.
Another advantage of the invention is that a node is able to indirectly synchronize to a remote high quality clock source. For instance, in Layer 1 timing distribution, each element (node or link) in the path is synchronized to the previous element “upstream” in the path. Thus, a node is frequency-locked to the upstream link, which is then frequency-locked to the upstream node, which is then frequency-locked to the next upstream link, and so on. This continues until the defined highest quality clock source (e.g., the root node) is reached.
Referring to
At least one clock root node (1) is selected for the network. The clock root node (1) is operative to select a reference clock source for each other node in the network. If there are multiple clock root nodes, each clock root node is associated with a unique set of nodes, i.e., a node is not simultaneously supported by multiple root nodes. For a given node, the clock root node identifies the path to a higher or equal stratum clock source relative to that node. Within the constraints of equal or higher stratum, the clock source may also be selected based on proximity (shortest hop) and highest-available quality stratum clock source relative to that node. The clock root node also instructs other nodes to perform any needed switching of clock source references in response to network changes such as those listed above. Where there are multiple root nodes, the network administrator can define each clock root node source as primary, secondary, or tertiary clock source. The designation of a clock source as primary, secondary, or tertiary is at the discretion of the network administrator, however, the best available clock sources in terms of quality should typically be defined as primary, with other clock sources defined as secondary or tertiary. It should be appreciated that it may sometimes be unavoidable to have multiple root clocks in a network, e.g., a GPS and a clock source provided by a national or international carrier. In some cases, it is unavoidable for certain nodes and trunks in a network to synchronize to one clock source and to synchronize other nodes and trunks in the network to another clock source. This is especially common in international networks or in networks in which trunks are obtained from a variety of service providers. Such a network is synchronized in a plesiochronous fashion.
In order to execute the CDT protocol for the illustrated 10-node network, an empty 10×10 matrix is generated by the clock root node as illustrated in
The clock root node may utilize a clock distribution topology creating matrix algorithm to create the clock distribution topology. An exemplary algorithm takes as input a “network connectivity matrix” with node indices sorted in non-descending order based on the stratum level and outputs “clock distribution topology matrix” and “clock connection eligibility matrix.” In particular, the input is a clock network topology given by an N×N matrix, where N is the number of nodes in the network and an entry:
where Clock_level(nodei): is the clock stratum level of nodei. An assumption is made that Clock_level(nodei)≦Clock_level(nodej) for i<j. The resulting output includes a clock distribution topology matrix and an eligibility matrix. In particular, the clock distribution topology matrix is an N×N matrix, where an entry
Further, the eligibility matrix describes the connectivity choices satisfying clock stratum level constraints. The next step is to initialize the eligibility matrix and the clock matrix with the adjacency matrix as follows: eij=cij=aij, for 1≦i≦N, 1≦j≦N. Next, the eligibility matrix is determined in view of the adjacency matrix as follows: for each column, 1≦j≦N set eij=cij=0, for j+1≦i≦N if clock_level(nodej)<clock_level(nodei). The next step is to determine the clock distribution topology matrix, given the eligibility matrix: for the first column j=1, set cij=0, for j+1≦i≦N. Then, for each column 1<j≦N, the minimum i is found such that ckj=0, for 1≦k≦i−1 and cij=1 and set ckj=0, for i+1≦k≦N. Finally, the eligibility matrix is updated in accordance with eij=max(0,eij−cij), for 1≦i≦N, 1≦j≦N.
The clock root node may also utilize a clock distribution topology creating matrix algorithm to recover from failure. An exemplary algorithm takes as input a “clock distribution topology matrix” and either a node or link failure, and outputs a recovered “clock distribution topology matrix.” In particular, the input includes a clock network topology given by an N×N matrix, where an entry
and clock connection eligibility matrix satisfying clock stratum level constraints; and nodek fails or link between nodek and nodem fails. An assumption is made that Clock_level(nodei)≦Clock_level(nodej) for i<j. The output includes a clock network topology given by an N′×N′ matrix, where an entry
where N′=N, if it is a single link failure and N′=N−1, if it is a single node failure, assuming a solution exists.
However, a link failure is treated differently than a node failure. In particular, in the case of link failure then: (a) assume k<m and set ckm=0; (b) find eim=1, for k+1≦i≦N in the eligibility matrix; (c) if such i found, set cim=1 in the clock distribution topology matrix and set eim=0; (d) else no solution found!; and (e) exit algorithm. Alternatively, if node failure then: (a) clear the link from nodek to all nodem in eligibility matrix and clock distribution topology matrix; (b) if nodek is an internal node, clear all the links to nodek in eligibility matrix and clock distribution topology matrix; and (c) for each nodem previously connected to nodek in the clock distribution topology matrix, and (i) find minimum i such that ekm=0, for 1≦k≦i−1 and eim=1 and set cim=1; and (ii) update eligibility matrix eij=max(0,eij−cij), for 1≦i≦N′,1≦j≦N′.
Operation of the CDT protocol will be more generally described with reference to the flowcharts of
The flowcharts in
In an alternative embodiment the CDT protocol is extended such that each node synchronizes to the highest quality stratum clock source that is available. If multiple, equal clock sources are available, the node synchronizes to the source that is physically the closest. If none of the sources is available, the network synchronizes to the internal oscillator of one of the nodes in the network.
In another embodiment the CDT is extended such that each node uses the nearest, highest-priority (primary, secondary, tertiary, or internal) clock source available to it. If there is only one primary clock source defined in the network, then all nodes synchronize to it, if possible. Otherwise, various actions may be specified. For example, if there is more than one primary clock source defined in the network, then each node synchronizes to the nearest (measured by hop count) primary source. If there are no primary clock sources defined (or all are failed), then each node synchronizes to the nearest secondary clock source. If there are no primary or secondary clock sources defined (or all are failed), then each node synchronizes to the nearest tertiary clock source. If there are no primary, secondary, or tertiary clock sources defined (or all are failed), then each node synchronizes to its own internal clock source.
Timing distribution at Layer 2 and higher differs. Clock signals are passed between nodes as discrete clock signal messages or clock signal packets. If a node is not the intended recipient of a clock signal message, i.e., it is not the clock signal message sink, it propagates the clock signal message. Clock nodes (or sources) in this case refer only to nodes that generate or sink clock signal messages; all other nodes between the clock nodes are simply transparent to the timing distribution process. The network administrator must know a priori which nodes in the network are clock nodes and which links, trunks or connection are clocked or pass clock signal messages. For Layer 1 timing distribution, there may be links that are not configured to pass timing to adjacent nodes. This may happen because timing transfer is either not support or enabled on these links. In this case, the root node has to identify the clocking nodes interconnected by these so-called no-clocked links as non-adjacent, that is, they do not exchange timing signals. In other words, the two physically adjacent clock nodes are logically non-adjacent from a timing transfer point of view. Clock nodes or links that are intentionally taken out of service by the network administrator are treated the same way by the root node as failure events.
While the invention is described through the above exemplary embodiments, it will be understood by those of ordinary skill in the art that modification to and variation of the illustrated embodiments may be made without departing from the inventive concepts herein disclosed. Moreover, while the preferred embodiments are described in connection with various illustrative structures, one skilled in the art will recognize that the system may be embodied using a variety of specific structures. Accordingly, the invention should not be viewed as limited except by the scope and spirit of the appended claims.
Claims
1. A network comprising a set of nodes, the set of nodes including a root node, the root node being aware of nodal adjacency and nodal clock quality level for the set of nodes and being configured to set up and maintain a network clock distribution infrastructure for the set of nodes by:
- creating an eligibility matrix of elements that do not violate clock sourcing hierarchy constraints;
- deriving a clock distribution tree topology indicative of clock sourcing for a plurality of nodes from the eligibility matrix;
- detecting a network topology change;
- identifying a node affected by the network topology change;
- calculating, based at least in-part on the clock distribution tree topology, a new clock distribution path for the affected node; and
- sending an indication of the new clock distribution path to the affected node; and
- the affected node being configured: to receive the indication of the new clock distribution path; and to receive clock signal packets from other nodes of the network; and to process clock signal packets based on the new clock distribution path.
2. The network of claim 1, wherein the root node is selected from among a plurality of candidate Primary Reference Clocks (PRCs).
3. The network of claim 1, wherein the root node is configured to calculate the new clock distribution path for the affected node by identifying, from the clock distribution tree topology, a path to the affected node from a clock source of higher or equal stratum relative to the affected node.
4. The network of claim 1, wherein the root node is configured to build a spanning tree with paths from the root node to leaf nodes with clock levels satisfying clock sourcing constraints.
5. The network of claim 4, wherein the nodes are configured to report indications of link availability and clock quality to the root node.
6. The network of claim 5, wherein the root node is configured to prompt communication, by neighboring nodes in the spanning tree, of the indications of link availability and clock quality.
7. The network of claim 1 comprising a plurality of distinct sets of nodes, each distinct set of nodes including a respective root node, each respective root node being aware of nodal adjacency and nodal clock quality level for a respective distinct set of nodes and being configured to set up and maintain a network clock distribution infrastructure for the respective distinct set of nodes by:
- creating a respective eligibility matrix of elements that do not violate clock sourcing hierarchy constraints;
- deriving a respective clock distribution tree topology indicative of clock sourcing for a plurality of nodes from the respective eligibility matrix;
- detecting a network topology change;
- identifying a node in the respective distinct set of nodes which is affected by the network topology change;
- calculating, based at least in-part on the respective clock distribution tree topology, a new clock distribution path for the affected node; and
- sending an indication of the new clock distribution path to the affected node.
8. The network of claim 7, wherein the respective root node for each respective distinct set of nodes is selected from among a plurality of candidate Primary Reference Clocks (PRCs).
9. The network of claim 7, wherein each respective root node is configured to calculate the new clock distribution path for the affected node by identifying, from the respective clock distribution tree topology, a path to the affected node from a clock source of higher or equal stratum relative to the affected node.
10. The network of claim 7, wherein each respective root node is configured to build a respective spanning tree with paths from the respective root node to respective leaf nodes with clock levels satisfying clock sourcing constraints.
11. The network of claim 10, wherein the nodes of each distinct set are configured to report indications of link availability and clock quality to the respective root node of each distinct set.
12. The network of claim 11, wherein the respective root node is configured to prompt communication, by neighboring nodes in the respective spanning tree, of the indications of link availability and clock quality.
13. The network of claim 1, wherein the root node is configured to prompt the affected node:
- to compare the new clock distribution path with a current clock distribution path; and
- when the new clock distribution path differs from the current clock distribution path, to adopt the new path.
14. The network of claim 13, wherein the root node is configured to prompt reversion to the current clock distribution path following repair of fault resulting in the network topology change.
15. The network of claim 1, wherein the topology change comprises a link failure.
16. The network of claim 1, wherein the topology change comprises a node failure.
17. The network of claim 1, wherein the topology change comprises a link addition.
18. The network of claim 1, wherein the topology change comprises a node addition.
19. The network of claim 1, wherein the topology change comprises a clock quality degradation.
20. The network of claim 1, wherein the root node is configured to capture clock distribution topology.
21. The network of claim 1, wherein the root node is configured to capture failure conditions.
22. The network of claim 1, wherein the root node is configured to capture redundant clock source adjacency information.
Type: Application
Filed: May 29, 2014
Publication Date: Sep 18, 2014
Applicant: ROCKSTAR CONSORTIUM US LP (Plano, TX)
Inventors: Michel Ouellette (Orleans), James Aweya (Kanata), Delphin Y. Montuno (Kanata), Kent Felske (Kanata), Michael George Mayer (Ottawa)
Application Number: 14/290,286