Abstract:
The present invention provides a method, system, data structure and article of manufacture for detecting the potential of a timing loop occurrence within an optical network having a plurality of network elements. The method includes the steps of: building a data block for each of the network elements, each such data block including information regarding the status of synchronization status messaging (SSM) in the network; and evaluating timing distribution engineering of the network based on information in the data blocks, so as to determine the potential of timing loop occurrence in the network. The present invention provides the ability to detect the potential of a timing loop occurrence (in networks not employing SSM as well as networks employing SSM) as a result of network elements receiving line timing from one another, as opposed to having to wait for a network timing loop to occur and having to deal reactively with the problem.

Description:
FIELD OF INVENTION 
     The present invention relates to the field of communication networks and to the identification of timing loops within such networks. 
     BACKGROUND OF THE INVENTION 
     A major concern in timing distribution engineering for network planning, reconfiguration, and maintenance, is the avoidance of timing loops. Timing loops occur when slave-clocks form a loop, so that the active reference input of any of the clocks is actually locked indirectly to the output of that same clock. The occurrence of timing loops is usually due to human error during the network design process, during equipment commissioning/provisioning, or during the reconfiguration of the system. 
     The presence of timing loops in networks has led to the deployment and provisioning of network elements that inadvertently feed themselves timing information, resulting in the timing performance within the network degrading with time and becoming unpredictable. This timing deviation, or phase, can maintain close alignment with the primary or designated timing source for quite a number of hours. This may result in the occurrence of an arbitrary frequency offset at an unpredictable time at a rate that would occur much faster if the network element (NE) were to go into “holdover” mode. 
     Previous methods and systems that addressed the potential risk of timing loops occurring within deployed networks have mostly been reactive in nature. As a result, when a timing loop does occur, it requires troubleshooting. This troubleshooting may involve examining engineering diagrams, if available, logging in to each network element to read the alarms, and determining the timing relationship between each network element and throughout the network. Depending on the size of the network, this process can take many hours to complete. More critically, each network element, when examined, may appear to be in an apparently normal mode of operation, so that there are no alarms raised to alert monitoring systems, or field technicians, of a timing loop occurring. So, given the distributed nature of timing degradation caused and the lack of alarms raised, the diagnosis of a timing loop from a reactive mode is extremely difficult to accomplish. 
     Synchronization Status Messaging (SSM) is a communications protocol used in Synchronous Optical Networks (SONET). SSM assures a network operator that all network elements are operating at a common frequency within the boundaries set by standards. As such, SSM ensures the quality of the timing references throughout the network. 
     In some known implementations, SSM provides timing references based on the quality of available timing sources. These timing sources include external timing from building integrated timing supplies (BITS), line timing derived from high-speed (OC-192) lines, and the internal clock in the network elements. 
     The S1 byte information in SSM is referred to as a quality code. Each NE can detect the quality codes that describe the incoming timing signals. Then, the timing reference protection software on the ESIs (External Synchronous Interfaces) uses the quality code information to make decisions about which timing source to select as a timing reference. Protection switches can occur as a result of a change in the incoming quality code (QC) of an active timing reference. An invalid incoming QC will raise an alarm. 
     SSM has two goals: to ensure an NE uses the best available timing source; and to reduce the risk of timing loops occurring between two or more network elements. With the introduction of SSM into network elements, timing loop occurrences have been significantly reduced; however, SSM does not completely eliminate the occurrence of timing loops. 
     Moreover, SSM cannot be used by all customers. SSM requires BITS clock generation with an output capable of a DS1 reference signal using Extended Super Frame format. Older clock sources may only be capable of Super Frame format. Therefore it is possible that a customer may not be able to utilize SSM due to their BITS source clocks. A customer may interface SSM-compatible equipment with another vendor&#39;s product (or use a pseudo-BITS timing source in the equipment) that may not be SSM capable, thus rendering the equipment unable to utilize SSM. Also, customers running DX1 on DX bays along with OC192 bays loaded with DX1 in the same system cannot utilize SSM. 
     Therefore, there is a need to overcome at least one of the drawbacks of the prior art, which restrict the detection of timing loops to reactive methods that may only be applied to networks that do not utilize SSM. 
     SUMMARY OF INVENTION 
     The present invention affords the ability to detect the potential of a timing loop occurrence as a result of network elements receiving line timing from one another, as opposed to waiting for a network timing loop to occur and having to deal reactively with the problem. 
     The present invention may be used on network elements that are of the capacity of DX/OC192 product lines. However, the principles of the present invention may also be applicable for use with low speed transport platforms such as OC3, OC12, and OC48, with the necessary modifications due to differences in provisioning being apparent to one skilled in the art. 
     According to an aspect of the invention, there is provided a method of detecting the potential of a timing loop occurrence within an optical network having a plurality of network elements comprising the steps of: checking a status of synchronization status messaging (SSM) for each of said network elements; and determining, on the basis of said SSM status check, that the timing distribution of said network is engineered to create a timing loop if timing provisioning rules are violated at any of said network elements. 
     According to another aspect of the invention, there is provided an apparatus for detecting the potential of a timing loop occurrence within an optical network having a plurality of network elements comprising: means for checking a status of synchronization status messaging (SSM) for each of said network elements; and means for determining that the timing distribution of said network is engineered to create a timing loop if timing provisioning rules are violated at any of said network elements. 
     According to a further aspect of the invention, there is provided a method of detecting the potential of a timing loop occurrence within an optical network having a plurality of network elements comprising the steps of: building a data block for each of said network elements, each said data block including information regarding the status of synchronization status messaging (SSM) in said network; and determining the potential of a timing loop occurrence in the network based on some of said information in said data blocks. 
     According to a yet further aspect of the present invention, there is provided an apparatus for detecting the potential of a timing loop occurrence within an optical network having a plurality of network elements comprising: means for building a data block for each of said network elements, each said data block including information regarding the status of synchronization status messaging (SSM) in said network; and means for evaluating timing distribution engineering of said network based on information in said data blocks, so as to determine the potential of timing loop occurrence in the network. 
     According to a still further aspect of the present invention, there is provided a data structure stored in memory for use by a computer program in association with an optical network, the data structure comprising: first objects representing equipment information associated with a network element of said optical network; second objects representing timing information associated with said network element; and third objects representing facility, payload and optical information associated with said network element. 
     The present invention advantageously provides a proactive manner in which to identify whether the possibility exists for a timing loop to occur in a network due to the incorrect provisioning of the timing sources on network elements. 
     It is another advantage of the invention to be able to examine the timing distribution engineering of a network utilizing SSM to determine if the network risks the occurrence of a timing loop failure if SSM is disabled or provisioned incorrectly. 
     It is a further advantage of the invention to be able to gather data from each of the network elements within the network and format the data into a representation that permits timing loops to be discovered. 
     It is another advantage of the invention to be able to gather data from each of the network elements within the network, use this data to determine the network&#39;s topology, and then extract data and format it into a representation that permits timing loops to be discovered. 
     Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments of the present invention will be further described with reference to the accompanying drawings in which: 
         FIG. 1  illustrates diagrammatically a data block constructed, according to an embodiment of the present invention, from information from a network element; 
         FIG. 2A  illustrates an example of the construction of a data block of  FIG. 1  for a 4-fiber network element used in either a chain or ring configuration; 
         FIG. 2B  illustrates an example of the construction of a data block of  FIG. 1  for a 2-fiber network element used in a ring configuration; 
         FIG. 3  illustrates a schematic showing the placement of a plurality of data blocks and the timing paths that are available for network elements within a portion of a 2-fiber bi-directional ring network topology; 
         FIG. 4  illustrates a screen shot showing equipment information that may be gathered from a network element by issuing a network command; 
         FIG. 5  illustrates a screen shot showing timing functionality information that may be gathered from a network element by issuing a network command; 
         FIG. 6  illustrates a screen shot showing facility information that may be gathered from a network element by issuing a network command; 
         FIG. 7  illustrates a screen shot showing optical information that may be gathered from a network element by issuing a network command; 
         FIG. 8  illustrates a screen shot showing payload information that may be gathered from a network element by issuing a network command; 
         FIG. 9  illustrates a screen shot showing information about the state of SSM in a network that is obtained by issuing a network command; 
         FIG. 10  illustrates an example of a data block with the relevant information collected from a network element having been formatted and inserted; 
         FIG. 11  illustrates a flowchart indicating steps in a method of detecting a network timing loop according to an embodiment of the present invention; 
         FIG. 12A  illustrates a 6-node 2-fiber bi-directional ring without SSM capabilities in a steady state; and 
         FIG. 12B  illustrates an example of the timing distribution reaction of the network of  FIG. 11A  upon the loss of Node  2 &#39;s timing source from Node  1 . 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In order to determine whether a timing loop exists in a network according to a preferred embodiment of the present invention, the following steps are normally performed: identify the network element configuration; associate network elements into a network topology; section communications and network element association; build the network topology using nodal section information; build a data block for each network element; and evaluate the timing distribution engineering of the network. Timing distribution engineering describes the manner in which a network has been engineered with respect to timing distribution. In many cases, timing distribution engineering refers to timing provisioning rules which apply to a network. 
     An embodiment of the present invention will be described that automatically builds a network topology by identifying network configuration, associating the network elements into a network topology, sectioning communications and network element association, and building the network topology using the nodal section information. 
     However, it is equivalently possible to perform these network topology determinations by any other manner known in the art, including manually inputting the necessary data. If network topology were determined manually, the subsequent steps to be performed in accordance with the present invention would consist of: building a data block for each network element; and evaluating the timing distribution engineering of the network. Alternatively, the step of building a data block may be omitted, and a user may simply evaluate the timing distribution engineering of a network using a method of the invention. 
     The first task in the evaluation of a network&#39;s timing is to evaluate the configuration of each of its network elements. This may be accomplished by using various network element User Interface (NEUI) commands, such as eq ne qrne, to retrieve data from the network element. From the retrieved data, information is used to build up a data block that identifies the configuration of the network element. Building the network element&#39;s data block is examined in detail in a later section of this document. 
     However, although the type of network element may be identified correctly, the configuration of cards in a shelf may have some type of custom ordering. In order to confirm that the network element functions as it is identified, the cards listed in the shelf inventory will be used to confirm the network element&#39;s functionality. For example, if the network element is identified as a Regenerator, then the shelf inventory will be queried to determine if a circuit pack of type Rgn exists. 
     The next task consists of associating the network elements into a network topology. There are three principal types of topology that may be used to deploy a network. These topologies are named as: 4-fiber bi-directional line switched ring (4-Fiber BLSR); 4-fiber bi-directional ADM chain; and 2-fiber bi-directional line switched ring (2-Fiber BLSR). Each of these network topologies and the characteristics thereof are well known to those skilled in the art. Further discussion of the task of building a network topology in this manner can be found in U.S. patent application Ser. No. 09/740,934 of Nisbet et al. filed on Dec. 21, 2000, which is incorporated herein by reference. 
     Once the network elements, their orientation to one another within the network, and the network&#39;s topology have been determined, the next task is to gather and format the relevant communications, equipment, and timing data from each of the network elements. This data is then compiled into a structured block type format in order to build a data structure that is referred to as a data block. 
     To accomplish the building of the data block, the data is organized into three categories based on the functionality it represents within the network element. A high level grouping of the data block&#39;s information is illustrated in  FIG. 1 . The three categories of information are shown therein and their locations are also noted. 
     Within data block  100 , the first category of data  110  contains information relating to the common equipment within the network element. The second category  120  contains information relating to the timing sources within the network element. The last category  130  contains information relating to the facility, payload, and optical parameters for each of the circuit pack groups and their transmitters and receivers. 
     The data block  100  may be further organized to show the transmitter and receiver orientations of the circuit pack groups in a network element.  FIG. 2A  illustrates an example of the construction of a data block for a 4-fiber network element used in either a chain or ring configuration.  FIG. 2B  illustrates an example of the construction of a data block for a 2-fiber network element used in a ring configuration. 
     When a plurality of data blocks  100  is arranged such that they are placed adjacent to one another, the relationships of the transmitters and receivers of the facilities of one network element with those of another network element are easily deduced. This arrangement permits for the verification of multiple timing paths to be identified and evaluated.  FIG. 3  illustrates a schematic showing the placement of a plurality of data blocks and the timing paths that are available for network elements within a portion of a 2-fiber bi-directional ring network topology. 
     In an embodiment of the present invention, the information in category  110  of the data block relating to the equipment in the network element may be identified as follows:
         ID Value   Configuration Type   Customer Assigned Name   Function and Line Rate       

     This information may be gathered from the network element by issuing the NEUI command eq ne qrne, the result of which is shown in  FIG. 4 . Commands that may alternatively be used to obtain such equipment information include: eq ne rel, rib, and eq ne qri. In  FIG. 4 , the highlighted values indicate those values that are extracted for use, each being represented by reference numerals as follows: ID Value  401 ; Configuration Type  402 ; Customer Assigned Name  403 ; and Function and Line Rate  404 . 
     In an embodiment of the present invention, the information in category  120  of the data block relating to the timing functionality of the network element may be identified as follows:
         Quality Code (QC) Threshold   Source Reference Number (Ref#)   Source Name   Primary State (PState)   Status   Quality Code (Qcode)       

     This information may be gathered from the network element by issuing the NEUI command pr tg qrgp, the result of which command is shown in  FIG. 5 . In  FIG. 5 , the highlighted values indicate those values that are extracted for use, each being represented by reference numerals as follows: Quality Code (QC) Threshold  501 ; Source Reference Number (Ref#)  502 ; Source Name  503 ; Primary State (PState)  504 ; Status  505 ; and Quality Code (Qcode)  506 . 
     In an embodiment of the present invention, the information in category  130  of the data block relating to each of the network element&#39;s facilities, payload and optical parameters may be identified as follows:
         The identity of each of the high-speed circuit pack groups or facilities in the network element   Transmit Optical Power   Transmit Chirp   Transmit Wavelength   Transmit NLS Dither   Transmit Analog Maintenance   Receiver Power   Receiver IQ   Current Section Error Seconds (ES)   Current Line Error Seconds (ES)       

     The information elements relating to facility information may be gathered by issuing the NEUI command eq cpge se1 oc192 g11 qr, the result of which command is shown in  FIG. 6 . In  FIG. 6 , the highlighted values indicate those values that are extracted for use, each being represented by reference numerals as follows: the identity of each of the high-speed circuit pack groups or facilities in the network element  601 ; Transmit Optical Power  602 ; Transmit Chirp  603 ; Transmit Wavelength  604 ; Transmit NLS Dither  605 ; and Transmit Analog Maintenance  606 . 
     The information elements relating to optical information may be gathered by issuing the NEUI command of a rof se1 oc192 g11 qr, the result of which command is shown in  FIG. 7 . In  FIG. 7 , the highlighted values indicate those values that are extracted for use, each being represented by reference numerals as follows: Receiver Power  701 , and Receiver IQ  702 . 
     Finally, the information elements relating to payload information may be gathered by issuing the NEUI command pm fp dc oc192 g11, the result of which command is shown in  FIG. 8 . In  FIG. 8 , the highlighted values indicate those values that are extracted for use, each being represented by reference numerals as follows: Current Section Error Seconds (ES)  801 , and Current Line Error Seconds (ES)  802 . 
     With respect to the facility, payload and optical information obtained by the commands listed above in association with the screenshots shown in  FIGS. 6–8 , the following commands may be alternately used to obtain such information: eq cpge qr, pm php dpm, and pin fp dc. 
     It is to be understood that the above examples illustrate specific information types that may be collected for each category with respect to a specific embodiment of the invention. Other embodiments are possible that may contain similar information types, or that may comprise more or less of such information types within each of the three categories. 
     Following the collection of equipment, timing, facility, payload and optical parameters, the state of synchronous status messaging in the network is determined. In order to determine the state of the SSM in the network, the NEUI command string fa ocf qr is issued, the result of which is illustrated in  FIG. 9 . The relevant data that is extracted from the network element is labeled as RX SSM Quality Code Override  901 . This value is used at a later stage to determine if a network element is fully utilizing all of the SSM functionality. 
     Once all of this information has been gathered, it is possible to format the extracted data into a network element data block.  FIG. 10  illustrates an example of a data block with the relevant information collected from the network element having been formatted and inserted. The example in  FIG. 10  illustrates a data block for a network element that would be found in a 4-fiber ring or chain network topology. 
     Thus far, the work that has been performed has accomplished the following tasks: identify the type of network; organize the network elements into their deployed network topology; associate each of the network elements within the network to one another; extract synchronization information from each of the network elements within the network; extract provisioning information from each of the facilities for each of the network elements within the network; and format the extracted data into blocks for each of the network elements within the network. 
     However, in order to identify whether timing loops exist in the network, it remains to be determined if the network elements are capable of and fully utilizing SSM functionality; thereafter, the risk for potential timing loops may be determined. 
       FIG. 11  illustrates a flowchart indicating steps in a method for detecting a network timing loop according to an embodiment of the present invention. The first task is to determine the status or capability of each of the network elements with respect to the use of SSM. Step  1101  shows an example of this task, which begins by determining possible clock sources for each network element. In the case of a network having only one BITS clock, this step will involve identifying this one BITS clock as the primary clock source. Following that, it is determined, in step  1102 , for each NE, whether SSM is being fully utilized or if the Network Elements have been provisioned to ignore SSM codes. From this information, it is then determined whether the system is capable of using SSM, as shown in step  1103 . 
     One manner in which one may determine whether the network element is using SSM (so as to assist in preventing timing loops from occurring within the network) is to examine the value of the RX SSM Quality Code Override value  901 . If this value,  901 , is any value other than “STU”, then it will be determined that the network is fully utilizing all the SSM functionalities. Therefore, the value of “AUTO” shown in  FIG. 9  would indicate that SSM is being fully utilized in the network being examined. If any one network element is provisioned to ignore SSM, the system should be considered as not fully utilizing SSM and assessed appropriately for possible timing loops. 
     If it has been determined that all network elements are fully utilizing SSM, then timing loop occurrence has been greatly reduced, even if the timing distribution engineering promotes the occurrence of a timing loop in the network. However, the present invention permits the examination of the timing distribution engineering in such a case as well, in order to verify the integrity of the system and to report whether or not timing loops are still possible in the circumstances similar to that mentioned above. 
     To accomplish this, for each network element in the network, it is determined whether the NE timing provisioning rules have been violated. The risk of a timing loop occurring due to the timing distribution engineering (provisioning rules) of the network is evaluated with different criteria depending on whether SSM is fully utilized or whether the network is provisioned such that SSM is to be ignored. In some rare circumstances, timing loops are possible in an improperly provisioned network even when SSM is utilized. 
     Step  1104  indicates a verification of whether the timing provisioning rules for SSM have been violated. There are many manners in which to determine whether SSM NE timing provisioning rules have been violated. As an example, if a system does not have an external BITS source at every node or at every other node, a timing loop may occur if the system is not provisioned properly. To prevent possible timing loops in such SSM systems, nodes utilizing BITS sources should only be provisioned to seek timing from these sources. Line timing should not be provisioned as a timing option for these sites. These circumstances, in addition to many other similar circumstances, may be investigated in step  1104  to determine whether or not SSM provisioning rules have been violated. 
     Step  1105  indicates a verification of whether the timing provisioning rules for non-SSM have been violated. Once again, there are many manners in which to determine whether non-SSM NE timing provisioning rules have been violated. As an example, for such non-SSM systems, one rule is that timing references should never be provisioned in a manner in which two adjacent nodes could potentially line time off each other at the same time. Consequently, nodes should be provisioned to only seek timing, directly or indirectly, from a BITS clock. There could be one or multiple BITS clocks in a system. Although many other rules and statuses may be verified, this is a basic requirement that may be investigated in step  1105 . 
     Following the determination of whether timing provisioning rules have been violated, it is concluded whether the network timing distribution was engineered properly to prevent timing loops (step  1106 ) or whether the network timing distribution engineering could result in a timing loop (step  1107 ). In either case, the determination regarding timing loops is made following these steps, resulting in an end to the process (step  1108 ). 
     As an illustrative example, consider the network illustrated in  FIG. 12A . This figure shows a 6 node 2-fiber bi-directional ring without SSM capabilities in a stable or steady state. In this example, the timing references have been set to accept timing from G12 to G11 in Direction 2, and G11 to G12 in Direction 1 for each network element. The timing used for the network elements are in Direction 2. 
       FIG. 12B  illustrates an example of the network&#39;s timing distribution reaction upon the loss of Node  2 &#39;s timing source from Node  1 . When Node  2  loses its first timing source located at G11, Node  2  automatically switches to its other possible timing source. Since Node  2  has had another timing source provisioned by the customer, G12, Node  2  now uses the timing it receives on G12 in Direction 1. 
     However, the timing source used by Node  3  is the signal it receives on G11, which was transmitted by Node  2 . At this point, Node  2  and Node  3  are in a timing loop. Since timing reference sourcing is in a non-revertive function, the timing for Node  2  is unable to be restored so as to use the signal received on G11; consequently, timing degradation between Nodes  2  and  3  continues, since the loop remains intact. Manual intervention is required to stop the loop, and return Node  2 &#39;s timing source back to using G11. The violation of provisioning rules in a non-SSM system as in  FIG. 12A  could also have been encountered if Node  1  were provisioned to accept BITS timing, but was also provisioned to accept timing from G11 and G12. 
     The scenario shown in  FIGS. 12A and 12B  has only one BITS clock. As such, this BITS clock is obviously the clocking source for the ring. However, this is only an illustrative example in order to simplify the explanation of such a scenario. In reality, it is possible and probable for other NEs to have BITS clocks as well. For example, nodes  4 ,  5  and  6  could all have BITS clocks but nodes  2  and  3  could still have a timing loop under the right scenario or provisioning mistake. 
     The examples in  FIGS. 12A and 12B  discussed above describe a situation where non-SSM NE timing provisioning rules are violated. This constitutes passing through step  1105  and then to step  1107  in  FIG. 11 . Examples will now be presented for the other three situations that are possible in the flowchart of  FIG. 11 . 
     For a non-SSM system such as in  FIG. 12A , the nodes could be provisioned as in any one of the following situations and would not violate any rules:
         Node  1  receives timing from BITS A and BITS B;   Nodes  2  and  3  receive timing from G11;   Node  4  receives timing from G11 and/or G12; or   Nodes  5  and  6  receive timing from G12.
 
Provisioning situations as listed above would result in passing through step  1105  to step  1106  in  FIG. 11 .
       

     The following two examples regard situations in which it has been determined that the network element is using SSM. 
     A situation where SSM NE timing provisioning rules are violated may occur if the system has 1 BITS clock and is provisioned (optioned) to accept timing from BITS timing as well as from line timing (G11 and/or G12). It is also worthy to note that if all the nodes in  FIG. 12A  had BITS timing sources provisioned, they could also be provisioned to accept line timed sources. They would only be in danger of a timing loop if multiple BITS sources failed simultaneously. Since it is usually the case that such sites are not in the same location and using different external BITS sources, it is highly unlikely that this simultaneous multiple BITS source failure would occur. However, in some cases it is actually possible for a customer to have two nodes at the same location. In this case, the nodes would be running off the same BITS clock and could have a problem if the BITS clock fails. In many cases, there still needs to be an element of user interaction and judgment with the tool. Obviously there are many other examples that are possible which would fall under this category, namely that of SSM NE timing provisioning rules being violated, which constitutes proceeding through step  1104  to step  1107  in  FIG. 11 . 
     Finally, situations wherein SSM NE timing provisioning rules are not violated will be described. Any of the three following scenarios will result in non-violation of SSM NE timing provisioning rules:
         All Nodes have an externally timed BITS clocks at their location. This scenario could be confusing in that it may be possible for a line timed signal such as G11 to be taken out of a shelf and be re-inserted as a BITS clock;   Every other node (i.e. Node  1 , Node  3 , Node  5  . . . ) has externally timed BITS clocks; or   All Nodes with externally timed BITS sources are not provisioned (optioned) to accept line timing (G11 or G12).
 
Provisioning situations as listed above would result in passing through step  1104  to step  1106  in  FIG. 11 .