# Patent

## Title
Root cause analysis in a communication network

## Abstract

Root cause analysis in a communication network may be provided in a network management system in accordance with an embodiment of the present invention. The system receives a set of events the network. One such received event may indicate a network problem. The system, through time windowing and/or filtering, identifies a sub-set of events, in the first set, as candidate events for a root cause of the problem. The system generates a score value for each candidate event in the sub-set, indicating how likely each such candidate event is the root cause of the problem. The score value is based in part on a hop distance between an entity that generated the event indicating the problem and another entity that generated the candidate event. The system then selects one of the candidate events, which has a minimum score value, as the root cause event for the problem reported.

## Background
PRIORITY CLAIM
This application claims the benefit of U.S. Provisional Patent Application No. 60/859,339, entitled “Root Cause Analysis in a Telecommunications Network”, filed on Nov. 15, 2006, the entire contents of which are incorporated by this reference for all purposes as if fully set forth herein.


TECHNICAL FIELD
The present disclosure relates generally to network communications, and specifically to managing communication networks.
BACKGROUND
The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Some network management systems implement a data model of the managed network, in which programmatic objects represent network elements such as routers and switches, as well as links between the network elements. Other network management systems implement a network management function known as root cause analysis. Typically, a network problem has caused observable changes in attributes and states of entities in the network. As a result, a plurality of events may be emitted by one or more source entities in the network that happen to observe the attribute changes and the state changes caused by the problem.
Under some approaches, root cause analysis may be performed using causality graphs constructed by the events collected. If such approaches converge to a solution within a finite amount of time, the constructed graphs may indicate root causes for problems in the physical network. The existing techniques for root cause analysis, such as those constructing causality graphs using events as input, may take an inordinately long time to converge or fail to converge at all, especially when the number of the events is large. In addition, the techniques may not robustly deal with a situation where key events are missing. Since events are typically collected using unreliable transport protocols such as syslog or a trap mechanism of Simple Network Management Protocol (SNMP), some key events may not reach the network management system.
Some existing techniques configure a time window to disqualify (or remove) all the events outside the window from the root cause analysis for efficiency purposes. However, because network problems and their symptoms propagate at different rates and appear at different times in different locations of the physical network, it is often difficult to configure such a time window properly to realize an objective of excluding irrelevant events while, at the same time, including relevant events.



BRIEF DESCRIPTION OF THE DRAWINGS
The techniques for performing root cause analysis in a telecommunications network are described herein and are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
FIG. 1 illustrates an example system operable to perform root cause analysis in a communication network;
FIG. 2 illustrates an example process flow;
FIG. 3 illustrates another example process flow;
FIG. 4 illustrates further steps in the example process flow of FIG. 3; and
FIG. 5 illustrates a computer system.



DESCRIPTION OF EXAMPLE EMBODIMENTS
Techniques for performing root cause analysis in a communication network are described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding. It will be apparent, however, to one skilled in the art that certain specific details are not necessary. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the invention.
Embodiments are described herein according to the following outline:

    
    
        1.0 General Overview
        2.0 Structural and Functional Overview
        3.0 Performing Root Cause Analysis in a Communication Network
        
            3.1 Example Operations
            3.2 Additional Features and Alternative Embodiments
        
        
        4.0 Implementation Mechanisms—Hardware Overview
        5.0 Extensions and Alternatives

1.0 General Overview

    
    


