Professional Documents
Culture Documents
Your feedback is important to us: The TEOCO Documentation team takes many measures
in order to ensure that our work is of the highest quality.
If you found errors or feel that information is missing, please send your Documentation-
related feedback to Documentation@teoco.com
Thank you,
The TEOCO Documentation team
Introduction
Table of Contents
Introduction.......................................................................................................................... 2
What Is the Fault Management Solution? ........................................................................... 3
Fault Management Solution Architecture......................................................................... 4
Mediation .................................................................................................................................. 4
Base Configuration ................................................................................................................. 7
Understanding Fault Management Implementation ........................................................ 8
What Is a Library? ................................................................................................................... 8
Naming Libraries ..................................................................................................................... 8
Fault Library Basic Templates .............................................................................................11
Active Alarm Population .......................................................................................................11
Library Architecture Considerations .............................................................................. 12
Implementing Library Logic..................................................................................................12
Handling Complex Alarm Messages ..................................................................................14
Generic Message Handling .................................................................................................16
Is There a Need for the Validation, Splitter, or Event Distributor Component? ...........16
Designing a Light Threshold Architecture .........................................................................16
What Alarm Type Conditions are Required? ....................................................................17
Quality Considerations .........................................................................................................17
Performance Considerations ...............................................................................................18
Maintenance Considerations ...............................................................................................18
Project Implementation vs. Core Implementation ............................................................19
Using the Managing Table Method ....................................................................................19
FM Library Limitations ...................................................................................................... 21
FM Library Implementation Workflow ............................................................................. 22
Creating the Mediation Library ............................................................................................22
Base Configuration Population............................................................................................32
Configure Communication Admin Access Driver .............................................................33
Supporting Alarm Synchronization .....................................................................................34
Creating Network Commands .............................................................................................35
Unit Testing ............................................................................................................................37
QA Testing .............................................................................................................................38
Packaging and Delivery........................................................................................................38
Troubleshooting ................................................................................................................ 39
The Alarm Configuration Information Contains “UNDEFINED” or “-1” .........................39
The Alarms Show an Incorrect “Time up”..........................................................................39
Alarms do not Arrive .............................................................................................................40
Alarms Entering the Threshold Component do not Arrive ..............................................40
Alarms are not Cleared Automatically ................................................................................40
The Explanation View is not Available for GD_Internal Alarms .....................................41
No Data Appears in the New Explanation View ...............................................................41
The New Explanation Utility Shows More Than the Raw Data ......................................41
Information Cannot Be Found (in Explanation Window) .................................................41
1
Fault Management Solution Implementation Guide
Introduction
The goal of this guide is to provide information for implementing a Fault Management (FM)
solution, including both conceptual and practical guidelines. The document guides the user
through the implementation process by presenting the functionality of the FM solution,
followed by the FM solution architecture. After acquiring the relevant background information,
the user is presented with the main concepts of Fault Management implementation, the
considerations to take into account when designing the solution, and finally the
implementation workflow itself.
Note that the document references many implementation and reference guides which
describe the actual implementation steps in detail. This document can therefore be seen as a
comprehensive summary of the Fault Management solution implementation process, and
does not come to replace the current set of implementation guides. Instead, it summarizes
information and considerations relevant to Fault Management libraries without duplicating the
detailed implementation steps that appear in the individual implementation guides.
2
Introduction
3
Fault Management Solution Implementation Guide
Mediation
Helix’s Mediation performs three main functions:
Communication with network for receiving data
Sending commands to the network
Processing and enriching the raw data
The following diagram and description illustrate the lines of communication:
4
Fault Management Solution Architecture
Communication Layer
Helix’s Mediation supports a mixture of protocols and data formats arriving from the
converged network. Data can be exported from the Mediation in any format according to the
specific need. The Mediation handles a variety of protocols supported in the market having a
dedicated connectivity method per each vendor or protocol (SNMP plug-in, Telnet plug-in,
Corba plug-in, and so on).
The following is a partial list of supported protocols:
Telnet Q3
TL1 FTAM
The Communication Admin (AKA Generic Driver or GD) manages the communication layer of
the Mediation platform. The Communication Admin's main task is to communicate with each
network element using its own protocol. The Communication Admin consists of two
sub-layers:
A generic sub-layer that handles general management activities that are relevant to
all protocol types, such as “login” and “keep-alive”.
A protocol-specific sub-layer, which implements the different protocols using thin
protocol-specific drivers (plug-ins).
The plug-ins are used for:
Identifying hardware and software
Accessing and connecting/disconnecting
Saving parameters per: protocol, access, NE/subnet
Load balancing
The functionality of the Communication Admin is as follows:
Only plug-ins communicate directly with the NEs.
Only the Communication Admin can communicate with the plug-ins.
The Mediation products can communicate with the NEs only through the
Communication Admin.
The Helix products can communicate with the NEs only through the Mediation
products.
By placing the communication in a single architecture layer, Mediation simplifies the
administration and management of communication. Commonly used plug-ins include SNMP,
TL1, and Stream (Telnet).
5
Fault Management Solution Implementation Guide
Note: The Engine Clips is a C application framework process that does not exist in
version 8.5. The "if else" threshold rules in version 8.5 are in the FaM Threshold component
memory.
6
Fault Management Solution Architecture
Once an event enters the Engine Clips, the process evaluates it, and then decides whether to
raise an alarm. The Engine clips then send packets to the FM Server.
The need for Engine Clips as part of the library was removed in version 8.0. Engine Clips
capabilities migrated to a new FaM Threshold or to the FM server. However, backward
compatibility to support Clips as part of existing libraries is still available.
Base Configuration
The Base Configuration provides effective tools for defining, updating, and showing alarming
entities such as network elements, facilities, links, services, regions, and sites.
The Base Configuration enables you to deal with dynamically changing networks in an easy
and flexible manner for assurance purposes. It provides a thorough network understanding,
allowing for a precise and transparent view of the geographical areas covered by the network,
its topology, relationships, and components.
For more information, see the Base Configuration User Guide.
7
Fault Management Solution Implementation Guide
What Is a Library?
A library is a set of definitions that determines how data coming from Network Elements
(NE) and Element Managers (EMs) will be interpreted and enriched before being passed on
to OSS applications.
Each library defines the definitions and implementations that characterize the data collection
and manipulation processes for a specific vendor, technology, connectivity method, NE
version, version, and data type.
Naming Libraries
When creating a new library, you must provide the library name, which is then inherited by all
the library components (such as Parser, Transform, and Threshold).
The library name should describe the content of the library. This name should not be
changed when reusing the base library.
Each library should have two names:
Netlib file name, which is the packaging zip’s name.
TEOCO Studio file name. This includes all the implementation files (all the library
definitions files, such as gml, trs, and RC).
8
Understanding Fault Management Implementation
The information that should be part of this name is:
Vendor name
Group/EQP name and version:
o Group in SNMP domain (such as SAA or MPLS).
o EQP name and version at non-SNMP libraries (such as MTX15, 5ESS16, M2000,
and MGW).
Library Type ("F" for Fault or "P" for PM).
Protocol ("S" for SNMP, "Q" for Q3, "C" for Corba, "T" for Telnet, and so on).
Library level ("B" for Basic, "S" for Standard, "P" for Premium).
Library version.
Custom (optional).
Project version (optional).
For example, Cisco_Core_SFP SNMP Fault Premium1.0, or Standard_ATM_SFP
Fault_SNMP_ Premium2.3
Notes:
The prefix of the Netlib file name should include the name of the implementation files
(for example, Cisco_Core_SFP).
The version number should include (if relevant) the 2 characters a and b:
o “a” represents a major change, such as new functionality, or a new
implementation method.
o “b” represents a bug fix.
It is your responsibility to manually update the versions.
If project changes are required, the library should be saved with a new name, including the
string “custom”, and should have the project changes’ versioning. For example,
Cisco_Core_SFP SNMP Fault Premium1.0 Custom 1.1.
9
Fault Management Solution Implementation Guide
For example:
Cisco_Core_SFP
Standard_ATM_SFP
This name can either be unlimited (for versions using the new Explanation mechanism), or
can be limited to up to 16 characters for old versions that do not have the new Explanation
solution.
Backward Compatibility
For Mediation libraries that were developed in an environment that does not include the new
Explanation mechanism, there is a limitation of up to 16 characters for the library name.
Note: The new Explanation utility is available starting with DVX2 version
DVX2_REL2.2.4.0_N2_REL3.5.2.0.
The following guidelines can be used when constructing the library name:
Vendor—3 characters.
Underscore sign "_"—1 character.
Group in SNMP domain—SAA, MPLS, and so on.
EQP name and version (if needed) for non-SNMP—4-5 characters (such as
MTX17).
Underscore sign "_"—1 character.
Library Type—"F" for Fault, "P" for Performance, "C" for CDR, and so on. 1
character.
Protocol—("S" for SNMP, "Q" for Q3, "C" for Corba, "T" for Telnet, and so on). 1
character.
Library level—("B" for Basic, "S" for Standard, "P" for Premium). 1 character.
Library version—1 digit.
Custom—C for custom library (only after the project had changed it). 1 character.
Project version—the project's modification versioning. 1 digit.
10
Understanding Fault Management Implementation
The following diagram shows the Fault Library template from 4.2 and earlier.
Helix processes alarms in real-time. As the information arrives in streams, the FM Libraries
will always use a DvxSub component subscribing to the Raw Data’s source.
FM libraries will never use File Reader components, which collect data from a predefined
directory. Therefore, in Fault Solution libraries post-scripting (external enrichment of raw data)
via Communication Admin is not possible.
Notes:
In Fault libraries, the CharReplacer component connects between the Transform and
the Validation component.
The Event History component should be connected.
The Transform should be connected directly to the Threshold component.
11
Fault Management Solution Implementation Guide
12
Library Architecture Considerations
Parser Logic
When you need to parse a relatively small number of alarm types, regardless of whether the
types are similar or different, we recommend performing the logic in the Parser, for example,
by creating “If then” statements using Switch Packs.
For more information, refer to the Sequential Parsing section of the Parser Implementation
Guide.
Note: FM parsers should emphasize a clear parse frame including a clear header and tail that
define the alarm message.
Lookups
If all alarms have a “simple” structure, that is, the same type of information and the same
number of arguments in each alarm, but you have many alarms, you should create one
parsing pattern for all alarms, thus creating a thin Parser. In this case, you can enrich the
alarms using information supplied by the vendor, by creating Lookup tables in the
Transformer/Parser.
For more information, refer to the Parser Implementation Guide (relevant for versions 6.1 and
up) and the Transform Implementation Guide.
Note: The reload time of FM lookups should be strongly considered: Reload lookup at times
when alarm traffic is presumed to be the lowest (for example, at night) Static lookups as the
lookup mentioned above should never be reloaded!
13
Fault Management Solution Implementation Guide
Sequential Parsing
To design a library that can process a large quantity of distinct messages you should use the
integrated approach, otherwise known as Sequential Parsing.
The integrated approach has the following characteristics:
1. The first Parser (the Framer Parser) frames all the messages and retrieves
identification information that is used by a Splitter component that routes each
message to its respective and dedicated (per concept such as technology or domain)
device chain.
2. The library is then divided into two Connect scripts: the FRAMER Connect, which
includes the file-source, Framer Parser and Splitter, and the MODULES Connect
which includes all modular device chains.
14
Library Architecture Considerations
Note: With items such as accurate and proper composing and planning, the logic ID structure
is needed. With (<Vendor name><Technology_[Ne]_.%), one will assume that as all network
element alarms are to be seized, thus the NE value must appear first.
15
Fault Management Solution Implementation Guide
Notes:
16
Library Architecture Considerations
The goal should be to create a single Threshold instance. In rare cases only, where special
conditioning is required, there may be a need to create multiple Threshold instances. The
special conditioning can include time-out, complex alarming (for example messages that both
raise one alarm and drop another one, or alarms that seize more than one alarm), counts,
and so on. But wherever possible, the goal should be to create one Threshold per library.
There are also fake thresholds that receive events that do not raise/clear alarms but are used
to pass other events to the engine_clips (in previous versions), such as thresholds for
synchronization, update, or acknowledge).
Quality Considerations
It is important to remember that a NOC operator needs to read and act upon the descriptions
that appear within the alarms. Ensure that the descriptions that you create are clear,
complete, and grammatically correct.
17
Fault Management Solution Implementation Guide
Performance Considerations
FM libraries must work in real-time, and therefore it is crucial that the libraries work as
efficiently as possible. It is important to reduce the following resource-consuming activities:
Writing to log files (bad files and log files). Even minor errors should be fixed as the
writing itself consumes system resources, which may cause alarms to be displayed in
delay.
Too-frequent reloading of lookups. Static tables, new_config_db tables, and flat files
should be loaded into the instance’s memory only when the connect starts up.
Usually, Transform functions that involve interactions with the DB service should not be used.
Sometime there is a need to use a T-command/direct lookup function in the Transform, to
retrieve real time data (if the table is dynamic). For more T-command information, see the
Scorpio Implementation Guide. For more direct lookup information, see Defining Direct
LookUps in the TEOCO Studio User Guide.
FM libraries should not use enrichment based on the active alarm table (new_alarm).
Maintenance Considerations
It is critical to develop libraries that can be upgraded, reused, and debugged easily. For this
purpose it is important to do the following:
Populate the Information editor appropriately (including all relevant attachments, such
as the Functional Specification, vendor documentation, and design review).
Use the correct naming conventions while developing all GUI modules.
Use comments within the code.
Try to implement Parser/Transform components as generic as possible and avoid
using constant/hardcoded values.
18
Library Architecture Considerations
Note: If it is not possible to create generic definitions for the Transform (usually in old
Helix versions), we recommend using generic/product functions as much as possible
(and adding a comment in the function indicating the libraries in which it is used).
19
Fault Management Solution Implementation Guide
20
FM Library Limitations
FM Library Limitations
This section describes alarming issues that cannot be handled by the FM library:
The FM library cannot play the role of a Correlation engine:
o It cannot raise an alarm based on N other different alarms.
o It cannot raise an alarm based on N different messages, arriving at N different
time frames.
o It cannot raise an alarm based on a scenario involving other networks/alarms.
Note: The Correlator ES can use direct access to the database but a lot of resources
would be required to do so.
Note: The Correlator ES can use direct access to the database but a lot of resources
would be required to do so.
21
Fault Management Solution Implementation Guide
Note: If the library has to support a large number of traps (more than 100), a manually
Transform module can be built using a Managing Table. This should be decided per each
specific case.
The EasySNMP for FM Wizard creates both the whole library and Telecom documentation
which holds the alarm mapping.
The end user of the application is the Telecom Engineer who is responsible for designing the
library (what MIBs/traps to collect in the library, how to map them to active alarm fields, and
so on), while the implementation developer will be in charge of:
Running simulations and debugging.
Implementing additional changes in the library. Project additions (usually, using the
project layer) may include scenarios that the Wizard does not support, such as
implementing alarm A which that raises alarm A and seizes alarm b, and custom
library additions.
The analysis of the components. For example, ensure that the Validation component
is essential, and if not omit it.
Before using the EasySNMP for FM wizard, you need to compile the MIB files using the MIB
Import utility in TEOCO Studio.
For more information, refer to the EasySNMP for FM User Guide.
22
FM Library Implementation Workflow
Manual Implementation
Manually implementing a FM Library involves the following steps, which are described in
detail below:
Design and Specification
Technical Library Design
Defining the TEOCO Studio Modules
23
Fault Management Solution Implementation Guide
Note: The tail of one message should never be the header of the next message, due to the
fact that if the information arrives with a delay, the first message will be delayed until the next
message’s header is received.
24
FM Library Implementation Workflow
For example, in the following recorded raw data sample, you can change the
sysConfigChangeTime parameter, to test the alarm with a different time, or change the
sysConfigChangeInfo parameter to display different text.
***SNMP-START***
IP = 172.30.91.1 IP-SNMPv1 = 172.30.91.1 Port = 162
Community = public
SysUpTime = 0,0:0:0:0 RecvTime = 12/16/2003 15:11:09:554
PDU-Type = TRAP VarNum = 2
Id = 1.3.6.1.4.1.9.5.0.9 Name = sysConfigChangeTrap
Desc =
sysConfigChangeTime(TIMETICKS)(1.3.6.1.4.1.9.5.1.1.28) =
4,5:0:36:36
sysConfigChangeInfo(OCTET_STRING)(1.3.6.1.4.1.9.5.1.1.34) =
Indicates which NVRAM block is changed by whom.
***SNMP-END***
Note: If the protocol is not TL1 or SNMP, it is still possible to create synthetic alarms but the
Telecom Engineer should play a major role in this task.
25
Fault Management Solution Implementation Guide
Understanding the Alarm Unique Identifier
Unique identifier defined in the Functional Specification will be mapped to the Logic ID field in
the active alarm fields. This is used to differentiate between each alarm. It is also used when
deciding whether to raise, update, or seize the alarm. You must ensure the following:
The string is unique.
The string has no more than 120 characters (actually 119 characters, where the last
character is a constant value – an underscore). If more than 119 characters, one
must use Hash methodologies and algorithms (via Transform user functions) to
shorten the length without losing uniqueness!
The string does not contain non-printable characters, double spaces, and so on.
TEOCO’s standard is that the unique identifier starts with the name of the vendor, followed by
the name of the technology, the alarm entities (for example, the EM, NE, port), and then a
combination of strings that will allow the alarm to be uniquely identified (for example, alarm
name). Use an underscore (_) as the delimiter when concatenating the different components
of the unique identifier.
Note: If your unique identifier requires more than 119 characters, use product-based HASH
functioning to shorten the identifier.
Note: By exposing generic alarms, customers can be made aware of alarms that they did not
initially request to see, which may in turn lead to customers requesting to add generic alarms
to the specific alarm list.
For more details about handling generic alarms, refer to the Parser, Transform, and
Threshold Implementation Guides.
26
FM Library Implementation Workflow
Handling Specific Alarms
In theory, it is possible to create a parsing tree branch for each alarm specified in the
Functional Specification. However, in practice it is important to create as few branches as
possible by combining alarms which are similar in terms of their raw data format, and then
using functions and lookups to differentiate between them. For example, you may have three
distinct alarms where the only difference between their formats is a different character that
appears in the same place in each alarm. These can be handled by the same branch of the
parsing tree.
The aim is to create a single Record Class for all specific alarms, where each attribute’s input
is handled by the Context mechanism, enabling multiple inputs per attribute. The RC Out’s
context should be different for Generic alarms and Specific alarms.
27
Fault Management Solution Implementation Guide
Creating Parsing Rules
The Parser’s input port is connected to the DvxSubscriber, as it is the only N2 (C++
application framework) component that can receive raw data. This is the component in charge
of parsing the raw data stream. The parser parses the meaningful data and transfers it to the
Transform. In addition, this is where three types of distinctions, should be made:
Between alarms and messages that are not alarms.
Between specific alarms and the generic alarms.
Between one specific alarm and another.
The Parser has a unique role in FM libraries, as it sets the infrastructure for the presentation
of an alarm’s raw data in the Explanation utility. The scope of the alarm, as presented in one
parsing iteration, is what determines the scope of the raw data an end user in the NOC will
see when clicking “Explanation”. Therefore, it is important to include all the raw data relevant
to an alarm in its parse, even if for instance the Functional Specification only requires strings
that appear from the messages’ 2nd line to be parsed (it is possible to not parse the 1st line).
Use the Parser client to create parsing rules for the Parser component. For specific details on
using the Parser client, refer to the Parser Implementation Guide and to the Parser User
Guide.
Notes:
Static lookups can be performed in two ways, per the project’s requirements:
Using static data presented in flat files, for example a .csv file. This file should be
saved in the $EXTERNAL_FILE directory. Projects using distributed mediation should
always use this method.
Using static tables in the new_config_db database.
28
FM Library Implementation Workflow
Creating Transformation Rules
The Transform is responsible for two tasks:
Transforming data from one data structure to one or more other data structures.
Processing incoming data in a variety of ways (enrichment, conversion,
normalization, and so on.) using transformation rules.
The Transform’s input port is connected to the Parser. In the Transform, each alarm is treated
differently, with the goal being to assign to each a unique and user-friendly format, one that
will enable the end user to take fast and effective actions.
Use the Transform to map fields from the input Record Class to fields in the output Record
Class by a ‘link’. Additional processing logic may be applied to the data being translated by
linking an input field to a ‘function’, and linking the function to the output record-class. It is
possible to link several functions to apply several different transformations to the data arriving
from a single input field, and targeted to a single output field. Functions can perform data
manipulations, comparisons, and lookups. Lookup functions involve extracting information
about the alarm entity from the Base Configuration, based on a unique Alarm ID, and they
rely on the Base Configuration being populated according to the Functional Specification. If
the Base Configuration is not populated according to the Functional Specification, the alarm
will not contain configuration information and therefore the user will not be able to identify
where the alarm occurred!
For standard and premium libraries, the Transform’s Base Configuration lookup function for
receiving the Alarm ID is based on a concatenation of attributes that were extracted by the
Parser. The Base Configuration lookup function itself is predefined. Refer to the Transform
Implementation Guide for details.
29
Fault Management Solution Implementation Guide
Note: We do not always recommend using the Validation module to validate data. As an
alternative to the Validation component, you can place the validation logic in the Transform
module. For more information on when you should use the Validation component, refer to the
Validation Implementation Guide.
For more information on using the Validation client, refer to the Validation User Guide.
30
FM Library Implementation Workflow
Message History
Use this component only for projects that include the old Explanation utility.
Event History
This component should only be used if explicitly requested by the project.
Note: This explanation is relevant until version 8. In version 8.5 and above, the functions of
the engine clips were passed to the FaM Threshold component.
In situations where multiple classes have been defined, these classes must be defined in
advance (by the Integrator) in the TEOCO Admin. In addition, if multiple classes are required,
there will be multiple thresholds in the solution, by either splitting one threshold into two, or
duplicating a threshold’s information. Note that the new FM Admin application (10.3) enables
users to create rules that assign classes to alarms. However, each rule adds additional load
onto the FM Server, and we therefore recommend defining this logic in the Threshold.
However, for customers whose organization structure is constantly changing, they will have
the ability to do this via the FM Administration rules mechanism.
For more information on the Threshold client, refer to the Threshold User Guide.
For more information on how the Threshold works and considerations that should be taken
into account when using the Threshold, refer to the Threshold Implementation Guide.
31
Fault Management Solution Implementation Guide
Library Level
The population of the Base Configuration is according to the library level.
Basic libraries need at least the Network Element (NE) to be defined for the Communication
Admin (GD) to connect to the network.
For standard libraries, you need to populate two types of information:
The geographical information about each network element or element manager.
Enrichment to the network element level, that is, even if the Communication Admin
communicates with a single Element Manager, you still need to populate the Base
Configuration with information about all the NEs in the network, assuming that
enrichments on this level is relevant.
For Premium level libraries, Base Configuration should be populated to the lowest hierarchy
level (for example, port, interface, and sector).
Alarm ID (AID)
The Alarm ID (known as the Physical ID prior to Gold 4.3) is the index key that is used to
retrieve Base Configuration enrichments to a specific instance arrived in the raw data.
Therefore, the value of this field in the Base Configuration must be identical to the information
available in the notification. The Alarm ID defined in the Base Configuration should be
according to the guidelines specified in the Telecom Functional Spec, where the Alarm ID
should be based on the Entity level in the Base Configuration. Refer to the NetImport
Implementation Guide for more details.
Important: The definition of the Alarm ID must also be implemented in the Transform and
must comply with the Base Configuration for the alarms to present configuration information,
such as EQP name, From Site, To site, area, district, and so on. If the function used in the
Transform fails to extract information from the Base Configuration, the alarm will be displayed
without configuration information.
32
FM Library Implementation Workflow
Customized library levels enable populating the Base Configuration with additional
information about the Network Element, which can be displayed in specific fields that are
enabled for project customization (for example, Additional Info N). For example, a customer
can display an additional name for a Network Element, using the same Alarm ID key.
Notes:
33
Fault Management Solution Implementation Guide
StartSync
$Alarm 1 Abcd
$Alarm 2 Abcd
EndSync
34
FM Library Implementation Workflow
The library components commonly used in the synchronization processes are:
Parser—parses the synchronization start/end notification that came from the
EMS and passes an indication to Transform using context.
Transform—based on the indication from Parser, creates relevant records that
are passed to Thresholds.
Thresholds—contains relevant Threshold rule sets. According to the event
passed from Transform and the Threshold sets of rules, the Engine Clips
starts/ends the synchronization process.
Note: This explanation is relevant until version 8.0. From version 8.0, the functions of
the engine clips were passed to the FaM Threshold component.
For more information about implementing alarm synchronization, refer to the TEOCO Studio
Implementation Guide.
35
Fault Management Solution Implementation Guide
Validation
To check that the commands you created will function properly, you should run them in NCI
and ensure you receive the correct results.
36
FM Library Implementation Workflow
Unit Testing
Library Activation
Unless your development environment enables you to connect to a live/lab Network Element,
ensure that you subscribe to a Communication Admin of type FTP to test the Explanation
utility.
For more information, refer to the Conductor User Guide and the Communication Admin User
Guide.
Quality Tests
To perform Quality Tests, ideally you should have the raw data that covers all possible
scenarios. If this is not possible, you should consult with the Telecom Expert to see whether it
is possible to create synthetic data based on actual Raw Data and Vendor Documentation.
These tests should ensure the following:
All required alarms are raised.
All alarms that should be auto-seized are auto-seized.
All alarms that should time-out have timed-out.
Count alarms were raised correctly.
Every unique event processed by the library is handled correctly (synchronization,
update, purge, acknowledgement, and so on).
Unique alarming mechanisms are working correctly, for example, if a message should
raise one alarm and clear another, ensure that this happens. Or, for wildcard
operations, ensure that the entire batch you expect seize, is really seized.
The alarm fields are correctly populated, and in particular you should check the
following fields:
o Logic ID—where an empty Logic ID is an implementation error.
o Description—should not be empty and should be presented correctly, for
example, correct English spelling, grammar, punctuation.
o Priority—should not be empty and should be within in the defined scope (1-9)
and according to TEOCO standard (unless specify differently).
o Configurable fields—note that if you are testing using a Base Configuration that
is not compliant with the raw data, you will receive a default value in these fields
rather than the correct Base Configuration values. Therefore, it is crucial to
populate the Base Configuration with data that complies with the raw data in
order to test these fields.
When testing a library that includes a project layer ensure that information that the
project layer embeds into the original transform appears, for example, if the project
layer adds a prefix to the description, ensure that the prefix is visible.
To test that the Explanation is functioning properly, use a Communication Admin based on an
FTP protocol and not the Conductor simulation utility. This requires placing a raw data file in
the required directory on the server. This is because the Conductor does not create a delivery
data record which is essential for the Explanation utility.
37
Fault Management Solution Implementation Guide
Performance Tests
As opposed to PM, as the alarm information should be presented to the user in real-time, the
issue of performance is a critical one.
Note that writing to log files and BAD files has a detrimental effect on performance. Therefore,
even if the messages written to the logs are not severe, the issue that raised the log message
should be handled.
Lookup reloading should be handled during off-peak hours, and we also recommend planning
the reloads so that they are done sporadically.
In addition, Lookups and Static Tables should be loaded only once when the connect script is
raised for the first time.
QA Testing
To test the libraries, the alarms are simulated based on raw data (where available) and the
resulting data that is stored in the database is compared with the requirements in the
Functional Specification.
Notes:
Information modules that include MTTI require an external script to activate the MTTI
in the target environment.
Libraries that were developed using the EasySNMP for FM Wizard, where the target
environment does not support the Wizard, the Wizard module must be removed and
detached from the library and packaged in the metadata folder.
38
Troubleshooting
Troubleshooting
While implementing a fault solution, you may experience one of the following problems:
The Alarm Configuration Information Contains “UNDEFINED” or “-1”
The Alarms Show an Incorrect “Time up”
Alarms Do Not Arrive
Alarms Entering the Threshold Component Do Not Arrive
Alarms are not Cleared Automatically
The Explanation View is not Available for GD_Internal Alarms
No Data Appears in the New Explanation View
The New Explanation Utility Shows More than the Raw Data
Information Cannot Be Found (in Explanation Window)
Note: We recommend that all user functions/Lookups whose output port is connected to an
attribute in the record class out (and then mapped in the Threshold) always uses (for
debugging purposes) “UNDEFINED” as the default for strings and -1 as the default for
integers.
39
Fault Management Solution Implementation Guide
Ensure that the Engine Clips and the FM Server in other environments are not getting
the feed.
If they are getting the feed, reassign a new port to the Engine Clips/
(config_db..PROCESSES.PORT).
Notes: This action and any other debugging for an N1 (C application framework)
process can be taken after going through the following stages:
o Only if the Library debugging uses a unique engine clips (otherwise other
libraries may “suffer” from this action too.
o After refreshing its parent (so it does not control the blocked process) kill – 14
<Father‘s name > <UNIX instance>
o With an appropriate + or –.
o With all the anticipated fields.
40
Troubleshooting
The New Explanation Utility Shows More than the Raw Data
If the New Explanation Utility shows more than the raw data:
Check the parsing rules and see if they catch more than what is needed for the
message.
41