Provided by: libnet-cli-interact-perl_2.200002-1_all bug

NAME

       Net::CLI::Interact::Manual::Phrasebook - List of Supported CLIs

INTRODUCTION

       The bundled phrasebook includes support for a variety of network device CLIs.  Many were
       contributed by users of the module. If you set up a new CLI dictionary, please consider
       contributing it back! The phrasebook specification is given in
       Net::CLI::Interact::Phrasebook.

       For each supported CLI, there is a name which must be passed in the "personality" option
       to Net::CLI::Interact's "new()" method. After that, you can call the included Macros, and
       the module will use the included Prompt to match the current state of the CLI. More
       information is available in the Tutorial and Cookbook.

       Below is a list of all current bundled CLI dictionaries. Each lists its name, the
       available Prompts, Macros and Continuations, and from which other CLI dictionaries it
       inherits.

        IOS       # Cisco IOS
        CatOS     # for older, pre-IOS Cisco devices

        PIXOS     # for PIX OS-based devices
        PIXOS7    # Slightly different commands from other PIXOS versions
        FWSM      # currently the same as 'PIXOS'
        FWSM3     # for FWSM Release 3.x devices (slightly different to FWSM 2.x)

        JunOS     # Juniper JUNOS support
        HP        # HP support
        Nortel    # Nortel support
        ExtremeOS # Extreme Networks support
        Foundry   # Foundry/Brocade device support

        Bash      # GNU Bourne-Again SHell (i.e. most linux systems)

        OVMCLI    # Oracle VM Manager CLI

PERSONALITIES

   Bash
       This personality goes by the name of "bash".

       Prompts are "prompt", "privileged", "user" and "pass". The "pass" prompt works either for
       an initial SSH connection, or a "sudo" request.

       Macros are "begin_privileged", "end_privileged", and "disconnect". The "begin_privileged"
       macro issues a "sudo" request to become the root user.

   Cisco
       This personality goes by the name of "cisco" and provides a basis for many other CLI
       dictionaries.

       Prompts are "basic", "privileged", "configure", "user", and "pass".

       Macros are "begin_privileged", "end_privileged", "begin_configure", "end_configure", and
       "disconnect".

   CatOS
       This personality goes by the name of "catos" and inherits from the "cisco" dictionary.

       Additionally it provides the "privileged" Prompt.

       Additionally it also provides the "paging" Macro to set the terminal page size.

   ExtremeOS
       This personality goes by the name of "extremeos" and inherits from the "cisco" dictionary.

       Additional Prompts are "basic", "privileged", "configure", "user", and "pass".

       Additional Macros are "begin_privileged", "end_privileged", and "disconnect".

   Foundry / Brocade
       This personality goes by the name of "foundry" and inherits from the "cisco" dictionary.
       Before connecting to the device you probably want to set the output separator to be:

        $nci->transport->ors("\r\n");

       For users of Net::Appliance::Session this should be:

        $session_obj->nci->transport->ors("\r\n");

   IOS
       This personality goes by the name of "ios" and inherits from the "cisco" dictionary.

       Additionally it provides the "paging" Macro to set the terminal page size.

   HP
       This personality goes by the name of "hp" and inherits from the "cisco" dictionary.

       Additionally it provides the "basic" and "user" Prompts.

       Additionally it provides "enable_paging" and "disable_paging" Macros.

   JunOS
       This personality goes by the name of "junos" and inherits from the "cisco" dictionary.

       Additionally it provides the "privileged", "configure", and "user" Prompts.

       Additionally it also provides the "begin_configure" and "paging" Macros.

   Nortel
       This personality goes by the name of "nortel" and inherits from the "cisco" dictionary.

       Additionally it provides the "user" Prompt.

   PIXOS
       This personality goes by the name of "pixos" and inherits from the "cisco" dictionary.

       Additionally it provides the "paging" Macro to set the terminal page size.

       It can be used in its own right for Cisco PIX firewalls, but is also used as a base for
       other dictionaries.

   PIXOS 7
       This personality goes by the name of "pixos7" and inherits from the "pixos" dictionary.

       Additionally it provides the "paging" Macro to set the terminal page size.

   FWSM
       This personality goes by the name of "fwsm" and inherits from the "pixos" dictionary.

       It provides no further functionality, as Cisco FWSM software version 1 and 2 was the same
       as the PIX OS.

   FWSM 3
       This personality goes by the name of "fwsm3" and inherits from the "pixos" dictionary.

       Additionally it provides the "paging" Macro to set the terminal page size.

   OVMCLI
       This personality goes by the name of "ovmcli".

       Prompts are "prompt" and "privileged".

       There is one macro named "disconnect".

SUPPORTING A NEW DEVICE

       In order to support a new device, particularly for the Net::Appliance::Session module,
       there is a basic set of prompts and macros you must create.

   Required Prompts
       With SSH, no "user" prompt is required, but for other transports you should include a
       prompt named "user" which matches the ""Username:"" prompt presented by the device.

        # example only!
        prompt user
            match /[Uu]sername/

       With all transports you must provide a "pass" prompt which matches the ""password:""
       prompt presented by the device.

        # example only!
        prompt pass
            match /[Pp]assword: ?$/

       The last essential prompt is of course a simple command line prompt match, and this should
       be named "generic".

        # example only!
        prompt generic
            match /> ?$/

   Desirable Prompt and Macros
       To cleanly disconnect from your device session, you might want to include a macro named
       "disconnect" with the relevant command. Note there is no need for a "match" statement in
       this macro, as the device should have detached!

        # example only!
        macro disconnect
            send exit

       For paging support, include either only a "prompt" macro, or two macros named
       "enable_paging" and "disable_paging", depending on what the device requires.  In all
       cases, there must be one substitution ("%s") which is where the number of page lines will
       be inserted into the command.

        # example only!
        macro paging
            send terminal length %s

       For privileged mode (super-user) support, include a prompt named "privileged" first, and
       then include macros named "begin_privileged" and "end_privileged" to enter and leave the
       mode, respectively. Note that both macros will require explicit match statements, because
       the prompt encountered after issuing the command will be different to that encountered
       before.

        # example only!
        prompt privileged
            match /# ?$/

        macro begin_privileged
            send enable
            match user or pass or privileged

        macro end_privileged
            send disable
            match generic

       Similarly for configure mode, include a prompt named "configure" first, and then include
       macros named "begin_configure" and "end_configure" to enter and leave the mode,
       respectively. Note that both macros will require explicit match statements, because the
       prompt encountered after issuing the command will be different to that encountered before.

        # example only!
        prompt configure
            match /\(config[^)]*\)# ?$/

        macro begin_configure
            send configure terminal
            match configure

        macro end_configure
            send exit
            match privileged