In one embodiment, initially, a first set of events from a communication network is received. The first set of events received comprises a first particular event that indicates a problem in the network. In the first set of events, a second set of events may be identified. This second set of events comprises candidate events for a root cause of the problem in the network.
In some embodiments, the first set of events may be filtered to produce (or identify) the second set of events. In an embodiment, another network element, that generates a second event in the first set of events, is identified. Based on the virtual network model, it can be determined whether the other network element is topologically close to the particular network element (that generated the first particular event). In response to determining that the other network element is not topologically close to the particular network element, the second event may be disqualified as a candidate event for the root cause of the problem.
In an embodiment, for purposes of identifying a second set of events, a path between a source and a destination, over two or more network elements, may be identified. Here, each of the source and the destination may be associated with the problem of the network. For example, the source may be an emitter of a message indicating the destination is unreachable. After a path between the source and the destination is identified, it may be determined whether a second event in the first set of events is on the path. In response to determining that the event is not on the path, the second event may be disqualified as a candidate event for the root cause of the problem.
In an embodiment, for purposes of identifying a second set of events, a particular time, when the particular event occurred, may be identified. It is then determined whether a second time when a second event in the first set of events occurred was within a time window from the particular time. In response to determining that the second time when the second event in the first set of events occurred was not within a time window from the particular time, the second event is disqualified as a candidate for the root cause of the problem by excluding the second event from the second set of events.
Subsequently, for each candidate event in the second set of events, a virtual network model of the network is used to determine a hop distance and a score value is generated for the candidate event based in part on the hop distance. The hop distance determined using the model is between a particular network element that generated the first particular event and a second network element that generated the candidate event. Furthermore, the score value for each such candidate event represents likelihood that the candidate event is the root cause of the problem in the network. One candidate event, in the second set of events, having a minimum score value among all the candidate events may be selected as indicating the root cause. A lower score value for a candidate event, in the second set of events, indicates a greater likelihood.
In an embodiment, generating a score value for a candidate event is based in part on a time difference between a particular time when the particular event occurred and another time when the candidate event, in the second set of events, occurred. In an embodiment, generating a score value for a candidate event is based in part on a conditional probability that the candidate event is the root cause for the problem. Here the conditional probability may be dependent on the particular event and the candidate event.
In various embodiments, the virtual network model may be created and stored, in a memory and may use managed objects to represent network infrastructure elements, end stations, and links. In some embodiments, the virtual network model accurately models the network and enables determining how an actual data packet traverses the network at a given time.
Thus, unlike other network management models that do not model communication networks at a level enabling determining how an actual data packet traverses the networks, the approach herein offers accuracy because it considers accurate topological information in the virtual network model.
The approach herein can also be easily extended to support new scenarios. The approach can operate when duplicate values exist in the network, such as duplicate IP addresses, duplicate VLAN IDs, etc. For example, when a network management module such as an event correlation engine receives multiple events that have the same VLAN ID but originate from different routers or switches, or have different time stamps, the events may be addressed differently by the network management module. For example, the event correlation engine may correlate the events with their respective locations in the communication network and apply location-aware filters, such as those incorporating topological information maintained in the virtual network model, to the events. In an embodiment, filters may be used to address multiple different kinds of duplication.
In an embodiment, the root cause analysis approach herein is scalable to handle a large amount of events sent to a management system, resilient to missing events (events which are not reported), or spurious events, and can easily be adjusted to support different network scenarios or configurations.
In other embodiments, a method may be implemented by a computing device for performing root cause analysis in a communication network.
In some embodiments, the techniques for performing root cause analysis in a communication network described herein may be implemented using one or more computer programs executing on a network infrastructure element, such as a switch, a router, an end station, that is established within the communication network or a network separate and outside the communication network. In some embodiments, the techniques described herein may be implemented by an appliance computer system that is operatively and/or communicatively coupled to a network infrastructure element, such as a switch, a router, and an end station. In some embodiments, the techniques described herein may be implemented on a host computer system that is communicatively connected to the communication network. Thus, the embodiments described herein are to be regarded in an illustrative rather than a restrictive sense.
2.0 Structural and Functional Overview
In an embodiment, the techniques disclosed herein may be implemented by one or more computing devices to support performing root cause analysis.
The computing devices each may be any type of computing device. Examples of computing devices may include but are not limited to a switch, a router, an end station, etc., that collects event information from a communication network. The communication network may be any type of communication network. Examples of communication network may include, but are not limited to, those networks comprising switches, routers and end stations.
In some embodiments, support for root cause analysis may be implemented as a part of a network management system. The network management system may create and maintain a network management model that corresponds to a physical network.
The network management model may be constructed based on logical relationships or statistical information relating to entities in the physical network. The logical relationships may be inheritance relationships (e.g., a general type of device, for example, a router, versus a specific type of device, a specific-model router, within the general type) or containment relationships (e.g., a device, for example, a router, that contains sub-devices or modules such as line cards, blades, memory, disk, a particular type of application, etc.). The statistical information, which may be used to populate data in the network management model, may include information about how many instances of a particular device type are currently deployed in the network and what attributes of each such device or its hardware and software modules currently are or historically were. In an embodiment, the network management model represents not only the containment information and the statistical information, but also information relating to operations related to the data-plane of devices, such as routing, switching, etc. Particularly, the network management model represents and stores accurate topological information about the physical network to such an extent that the model can be used to determine how data packets comprising events actually travel in the physical network.
In an embodiment, the root cause analysis uses information of the network management model (including the accurate topological information of the physical network) to determine a root cause for an observable problem.
The problem of root cause analysis can be stated as follows. For every event e detected by the management system, its root cause event e′ is identified. The events e and e′ can be reported by distinct network infrastructure elements, and events e and e′ can both occur and be detected asynchronously.
As illustrated in FIG. 1, the system 100 comprises an example communication network 102 and an example network management system 104, as previously described. Both the communication network 102 and the network management system 104 are operatively coupled with each other through a link 106. Over the link 106, events 108 generated by network elements in the communication network 102 can be collected by the network management system 104.
In an embodiment, the network elements that generate the events 108 are network infrastructure elements (such as routers 110, switches, end stations 112, servers, etc., and links there between). In an embodiment, the events may first be generated by either the network infrastructure elements or any hardware and/or software modules contained therein, subsequently emitted by the network infrastructure elements towards a destination using syslog, SNMP or any other protocols that can be used for sending events, and finally collected by the destination such as the network management system 104.
Some of the events 108 collected may indicate problems in the network 104, some of the events 108 may indicate root causes of the problems in the network, and some of the events 108 may be unrelated to the problems or may only indicate symptoms or secondary problems.
Problems indicted by the events 108 may be local or non-local. A local problem may be related to a specific network element, or hardware and/or software module contained therein. In some embodiments, binary or textual information contained in an event indicating a local problem also specifies what network element or its component module(s) is affected by the problem.
A non-local problem may be related to more than one network element. For example, a non-local problem may affect a link between two network elements, or even affect a path over two or more network elements. Sometimes, a non-local problem may even be global within the communication network, affecting a substantial number of network elements. Like an event indicating a local problem, an event 108 indicating a non-local problem also specifies identification information about the network elements or their component modules, in accordance with some embodiments. For example, an event 108 may identify a source (e.g., an IP address identifying a network element) and/or a destination (e.g., another IP address identifying another network element) for a path that is affected by a problem described by the event.
The network elements in the communication network 102 may comprise one or more network infrastructure elements each of which may comprise one or more software and hardware modules. As illustrated in FIG. 1, the network 102 comprises three routers 110 (1 through 3), four end stations 112 (1 through 4), and links between them. For the purpose of illustration, an event, such as an Event 1 (108-1), may be generated by Router 2 (110-2). The Event 1 traverses through Router 3 (110-3) towards the Network Management System 104 since Router 2 does not directly interface with the Network Management System 104. Another event, say Event 2 (108-2), is generated by Router 1 (110-3). The Event 2 may be directly forwarded to the Network Management System since Router 2 is directly connected with the Network Management System 104, as illustrated. Thus, through the link 106, various events occurred in the communication network 102 may be collected by the network management system 104.
For purposes of illustration, the network management system 104 may comprise a network management station 114 that directly interfaces with Router 3 through the link 106, and an event correlation engine 116 that may be used to identify a subset of the received events 108 as candidates for a root cause of a problem indicated by a particular event 108.
In some embodiments, the network management station 114 may implement some lower layers (e.g., protocol layer, mediation layer, element management layer, fault management, configuration management layer, accounting management, performance management, security management, etc.) for the network management system 104 and be capable of communicating with various network elements in the communication network 102 using a variety of protocols including any protocol that is used for event collection.
In some embodiments, the event correlation engine 116 may be built on top of one or more of the previously mentioned lower layers of the network management system 104. In addition to collecting the events 108, the network management station 114 may use the link 106 for other purposes such as monitoring status or performing actions vis-à-vis the network elements in the communication network 102.
In some embodiments, the event correlation engine 116 may comprise a root cause analysis module 118. In other embodiments, the root cause analysis module 118 may be a separate module working with the event correlation engine 116 to perform root cause analysis for a problem occurred in the communication network 102.
In an embodiment, the events 108 received from the communication network 102 may be normalized using a virtual network model 120 (which is an example embodiment of the network management model discussed in the earlier part of this section). Each of the events 108 may be associated with managed objects in the virtual network model 120. Location information embedded in an event 108 may be determined using the topological information maintained in the virtual network model 120. In various embodiments, the normalization and the association of the events may be performed by any of the network management station 114, the event correlation engine 116, and the root cause analysis module 118 using the virtual network model 120. Thus, the events 108 actually generated in the communication network 102 result in event objects associated with virtual network model objects representing network elements or hardware and software modules contained therein.
The virtual network model 120 that accurately represents the communication network 102 may comprise managed objects that represent various entities in the communication network 102. The managed objects in the model may be implemented, for example, as data structures. The entities in the network may be network infrastructure elements, links, paths, software, firmware, hardware or a combination thereof, for example, routers 110, switches, end stations 112, links, etc. Attributes or a state of a managed object in the model may be computed or derived based on attributes and a state of a corresponding entity in the network. Attributes or states relating to the network (or any of the entities therein) may be viewed through viewing attributes or states relating to the model (or any of the managed objects therein). Similarly, actions upon the network (or any of the entities therein) may be performed through performing actions upon the model (or any of the managed objects therein).
To accurately represent the communication network 102 and its topology, the network management system 104 may collect not only management-related information from the communication network 102, but also topological information including data plane information, routing tables, etc., that enables, for example, determining how many data packets may traverse within the communication network 102 and counting how many hops from one location (say a network element) to another (say another network element), determining how close in the topology a first location is with respect to another location or a link or a path, and determining whether a particular location (say a network element that emits an event) is on a particular path between a source and a destination.
To maintain the virtual network model 120, the network management system 104 may use a polling mechanism, an event-driven mechanism, or a combination thereof. With the polling mechanism, the attributes or states relating to the communication network 102 (or any of the entities therein) are polled from the network infrastructure elements (e.g., the router 110-1) in the communication network 102 from time to time. The attributes or states polled from the communication network 102 are used to compute or derive the corresponding attributes and states relating to the model (or any of the managed objects therein).
With the event-driven mechanism, the network management system 104 may wait for and receive events 108 emitted by source entities in the communication network 102. An event 108 may be associated with one or more entities. A change in any of states or attributes of the one or more associated entities may trigger a related source entity to emit the event. Associated entities whose attribute or state changes trigger emissions of events are typically identified by the events in their contents (or in binary format and/or textual format). Based on the information represented by the events 108, the network management system 102 may compute or derive attributes and states of managed objects (in the model) that correspond to the associated entities identified in the events 108. In some situations, the network management system 104 may, upon receiving certain events 108 or before or after performing some control actions, invoke the polling mechanism to retrieve attributes or states of the communication network 102 (or attributes or states of the entities therein).
The source entities that emit the events are typically network infrastructure elements such as routers 110 or switches, end stations 112 (which may further include printers, personal computers, wireless data processing devices, and server), etc. Any of the network infrastructure elements can generate events at any time during operation. Additional entities may be identified in an event 108 in its binary and/or textual formatted information. Such additional entities may be any type of entity, including but not limited to network infrastructure elements, in the communication network 102. For example, an additional entity may be a network infrastructure element, say the router 110-2, that emits the event, say 108-1, or a component of the network infrastructure element, or a link between two neighboring network infrastructure elements, or a path between two network infrastructure elements that comprises multiple such links, etc., that causes a network infrastructure element to emit the event 108.
In an embodiment, the virtual network model 120 is coupled to a statistical knowledge base 132 that indicates, for each event e, a set of zero or more other events e′ that are known to represent root causes for e and the conditions under which each e′ is a root cause for e.
Embodiments permit creating root cause analysis rules or filters 122 and the identification of more complex patterns or scenarios. For example, root cause analysis rules may be created in the form of time window 124 as shown in FIG. 1; and each event type is associated with a configurable time window 124 that represents a maximum possible time difference between events 108 of that event type and a root cause (as indicated by other events 108). Based on such a time window 124, the event correlation engine 116, or the root cause analysis module 118, receives all events 108 within the time window 124 and treats only those events 108 as possible candidates to be a root cause for a network problem as indicated by a particular event type.
An ordered set of filters 122 may be applied to the candidate events 108 previously obtained, in order of the filters 122, to further reduce the size of the candidate event set. Events 108 can be filtered out for many reasons. Example reasons include events that are only symptoms and cannot be root causes, impossible relationships between events, etc.
Filters 122 can use information from the virtual network model 120 to reduce the number of candidates in the root cause candidate event set. For example, if the event type under analysis is OSPF neighbor lost, then a filter 122 may remove all events that are not on the path (at the time of the occurrence of the event) between the source and the lost neighbor. A similar concept can be applied for a device becoming unreachable, or a BGP neighbor lost. Thus, filters 122 can exploit the intimate knowledge of a network such as the communication network 102 of FIG. 1 that is provided by the virtual network model 120 and the knowledge base 132.
Filters 122 can be added to the system in design time or runtime. A possible enhancement can be the formalization of a language for specifying filters 122.
Filters 122 can be associated with a particular event type, or to a network scenario. The event correlation engine can recognize patterns of network events 108 that are associated with network scenarios, and then select a filter such as one of pattern filters 126 (as shown in FIG. 1, in some embodiments, the pattern filters 126 may be stored separately from the rest of filters 122) for the recognized scenario.
Filters can leverage the capabilities of the virtual network model 120, which offers an intimate understanding of the actual network 102 and the possible relations between events 108, according to the corresponding relation between the managed objects that are the sources for these events 108.
In an embodiment, after the filters 122 are applied, a min( ) function 128 is applied to find the most suitable root cause candidate event 108 among the events 108 in the root cause candidate event set.
In an embodiment, the min( ) function 128 determines whether a root cause candidate event 108 is a root cause of a specified event 108 based on one or more of the following factors: temporal relationships, such as the time difference between the root cause candidate event 108 and specified event 108; conditional probabilities that the root cause candidate event 108 is the root cause of the specified event 108; hop distance between the network infrastructure elements that generated the root cause candidate event 108 and the specified event 108; and others.
In an embodiment, the min( ) function 128 associates a non-negative value to each root cause candidate event 108 based on the foregoing factors. The min( ) function 128 then selects one root cause candidate having a minimal associated value as the root cause for the specified event 108.
In an embodiment, a value is determined for an event 108 according to the relation (a1*P)+(a2*D)+(a3*T), wherein P denotes the conditional probability that an event 108 is a root cause of another event 108, based on the knowledge base 132 coupled with the virtual network model 120; D denotes a hop distance, as determined using (the topological information of the communication network 102 as stored in) the virtual network model 120, between a first network element that generated a first event 108 and a second network element that generated the root cause candidate event 108; and T denotes a time difference between the first event 108 and the root cause candidate event 108. The values a1, a2, and a3 are weight values that are derived empirically or from the knowledge base 132.
As an example of a conditional probability in the relation above, the conditional probability factor could address the question, given the fact that an “OSPF neighbor lost” event 108 has occurred at one network infrastructure element at a particular time, what is the probability that a “link down” event 108 is the root cause of the “OSPF neighbor lost” event 108.
Conditional probability information may be developed empirically and stored in the knowledge base 132 that is coupled to the event correlation engine 116. For example, in a laboratory setting or in a real network, a link can be taken down and the resulting events can be observed. Based on such observations, an administrator can determine and store in the knowledge base 132 the conditional probability that a “link down” event is the cause of other observed events.
In an embodiment, a generator module automatically creates and stores conditional probability values in the knowledge base 132, based on identifying events 108 that occur in the communication network 102 and resulting network events 108. In such an embodiment, the knowledge base 132 can be updated automatically and corrected based on actual network performance.
3.0 Performing Root Cause Analysis in a Communication Network
3.1 Example Operations
To illustrate how root cause analysis in a communication network, such as network 102 of FIG. 1, can be performed by a network management system, such as network management system 104 of FIG. 1, in accordance with an embodiment, reference will now be made to an example. In the following discussion, reference will be made to the system diagram of FIG. 1, and to a flow diagram of FIG. 2. However, the broad techniques described herein for FIG. 2 are not limited to the context of FIG. 1.
Initially, a first set of events 108 is received by the network management system 104 from the communication network 102 (step 210 of FIG. 2). The received events 108 comprise an event 108, say a first particular event 108, that indicates a problem in the network 102.
Next, the network management system 104 identifies, in the first set of events 108, a second set of events 108 as candidate events for a root cause of the problem in the network 102 (step 220 of FIG. 2). This identification may use a time window 124 associated with an event type to which the first particular event belongs and/or an event type to which a filtered event belongs. This identification may also use one or more filters 122 including pattern filter(s) 126, previously described.
A loop may be implemented to generate a score value for each candidate event in the second set of events, indicating how likely each such candidate event is the root cause of the problem reported by the particular event. More specifically, for each candidate event in the second set of events (step 230 of FIG. 2), the network management system 104 uses a virtual network model 120 of the network 102 (combined with information in the candidate event or the first particular event) to determine a hop distance between a particular network element that generated the first particular event and a second network element that generated the candidate event (step 240 of FIG. 2). A score value is generated by the network management system 104 for the candidate event 108 based in part on the hop distance previously determined (step 250 of FIG. 2).
If all the candidate events have been scored in the steps 240 and 250, the network management system 104 selects, in the second set of events, one candidate event having a minimum score value among all the candidate events as the root cause event for the problem reported by the first particular event (step 260 of FIG. 2).
To further illustrate how root cause analysis in a communication network, such as 102 of FIG. 1, can be performed by a network management system, such as 104 of FIG. 1, in accordance with an embodiment, reference will now be made to flow diagrams of FIG. 3 and FIG. 4.
Initially, a first set of events 108 is received by the network management system 104 from the communication network 102 (step 310 of FIG. 3). The received events 108 comprise an event 108, say a first particular event 108, that indicates a problem in the network 102.
Next, the network management system 104, using the virtual network model coupled to the event correlation engine normalizes the received events, and associates them with model objects of the virtual network model (steps 320 and 330 of FIG. 3).
At step 340 of FIG. 3, the network management system 104 selects a particular event 108 for root cause analysis. In an embodiment, the network management system 104 also determines a time window for an event type of the particular event 108 (step 350 of FIG. 3). This time window may be used by the network management system 104 to create or identify a set of root cause candidate events based on the time window of the particular event. For example, if the particular event is a link down event, then a time window of three seconds may be set to only identify those events emitted by source entities within the time window from the time when the particular event happens and create a set of root cause candidate events based on that time window (step 360 of FIG. 3).
In some embodiments, once the set of root cause candidate events based on the time window of the particular event is created, the network management system 104 can apply zero or more filters that are associated with the event type of the particular event 108 to further reduce the number of candidate events for root cause (step 370 of FIG. 3). Optionally, the network management system 104 can apply one or more pattern filters previously discussed (step 380 of FIG. 3). In this manner, the set of root cause candidate events may be updated by the network management system 104 (step 390 of FIG. 3).
For each of the remaining events in the set of root cause candidate events, the network management system 104 assigns a score based on one or more factors such as time (difference), topological distance and conditional probability in relation to the particular event 108 (step 410 of FIG. 4). At step 420, the network management system 104 selects an event in the set of root cause candidate events that has a minimum score value (step 420 of FIG. 4). That selected event is outputted by the network management system 104 as the root cause for the problem described by the particular event 108 (step 430 of FIG. 4).
3.3 Additional Features and Alternative Embodiments
In the preceding description, “link down” and “OSPF neighbor lost” are merely examples of events that can be considered, and embodiments can operate with a large number of different events.
In an embodiment, the min( ) function 128 is extensible. Additionally or alternatively, the min( ) function described herein can be applied to the filtered events to perform root cause analysis.
In one embodiment, the filters are applied to events by the event correlation engine 116 using the knowledge base 132 coupled with the virtual network model 120. Alternatively, other ways of applying filters to events can also be used. For example, an entity hosted in a network management station 114 or in a router 110 can poll other routers 110 and switches to obtain events 108, and filter the events 108 as described herein. Additionally or alternatively, the event correlation engine can obtain events from management information bases (MIBs) (for example, maintained by SNMP agents) in network infrastructure elements that are compatible with SNMP. Thus, all variations of using filters in conjunction with the virtual network model 120 and the knowledge base 132 may be used.
In some embodiments, virtual network model 120 may be maintained in one or more data stores such as those provided by main memory of one or more computing devices or by any other types of memory space in the network management system 104. In some embodiments, the knowledge base 132 coupled with the virtual network model may be constructed based on persistent stored information in a data base 130. In various embodiments, other information such as the time windows 124, the filters 122 including the pattern filters 126, parameters for the min( ) function 128, etc., may be stored in a data base such as 130 of FIG. 1.
The network management system 104 may be separate from the communication network 102. Alternatively, other configurations of the network management system 104 and/or the communication network 102 may be used. For example, in an embodiment, the network management system 104 may be implemented on one or more computing devices that are a part of the communication network 102. Thus, various network configurations in various embodiments interoperating with a virtual network model or with actual network devices may be used.
Embodiments may be used to perform event correlation in general and without performing root cause analysis. For example, the filtering approach described above can be arranged as a method of filtering events in a telecommunications network comprising receiving a first event from the network; receiving one or more other events from the network; and for each of the other events, applying one or more filters to result in creating and storing one or more filtered events. In this approach, at least one of the filters is operable to pass only such other events that originate from a second network element that generated such other events and that is topologically close in the virtual network to a first network element that generated the first event. For example, it may be determined that the second network element is within a set number of hops from the first network element. The set number of hops may be configurable. In an embodiment, the set number of hops that indicate a topological closeness has a default value of two hops. Filters based on an event time window or conditional probabilities also may be used in such an approach.
Various other features may be included, and various other modifications may be made, to the embodiments of the techniques for performing root cause analysis in a communication network described herein. Thus, the embodiments described herein are to be regarded in an illustrative rather than a restrictive sense.
4.0 Implementation Mechanisms—Hardware Overview
FIG. 5 illustrates a computer system 500 upon which embodiments of the techniques for performing root cause analysis in a communication network may be implemented. A preferred embodiment is implemented using one or more computer programs running on computer system 500, which is operatively coupled to the backplane of a network infrastructure element such as, for example, a router or a switch.
Computer system 500 includes a bus 502 or other communication mechanism for communicating information, and a processor 504 coupled with bus 502 for processing information. Computer system 500 also includes a main memory 506, such as a random access memory (“RAM”) or other dynamic storage device, coupled to bus 502 for storing information and instructions to be executed by processor 504. Main memory 506 also may be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 504. Computer system 500 further includes a read only memory (“ROM”) 508 or other static storage device coupled to bus 502 for storing static information and instructions for processor 504. A storage device 510, such as a magnetic disk or optical disk, is provided and coupled to bus 502 for storing information and instructions.
Computer system 500 may be coupled via bus 502 to a display 512, such as a cathode ray tube (“CRT”), for displaying information to a computer user. An input device 514, including alphanumeric and other keys, is coupled to bus 502 for communicating information and command selections to processor 504. Another type of user input device is cursor control 516, such as a mouse, trackball, stylus, or cursor direction keys for communicating direction information and command selections to processor 504 and for controlling cursor movement on display 512. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
In an embodiment, computer system 500 is used for performing root cause analysis in a communication network. According to this embodiment, root cause analysis in a communication network is performed by computer system 500 in response to processor 504 executing one or more sequences of one or more instructions contained in main memory 506. Such instructions may be read into main memory 506 from another computer-readable medium, such as storage device 510. Execution of the sequences of instructions contained in main memory 506 causes processor 504 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry or other hardware-based logic may be used in place of or in combination with software instructions. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
The term “computer-readable medium” as used herein refers to any medium that participates in providing instructions to processor 504 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 510. Volatile media includes dynamic memory, such as main memory 506. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 502. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications.
Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 504 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 500 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector can receive the data carried in the infrared signal and appropriate circuitry can place the data on bus 502. Bus 502 carries the data to main memory 506, from which processor 504 retrieves and executes the instructions. The instructions received by main memory 506 may optionally be stored on storage device 510 either before or after execution by processor 504.
Computer system 500 also includes a communication interface 518 coupled to bus 502. Communication interface 518 provides a two-way data communication coupling to a network link 520 that is connected to a local network 522. For example, communication interface 518 may be an integrated services digital network (“ISDN”) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 518 may be a local area network (“LAN”) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 518 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 520 typically provides data communication through one or more networks to other data devices. For example, network link 520 may provide a connection through local network 522 to a host computer 524 or to data equipment operated by an Internet Service Provider (“ISP”) 526. ISP 526 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 528. Local network 522 and Internet 528 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 520 and through communication interface 518, which carry the digital data to and from computer system 500, are exemplary forms of carrier waves transporting the information.
Computer system 500 can send messages and receive data, including program code, through the network(s), network link 520 and communication interface 518. In the Internet example, a server 530 might transmit a requested code for an application program through Internet 528, ISP 526, local network 522 and communication interface 518. In an embodiment, one such downloaded application performs root cause analysis in a communication network as described herein.
The received code may be executed by processor 504 as it is received, and/or stored in storage device 510, or other non-volatile storage for later execution. In this manner, computer system 500 may obtain application code in the form of a carrier wave.
5.0 Extensions and Alternatives
In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.

