Patent Publication Number: US-8116209-B2

Title: Methods and apparatus for identifying errors and stranded resources in networks

Description:
FIELD OF THE INVENTION 
     The present invention relates generally to the field of data communication networks and, more particularly, to techniques for identifying errors and stranded resources in connection-oriented or circuit-switched networks. 
     BACKGROUND OF THE INVENTION 
     Synchronous Optical Network (SONET) and Synchronous Digital Hierarchy (SDH) networks are widely deployed in enterprise and telecommunication networks as access and backbone networks. But the inventory systems for SONET/SDH networks are typically known to be only 60 to 80 percent accurate. This means that the inventory of equipment and services in network management databases is off from the actual network state. This results in many erroneous configurations that consume network resources without serving customers or generating revenue. 
       FIG. 1  shows an example of a circuit fragment (e.g., a cross-connect) that was not deleted when the service was deactivated. The cross-connect  104  is associated with an add-drop multiplexer (ADM) element  102  in the SONET ring  100  shown. Since this circuit fragment does not exist in the inventory management system of the carrier, the inventory system will try to use this resource to set up new services, but all such attempts will fail. Stranded resources can also result when undocumented network elements and cards are not reflected in the inventory system. The network operator may not be aware of the availability of these resources to support new services. This results in the unnecessary deployment of additional capital and equipment. It has been estimated that the typical service provider has 20 to 30 percent stranded assets at any given time, and achieving merely five percent asset recovery would equal $15 billion in revenue savings in North America alone. 
     Stranded resources can also lead to longer service provisioning times because a network operator cannot determine the status and capacity of network resources in a timely fashion. In the example shown in  FIG. 1 , a network operator may provision a circuit using the tributary port consumed by the dangling cross-connection in the SONET network element (NE) named ADM 2  as this resource is deemed “available” according to the inventory system. The operator will need to conduct time-consuming resource verification on the network element and reconcile the differences with the inventory system before the new service can be designed, provisioned and activated. It has been estimated that it takes two to three weeks to activate a service spanning multiple SONET rings in North America, and most of the time is spent on manual tasks, e.g., verifying resource availability by querying individual SONET/SDH equipment. 
     Current approaches tend to focus on stranded resource recovery and inventory accuracy. However, carrier networks also have a significant amount of incorrectly configured equipment that affects network reliability and performance. These configuration errors cause latent errors and are hard to detect because they are dormant until another error triggers them. For example, although an incorrectly configured 1+1 cross-connection successfully activates the service, it will fail to switch to the backup path on failure. This may result in reliability less than that promised in the service level agreement and can potentially impact revenue of the carrier. 
     Stranded resources and configuration errors can be caused by operator errors, prevalence of dumb devices with no management interfaces (e.g., patch panels), software bugs, and management process deficiencies, and cannot be easily prevented. The traditional solution to identifying errors is to improve the accuracy of the inventory database using an inventory reconciliation system, and then to subsequently check the updated inventory database for errors. 
       FIG. 2  shows a typical inventory reconciliation process  202 . One first gathers up-to-date data from the SONET/SDH equipment  204  (i.e., field data) and normalizes it to some format (e.g., relational database). The field data  206  is then compared with normalized data extracted from various databases in the data reconciliation phase. This is a complex and expensive process as it works on multiple databases with different access methods and schema. A typical telecom carrier has many management systems, including a database of record (DBoR)  210  which stores the inventory data, Business Support Systems (BSS)  212  such as billing and customer care, and Operation Support Systems (OSS)  208  that manages the SONET/SDH equipment such as Element Management System (EMS) and fault management systems. 
     The traditional approach of using an inventory reconciliation system may require other databases, several instances of middleware to facilitate access to various management systems, a workflow management system to track work orders, and reporting software, resulting in significant investment in software and personnel. This is a long drawn out and often a very complex undertaking. 
     Conventional data reconciliation tools from vendors such as CoManage (Fairfax, Va.), MetaSolv (Plano, Tex.) and Granite (Telcordia of Piscataway, N.J.) typically follow the model in  FIG. 2 . Their main goal is to get the DBoR up-to-date and perform stranded resource recovery from the DBoR. Some tools also perform operations to reduce the amount of data that needs to be reconciled, see, e.g., CoManage TrueSource. Conventional reconciliation tools can improve the inventory system accuracy to 80 to 95 percent, but cannot eliminate all errors. This can be because the service provider network typically has many dumb devices like patch panels that are managed manually and are thus prone to human errors. 
     Many telecom carriers are experiencing budget constraints and are not willing to invest heavily in an inventory reconciliation system, especially on legacy SONET networks that may be replaced in a few years. These customers are looking for a low-cost approach to quickly identify stranded assets and configuration errors. 
     Traditional approaches to data cleanup (e.g., parsing, field standardization, matching, and consolidation) are useful for simple errors like syntax errors. However, for network recovery, there is a need to go beyond data cleanup to identify invalid configurations (which may be syntactically correct). 
     SUMMARY OF THE INVENTION 
     The present invention provides techniques for identifying one or more errors and/or one or more stranded resources in a connection-oriented or circuit-switched network. 
     By way of example, in one aspect of the invention, a technique for identifying at least one of an error and a stranded resource in at least a portion of a connection-oriented or circuit-switched network comprises the following steps/operations. Field data is obtained directly from one or more elements of the network. At least a portion of the obtained field data is examined to determine an existence of at least one of an error and a stranded resource with respect to one or more element-level constructs. Data synthesized from at least a portion of the obtained field data is analyzed to determine an existence of at least one of an error and a stranded resource with respect to one or more network-level constructs. 
     The technique may further comprise taking at least one action to correct one or more existing errors and stranded resources, e.g., reconfiguring at least a portion of the network. The field data obtaining step/operation may further comprise automatically or manually collecting field data directly from one or more elements of the network. The technique may further comprise modeling the network based on at least a portion of the obtained field data. 
     By way of example, an element-level construct may comprise one of port, a timeslot and a cross-connection, while a network-level construct may comprise one of circuit, a ring and a network element. 
     The element-level construct examining step/operation may further comprise checking for one or more of a syntax error, a schema error, a semantic error, a configuration error, a status indicative of a stranded resource. 
     The network-level construct analysis step/operation may further comprise performing at least one of a circuit analysis and an inventory analysis. The circuit analysis may further comprise verifying that a circuit in the network is correctly configured. The circuit analysis may further comprise a semantic-based circuit analysis for determining an existence of one or more of a dangling circuit, a squelch circuit, a trunk circuit and a fragmentation. The circuit analysis may further comprise a status-based circuit analysis for determining a port status of end-points of a circuit. The inventory analysis may further comprise examining information relating to at least one of sparing and software configuration. 
     The connection-oriented or circuit-switched network may comprise a Synchronous Optical Network (SONET) or a Synchronous Digital Hierarchy (SDH) network. 
     These and other objects, features and advantages of the present invention will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a diagram illustrating a dangling cross-connect resulting in a stranded resource; 
         FIG. 2  is a diagram illustrating a technique for identifying stranded resources via inventory reconciliation; 
         FIG. 3  is a diagram illustrating a technique for identifying stranded resources according to an embodiment of the invention; 
         FIG. 4  is a diagram is a diagram illustrating raw data and a NetML representation of a network element according to an embodiment of the invention; 
         FIG. 5  is a diagram illustrating an invalid 1+1 cross-connection according to an embodiment of the invention; 
         FIG. 6  is a diagram illustrating an algorithm to detect invalid cross-connection types originating from low-speed ports according to an embodiment of the invention; 
         FIG. 7  is a diagram illustrating a circuit definition example according to an embodiment of the invention; 
         FIG. 8  is a diagram illustrating a squelch circuit example according to an embodiment of the invention; 
         FIG. 9  is a diagram illustrating an unused circuit example according to an embodiment of the invention; 
         FIG. 10  is a diagram illustrating sample output of a cleanup study according to an embodiment of the invention; and 
         FIG. 11  is a diagram illustrating an architecture of a computer system suitable for implementing a system for identifying stranded resources and configuration errors in a data communications network according to an embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     It is to be appreciated that while principles of the invention will be described below in the context of a SONET/SDH environment, the invention is not so limited. That is, the present invention is more generally applicable to any connection-oriented or circuit-switched network in which it would be desirable to provide techniques for identifying stranded resources and configuration errors. 
     As compared to the conventional reconciliation process generally described above in the context of  FIG. 2 , principles of the invention eliminate the data reconciliation step and operate directly on field data. The approach provided by principles of the invention is faster and more effective for the investment made as it operates on critical portions of the network where problems are already identified. Moreover, heuristics that can account for specific, localized engineering rules can be employed. Further, data synthesis may be performed to synthesize higher-level models (e.g., circuits) based on base constructs (e.g., cross connects). Still further, unlike traditional data cleanup, principles of the invention may assume a single data source and not focus on data quality problems from multiple data sources. 
     As will be illustratively explained below, principles of the invention propose a simpler and more direct approach to find a large class of stranded resources and configuration errors from field data alone. These errors may include, but are not limited to, unused resources, excessive sparing, incorrect (but legal) configurations and inefficient configurations. The approach is not meant to be as exhaustive as the standard reconciliation approach. Instead, for a provider not inclined to invest heavily, it aims to provide a low-cost approach to remove some of the most common and glaring inefficiencies in the system. 
     Like a conventional inventory reconciliation system, we also need to gather field data directly from SONET/SDH equipment. We model the network in extensible markup language (XML) and perform various types of data analysis and synthesis to identify stranded resources and configuration errors. One way that may be employed to model the network is described in P. Bohannon et al., “The NetML Network Model,” Lucent Technologies Technical Document ITD-04-45374V, 26 May 2004, the disclosure of which is incorporated by reference herein. 
     As will be illustratively explained, principles of the invention employ heuristics developed to detect stranded resources and configuration errors. In particular, we use our understanding of the network to develop a set of semantics-based validators to detect incorrect configurations and stranded resources. We also develop a status-based approach to detect stranded resources by comparing the synthesized data with equipment status and alarm data. Our approach is significantly faster than conventional data reconciliation tools and can be run frequently to keep the network “clean.” In many cases, our approach is the only feasible option when only the field data is available. Moreover, our approach can complement existing data reconciliation tools as it can be used as a front-end tool to greatly reduce the volume of corrupt data into the reconciliation tool. 
     Our approach can identify a significant amount of stranded resources and configuration problems. For example, we found that 10 percent of the circuits in a large customer network are stranded circuits, and 33 percent of 1+1 protection circuits have incorrect configurations. 
     Finally, our approach also differs fundamentally in its applicability. Traditional data reconciliation efforts start top-down at the Network Operations Center (NOC) to correct the various provisioning and billing databases under its purview and then, going down to extract data from the NEs. In other words, they are aimed at the NOC operations staff who typically have a higher-level view of the “global” network. On the other hand, we present a more bottom-up, operator-centric approach aimed at the field personnel to provide an operator with the necessary tools to correct any errors in portions of the network they are responsible for. Consequently, our approach is not designed to be exhaustive; instead it aims to find localized errors that are common and often, well known and fix them without a significant overhead. 
     Accordingly, as will be illustratively explained below, the invention provides techniques that address problems associated with stranded capacity in service provider networks and the potential monetary and efficiency benefits in recovering this capacity. It is to be understood that while some illustrative provisioning and equipment problems that one might encounter in a typical service provider SONET/SDH transport network are mentioned, the invention is not limited to addressing these specific problems. 
     Advantageously, principles of the invention provide an effective, low-cost approach based on the network field data with a goal to correct any specific, localized network problems where they are known to exist. Our approach encompasses both syntactic and semantic analysis based on creating high-level circuit and network models from the underlying data. 
     For the sake of ease of reference, the remainder of the detailed description will be divided in the following sections. Section 1 provides an overview of our approach. In Section 2, we describe our data discovery process and data model. In Section 3, we list the various illustrative stranded resources and configuration errors we address and describe how we identify them. In Section 4, we show how to synthesize higher-level models from base constructs and use them to identify more stranded resources. In Section 5, we present results from two studies on operational SONET network. Section 6 describes an illustrative computing system for implementing a stranded resource and configuration error identification system. 
     1. Process Overview 
     Referring now to  FIG. 3 , a diagram illustrates a technique for identifying stranded resources according to an embodiment of the invention. 
     As shown, in a first step ( 302 ), process  300  collects detailed network information (i.e., field data) directly from the SONET/SDH network elements (NEs)  301  and models the network using a XML language. Illustrative details of this first step are described below in Section 2. 
     In a second step ( 304 ), process  300  examines the field data to identify syntax and semantic errors on base constructs (i.e., data cleaning). The base constructs are the ports, timeslots and cross-connections that make up a SONET/SDH network. Illustrative details of this second step are described below in Section 3. 
     Process  300  then synthesizes higher-level models (i.e., circuits, rings and NEs) from the data and analyzes this synthesized data to identify stranded resources and configuration errors, in a third step ( 306 ). Illustrative details of this third step are described below in Section 4. 
     The network is reconfigured to remove these errors, in a fourth step ( 308 ). Once the stranded resources and configuration errors are identified, reconfiguration of the network to address the results can be accomplished in any known manner. 
     In accordance with this illustrative explanation, we use an Bi-directional Line-Switched Ring (BLSR) OC-48 SONET (as described in W. Goralski, “SONET,” McGraw-Hill Osborne Media, Emeryville, Calif., USA, 17 May 2000, the disclosure of which is incorporated by reference herein) rings as examples, but our approach is applicable to SONET and SDH networks of different multiplexing hierarchies and configurations (e.g., ring, mesh), as well as other connection-oriented or circuit-switched networks. We focus on the cross-connection base construct and the circuit model to illustrate our algorithms. Other base constructs and higher-level models that can be addressed have similar or lower complexity. 
     2. Data Collection and Network Modeling 
     Field data can be collected manually by an operator or automatically using a network discovery system. One example of a network discovery system that can be used is described in Y. Breitbart et al., “Topology Discovery in Heterogeneous IP Networks,” Proc. 19 th  IEEE Infocom, 26 Mar. 2000, the disclosure of which is incorporated by reference herein. Another discovery system that may be used is the CoManage TrueSource system. However, the invention is not limited to how the field data is collected and, when automatically collected, to any particular discovery system. 
     For illustrative purposes, we describe a manual collection approach here. This approach includes retrieving the network topology, circuit pack inventory, equipment configuration and operational status via the SONET management interface of each network element (NE) from which data is being collected. The field data can be in various formats such as Transactional Language 1 (TL1) (e.g., “Operations Application Messages-Language for Operations Application Messages,” Bellcore standard GR-831, the disclosure of which is incorporated by reference herein) or Craft Interface Terminal (CIT) (FT-2000 OC-48 Lightwave System Releases 8.1, User/Service Manual, Lucent Technologies, the disclosure of which is incorporated by reference herein). However, the invention is not limited to any particular format. In accordance with the identification process of the invention, we convert the native format to a normalized format and store it in a database for further analysis. 
     We model the network using NetML (P. Bohannon et al., “The NetML Network Model,” Lucent Technologies Technical Document ITD-04-45374V, 26 May 2004, the disclosure of which is incorporated by reference herein). NetML is an XML-based language for modeling computer and telecommunication networks. Unlike most network management systems that model different levels or aspects of the network and store the data in different databases (relational, XML, IMS, etc), we use NetML as a common central database to model all aspects of the network. NetML also has a rich set of analysis and visualization tools to expedite network analysis and research, and we can also leverage many powerful public domain packages such as XSLT and XQuery languages. 
       FIG. 4  shows an example of the raw data format and NetML model of an OC48 NE. We first briefly describe the functionality of a SONET/SDH NE and some industry terminology we use. The role of a SONET/SDH NE is to be a data multiplexer, collating numerous low bandwidth (or, “low-speed”) streams (e.g., STS-1/52 Mbps) of customer traffic into a single high bandwidth, or “high-speed” streams (e.g., OC-48/2.5 Gbps) that are carried long distances. Consequently, an NE includes numerous “client-side” ports or, low-speed ports and one (or, at most, very few) “line-side,” or high-speed ports. The multiplexing hierarchy is different for SONET and SDH, the former has STS/OC-1, 3, 12, 48 bandwidth rates while the latter follows the STM-1, 4, 16 hierarchy.  FIG. 4  illustrates the SONET case. Each NE typically is part of the “ring” with a minimum of two pairs of fibers, one carrying traffic in the clockwise direction and the other in the counter-clockwise direction. The neighboring nodes are often referred to as being in the east and west direction. 
     The data files in  FIG. 4  show a STS 1  cross-connection between a low-speed port ( 5   a - 1 ) and a STS 1  tributary ( 1   w - 1 - 1 ) on the OC48 high-speed link. The raw data is in TL1 format. The pictorial representation is generated using NetML&#39;s nplot and BLLinkBrowser tools from the NetML database. 
     3. Data Cleaning 
     Once a complete model of the network is generated, the network model is examined to “clean” erroneous data. Data cleaning is traditionally used to remove “dirty” data resulting from incorrect abbreviations (e.g., “Stby” instead of “Stdby”), data entry mistakes (e.g., NY instead of NYC), duplication, missing fields, etc. In accordance with principles of the invention, we go beyond standard syntax and schema checks to detect semantic errors. 
     Data cleaning is done in a pipeline approach. The process begins by checking for syntax errors and model/schema constraint violations in the base-constructs. Next, the process looks at the semantics of the data and check for configuration errors. The process then uses status information to look for more configuration errors and unused resources. 
     3.1 Syntax Check 
     A syntax check is performed on the raw data before converting it to NetML. These checks are data-format specific and are part of the data parsing process. For example it is verified that a DS3 low-speed port has the proper syntax (i.e., ls-[1-8][a|b]-[1-3], as per FT-2000 OC-48 Lightwave System Releases 8.1, User/Service Manual, Lucent Technologies). 
     3.2 Data Model Checks 
     After the raw data is converted to NetML, the NetML model is checked for schema and semantic errors. The latter validates the semantic properties of a NetML file that cannot be easily checked by XML schema validation. The basic algorithm to clean cross-connection is as follow: 
     Definition 1. A cross-connection X is defined as a tuple (EP(X), WP(X), EA(X), WA(X), ES(X), WS(X), type, timeslot). Here, E and W refer to East and West and P, A and X refer to Port, Address and Status respectively. 
     1. EP and WP represent one of two things. They are either low speed ports (e.g.,  5   a - 1  in  FIG. 4 ), or, tributaries on the high-speed port (e.g.,  1   w - 1 - 1  in  FIG. 4 ) and are ordered east to west. For example, ( 5   a - 1 ,  1   w - 1 - 1 ) in  FIG. 4 . 
     2. EA and WA are equipment names (e.g., NYW 2 NEPTUNE in  FIG. 4 ) and are ordered east to west. 
     3. ES and WS are port status and are ordered east to west. 
     4. type is the cross-connection type (e.g., one way, two way, active, standby). 
     5. timeslot is the timeslot on the high-speed port (e.g.,  1 - 1  in  FIG. 4 ). 
     NetML verifies that EP and WP exist and are at the same multiplexing hierarchy, and EP(X)≠WP(X), EA(X)≠WA(X) (i.e., no loopback). For example, NetML flags an error when it finds a STS 1  cross-connection between a DS3 port and a STS 3  link. 
     3.3 Semantics-Based Cleaning 
     An understanding of the semantics of the data can be used to verify that the basic constructs are valid. For cross-connections, the type, address and configuration rules are checked. Type field validators are used to detect latent errors that are caused by legal but inconsistent cross-connection configurations, such as the 1+1 protected cross-connection validator shown in  FIG. 5 . 
       FIG. 5  shows a circuit originating at the SONET Add/Drop Multiplexer (ADM) named ADM 1  in Ring 1  and terminating at ADM 5  in Ring 2 . ADM 2  has a missing cross-connection marked “???” thus causing the standby link to have only 1-way communications when the active link fails. This circuit requires four 1-way cross-connections in ADM 2  and ADM 4  to support an active and a standby two-way links. The circuit will operate even if the standby link is not provisioned or partially provisioned as shown in  FIG. 5 , but will fail when the active link between ADM 2  and ADM 4  fails. This type of latent error has severe reliability implications on the customer as it downgrades the circuit&#39;s reliability from 99.9999 percent to 99.9 percent. Assuming links fail independently, a single link will fail with probability p, and a 1+1 link will fail with probability p 2 . Availability is defined as (1-p)*100 percent, so if p=0.001 (i.e., one link failure a year with mean repair time of eight hours), the availability of a single and 1+1 links are 99.9 percent and 99.9999 percent, respectively. Since these errors do not manifest themselves at the time of provisioning a service, they are quite common in operational networks. We found that 33 percent of the 1+1cross-connections in a large customer network have this type of error. 
     An illustrative algorithm to detect inconsistent cross-connection types is shown in  FIG. 6 . The cross-connections are grouped into lists indexed by the low-speed ports, and the list is inspected for inconsistent cross-connection types (e.g., a 1+1 cross-connection has a mixture of 1-way and 2-way cross connections). XQuery 1.0 language may be employed to implement the validators for convenience and maintainability. 
     The semantics-based validators can be general or equipment specific. Equipment specific validators typically reflect engineering rules that are enforced by the equipment. For example, the Lucent FT-2000 ADM forbids the use of low-speed ports from non-adjacent circuit packs in a 1+1 protected cross-connection. The equipment typically enforces these rules and we rarely see such invalid configuration on field data. 
     3.4 Status-Based Cleaning 
     An extension of the semantics-based cleaning is to use status information to identify stranded resources and configuration errors. The status of each base construct can be examined to verify that it is carrying live traffic. For example, a cross-connection can be flagged as unused if it does not carry any user traffic. Conversely, a low-speed port that is carrying user traffic but has no cross-connection configured is missing a cross-connection. Sometimes the status information may be vague (e.g., a port may be configured but not set to monitor errors) and more information will be needed to deduce if resource is in use. In Section 4.1.2 below, we will provide more detail on status-based cleaning and circuit analysis. 
     The next section describes how a high-level model is synthesized from base constructs to filter the error data and to deduce more conclusively if a base construct is in use or incorrectly configured. 
     4. Data Synthesis/Analysis 
     The data cleaning performed in Section 3 is local to NE. In this section, we describe a process for synthesizing higher-level constructs from base-constructs to do data cleaning and analysis on a ring-wide basis. This allows to uncover more stranded resources and configuration errors than that found in Section 3. The higher-level constructs are circuits, rings and NE models. These constructs are used to perform circuit and inventory analysis. 
     4.1 Circuit Analysis 
     We illustratively define a circuit as an end-to-end path between two low-speed ports in a single SONET ring: 
     Definition 2. A circuit C is defined as a list of cross-connections (X 1 , X 2 , . . . X n ) such that timeslot(X i )=timeslot(X j ), i,j=1 . . . n and X i εRing. 
       FIG. 7  shows three STS 1  circuits between ADM 1  and ADM 2 . Both ADMs are part of an OC48 BLSR ring. There are 3×STS 1  circuits between low-speed ports  1   a - 1 ,  1   a - 2 ,  1   a - 3  of ADM 1  and ports  5   a - 1 ,  5   a - 2  and  6   a - 1  of ADM 2  on timeslots  7 - 1 ,  7 - 2  and  7 - 3 , respectively. Further, in this example, the OC48 link between ADM 1  and ADM 2  is de-multiplexed into eight lower speed OC3 links. An OC3 link on timeslot  7  of the OC48 link is further de-multiplexed into 3×STS 1  circuits between low-speed ports  1   a - 1 ,  1   a - 2 ,  1   a - 3  of ADM 1 , and low-speed ports  5   a - 1 ,  5   a - 2 , and  6   a - 1  of ADM 2 , respectively. Since a typical customer circuit spans multiple rings and may encounter a dumb device like a patch-panel when it jumps from one ring to other, for our analysis, we illustratively define circuit as a fragment of end-to-end customer circuit contained in a single ring. 
     Once the circuits are extracted from field data, semantics and status-based cleaning can be performed. 
     4.1.1 Semantics-Based Circuit Analysis 
     In semantics-based cleaning, verification is done to determine that a circuit is correctly configured. A number of different errors can be caught during this process for the circuits in the data. By way of example only, we present four classes of errors. The invention is not limited to any particular class of error. 
     a) Dangling Circuits: An example of a dangling circuit was presented in Section 1 (see  FIG. 1 ). Essentially, a circuit is dangling if either end of the circuit does not terminate on a low-speed port, i.e., one of EP(X 1 ) and EP(X n ) is not a low-speed port, where X 1  and X n  are the end cross connects. 
     b) Squelch circuit: A squelch circuit has incorrect addresses on one or more cross-connections along its path. It is an example of a latent error as the addresses are only used during SONET ring recovery, but has severe implications on the customer&#39;s service level agreement (SLA) during ring/node failures.  FIG. 8  shows an example of a squelch circuit originating from ADM 1  and terminating in ADM 3 . This example shows a circuit with incorrectly configured addresses in ADM 3 . The source and destination addresses are shown in curly brackets. For example, it should be {1,3} for a circuit that originates in ADM 1  and terminates in ADM 3 . This circuit will fail when ADM 2  fails, even though the circuit can be re-routed via ADM 4  and ADM 5 . This is because ADM 3  assumes that the source of the circuit is ADM 2  and thus will not recover when ADM 2  fails. 
     c) Trunk Circuits: A correct circuit may be configured in a non-optimal way by consuming unnecessary resources or using non-optimal timeslot layout on intermediate hops. The former is very common on networks with heterogeneous equipment and is detected by the trunk circuit validator. For example, a STS 1  circuit may traverse multiple ADMs with different switching granularities, and will consume a larger STS 3  bandwidth on ADMs that cannot switch at STS 1  granularity. These circuits could potentially be re-routed to ADMs with matching switching granularity. 
     d) Link and Ring Defragmentation: A SONET ring can also have non-optimal timeslot layout when circuits are added and deleted over time. This causes the available bandwidth on the ring to become fragmented leaving behind “stranded” capacity which may be difficult to use while provisioning circuits. Fragmentation occurs at all levels of the network, i.e., in links, rings and the mesh network. The fragmentation validator will detect link fragmentation. For example, a SONET ring may have sufficient capacity to support an OC12 circuit (i.e., twelve free STS-1 slots), but cannot provision an OC12 circuit if these twelve slots are in non-contiguous locations. Algorithms have been developed to address these optimality issues, see, e.g., S. Acharya et al., “Hitless Network Engineering of SONET Rings,” Proc. IEEE Globecom, 1 Dec. 2003 and S. Acharya et al., “MobiPack: Optimal Hitless SONET Defragmentation in Near-Optimal Cost,” Proc. 23 rd  IEEE Infocom, 7 Mar. 2004, the discourses of which are incorporated by reference herein. 
     4.1.2 Status-Based Circuit Analysis 
     After removing invalid circuits based on semantics, the port status of end-points of a circuit is examined. The most common port statuses are in-use (i), not in-use (a) and not monitored (n). The last status means the network operator has disabled the diagnostic capabilities of a low-speed port. In many operational networks, this indicates an unused port as technicians frequently turn-off diagnostic capabilities of unused ports to suppress error messages. We use the following rules to classify circuit status. Given a circuit C with cross-connections X i  ordered from east to west, the low-speed port status of the circuit end points (X i  and X n ) is examined as follows: 
     1. Liveness. A live circuit has one or both end points in-use, ES(X 1 )=WS(X n )=i. 
     2. Unused. An unused circuit has both end points not in-use ES(X 1 )=WS(X n )=a. 
     3. Unknown. Otherwise, the circuit is marked as possibly unused and requires further investigation. Ports that are not monitored need to have their monitoring capabilities enabled to allow further analysis. 
     An example of a status-based validator is an unused circuit validator.  FIG. 9  shows an unused circuit from ADM 1  to ADM 3 . In this case, the low-speed ports that terminate the circuit do not carry any user traffic. We can infer the circuit as unused and free all the resources consumed by the circuit. 
     4.2 Inventory Analysis 
     The SONET/SDH field data contains detailed configuration information that can be used for inventory analysis. This includes, for example, examining each ADM to see if it has adequate or excessive sparing, and verifying its software configuration. 
     A logical model of an ADM can be constructed, which has n low-speed ports, m high-speed ports (see  FIG. 4 ) and k spare ports. The high-speed ports are used to construct a ring network, and the low-speed ports contain circuit packs that multiplex incoming traffic to the high-speed port. Important traffic like emergency 911 voice circuits are typically protected via a 1×n circuit pack in the spare port. It can be deduced that an ADM has excessive or inadequate sparing from the logical model by examining the circuit pack configurations in the low-speed and spare ports. 
     Improper software configuration can potentially disrupt network operation and cause intermittent faults. The software configuration of each ADM can be verified to ensure that it has the proper software configuration (e.g., operating system release, patch level, time) and the configuration is consistent across a ring. 
     5. Sample Result and Studies 
     In this section, we present results from studies on two operational SONET networks. We found a significant amount of stranded resources and configuration errors in both networks. We also identify areas for optimization, and present the results from a revenue recovery study in Section 5.3. 
     5.1 Network A 
     The first study was conducted on a large carrier network in USA. We gathered field data directly from the SONET NEs for one regional network. The network consisted of 57 OC48 SONET BLSR rings spanning 3 states, and an average ring size of 3.1 ADMs. There are 1372 circuits on the OC48 rings, consuming 69 percent of the available bandwidth. The ring utilization was bimodal, with many rings heavily utilized and some rings lightly utilized. There are also 30 subtending OC12 access rings supporting 141 circuits. 
     Prior to the study, the operator reported significant provisioning problems. One out of three circuit provisioning attempts failed even though the DBoR indicated that the network has sufficient capacity. When we analyzed the field data we found significant stranded resources in the network:
         2.1 percent dangling circuits, consuming 2.4 percent of the total bandwidth.   3.8 provisioned but unused circuits, consuming 3.2 percent of the total bandwidth.   4.4 percent provisioned and probably unused (not monitored) circuits, consuming 4.8 percent of the total bandwidth.   14.5 percent of ADMs had excess circuit packs that could be removed and deployed elsewhere.       

     We also found many configuration errors affecting network reliability and performance, including:
         32 percent of circuits expected to have 1+1 cross-connections were incorrectly provisioned. This corresponds to 1 percent of all circuits.   12 percent of ADMs have older OS or incorrect software configuration.   13 percent of ADMs have insufficient circuit pack protection. Some of these ADMs were known to be carrying traffic for emergency services.
 
