Control::CLI::AvayaData  -  Controlling an AvayaData device by interacting with its CLI
=======================================================================================

This module extends and enhances the Control::CLI module for the Avaya ethernet switches and IP routers.
It currently supports all of Avaya Virtual Services Platform (VSP), Ethernet Routing Switch (ERS), Secure Router (SR), WLAN Controller (WC) and WLAN Security Switch (WSS) models as well as most of the legacy data products from Nortel Enterprise (Bay Networks) heritage:

      VSP 4000, 7000, 8000, 9000
      ERS/Passport models 1600, 8300, 8600, 8800
      ERS models 2500, 3500, 4x00, 5x00
      SR models 2330, 4134
      WLAN(WC) 81x0
      WLAN(WSS) 2350, 236x, 238x
      BPS 2000, ES 460, ES 470
      Baystack models 325, 425
      Accelar/Passport models 1000, 1100, 1200

Avaya has converged the CLI interface of its current range of products into a single unified (Cisco-like) CLI interface (Avaya-CLI or ACLI; previously called NNCLI in the Nortel days).
This module supports the current and latest Avaya Networking products as well as the older product families previously offered by Nortel where a number of different CLI variants exist (e.g. Passport/Accelar CLI which is still widely used).
Hence the devices supported by this module can have an inconsistent CLI (in terms of syntax, login sequences, terminal width-length-paging, prompts) and in some cases two separate CLI syntaxes are available on the same product (ERS8x00 product families support both the new and old CLI modes).
This class is written so that all the above products can be CLI scripted in a consistent way regardless of their underlying CLI variants. Hence a script written to connect and execute some CLI commands can be written in exactly the same way whether the product is an ERS8600 (using old CLI) or an ERS4500 or a SR2330. The CLI commands themselves might still vary across the different products though, even here, for certain common functions (like entering privExec mode or disabling terminal more paging) a generic method is provided by this class.

Control::CLI::AvayaData is a sub-class of Control::CLI (which is required) and therefore the above functionality can also be performed in a consistent manner regardless of the underlying connection type which can be any of Telnet, SSH or Serial port connection. For SSH, only SSHv2 is supported with either password or publickey authentication.

Other refinements of this module over and above the basic functionality of Control::CLI are:
(i) on the stackable BaystackERS products the connect & login methods will automatically steer through the banner and menu interface (if seen) to reach the desired CLI interface.
(ii) there is no need to set the prompt string in any of this module's methods since it knows exactly what to expect from any of the supported AvayaData products. Furthermore the prompt string is automatically internally set to match the actual prompt of the connected device (rather than using a generic regular expression such as '*[#>]$'). This greatly reduces the risk that the generic regular expression might trigger on a fake prompt embedded in the output stream from the device.
(iii) the connect method of this module automatically takes care of login for Telnet and Serial port access (where login is not part of the actual connection, unlike SSH) and so provides a consistent scripting approach whether the underlying connection is SSH or either Telnet or Serial port.
(iv) ability to detect whether a CLI command generated an error on the remote host and ability to report success or failure of the issued command as well as the error message details.


INSTALLATION

This module was built using Module::Build.

If you have Module::Build already installed, to install this module run the following commands:

	perl Build.PL
	./Build
	./Build test
	./Build install

Or, if you're on a platform (like DOS or Windows) that doesn't require the "./" notation, you can do this:

	perl Build.PL
	Build
	Build test
	Build install


If instead you are relying on ExtUtils::MakeMaker then run the following commands:

	perl Makefile.PL
	make
	make test
	make install

Once installed, to perform tests against Avaya Data devices, run the test script in interactive mode:

	perl t/avayadata.t

To perform full tests before installing the module, after build or make, run the test script like this:

	perl -Mblib t/avayadata.t


DISCLAIMER

Note that this module is in no way supported or endorsed by Avaya Inc.


SUPPORT AND DOCUMENTATION

After installing, you can find documentation for this module with the
perldoc command.

    perldoc Control::CLI::AvayaData

You can also look for information at:

    RT, CPAN's request tracker
        http://rt.cpan.org/NoAuth/Bugs.html?Dist=Control-CLI-AvayaData

    AnnoCPAN, Annotated CPAN documentation
        http://annocpan.org/dist/Control-CLI-AvayaData

    CPAN Ratings
        http://cpanratings.perl.org/d/Control-CLI-AvayaData

    Search CPAN
        http://search.cpan.org/dist/Control-CLI-AvayaData/


LICENSE AND COPYRIGHT

Copyright (C) 2014 Ludovico Stevens

This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