## Claims

1. A method, comprising:
receiving a first set of events from a communication network, wherein the first set of events comprises a first particular event that indicates a problem in the network;
wherein each individual event in the first set of events is emitted by a network element in the communication network in response to state changes of one or more entities within the network element;
identifying, in the first set of events, a second set of events comprising candidate events for a root cause of the problem in the network;
wherein identifying a second set of events includes:
identifying a path between a source and a destination that are specified in the first particular event and related to the problem in the network;
determining whether a second event in the first set of events is on the path;
in response to determining that the event is not on the path, disqualifying the second event as a candidate event;
identifying a particular time when the particular event occurred;
determining whether a second time when a second event in the first set of events occurred was within a time window from the particular time; and
in response to determining that the second time when the second event in the first set of events occurred was not within a time window from the particular time, disqualifying the second event as a candidate for the root cause of the problem by excluding the second event from the second set of events;
for each candidate event in the second set of events:
using a virtual network model of the network, determining a hop distance between a particular network element that generated the first particular event that indicated the problem and a second network element that generated the candidate event; and
generating a score value for the candidate event based in part on the hop distance;
wherein the score value represents a likelihood that the candidate event is the root cause of the problem in the network; and
selecting, in the second set of events, one candidate event having a minimum score value among all the candidate events;
wherein the method is performed by one or more computing devices comprising a processor.

