NAME
   TL1::Toolkit - Utility functions for interacting with TL1 equipment

VERSION
   0.02

DESCRIPTION
   This Perl module is intended to hide the difficult TL1 syntax from the
   user. It executes TL1 commands and returns the results in Perl data
   structures. For example, if you work with different types and/or vendors
   of devices the TL1 syntax might be different as well as the output. This
   TL1 module retrieves information from different types and/or vendors of
   devices without having to know the exact details. There is also a cmd()
   function to execute any TL1 function. In this case the user has to parse
   the returned results. This module is known to work on Nortel OME6500,
   Nortel DWDM CPL, Nortel HDXc, Nortel OM5200, Cisco ONS15454 and Adva
   FSP3000; but it should work on any TL1 capable device.

SYNOPSIS
 my $tl1 = TL1::Toolkit->new("node", "name", "secret");
   Create a TL1::Toolkit object that holds information about a TL1 session.
   Its arguments are:

   *   hostname: network element to connect to

   *   username: login name

   *   password: password

   *   type (optional): device type (OME6500, HDXc)

   *   verbose (optional): debug level (0..9)

 $tl1->open()
   Connect to the TL1 device and login. Returns 1 on success, 0 on failure.

 $tl1->close()
   Logout and disconnect from the TL1 device.

 my $output = $tl1->cmd($command);
   The string variable $command contains a TL1 command string that will be
   sent to the TL1 device as is. It returns the results as ASCII text to
   the string variable $output.

 my $type = $tl1->get_cardtype(1, 12);
   Return the type of card in the shelf given as first argument and the
   slot given as second argument. Returns a string.

 my $version = $tl1->get_swversion();
   Returns the currently active firmware version on the TL1 device. Returns
   a string.

 my $octets = $tl1->get_inoctets(1, 3);
   Returns the Ethernet input octets on the slot given as first argument
   and the port given as second argument. Returns an integer.

 my $octets = $tl1->get_outoctets(7, 2);
   Returns the Ethernet output octets on the slot given as first argument
   and the port given as second argument. Returns an integer.

 my @alarms = $tl1->get_alarms();
   Returns an array of hashes containing information about active alarms on
   the TL1 device. Each entry in the array conatains information about one
   alarm. The keys of each alarm are:

   *   interface

   *   severity

   *   impact

   *   day

   *   time

   *   alarm

   *   year

   *   date

   *   slot

   *   subslot

   *   port

   *   fromfirststs

   Some of the keys can have an "undef" value.

 my @crossconnects = $tl1->get_crossconnects();
   Retrieve information about crossconnects on the TL1 device. The
   information is returned as an array of hashes. Each entry in the array
   is information about one crossconnect. The crossconnect information
   consists of a hash with these keys:

   *   ckid: crossconnect ID

   *   nr_timeslots: total amount of timeslots

   *   from_slot: slot of "from" interface

   *   from_subslot: subslot of "from" interface

   *   from_port: port of "from" interface

   *   from_first_ts: first timeslot on "from" interface

   *   from_last_ts: last timeslot on "from" interface

   *   to_slot: slot of "to" interface

   *   to_subslot: subslot of "to" interface

   *   to_port: port of "to" interface

   *   to_first_ts: first timeslot on "to" interface

   *   to_last_ts: last timeslot on "to" interface

   *   swmate_slot: slot of "switchmate" interface

   *   swmate_subslot: subslot of "switchmate" interface

   *   swmate_port: port of "switchmate" interface

   *   swmate_first_ts: first timeslot on "switchmate" interface

   *   swmate_last_ts: last timeslot on "switchmate" interface

 my $trace = $tl1->get_section_trace(1, 12, 1);
   Return the received section trace on the port given as arguments. The
   first argument is the shelf number, the second argument is the slot
   number and the third argument is the port number. This function returns
   a string.

 $tl1->print_resp($output);
   This function prints the output returned by the cmd() function on
   STDOUT.

AUTHORS
   Ronald van der Pol, SARA High Performance Networking, Amsterdam, 2005 -
   2008.

   Andree Toonk, SARA High Performance Networking, Amsterdam, 2005 - 2007.

ACKNOWLEDGEMENTS
   This work is funded by SURFnet and GigaPort:

   http://www.surfnet.nl/

   http://www.gigaport.nl/

   This module is based on a module by Arien Vijn, AMS-IX B.V. (2005).

COPYRIGHT
     +------------------------------------------------------------------+
     | Licensed under the Apache License, Version 2.0 (the "License");  |
     | you may not use this file except in compliance with the License. |
     | You may obtain a copy of the License at                          |
     |                                                                  |
     |     http://www.apache.org/licenses/LICENSE-2.0                   |
     |                                                                  |
     | Unless required by applicable law or agreed to in writing,       |
     | software distributed under the License is distributed on an      |
     | "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,     |
     | either express or implied. See the License for the specific      |
     | language governing permissions and limitations under the         |
     | License.                                                         |
     +------------------------------------------------------------------+

REQUIRES
   threads;

   threads::shared;

   Thread::Queue::Any;

   Net::Telnet;

   Time::localtime;

   Date::Manip;

RELEASED
   December 2008