cs427: Zebra VTY
href="http://wiki.cs.uiuc.edu/cs427/EDIT/Zebra+VTY">Edit
href="http://wiki.cs.uiuc.edu/cs427/RENAME/Zebra+VTY">Rename
href="http://wiki.cs.uiuc.edu/cs427/DIFF/8/7/Zebra+VTY">Changes
href="http://wiki.cs.uiuc.edu/cs427/HISTORY/Zebra+VTY">History
href="http://wiki.cs.uiuc.edu/cs427/UPLOAD">Upload
href="http://wiki.cs.uiuc.edu/cs427/DOWNLOAD/">Download
Back to
Top
href="http://wiki.cs.uiuc.edu/cs427/SEARCH/Zebra+VTY">Zebra VTY
--------
[NEXT > http://wiki.cs.uiuc.edu/cs427/Zebra+Command+System] [HOME > http://wiki.cs.uiuc.edu/cs427/Software+Architecture+of+Zebra]
--------
All daemons listen on a particular port and VTY allow a user to connect and interact with a daemon via the telnet protocol. When a user connects to a daemon, the VTY shell in turn tries to connect to all the daemons and open a socket with them. VTY shell also initializes all the command nodes and command elements.
The VTY shell then accepts user commands and executes them. One interesting but irrelevant fact is that the VTY changes its prompt depending on the command given by the user. This is possible because each command node has its own command prompt initialized in its structure.
VTY uses the command subsystem to execute the command inputted by the user.
The View Mode in VTY is for read-only access to the CVI while the Enable Mode is for read-write access. VTY has other modes for other purposes like tftp etc.
After all the initialization and configuration, the main() method in the file vtysh_main.c loops over the user input on the VTY and continues passing each line read to the vtysh_execute() method in the file vtysh.c. This method converts the user command into a vector and calls the cmd_execute_command method in the file command.c.
After a few sanity checks, if the command is successful, the cmd variable gets set to the parsed value of the user command (called matched_element). If the daemon element of the matched_element struct exists, CMD_SUCCESS_DAEMON is returned as the status to the caller. In case the daemon element is non-existent, this method executes the user command using all the gathered arguments. The 慶md?variable is later used to determine the further command sequence to be carried out, such as 慶onfigure terminal?
------------
[NEXT > http://wiki.cs.uiuc.edu/cs427/Zebra+Command+System] [HOME > http://wiki.cs.uiuc.edu/cs427/Software+Architecture+of+Zebra]
//-- unformatted page contents -->
NEXT
href="http://wiki.cs.uiuc.edu/cs427/Software+Architecture+of+Zebra">HOME
All daemons listen on a particular port and VTY allow a user to connect and
interact with a daemon via the telnet protocol. When a user connects to a
daemon, the VTY shell in turn tries to connect to all the daemons and open a
socket with them. VTY shell also initializes all the command nodes and command
elements.
The VTY shell then accepts user commands and executes them. One interesting
but irrelevant fact is that the VTY changes its prompt depending on the command
given by the user. This is possible because each command node has its own
command prompt initialized in its structure.
VTY uses the command subsystem to execute the command inputted by the user.
The View Mode in VTY is for read-only access to the CVI while the Enable Mode
is for read-write access. VTY has other modes for other purposes like tftp etc.
After all the initialization and configuration, the main() method in the file
vtysh_main.c loops over the user input on the VTY and continues passing each
line read to the vtysh_execute() method in the file vtysh.c. This method
converts the user command into a vector and calls the cmd_execute_command method
in the file command.c.
After a few sanity checks, if the command is successful, the cmd variable
gets set to the parsed value of the user command (called matched_element). If
the daemon element of the matched_element struct exists, CMD_SUCCESS_DAEMON is
returned as the status to the caller. In case the daemon element is
non-existent, this method executes the user command using all the gathered
arguments. The 慶md?variable is later used to determine the further command
sequence to be carried out, such as 慶onfigure terminal?
NEXT
href="http://wiki.cs.uiuc.edu/cs427/Software+Architecture+of+Zebra">HOME
name=COMMAND> name=SEARCHPATTERN>
href="http://wiki.cs.uiuc.edu/cs427/EDIT/Zebra+VTY">Edit
href="http://wiki.cs.uiuc.edu/cs427/RENAME/Zebra+VTY">Rename
href="http://wiki.cs.uiuc.edu/cs427/DIFF/8/7/Zebra+VTY">Changes
href="http://wiki.cs.uiuc.edu/cs427/HISTORY/Zebra+VTY">History
href="http://wiki.cs.uiuc.edu/cs427/UPLOAD">Upload
href="http://wiki.cs.uiuc.edu/cs427/DOWNLOAD/">Download
Back to
Top