RomCLI
Toolkits Overview
Whilst many embedded devices are managed through
RomPager web interfaces, there is still a demand for command line
based interfaces to be offered as an alternative or in parallel
with web interfaces. The Cisco IOS style of command line dialog
is a de-facto standard for networked equipment and the RomCLI
range of toolkits offer a cost effective way to construct robust
custom management interfaces employing a variety of security options.
At the heart of the toolkit is a command line handler and parser
system that offers standard line editing and error dialogs compatible
with the VT100 style display systems or their software emulations.
Access to the command dialog can be via a local serial connection,
a telnet server or a secure SSH server. An offline CLIBuilder
tool is used to prepare custom parser tree structures and hooks
for variable access. Interfaces with variable access structures
are unified with those supported by RomPager products so that
parallel web and command line interfaces operate in a symmetrical
fashion.
RomCLI Product Family
The RomCLI toolkits have the following components:
RomTelnet - This module provides Telnet
server services for the RomCLI software toolkits. The Telnet server
provides standard protocol negotiation to allow TTY-style interaction
with any Telnet client. Telnet sessions are standard TCP sessions
and may be initiated over Ethernet or PPP serial links. Multiple
simultaneous sessions may be supported depending on configuration.
RomConsole - This component provides
interface services between the RomPager main engine and user provided
RS-232 port services. As with other RomPager I/O services, all
commands use asynchronous I/O to allow other device services to
run gracefully. With this component, RomCLI is able to provide
command line services on top of a serial port as well as TCP/IP
interfaces.
RomSShell - This optional component
is included as part of the RomCLI Secure product and provides
secure shell services for the RomCLI toolkit. The RomCLI Secure
server provides SSH version 2 support to allow TTY-style interaction
with SSH clients. Multiple simultaneous sessions may be supported
depending on configuration. A wide variety of SSH client programs
are supported.
Command Line Handler - This component
provides the basic line handling elements that are common to all
parse trees. Characters are gathered from the Telnet, SSH or serial
interfaces and are assembled into command lines for the Parser
System. Specific command sequences include: “ “ to
finish a line; “^X” to clear the input and reset the
line buffer; VT100 up arrow and down arrow to move through the
command line history; and VT100 left and right arrows to move
forward or backwards through the line.
Parser System - This component uses
predefined parse tree tables to provide a set of command interactions.
The interface style is "Cisco-like" in that all the
commands are stateless request-response format commands. The RomCLI
toolkits allow device builders to create command line interfaces
that look and behave the same way as Cisco IOS products. Multiple
parse trees are supported so that authorization, configuration,
and operation command sets may be specified separately. Command
prompts are specified as part of the parse trees allowing different
prompts in different modes. Parse tree commands resolve to an
action. An action can be the retrieval or storage of variable
data or invoking of a user exit routine. A user exit routine can
display special format information or load a different parse tree.
Full and “?” command completion are supported to access
the command help support.
Variable Access - Variable retrieval
and storage is done using the RomPager Variable Access architecture.
The parse tree contains the variable name which is a pointer to
the RomPager named element list which in turn provides access
to the Set/Get access routines and variable type information.
Built-in conversion routines provide support for conversion to
and from internal data types to the external string formats.
CliBuilder - This offline compiler
takes an XML format description of the command tree syntax used
by the parser including command help, action routines, security
realms, etc. and produces the internal parse tree tables and help
string tables that are used by the Parser System.
VarBuilder - This offline compiler takes an XML format description
of the variables to be accessed, the accessor routines and the
datatypes and produces the interface structures between RomCLI
and the device variable storage.
^TOP OF PAGE |