2. The method as recited in claim 1, wherein identifying a second set of events includes:
identifying a third network element that generates a second event in the first set of events;
determining based on the virtual network model whether the third network element is topologically close to the particular network element; and
in response to determining that the third network element is not topologically close to the particular network element, disqualifying the second event as a candidate event for the root cause of the problem.

3. The method as recited in claim 1, wherein the generating is based in part on a time difference between a particular time when the particular event occurred and another time when the candidate event, in the second set of events, occurred.

4. The method as recited in claim 1, wherein the generating is based in part on a conditional probability that the candidate event is the root cause for the problem, wherein the conditional probability is dependent on the particular event and the candidate event.

5. The method as recited in claim 1, wherein a lower score value for a candidate event, in the second set of events, indicates a greater likelihood.

6. The method as recited in claim 1, further comprising creating and storing, in a memory, the virtual network model using managed objects to represent network infrastructure elements, end stations, and links.

7. The method as recited in claim 1, wherein the virtual network model accurately models the network and enables determining how an actual data packet traverses the network at a given time.

8. A non-transitory volatile or non-volatile computer-readable storage medium carrying one or more sequences of instructions, which instructions, when executed by one or more processors, cause the one or more processors to:
receiving a first set of events from a communication network, wherein the first set of events comprises a first particular event that indicates a problem in the network;
wherein each individual event in the first set of events is emitted by a network element in the communication network in response to state changes of one or more entities within the network element;
identify, in the first set of events, a second set of events comprising candidate events for a root cause of the problem in the network;
wherein identifying a second set of events includes:
identifying a path between a source and a destination that are specified in the first particular event and related to the problem in the network;
determining whether a second event in the first set of events is on the path;
in response to determining that the event is not on the path, disqualifying the second event as a candidate event;
identifying a particular time when the particular event occurred;
determining whether a second time when a second event in the first set of events occurred was within a time window from the particular time; and
in response to determining that the second time when the second event in the first set of events occurred was not within a time window from the particular time, disqualifying the second event as a candidate for the root cause of the problem by excluding the second event from the second set of events;
for each candidate event in the second set of events:
use a virtual network model of the network, to determine a hop distance between a particular network element that generated the first particular event that indicated the problem and a second network element that generated the candidate event; and
generate a score value for the candidate event based in part on the hop distance;
wherein the score value represents a likelihood that the candidate event is the root cause of the problem in the network; and
select, in the second set of events, one candidate event having a minimum score value among all the candidate events.

