libosmovty
0.9.3
Osmocom VTY library
|
Files | |
file | command.h |
file | command.c |
Data Structures | |
struct | host |
Host configuration variable. More... | |
struct | cmd_node |
Node which has some commands and prompt string and configuration function pointer . More... | |
struct | cmd_element |
Structure of a command element. More... | |
struct | desc |
Command description structure. More... |
Macros | |
#define | CMD_SUCCESS 0 |
Return value of the commands. | |
#define | CMD_WARNING 1 |
#define | CMD_ERR_NO_MATCH 2 |
#define | CMD_ERR_AMBIGUOUS 3 |
#define | CMD_ERR_INCOMPLETE 4 |
#define | CMD_ERR_EXEED_ARGC_MAX 5 |
#define | CMD_ERR_NOTHING_TODO 6 |
#define | CMD_COMPLETE_FULL_MATCH 7 |
#define | CMD_COMPLETE_MATCH 8 |
#define | CMD_COMPLETE_LIST_MATCH 9 |
#define | CMD_SUCCESS_DAEMON 10 |
#define | CMD_ARGC_MAX 256 |
#define | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attrs, dnum) |
#define | gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attrs, dnum) |
#define | DEFUN_CMD_FUNC_DECL(funcname) static int funcname (struct cmd_element *, struct vty *, int, const char *[]); \ |
#define | DEFUN_CMD_FUNC_TEXT(funcname) |
#define | DEFUN(funcname, cmdname, cmdstr, helpstr) |
Macro for defining a VTY node and function. | |
#define | gDEFUN(funcname, cmdname, cmdstr, helpstr) |
Macro for defining a non-static (global) VTY node and function. | |
#define | DEFUN_ATTR(funcname, cmdname, cmdstr, helpstr, attr) |
#define | DEFUN_HIDDEN(funcname, cmdname, cmdstr, helpstr) DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN) |
#define | DEFUN_DEPRECATED(funcname, cmdname, cmdstr, helpstr) DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED) \ |
#define | DEFUN_NOSH(funcname, cmdname, cmdstr, helpstr) DEFUN(funcname, cmdname, cmdstr, helpstr) |
#define | DEFSH(daemon, cmdname, cmdstr, helpstr) DEFUN_CMD_ELEMENT(NULL, cmdname, cmdstr, helpstr, 0, daemon) \ |
#define | DEFUNSH(daemon, funcname, cmdname, cmdstr, helpstr) |
#define | DEFUNSH_ATTR(daemon, funcname, cmdname, cmdstr, helpstr, attr) |
#define | DEFUNSH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr) DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN) |
#define | DEFUNSH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr) DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED) |
#define | ALIAS(funcname, cmdname, cmdstr, helpstr) DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) |
#define | gALIAS(funcname, cmdname, cmdstr, helpstr) gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) |
#define | ALIAS_ATTR(funcname, cmdname, cmdstr, helpstr, attr) DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, 0) |
#define | ALIAS_HIDDEN(funcname, cmdname, cmdstr, helpstr) DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, 0) |
#define | ALIAS_DEPRECATED(funcname, cmdname, cmdstr, helpstr) DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, 0) |
#define | ALIAS_SH(daemon, funcname, cmdname, cmdstr, helpstr) DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, daemon) |
#define | ALIAS_SH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr) DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, daemon) |
#define | ALIAS_SH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr) DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, daemon) |
#define | CMD_OPTION(S) ((S[0]) == '[') |
#define | CMD_VARIABLE(S) (((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<')) |
#define | CMD_VARARG(S) ((S[0]) == '.') |
#define | CMD_RANGE(S) ((S[0] == '<')) |
#define | CMD_IPV4(S) ((strcmp ((S), "A.B.C.D") == 0)) |
#define | CMD_IPV4_PREFIX(S) ((strcmp ((S), "A.B.C.D/M") == 0)) |
#define | CMD_IPV6(S) ((strcmp ((S), "X:X::X:X") == 0)) |
#define | CMD_IPV6_PREFIX(S) ((strcmp ((S), "X:X::X:X/M") == 0)) |
#define | SHOW_STR "Show running system information\n" |
#define | IP_STR "IP information\n" |
#define | IPV6_STR "IPv6 information\n" |
#define | NO_STR "Negate a command or set its defaults\n" |
#define | CLEAR_STR "Reset functions\n" |
#define | RIP_STR "RIP information\n" |
#define | BGP_STR "BGP information\n" |
#define | OSPF_STR "OSPF information\n" |
#define | NEIGHBOR_STR "Specify neighbor router\n" |
#define | DEBUG_STR "Debugging functions (see also 'undebug')\n" |
#define | UNDEBUG_STR "Disable debugging functions (see also 'debug')\n" |
#define | ROUTER_STR "Enable a routing process\n" |
#define | AS_STR "AS number\n" |
#define | MBGP_STR "MBGP information\n" |
#define | MATCH_STR "Match values from routing table\n" |
#define | SET_STR "Set values in destination routing protocol\n" |
#define | OUT_STR "Filter outgoing routing updates\n" |
#define | IN_STR "Filter incoming routing updates\n" |
#define | V4NOTATION_STR "specify by IPv4 address notation(e.g. 0.0.0.0)\n" |
#define | OSPF6_NUMBER_STR "Specify by number\n" |
#define | INTERFACE_STR "Interface infomation\n" |
#define | IFNAME_STR "Interface name(e.g. ep0)\n" |
#define | IP6_STR "IPv6 Information\n" |
#define | OSPF6_STR "Open Shortest Path First (OSPF) for IPv6\n" |
#define | OSPF6_ROUTER_STR "Enable a routing process\n" |
#define | OSPF6_INSTANCE_STR "<1-65535> Instance ID\n" |
#define | SECONDS_STR "<1-65535> Seconds\n" |
#define | ROUTE_STR "Routing Table\n" |
#define | PREFIX_LIST_STR "Build a prefix list\n" |
#define | OSPF6_DUMP_TYPE_LIST "(neighbor|interface|area|lsa|zebra|config|dbex|spf|route|lsdb|redistribute|hook|asbr|prefix|abr)" |
#define | ISIS_STR "IS-IS information\n" |
#define | AREA_TAG_STR "[area tag]\n" |
#define | CONF_BACKUP_EXT ".sav" |
#define | NEIGHBOR_CMD "neighbor A.B.C.D " |
#define | NO_NEIGHBOR_CMD "no neighbor A.B.C.D " |
#define | NEIGHBOR_ADDR_STR "Neighbor address\n" |
#define | NEIGHBOR_CMD2 "neighbor (A.B.C.D|WORD) " |
#define | NO_NEIGHBOR_CMD2 "no neighbor (A.B.C.D|WORD) " |
#define | NEIGHBOR_ADDR_STR2 "Neighbor address\nNeighbor tag\n" |
#define | CONFIGFILE_MASK 022 |
#define | IPV6_ADDR_STR "0123456789abcdefABCDEF:.%" |
#define | IPV6_PREFIX_STR "0123456789abcdefABCDEF:.%/" |
#define | STATE_START 1 |
#define | STATE_COLON 2 |
#define | STATE_DOUBLE 3 |
#define | STATE_ADDR 4 |
#define | STATE_DOT 5 |
#define | STATE_SLASH 6 |
#define | STATE_MASK 7 |
#define | DECIMAL_STRLEN_MAX 10 |
Enumerations | |
enum | node_type { AUTH_NODE, VIEW_NODE, AUTH_ENABLE_NODE, ENABLE_NODE, CONFIG_NODE, SERVICE_NODE, DEBUG_NODE, CFG_LOG_NODE, CFG_STATS_NODE, VTY_NODE, L_E1INP_NODE, L_IPA_NODE, L_NS_NODE, L_BSSGP_NODE, RESERVED1_NODE, RESERVED2_NODE, RESERVED3_NODE, RESERVED4_NODE, _LAST_OSMOVTY_NODE } |
There are some command levels which called from command node. More... | |
enum | { CMD_ATTR_DEPRECATED = 1, CMD_ATTR_HIDDEN } |
enum | match_type { no_match = 0, any_match, extend_match, ipv4_prefix_match, ipv4_match, ipv6_prefix_match, ipv6_match, range_match, vararg_match, partly_match, exact_match } |
Functions | |
void | install_node (struct cmd_node *node, int(*func)(struct vty *)) |
Install top node of command vector. | |
void | install_default (int node_type) |
void | install_element (int ntype, struct cmd_element *cmd) |
Install a command into a node. | |
void | install_element_ve (struct cmd_element *cmd) |
void | sort_node (void) |
Sort each node's command element according to command string. | |
void | vty_install_default (int node_type) |
char * | argv_concat (const char **argv, int argc, int shift) |
vector | cmd_make_strvec (const char *) |
void | cmd_free_strvec (vector v) |
Free allocated string vector. | |
vector | cmd_describe_command () |
char ** | cmd_complete_command () |
const char * | cmd_prompt (enum node_type node) |
Return prompt character of specified node. | |
int | config_from_file (struct vty *, FILE *) |
enum node_type | node_parent (enum node_type) |
int | cmd_execute_command (vector, struct vty *, struct cmd_element **, int) |
int | cmd_execute_command_strict (vector, struct vty *, struct cmd_element **) |
void | config_replace_string (struct cmd_element *, char *,...) |
void | cmd_init (int) |
char * | host_config_file () |
void | host_config_set (const char *) |
void | print_version (int print_copyright) |
print the version (and optionally copyright) information | |
static int | cmp_node (const void *p, const void *q) |
static int | cmp_desc (const void *p, const void *q) |
static int | is_config_child (struct vty *vty) |
static char * | cmd_desc_str (const char **string) |
Fetch next description. Used in cmd_make_descvec(). | |
static vector | cmd_make_descvec (const char *string, const char *descstr) |
New string vector. | |
static int | cmd_cmdsize (vector strvec) |
static char * | xml_escape (const char *inp) |
static int | vty_dump_element (struct cmd_element *cmd, struct vty *vty) |
static int | vty_dump_nodes (struct vty *vty) |
static int | config_write_host (struct vty *vty) |
static vector | cmd_node_vector (vector v, enum node_type ntype) |
static enum match_type | cmd_ipv4_match (const char *str) |
static enum match_type | cmd_ipv4_prefix_match (const char *str) |
static int | cmd_range_match (const char *range, const char *str) |
static char * | cmd_deopt (const char *str) |
static enum match_type | cmd_match (const char *str, const char *command, enum match_type min, bool recur) |
static enum match_type | cmd_filter (char *command, vector v, unsigned int index, enum match_type level) |
static int | is_cmd_ambiguous (char *command, vector v, int index, enum match_type type) |
static const char * | cmd_entry_function (const char *src, const char *dst) |
static const char * | cmd_entry_function_desc (const char *src, const char *dst) |
static int | cmd_unique_string (vector v, const char *str) |
static int | desc_unique_string (vector v, const char *str) |
static int | cmd_try_do_shortcut (enum node_type node, char *first_word) |
static vector | cmd_describe_command_real (vector vline, struct vty *vty, int *status) |
vector | cmd_describe_command (vector vline, struct vty *vty, int *status) |
static int | cmd_lcd (char **matched) |
static char ** | cmd_complete_command_real (vector vline, struct vty *vty, int *status) |
char ** | cmd_complete_command (vector vline, struct vty *vty, int *status) |
int | vty_go_parent (struct vty *vty) |
static int | cmd_execute_command_real (vector vline, struct vty *vty, struct cmd_element **cmd) |
DEFUN (config_terminal, config_terminal_cmd,"configure terminal","Configuration from vty interface\n""Configuration terminal\n") | |
DEFUN (enable, config_enable_cmd,"enable","Turn on privileged mode command\n") | |
DEFUN (disable, config_disable_cmd,"disable","Turn off privileged mode command\n") | |
gDEFUN (config_exit, config_exit_cmd,"exit","Exit current mode and down to previous mode\n") | |
gDEFUN (config_end, config_end_cmd,"end","End current mode and change to enable mode.") | |
DEFUN (show_version, show_version_cmd,"show version", SHOW_STR"Displays program version\n") | |
DEFUN (show_online_help, show_online_help_cmd,"show online-help", SHOW_STR"Online help\n") | |
gDEFUN (config_help, config_help_cmd,"help","Description of the interactive help system\n") | |
gDEFUN (config_list, config_list_cmd,"list","Print command list\n") | |
static int | write_config_file (const char *config_file, char **outpath) |
DEFUN (config_write_file, config_write_file_cmd,"write file","Write running configuration to memory, network, or terminal\n""Write to configuration file\n") | |
ALIAS (config_write_file, config_write_cmd,"write","Write running configuration to memory, network, or terminal\n") ALIAS(config_write_file | |
write Write running configuration to or terminal n Write configuration to the | file (same as write file)\n") ALIAS(config_write_file |
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup | config (same as write file)\n") DEFUN(config_write_terminal |
Variables | |
struct cmd_element | config_exit_cmd |
struct cmd_element | config_help_cmd |
struct cmd_element | config_list_cmd |
struct cmd_element | config_end_cmd |
void * | tall_vty_cmd_ctx |
void * | tall_vty_cmd_ctx |
vector | cmdvec |
struct host | host |
struct cmd_node | auth_node |
struct cmd_node | view_node |
struct cmd_node | auth_enable_node |
struct cmd_node | enable_node |
struct cmd_node | config_node |
const char * | default_motd = "" |
config_write_memory_cmd | |
write | memory |
write Write running configuration to | network |
write Write running configuration to or terminal n Write configuration to the | copy_runningconfig_startupconfig_cmd |
write Write running configuration to or terminal n Write configuration to the copy running config startup | config |
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup | config_write_terminal_cmd |
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup write | terminal |
#define DEFUN | ( | funcname, | |
cmdname, | |||
cmdstr, | |||
helpstr | |||
) |
Macro for defining a VTY node and function.
[in] | funcname | Name of the function implementing the node |
[in] | cmdname | Name of the command node |
[in] | cmdstr | String with syntax of node |
[in] | helpstr | String with help message of node |
#define DEFUN_ATTR | ( | funcname, | |
cmdname, | |||
cmdstr, | |||
helpstr, | |||
attr | |||
) |
#define DEFUN_CMD_ELEMENT | ( | funcname, | |
cmdname, | |||
cmdstr, | |||
helpstr, | |||
attrs, | |||
dnum | |||
) |
#define DEFUN_CMD_FUNC_TEXT | ( | funcname | ) |
#define DEFUNSH | ( | daemon, | |
funcname, | |||
cmdname, | |||
cmdstr, | |||
helpstr | |||
) |
#define DEFUNSH_ATTR | ( | daemon, | |
funcname, | |||
cmdname, | |||
cmdstr, | |||
helpstr, | |||
attr | |||
) |
#define gDEFUN | ( | funcname, | |
cmdname, | |||
cmdstr, | |||
helpstr | |||
) |
Macro for defining a non-static (global) VTY node and function.
[in] | funcname | Name of the function implementing the node |
[in] | cmdname | Name of the command node |
[in] | cmdstr | String with syntax of node |
[in] | helpstr | String with help message of node |
#define gDEFUN_CMD_ELEMENT | ( | funcname, | |
cmdname, | |||
cmdstr, | |||
helpstr, | |||
attrs, | |||
dnum | |||
) |
enum node_type |
There are some command levels which called from command node.
vector cmd_make_strvec | ( | const char * | string | ) |
Breaking up string into each command piece. I assume given character is separated by a space character. Return value is a vector which includes char ** data element.
References cmd_element::string, and cmd_element::strvec.
void install_element | ( | int | ntype, |
struct cmd_element * | cmd | ||
) |
Install a command into a node.
[in] | ntype | Node Type |
cmd] | element to be installed |
References cmd_make_descvec(), cmd_node::cmd_vector, cmd_element::cmdsize, cmd_element::doc, cmd_element::string, and cmd_element::strvec.
Referenced by vty_init().
void print_version | ( | int | print_copyright | ) |
print the version (and optionally copyright) information
This is called from main when a daemon is invoked with -v or –version.
References host::app_info, vty_app_info::copyright, vty_app_info::name, and vty_app_info::version.
struct cmd_node auth_enable_node |
struct cmd_node config_node |
struct cmd_node enable_node |