next up previous contents
Next: TL1 Manager Up: selva Previous: Accounting   Contents

Transaction Language-1 Protocol

Transaction Language 1 (TL1) is the most widely used management protocol in telecommunications. It supplies the industry's only cross-vendor, cross-technology man-machine language, and is responsible for managing the majority of SONET and access infrastructure in North America. TL1's widespread acceptance is due in large part to its being easy to use and easy to understand. In addition, TL1 has all the built-in functionality needed to manage every aspect of today's increasingly complex network elements.

One of the keys reasons for this being, it is easy to implement and maintain compared to other protocols. TL1 messages have a well-structured format that even the craft user and operators can compose and understand. For example, the message REPT denotes Report and RTRV denotes Retrieve and so on.

Since from the early days, the Command Line Interface (CLI) has traditionally been an integral and mandatory interface provided by most device vendors, be it a Network or Telecom device. The only way of managing the device was connecting through a serial port and sending commands. This has made TL1 more popular and also the preferred CLI in the telecom sector.

The image below describes how a Management Console built using the TL1 API can manage a Telecom Switch via a serial link.

4.1 Classification of Message Formats:

TL1 specifies four types of messages as follows.

Input Command Messages

Acknowledgement Messages

Response Messages

Autonomous Messages

An input command message is a message from an OS or other source (i.e. manager) to a Network Element (NE). (i.e. agent). The message requests the NE to perform some action.

An acknowledgement is a short reply from the NE indicating that an input command message is being acted upon or has been immediately rejected. The essential purpose of an acknowledgement is to reassure a human user that a command that takes a long time to execute has been received by the NE.

A response message is a detailed reply (or set of replies) to an input command message. It contains information indicating whether the command was executed successfully and any data that needs to be returned to the OS/user.

An autonomous message is one generated by the NE either on a periodic timed basis or to report some unusual occurrence.

4.2 Design of TL1 API:

The ASCII command syntax used in this design is based on the command language TL1 (Transaction Language ONE)defined in the Bellcore GR-831-CORE document Operations Application Messages - Language for Operations Application Message.

The TL1 API consists of the following packages:

pro.selva.tl1

pro.selva.tl1.parser

pro.selva.tl1.beans.tree

pro.selva.tl1.message

pro.selva.rmiiiop

The pro.selva.tl1 package consists of the classes, which define the core TL1 message types, and the different fields, which form the TL1 messages.

The pro.selva.tl1.parser package consists of the classes, which are used for parsing the various messages.

The pro.selva.tl1.beans.tree package consists of tree components that graphically represents the TL1 commands, for managing a device, in a tree format.

. The pro.selva.tl1.message package consists of all the message definitions for TL1 communication.

The pro.selva.rmiiiop package consists of the classes, which are used, in establishing communication through RMI-IIOP with a TL1 peer (agent) and to send and receive TL1 messages.

4.2.1 TL1 Core Objects

TL1Message: This is the abstract class, which is extended by the Core TL1 Message type classes viz., TL1InputMessage, TL1ResponseMessage, TL1AckMessage and TL1AutonomousMessage. This abstract class defines a type field to indicate the type of the message and an abstract method encode(), which is overridden by the derived classes, to encode the message object into a TL1 message string.

TL1InputMessage: This class defines the input message and it extends the TL1Message class. This class contains the objects for defining the commandcode (TL1CommandCode), accessid (TL1AccessIdentifier), correlationtag, generalblock(TL1GeneralBlock), messagepayloadblock and targetid fields of a TL1 input.

TL1ResponseMessage: This class defines a response message and it extends the TL1Message class. This class contains objects for defining the header (TL1Header), responseid(TL1ResponseId), and the textblock(TL1TextBlock) fields of a TL1 response.

TL1AckMessage: This class defines a acknowledgement message and it extends the TL1Message class. This class contains objects for defining the ackcode and the correlationtag fields of a TL1 acknowledgement.

TL1AutonomousMessage: This class defines the autonomous message and it extends the TL1Message class. This class contains objects for defining the header(TL1Header), autoid(TL1AutoID) and the textblock(TL1TextBlock) fields of a TL1 autonomous message.

4.2.2 TL1 Transport Objects

TL1API: This class is a thread which when started will monitor all the sessions for any pending input messages waiting for a response. Application developers have to Instantiate this class and start the thread before opening a session to a TL1 peer using the TL1Session class. The TL1API instance has to be passed while instantiating the TL1Session class. Multiple sessions can use the same TL1API.

TL1Session: This class has the necessary methods to open a TCP connection to a TL1 agent. This also defines methods to send TL1 Input messages both synchronously and asynchronously. Users have to instantiate this class by passing a TL1API instance and open the session after setting the appropriate parameters about the agent with which communication has to be established. The class also internally starts a thread to receive the responses from the TL1 agent. Users can either receive the response synchronously by using the syncSend() method or the session can do a callback if the application class implements the TL1Client interface and registers with the session. The send() method is used when the response has to be received asynchronously.

TL1Client: This is an interface that must be implemented to do the callback() method to process the response received from the peer.

4.2.3 TL1 Parser Objects

TL1MessageParser: This class is used when a TL1 message has to be parsed and the type of the message is not known. Applications should instantiate this class by passing the message string. The getType() method will return the type of the message. The getObject() method can be used to get the TL1Message object instance which will contain the parsed fields in the message. Once the type is known, one of the methods, getTL1InputParser(), getTL1ResponseParser(), getTL1AckParser() or getTL1AutonomousParser(), as appropriate can be used to get the correct parser instance from which necessary fields can be accessed.

TL1InputMessageParser: This class is used when a TL1 input message has to be parsed. Applications should be instantiated this class by passing the input message string. The getObject() method can be used to get the TL1InputMessage which contains the individual fields. The class also contains methods to get the individual fields/objects of a TL1 input message.

TL1ResponseMessageParser: This class is used when a TL1 response message has to be parsed. Applications should be instantiated this class by passing the response message string. The getObject() method can be used to get the TL1ResponseMessage which contains the individual fields. The class also contains methods to get the individual fields/objects of a response message.

TL1AckMessageParser: This class is used when a TL1 acknowledgement message has to be parsed. Applications should be instantiated this class by passing the acknowledgement message string. The getObject() method can be used to get the TL1AckMessage which contains the individual fields. The class also contains methods to get the individual fields/objects of a acknowledgement message.

TL1AutonomousMessageParser: This class is used when a TL1 autonomous message has to be parsed. Applications should instantiate this class by passing the response message string. The getObject() method can be used to get the TL1AutonomousMessage which contains the individual fields. The class also contains methods to get the individual fields/objects of a autonomous message.

4.2.4 TL1 Communication Objects:

ManagerAgentImp: This class implements ManagerAgent interface so that TL1Manager can get the information about TL1Agents which are all running in the Network Elements.

UserImp: This class implement User interface and used to implement Agent functionalities.TL1Manager gets the information about TL1Agent through the method distributemessage() method provided in the ManagerAgentImp class.

UserPanel: This class provides GUI to TL1Agent as well as TL1Manager so that both of them can get the information about all agents running.


next up previous contents
Next: TL1 Manager Up: selva Previous: Accounting   Contents
CTECH E16 2002-01-03