9. The non-transitory volatile or non-volatile computer-readable storage medium as recited in claim 8, wherein the instructions which when executed cause identifying a second set of events include instructions which when executed cause:
identifying a third network element that generates a second event in the first set of events;
determining based on the virtual network model whether the third network element is topologically close to the particular network element; and
in response to determining that the third network element is not topologically close to the particular network element, disqualifying the second event as a candidate event for the root cause of the problem.

10. The non-transitory volatile or non-volatile computer-readable storage medium as recited in claim 8, wherein the instructions which when executed cause generating are performed based in part on a time difference between a particular time when the particular event occurred and another time when the candidate event, in the second set of events, occurred.

11. The non-transitory volatile or non-volatile computer-readable storage medium as recited in claim 8, wherein the instructions which when executed cause generating are based in part on a conditional probability that the candidate event is the root cause for the problem, wherein the conditional probability is dependent on the particular event and the candidate event.

12. The non-transitory volatile or non-volatile computer-readable storage medium as recited in claim 8, further comprising instructions which when executed cause creating and storing, in a memory, the virtual network model using managed objects to represent network infrastructure elements, end stations, and links.

13. The non-transitory volatile or non-volatile computer-readable storage medium as recited in claim 8, wherein the virtual network model accurately models the network and enables determining how an actual data packet traverses the network at a given time.