5.2 Network B
       

     The second study was conducted on a metropolitan network in a large city. The network consists of 103 OC48 SONET BLSR rings and an average ring size of 3 ADMs. There are 2155 circuits consuming 75 percent of the available bandwidth. In this study, we were given partial field data that excludes equipment status and configuration information because of which we were unable to perform status, inventory and many types of semantics-based analysis. Our data cleaning was done off-line. 
     Given these restrictions, we still found some amount of stranded resources and configuration errors. In particular, we found 1 percent dangling circuits consuming 1.2 percent of the total bandwidth. We also detected 1.4 percent squelch circuits and 0.2 percent circuits with invalid addresses. Both are latent errors that could potentially impact failure recovery. 
     5.3 Revenue Recovery Study 
     We now present the result of the revenue recovery study on a sample ring (it is one of the rings from the study in Section 5.1).  FIG. 10  shows the ring layout pictorially. It is a 6-node OC-48 BLSR ring with the x-axis denoting the nodes and the SONET slots on the y-axis. Only the first 24 slots (of the 48 in the ring) are shown since in BLSR, half the ring is used for protection. A darkened tab indicates that the particular slot is carrying traffic between the two nodes, or, it is empty otherwise. There were 44 circuits of STS-1 granularity on the ring. 
     Recall that one step of the process is to do a “cleanup” of the data that eliminates obvious syntactic errors (e.g., “Stby” instead of “Stdby”). Then, a circuit analysis is performed to classify the nature of all circuits in the ring and the tabs (see legend) indicate the classification of cross-connects after our data analysis, namely, valid, stranded, or, non-monitored ( FIG. 10(   a )).  FIG. 10(   b ) shows the output of the cleanup process described above. In this case, all the stranded cross-connects were removed which accounted for 9.7 percent bandwidth for this specific ring. For a service provider, recovering 10 percent of the bandwidth is a huge operational and monetary savings. For this specific case, it was determined that the non-monitored circuits were indeed valid circuits and, thus, not deleted from the network. 
     For both the two trials, estimates of monetary savings from improved provisioning time and additional “freed” capacity were also recorded. For example, 2.4 percent of additional capacity available in a regional network for a large service provider translates to hundreds of thousands of dollars per year. Moreover, in many cases where the service provider plans to upgrade the network to next-generation elements, an accurate inventory of the actual traffic lowers their migration cost and enables them to reduce the size of the new network ordered. 
     Further savings could be had by defragmenting the bandwidth on the ring. This is shown in  FIG. 10(   c ). Bandwidth defragmentation was mentioned in Section 4.1.1 and is further described in the above-referenced S. Acharya et al. articles. This process aims to coalesce all the standard capacity into contiguous locations. The figure shows the layout of the ring after circuits have been re-routed one-at-a-time so as to create large contiguous free spaces. For example, a new STS-3 demand, requiring three contiguous timeslots, from node 2 to 4 can now be met which would not have been possible otherwise. This new layout was achieved by re-routing 12 circuits (out of the 44 in the ring) to new routes. This example illustrates the end-to-end revenue recovery process. 
     6. Illustrative Hardware Implementation 
     Referring now to  FIG. 11 , a block diagram illustrates an architecture of a computer system suitable for implementing a system for identifying stranded resources and configuration errors in a data communications network, according to an embodiment of the present invention. More particularly, it is to be appreciated that computer system  1100  in  FIG. 11  may be used to implement and perform the methodologies of the invention, as illustratively described above in the context of  FIGS. 1  through  FIG. 10 . Also, it is to be understood that one or more network elements may implement such a computing system  1100 . Of course, it is to be understood that the invention is not limited to any particular computing system implementation. 
     Thus, computing system  1100  could be used to identify stranded resources and/or configuration errors in accordance with the methodologies of the invention described herein such that the results could then be implemented in the subject network by a service provider so as to realize revenue recovery. 
     In this illustrative implementation, a processor  1102  for implementing at least a portion of the methodologies of the invention is operatively coupled to a memory  1104 , input/output (I/O) device(s)  1106  and a network interface  1108  via a bus  1110 , or an alternative connection arrangement. It is to be appreciated that the term “processor” as used herein is intended to include any processing device, such as, for example, one that includes a central processing unit (CPU) and/or other processing circuitry (e.g., digital signal processor (DSP), microprocessor, etc.). Additionally, it is to be understood that the term “processor” may refer to more than one processing device, and that various elements associated with a processing device may be shared by other processing devices. 
     The term “memory” as used herein is intended to include memory and other computer-readable media associated with a processor or CPU, such as, for example, random access memory (RAM), read only memory (ROM), fixed storage media (e.g., hard drive), removable storage media (e.g., diskette), flash memory, etc. 
     In addition, the phrase “I/O devices” as used herein is intended to include one or more input devices (e.g., keyboard, mouse, etc.) for inputting data to the processing unit, as well as one or more output devices (e.g., CRT display, etc.) for providing results associated with the processing unit. It is to be appreciated that such input devices may be one mechanism for a user to provide the inputs used by a system of the invention to generate identification and revenue recovery results. Alternatively, the inputs could be read into the system from a diskette or from some other source (e.g., another computer system) connected to the computer bus  1110 . Also, inputs to the methodologies may be obtained in accordance with the one or more input devices. The output devices may be one mechanism for a user or other computer system to be presented with results of the methodologies of the invention. 
     Still further, the phrase “network interface” as used herein is intended to include, for example, one or more devices capable of allowing the computing system  1100  to communicate with other computing systems. Thus, the network interface may comprise a transceiver configured to communicate with a transceiver of another computer system via a suitable communications protocol. It is to be understood that the invention is not limited to any particular communications protocol. 
     It is to be appreciated that while the present invention has been described herein in the context of networks, the methodologies of the present invention may be capable of being distributed in the form of computer readable media, and that the present invention may be implemented, and its advantages realized, regardless of the particular type of signal-bearing media actually used for distribution. The term “computer readable media” as used herein is intended to include recordable-type media, such as, for example, a floppy disk, a hard disk drive, RAM, compact disk (CD) ROM, etc., and transmission-type media, such as digital or analog communication links, wired or wireless communication links using transmission forms, such as, for example, radio frequency and optical transmissions, etc. The computer readable media may take the form of coded formats that are decoded for use in a particular data processing system. 
     Accordingly, one or more computer programs, or software components thereof, including instructions or code for performing the methodologies of the invention, as described herein, may be stored in one or more of the associated storage media (e.g., ROM, fixed or removable storage) and, when ready to be utilized, loaded in whole or in part (e.g., into RAM) and executed by the processor  1102 . 
     In any case, it is to be appreciated that the techniques of the invention, described herein and shown in the appended figures, may be implemented in various forms of hardware, software, or combinations thereof, e.g., one or more operatively programmed general purpose digital computers with associated memory, implementation-specific integrated circuit(s), functional circuitry, etc. Given the techniques of the invention provided herein, one of ordinary skill in the art will be able to contemplate other implementations of the techniques of the invention. 
     Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it is to be understood that the invention is not limited to those precise embodiments, and that various other changes and modifications may be made by one skilled in the art without departing from the scope or spirit of the invention.