14. A system comprising:
a computing device;
a non-transitory volatile or non-volatile computer-readable medium carrying one or more sequences of instructions, which instructions, when executed by one or more processors, cause the one or more processors to:
receiving a first set of events from a communication network, wherein the first set of events comprises a first particular event that indicates a problem in the network;
wherein each individual event in the first set of events is emitted by a network element in the communication network in response to state changes of one or more entities within the network element;
identify, in the first set of events, a second set of events comprising candidate events for a root cause of the problem in the network;
wherein identifying a second set of events includes:
identifying a path between a source and a destination that are specified in the first particular event and related to the problem in the network;
determining whether a second event in the first set of events is on the path;
in response to determining that the event is not on the path, disqualifying the second event as a candidate event;
identifying a particular time when the particular event occurred;
determining whether a second time when a second event in the first set of events occurred was within a time window from the particular time; and
in response to determining that the second time when the second event in the first set of events occurred was not within a time window from the particular time, disqualifying the second event as a candidate for the root cause of the problem by excluding the second event from the second set of events;
for each candidate event in the second set of events:
use a virtual network model of the network, to determine a hop distance between a particular network element that generated the first particular event that indicated the problem and a second network element that generated the candidate event; and
generate a score value for the candidate event based in part on the hop distance;
wherein the score value represents a likelihood that the candidate event is the root cause of the problem in the network; and
select, in the second set of events, one candidate event having a minimum score value among all the candidate events.

15. The system as recited in claim 14, wherein the instructions, when executed, are further operable to:
identify a third network element that generates a second event in the first set of events;
determine based on the virtual network model whether the third network element is topologically close to the particular network element; and
in response to determining that the third network element is not topologically close to the particular network element, disqualify the second event as a candidate event for the root cause of the problem.

16. The system as recited in claim 14, wherein the generating is based in part on a time difference between a particular time when the particular event occurred and another time when the candidate event, in the second set of events, occurred.

17. The system as recited in claim 14, wherein the generating is based in part on a conditional probability that the candidate event is the root cause for the problem, wherein the conditional probability is dependent on the particular event and the candidate event.

18. The system as recited in claim 17, wherein a lower score value for a candidate event, in the second set of events, indicates a greater likelihood.

19. The system as recited in claim 14, wherein the instructions, when executed, is further operable to create and store, in a memory, the virtual network model using managed objects to represent network infrastructure elements, end stations, and links.

20. The system as recited in claim 14, wherein the virtual network model accurately models the network and enables determining how an actual data packet traverses the network at a given time.