Loading...
Searching...
No Matches
VTY Command

VTY command handling. More...

## Files

file | command.h
| Zebra configuration command interface routine.
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...
struct | vty_parent_node

## 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_ERR_INVALID_INDENT 11
#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_ELEMENT_ATTR_USRATTR(funcname, cmdname, cmdstr, helpstr, attrs, usrattrs)
#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_ATTR_USRATTR(funcname, cmdname, attr, usrattr, cmdstr, helpstr)
| Macro for defining a VTY node and function with global & program specific attributes.
#define | DEFUN_USRATTR(funcname, cmdname, usrattr, cmdstr, helpstr) DEFUN_ATTR_USRATTR(funcname, cmdname, 0, usrattr, cmdstr, helpstr)
#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 | VTY_IPV4_CMD "A.B.C.D"
#define | VTY_IPV6_CMD "X:X::X:X"
#define | VTY_IPV46_CMD "(" VTY_IPV4_CMD "|" VTY_IPV6_CMD ")"
#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 | CMD_ATTR_PUBLIC_MASK (CMD_ATTR_HIDDEN | CMD_ATTR_IMMEDIATE | CMD_ATTR_NODE_EXIT)
#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

## Typedefs

typedef int(* | print_func_t) (void *data, const char *fmt,...)

## 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 ,
L_CTRL_NODE ,
L_CS7_NODE ,
L_CS7_AS_NODE ,
L_CS7_ASP_NODE ,
L_CS7_XUA_NODE ,
L_CS7_RTABLE_NODE ,
L_CS7_LINK_NODE ,
L_CS7_LINKSET_NODE ,
L_CS7_SCCPADDR_NODE ,
L_CS7_SCCPADDR_GT_NODE ,
L_CPU_SCHED_NODE ,
L_NS_BIND_NODE ,
L_NS_NSE_NODE ,
RESERVED1_NODE ,
RESERVED2_NODE ,
RESERVED3_NODE ,
RESERVED4_NODE ,
RESERVED5_NODE ,
RESERVED6_NODE ,
RESERVED7_NODE ,
RESERVED8_NODE ,
_LAST_OSMOVTY_NODE
}

| There are some command levels which called from command node. More...
enum | { CMD_ATTR_DEPRECATED = (1 << 0) , CMD_ATTR_HIDDEN = (1 << 1) , CMD_ATTR_IMMEDIATE = (1 << 2) , CMD_ATTR_NODE_EXIT = (1 << 3) , CMD_ATTR_LIB_COMMAND = (1 << 4) }
| Attributes (flags) for cmd_element. More...
enum | { OSMO_SCCP_LIB_ATTR_RSTRT_ASP , OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK , OSMO_ABIS_LIB_ATTR_LINE_UPD , _OSMO_CORE_LIB_ATTR_COUNT }
| Attributes shared between libraries (up to 32 entries). More...
enum | vty_ref_gen_mode { VTY_REF_GEN_MODE_DEFAULT = 0 , VTY_REF_GEN_MODE_EXPERT , VTY_REF_GEN_MODE_HIDDEN }
| VTY reference generation mode. More...
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 }
enum | { ATTR_TYPE_GLOBAL = (1 << 0) , ATTR_TYPE_LIB = (1 << 1) , ATTR_TYPE_APP = (1 << 2) }

## Functions

void | install_node (struct cmd_node *node, int(*func)(struct vty *))
| Install top node of command vector.
void | install_default (int node)
| Deprecated, now happens implicitly when calling install_node().
void | install_element (int ntype, struct cmd_element *cmd)
| Install a command into a node.
void | install_lib_element (int ntype, struct cmd_element *cmd)
| Install a library command into a node.
void | install_element_ve (struct cmd_element *cmd)
void | install_lib_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)
| Deprecated, now happens implicitly when calling install_node().
char * | argv_concat (const char **argv, int argc, int shift)
vector | cmd_make_strvec (const char *string)
| Breaking up string into each command piece.
int | cmd_make_strvec2 (const char *string, char **indent, vector *strvec_p)
| Break up string in command tokens.
void | cmd_free_strvec (vector v)
| Free allocated string vector.
vector | cmd_describe_command (vector vline, struct vty *vty, int *status)
char ** | cmd_complete_command (vector vline, struct vty *vty, int *status)
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)
const char * | host_config_file (void)
void | host_config_set (const char *)
char * | osmo_asciidoc_escape (const char *inp)
| escape all special asciidoc symbols
void | print_version (int print_copyright)
| print the version (and optionally copyright) information
int | vty_dump_xml_ref_mode (FILE *stream, enum vty_ref_gen_mode mode)
| Print the XML reference of all VTY nodes to the given stream.
int | vty_dump_xml_ref (FILE *stream)
| Print the XML reference of all VTY nodes to the given stream.
int | vty_cmd_range_match (const char *range, const char *str)
static const char * | node_name_from_prompt (const char *prompt, char *name_buf, size_t name_buf_size)
static void | install_basic_node_commands (int node)
| Install common commands like 'exit' and 'list'.
static void | install_node_bare (struct cmd_node *node, int(*func)(struct vty *))
| Install top node of command vector, without adding basic node commands.
static int | cmp_node (const void *p, const void *q)
static int | cmp_desc (const void *p, const void *q)
static char * | cmd_desc_str (const char **string)
| Fetch next description.
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 char | cmd_attr_get_flag (unsigned int attr)
static int | vty_dump_element (const struct cmd_element *cmd, print_func_t print_func, void *data, const char *newline)
static bool | vty_command_is_common (const struct cmd_element *cmd)
| Return true if a node is installed by install_basic_node_commands(), so that we can avoid repeating them for each and every node during 'show running-config'.
static int | vty_dump_nodes (print_func_t print_func, void *data, const char *newline, unsigned char gflag_mask, bool match)
static int | print_func_vty (void *data, const char *format,...)
static int | vty_dump_xml_ref_to_vty (struct vty *vty)
static int | print_func_stream (void *data, const char *format,...)
static int | check_element_exists (struct cmd_node *cnode, const char *cmdstring)
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 | check_base (const char *str)
static char * | cmd_deopt (void *ctx, 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)
static int | cmd_lcd (char **matched)
static char ** | cmd_complete_command_real (vector vline, struct vty *vty, int *status)
static struct vty_parent_node * | vty_parent (struct vty *vty)
static bool | vty_pop_parent (struct vty *vty)
static void | vty_clear_parents (struct vty *vty)
int | vty_go_parent (struct vty *vty)
static int | cmd_execute_command_real (vector vline, struct vty *vty, struct cmd_element **cmd)
static size_t | len (const char *str)
static int | indent_cmp (const char *a, const char *b)
| Make sure the common length of strings a and b is identical, then compare their lengths.
| DEFUN (config_terminal, config_terminal_cmd, "configure [terminal]", "Configuration from vty interface\n" "Configuration terminal\n")
| DEFUN (enable, config_enable_cmd, "enable [expert-mode]", "Turn on privileged mode command\n" "Enable the expert mode (show hidden commands)\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 (shutdown, shutdown_cmd, "shutdown", "Request a shutdown of the program\n")
| 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")
| DEFUN (show_pid, show_pid_cmd, "show pid", SHOW_STR "Displays the process ID\n")
| DEFUN (show_uptime, show_uptime_cmd, "show uptime", SHOW_STR "Displays how long the program has been running\n")
| gDEFUN (config_help, config_help_cmd, "help", "Description of the interactive help system\n")
static void | print_attr_list (struct vty *vty, unsigned int attr_mask)
| gDEFUN (show_vty_attr_all, show_vty_attr_all_cmd, "show vty-attributes", SHOW_STR "List of VTY attributes\n")
| gDEFUN (show_vty_attr, show_vty_attr_cmd, "show vty-attributes (application|library|global)", SHOW_STR "List of VTY attributes\n" "Application specific attributes only\n" "Library specific attributes only\n" "Global attributes only\n")
static unsigned int | node_flag_mask (const struct cmd_node *cnode, bool expert_mode)
static const char * | cmd_gflag_mask (const struct cmd_element *cmd)
static const char * | cmd_flag_mask (const struct cmd_element *cmd, unsigned int flag_mask)
| gDEFUN (config_list, config_list_cmd, "list [with-flags]", "Print command list\n" "Also print the VTY attribute flags\n")
static int | write_config_file (const char *config_file, char **outpath)
| DEFUN (config_write_file, config_write_file_cmd, "write file [PATH]", "Write running configuration to memory, network, or terminal\n" "Write to configuration file\n" "Set file path to store the config, or replace if already exists\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
| if (vty->type==VTY_SHELL_SERV)
| vty_out (vty, "!%s", VTY_NEWLINE)
| for (i=0;i< vector_active(cmdvec);i++) if((node
| ALIAS (config_write_terminal, show_running_config_cmd, "show running-config", SHOW_STR "running configuration\n")
| DEFUN (config_hostname, hostname_cmd, "hostname WORD", "Set system's network name\n" "This system's network name\n")
| DEFUN (config_no_hostname, no_hostname_cmd, "no hostname [HOSTNAME]", NO_STR "Reset system's network name\n" "Host name of this router\n")
| DEFUN (config_password, password_cmd, "password (8|) WORD", "Assign the terminal connection password\n" "Specifies a HIDDEN password will follow\n" "dummy string \n" "The HIDDEN line password string\n")
| ALIAS (config_password, password_text_cmd, "password LINE", "Assign the terminal connection password\n" "The UNENCRYPTED (cleartext) line password\n")
| ALIAS (config_enable_password, enable_password_text_cmd, "enable password LINE", "Modify enable password parameters\n" "Assign the privileged level password\n" "The UNENCRYPTED (cleartext) 'enable' password\n")
| DEFUN (config_terminal_length, config_terminal_length_cmd, "terminal length <0-512>", "Set terminal line parameters\n" "Set number of lines on a screen\n" "Number of lines on screen (0 for no pausing)\n")
| DEFUN (config_terminal_no_length, config_terminal_no_length_cmd, "terminal no length", "Set terminal line parameters\n" NO_STR "Set number of lines on a screen\n")
| DEFUN (service_terminal_length, service_terminal_length_cmd, "service terminal-length <0-512>", "Set up miscellaneous service\n" "System wide terminal length configuration\n" "Number of lines of VTY (0 means no line control)\n")
| DEFUN (no_service_terminal_length, no_service_terminal_length_cmd, "no service terminal-length [<0-512>]", NO_STR "Set up miscellaneous service\n" "System wide terminal length configuration\n" "Number of lines of VTY (0 means no line control)\n")
| DEFUN_HIDDEN (do_echo, echo_cmd, "echo .MESSAGE", "Echo a message back to the vty\n" "The message to echo\n")
| DEFUN (banner_motd_file, banner_motd_file_cmd, "banner motd file [FILE]", "Set banner\n" "Banner for motd\n" "Banner from a file\n" "Filename\n")
| DEFUN (banner_motd_default, banner_motd_default_cmd, "banner motd default", "Set banner string\n" "Strings for motd\n" "Default string\n")
| DEFUN (no_banner_motd, no_banner_motd_cmd, "no banner motd", NO_STR "Set banner string\n" "Strings for motd\n")
int | osmo_vty_write_config_file (const char *filename)
| Write the current running config to a given file.
int | osmo_vty_save_config_file (void)
| Save the current state to the config file.
static | __attribute__ ((constructor))

## 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
const struct value_string | vty_ref_gen_mode_names []
const struct value_string | vty_ref_gen_mode_desc []
void * | tall_vty_cmd_ctx
static struct timespec | starttime
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 = ""
static const struct value_string | cmd_attr_desc []
static const char *const | cmd_lib_attr_desc [32]
static const char | cmd_lib_attr_letters [32]
const struct value_string | vty_ref_gen_mode_names []
const struct value_string | vty_ref_gen_mode_desc []
| 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
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 Write running configuration to or terminal n Write to terminal | n
struct cmd_node * | node
| else
return | CMD_SUCCESS

## Detailed Description

VTY command handling.

## Macro Definition Documentation

## ALIAS

#define ALIAS | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0)

## ALIAS_ATTR

#define ALIAS_ATTR | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr,
|  |  | attr
| ) |  | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, 0)

## ALIAS_DEPRECATED

#define ALIAS_DEPRECATED | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, 0)

## ALIAS_HIDDEN

#define ALIAS_HIDDEN | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, 0)

## ALIAS_SH

#define ALIAS_SH | ( |  | daemon,
|  |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, daemon)

## ALIAS_SH_DEPRECATED

#define ALIAS_SH_DEPRECATED | ( |  | daemon,
|  |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, daemon)

## ALIAS_SH_HIDDEN

#define ALIAS_SH_HIDDEN | ( |  | daemon,
|  |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, daemon)

## AREA_TAG_STR

#define AREA_TAG_STR "[area tag]\n"

## AS_STR

#define AS_STR "AS number\n"

## BGP_STR

#define BGP_STR "BGP information\n"

## CLEAR_STR

#define CLEAR_STR "Reset functions\n"

## CMD_ARGC_MAX

#define CMD_ARGC_MAX 256

## CMD_ATTR_PUBLIC_MASK

#define CMD_ATTR_PUBLIC_MASK (CMD_ATTR_HIDDEN | CMD_ATTR_IMMEDIATE | CMD_ATTR_NODE_EXIT)

## CMD_COMPLETE_FULL_MATCH

#define CMD_COMPLETE_FULL_MATCH 7

## CMD_COMPLETE_LIST_MATCH

#define CMD_COMPLETE_LIST_MATCH 9

## CMD_COMPLETE_MATCH

#define CMD_COMPLETE_MATCH 8

## CMD_ERR_AMBIGUOUS

#define CMD_ERR_AMBIGUOUS 3

## CMD_ERR_EXEED_ARGC_MAX

#define CMD_ERR_EXEED_ARGC_MAX 5

## CMD_ERR_INCOMPLETE

#define CMD_ERR_INCOMPLETE 4

## CMD_ERR_INVALID_INDENT

#define CMD_ERR_INVALID_INDENT 11

## CMD_ERR_NO_MATCH

#define CMD_ERR_NO_MATCH 2

## CMD_ERR_NOTHING_TODO

#define CMD_ERR_NOTHING_TODO 6

## CMD_IPV4

#define CMD_IPV4 | ( |  | S | ) | ((strcmp ((S), "A.B.C.D") == 0))

## CMD_IPV4_PREFIX

#define CMD_IPV4_PREFIX | ( |  | S | ) | ((strcmp ((S), "A.B.C.D/M") == 0))

## CMD_IPV6

#define CMD_IPV6 | ( |  | S | ) | ((strcmp ((S), "X:X::X:X") == 0))

## CMD_IPV6_PREFIX

#define CMD_IPV6_PREFIX | ( |  | S | ) | ((strcmp ((S), "X:X::X:X/M") == 0))

## CMD_OPTION

#define CMD_OPTION | ( |  | S | ) | ((S[0]) == '[')

## CMD_RANGE

#define CMD_RANGE | ( |  | S | ) | ((S[0] == '<'))

## CMD_SUCCESS

#define CMD_SUCCESS 0

Return value of the commands.

## CMD_SUCCESS_DAEMON

#define CMD_SUCCESS_DAEMON 10

## CMD_VARARG

#define CMD_VARARG | ( |  | S | ) | ((S[0]) == '.')

## CMD_VARIABLE

#define CMD_VARIABLE | ( |  | S | ) | (((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<'))

## CMD_WARNING

#define CMD_WARNING 1

## CONF_BACKUP_EXT

#define CONF_BACKUP_EXT ".sav"

## CONFIGFILE_MASK

#define CONFIGFILE_MASK 022

## DEBUG_STR

#define DEBUG_STR "Debugging functions (see also 'undebug')\n"

## DEFSH

#define DEFSH | ( |  | daemon,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_CMD_ELEMENT(NULL, cmdname, cmdstr, helpstr, 0, daemon) \

## DEFUN

#define DEFUN | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  |

Value:
DEFUN_CMD_FUNC_DECL(funcname) \
DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) \
DEFUN_CMD_FUNC_TEXT(funcname)
DEFUN_CMD_FUNC_DECL
#define DEFUN_CMD_FUNC_DECL(funcname)
Definition command.h:246

Macro for defining a VTY node and function.

Parameters

  [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

## DEFUN_ATTR

#define DEFUN_ATTR | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr,
|  |  | attr
| ) |  |

Value:
DEFUN_CMD_FUNC_DECL(funcname) \
DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, 0) \
DEFUN_CMD_FUNC_TEXT(funcname)

## DEFUN_ATTR_USRATTR

#define DEFUN_ATTR_USRATTR | ( |  | funcname,
|  |  | cmdname,
|  |  | attr,
|  |  | usrattr,
|  |  | cmdstr,
|  |  | helpstr
| ) |  |

Value:
DEFUN_CMD_FUNC_DECL(funcname) \
DEFUN_CMD_ELEMENT_ATTR_USRATTR(funcname, cmdname, cmdstr, helpstr, attr, usrattr) \
DEFUN_CMD_FUNC_TEXT(funcname)

Macro for defining a VTY node and function with global & program specific attributes.

Parameters

  [in] | funcname | Name of the function implementing the node.
  [in] | cmdname | Name of the command node.
  [in] | attr | Global attributes (see CMD_ATTR_*).
  [in] | usrattr | Program specific attributes.
  [in] | cmdstr | String with syntax of node.
  [in] | helpstr | String with help message of node.

## DEFUN_CMD_ELEMENT

#define DEFUN_CMD_ELEMENT | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr,
|  |  | attrs,
|  |  | dnum
| ) |  |

Value:
static struct cmd_element cmdname = \
{ \
.string = cmdstr, \
.func = funcname, \
.doc = helpstr, \
.attr = attrs, \
.daemon = dnum, \
};
cmd_element
Structure of a command element.
Definition command.h:175
cmd_element::string
const char * string
Command specification by string.
Definition command.h:176

## DEFUN_CMD_ELEMENT_ATTR_USRATTR

#define DEFUN_CMD_ELEMENT_ATTR_USRATTR | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr,
|  |  | attrs,
|  |  | usrattrs
| ) |  |

Value:
static struct cmd_element cmdname = \
{ \
.string = cmdstr, \
.func = funcname, \
.doc = helpstr, \
.attr = attrs, \
.usrattr = usrattrs, \
};

## DEFUN_CMD_FUNC_DECL

#define DEFUN_CMD_FUNC_DECL | ( |  | funcname | ) | static int funcname (struct cmd_element *, struct vty *, int, const char *[]); \

## DEFUN_CMD_FUNC_TEXT

#define DEFUN_CMD_FUNC_TEXT | ( |  | funcname | ) |

Value:
static int funcname \
(struct cmd_element *self, struct vty *vty, int argc, const char *argv[])
argv
argv
Definition tdef_vty.c:296
argc
argc
Definition tdef_vty.c:296
vty
Internal representation of a single VTY.
Definition vty.h:60

## DEFUN_DEPRECATED

#define DEFUN_DEPRECATED | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED)

## DEFUN_HIDDEN

#define DEFUN_HIDDEN | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN)

## DEFUN_NOSH

#define DEFUN_NOSH | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN(funcname, cmdname, cmdstr, helpstr)

## DEFUN_USRATTR

#define DEFUN_USRATTR | ( |  | funcname,
|  |  | cmdname,
|  |  | usrattr,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUN_ATTR_USRATTR(funcname, cmdname, 0, usrattr, cmdstr, helpstr)

## DEFUNSH

#define DEFUNSH | ( |  | daemon,
|  |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  |

Value:
DEFUN_CMD_FUNC_DECL(funcname) \
DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, daemon) \
DEFUN_CMD_FUNC_TEXT(funcname)

## DEFUNSH_ATTR

#define DEFUNSH_ATTR | ( |  | daemon,
|  |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr,
|  |  | attr
| ) |  |

Value:
DEFUN_CMD_FUNC_DECL(funcname) \
DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, daemon) \
DEFUN_CMD_FUNC_TEXT(funcname)

## DEFUNSH_DEPRECATED

#define DEFUNSH_DEPRECATED | ( |  | daemon,
|  |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED)

## DEFUNSH_HIDDEN

#define DEFUNSH_HIDDEN | ( |  | daemon,
|  |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN)

## gALIAS

#define gALIAS | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  | gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0)

## gDEFUN

#define gDEFUN | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr
| ) |  |

Value:
DEFUN_CMD_FUNC_DECL(funcname) \
gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) \
DEFUN_CMD_FUNC_TEXT(funcname)

Macro for defining a non-static (global) VTY node and function.

Parameters

  [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

## gDEFUN_CMD_ELEMENT

#define gDEFUN_CMD_ELEMENT | ( |  | funcname,
|  |  | cmdname,
|  |  | cmdstr,
|  |  | helpstr,
|  |  | attrs,
|  |  | dnum
| ) |  |

Value:
struct cmd_element cmdname = \
{ \
.string = cmdstr, \
.func = funcname, \
.doc = helpstr, \
.attr = attrs, \
.daemon = dnum, \
};

## IFNAME_STR

#define IFNAME_STR "Interface name(e.g. ep0)\n"

## IN_STR

#define IN_STR "Filter incoming routing updates\n"

## INTERFACE_STR

#define INTERFACE_STR "Interface infomation\n"

## IP6_STR

#define IP6_STR "IPv6 Information\n"

## IP_STR

#define IP_STR "IP information\n"

## IPV6_ADDR_STR

#define IPV6_ADDR_STR "0123456789abcdefABCDEF:.%"

## IPV6_PREFIX_STR

#define IPV6_PREFIX_STR "0123456789abcdefABCDEF:.%/"

## IPV6_STR

#define IPV6_STR "IPv6 information\n"

## ISIS_STR

#define ISIS_STR "IS-IS information\n"

## MATCH_STR

#define MATCH_STR "Match values from routing table\n"

## MBGP_STR

#define MBGP_STR "MBGP information\n"

## NEIGHBOR_ADDR_STR

#define NEIGHBOR_ADDR_STR "Neighbor address\n"

## NEIGHBOR_ADDR_STR2

#define NEIGHBOR_ADDR_STR2 "Neighbor address\nNeighbor tag\n"

## NEIGHBOR_CMD

#define NEIGHBOR_CMD "neighbor A.B.C.D "

## NEIGHBOR_CMD2

#define NEIGHBOR_CMD2 "neighbor (A.B.C.D|WORD) "

## NEIGHBOR_STR

#define NEIGHBOR_STR "Specify neighbor router\n"

## NO_NEIGHBOR_CMD

#define NO_NEIGHBOR_CMD "no neighbor A.B.C.D "

## NO_NEIGHBOR_CMD2

#define NO_NEIGHBOR_CMD2 "no neighbor (A.B.C.D|WORD) "

## NO_STR

#define NO_STR "Negate a command or set its defaults\n"

## OSPF6_DUMP_TYPE_LIST

#define OSPF6_DUMP_TYPE_LIST "(neighbor|interface|area|lsa|zebra|config|dbex|spf|route|lsdb|redistribute|hook|asbr|prefix|abr)"

## OSPF6_INSTANCE_STR

#define OSPF6_INSTANCE_STR "<1-65535> Instance ID\n"

## OSPF6_NUMBER_STR

#define OSPF6_NUMBER_STR "Specify by number\n"

## OSPF6_ROUTER_STR

#define OSPF6_ROUTER_STR "Enable a routing process\n"

## OSPF6_STR

#define OSPF6_STR "Open Shortest Path First (OSPF) for IPv6\n"

## OSPF_STR

#define OSPF_STR "OSPF information\n"

## OUT_STR

#define OUT_STR "Filter outgoing routing updates\n"

## PREFIX_LIST_STR

#define PREFIX_LIST_STR "Build a prefix list\n"

## RIP_STR

#define RIP_STR "RIP information\n"

## ROUTE_STR

#define ROUTE_STR "Routing Table\n"

## ROUTER_STR

#define ROUTER_STR "Enable a routing process\n"

## SECONDS_STR

#define SECONDS_STR "<1-65535> Seconds\n"

## SET_STR

#define SET_STR "Set values in destination routing protocol\n"

## SHOW_STR

#define SHOW_STR "Show running system information\n"

## STATE_ADDR

#define STATE_ADDR 4

## STATE_COLON

#define STATE_COLON 2

## STATE_DOT

#define STATE_DOT 5

## STATE_DOUBLE

#define STATE_DOUBLE 3

## STATE_MASK

#define STATE_MASK 7

## STATE_SLASH

#define STATE_SLASH 6

## STATE_START

#define STATE_START 1

## UNDEBUG_STR

#define UNDEBUG_STR "Disable debugging functions (see also 'debug')\n"

## V4NOTATION_STR

#define V4NOTATION_STR "specify by IPv4 address notation(e.g. 0.0.0.0)\n"

## VTY_IPV46_CMD

#define VTY_IPV46_CMD "(" VTY_IPV4_CMD "|" VTY_IPV6_CMD ")"

## VTY_IPV4_CMD

#define VTY_IPV4_CMD "A.B.C.D"

## VTY_IPV6_CMD

#define VTY_IPV6_CMD "X:X::X:X"

## Typedef Documentation

## print_func_t

typedef int(* print_func_t) (void *data, const char *fmt,...)

## Enumeration Type Documentation

## anonymous enum

anonymous enum

Attributes (flags) for cmd_element.

Enumerator
CMD_ATTR_DEPRECATED |
CMD_ATTR_HIDDEN |
CMD_ATTR_IMMEDIATE |
CMD_ATTR_NODE_EXIT |
CMD_ATTR_LIB_COMMAND |

## anonymous enum

anonymous enum

Attributes shared between libraries (up to 32 entries).

Enumerator
OSMO_SCCP_LIB_ATTR_RSTRT_ASP |
OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK |
OSMO_ABIS_LIB_ATTR_LINE_UPD |
_OSMO_CORE_LIB_ATTR_COUNT |

## anonymous enum

anonymous enum

Enumerator
ATTR_TYPE_GLOBAL |
ATTR_TYPE_LIB |
ATTR_TYPE_APP |

## match_type

enum match_type

Enumerator
NO_MATCH |
ANY_MATCH |
EXTEND_MATCH |
IPV4_PREFIX_MATCH |
IPV4_MATCH |
IPV6_PREFIX_MATCH |
IPV6_MATCH |
RANGE_MATCH |
VARARG_MATCH |
PARTLY_MATCH |
EXACT_MATCH |

## node_type

enum node_type

There are some command levels which called from command node.

Enumerator
AUTH_NODE | Authentication mode of vty interface.
VIEW_NODE | View node. Default mode of vty interface.
AUTH_ENABLE_NODE | Authentication mode for change enable.
ENABLE_NODE | Enable node.
CONFIG_NODE | Config node. Default mode of config file.
SERVICE_NODE | Service node.
DEBUG_NODE | Debug node.
CFG_LOG_NODE | Configure the logging.
CFG_STATS_NODE | Configure the statistics.
VTY_NODE | Vty node.
L_E1INP_NODE | E1 line in libosmo-abis.
L_IPA_NODE | IPA proxying commands in libosmo-abis.
L_NS_NODE | NS node in libosmo-gb.
L_BSSGP_NODE | BSSGP node in libosmo-gb.
L_CTRL_NODE | Control interface node.
L_CS7_NODE | SS7 root node.
L_CS7_AS_NODE | SS7 Application Server.
L_CS7_ASP_NODE | SS7 Application Server Process.
L_CS7_XUA_NODE | SS7 xUA Listener.
L_CS7_RTABLE_NODE | SS7 Routing Table.
L_CS7_LINK_NODE | SS7 Link.
L_CS7_LINKSET_NODE | SS7 Linkset.
L_CS7_SCCPADDR_NODE | SS7 SCCP Address.
L_CS7_SCCPADDR_GT_NODE | SS7 SCCP Global Title.
L_CPU_SCHED_NODE | CPU Sched related options node.
L_NS_BIND_NODE | NS bind node.
L_NS_NSE_NODE | NS NSE node.
RESERVED1_NODE | Reserved for later extensions.
RESERVED2_NODE | Reserved for later extensions.
RESERVED3_NODE | Reserved for later extensions.
RESERVED4_NODE | Reserved for later extensions.
RESERVED5_NODE | Reserved for later extensions.
RESERVED6_NODE | Reserved for later extensions.
RESERVED7_NODE | Reserved for later extensions.
RESERVED8_NODE | Reserved for later extensions.
_LAST_OSMOVTY_NODE |

## vty_ref_gen_mode

enum vty_ref_gen_mode

VTY reference generation mode.

Enumerator
VTY_REF_GEN_MODE_DEFAULT | Default mode: all commands except deprecated and hidden.
VTY_REF_GEN_MODE_EXPERT | Expert mode: all commands including hidden, excluding deprecated.
VTY_REF_GEN_MODE_HIDDEN | "Inverse" mode: only hidden commands.

## Function Documentation

## __attribute__()

static __attribute__ | ( | (constructor) |  | ) |

static

References __attribute__, osmo_clock_gettime(), and starttime.

## ALIAS() [1/4]

ALIAS | ( | config_enable_password | ,
|  | enable_password_text_cmd | ,
|  | "enable password LINE" | ,
|  | "Modify enable password parameters\n" "Assign the privileged level password\n" "The UNENCRYPTED (cleartext) 'enable' password\n" |
| ) |  |

References CMD_SUCCESS, host::enable, and host::enable_encrypt.

## ALIAS() [2/4]

ALIAS | ( | config_password | ,
|  | password_text_cmd | ,
|  | "password LINE" | ,
|  | "Assign the terminal connection password\n" "The UNENCRYPTED (cleartext) line password\n" |
| ) |  |

References argc, argv, CMD_SUCCESS, CMD_WARNING, host::enable, host::enable_encrypt, host::encrypt, tall_vty_cmd_ctx, VTY_NEWLINE, and vty_out().

## ALIAS() [3/4]

ALIAS | ( | config_write_file | ,
|  | config_write_cmd | ,
|  | "write" | ,
|  | "Write running configuration to | memory,
|  | network | ,
|  | or terminal\n" |
| ) |  |

## ALIAS() [4/4]

ALIAS | ( | config_write_terminal | ,
|  | show_running_config_cmd | ,
|  | "show running-config" | ,
|  | SHOW_STR "running configuration\n" |
| ) |  |

References CMD_SUCCESS, CMD_WARNING, host::config, VTY_NEWLINE, and vty_out().

## argv_concat()

char * argv_concat | ( | const char ** | argv,
|  | int | argc,
|  | int | shift
| ) |  |

References argc, argv, len, and tall_vty_cmd_ctx.

Referenced by DEFUN(), DEFUN_HIDDEN(), and gDEFUN().

## check_base()

static int check_base | ( | const char * | str | ) |

static

Referenced by vty_cmd_range_match().

## check_element_exists()

static int check_element_exists | ( | struct cmd_node * | cnode,
|  | const char * | cmdstring
| ) |  |

static

References cmd_node::cmd_vector, cmd_element::string, vector_active, and vector_slot.

Referenced by install_element().

## cmd_attr_get_flag()

static char cmd_attr_get_flag | ( | unsigned int | attr | ) |

static

References CMD_ATTR_HIDDEN, CMD_ATTR_IMMEDIATE, and CMD_ATTR_NODE_EXIT.

Referenced by cmd_gflag_mask(), print_attr_list(), and vty_dump_element().

## cmd_cmdsize()

static int cmd_cmdsize | ( | vector | strvec | ) |

static

References desc::cmd, CMD_OPTION, vector_active, and vector_slot.

Referenced by install_element().

## cmd_complete_command()

char ** cmd_complete_command | ( | vector | vline,
|  | struct vty * | vty,
|  | int * | status
| ) |  |

References cmd_complete_command_real(), cmd_try_do_shortcut(), ENABLE_NODE, vty::node, vector_active, vector_count(), vector_free(), vector_init(), vector_lookup(), vector_set_index(), and vector_slot.

Referenced by vty_complete_command().

## cmd_complete_command_real()

static char ** cmd_complete_command_real | ( | vector | vline,
|  | struct vty * | vty,
|  | int * | status
| ) |  |

static

References ANY_MATCH, desc::cmd, CMD_COMPLETE_FULL_MATCH, CMD_COMPLETE_LIST_MATCH, CMD_COMPLETE_MATCH, cmd_deopt(), cmd_entry_function(), CMD_ERR_AMBIGUOUS, CMD_ERR_NO_MATCH, CMD_ERR_NOTHING_TODO, cmd_filter(), cmd_lcd(), cmd_node_vector(), CMD_OPTION, cmd_unique_string(), cmdvec, _vector::index, INIT_MATCHVEC_SIZE, is_cmd_ambiguous(), len, vty::node, cmd_element::strvec, tall_vty_cmd_ctx, vector_active, vector_copy(), vector_free(), vector_init(), vector_only_wrapper_free(), vector_set(), and vector_slot.

Referenced by cmd_complete_command().

## cmd_deopt()

static char * cmd_deopt | ( | void * | ctx,
|  | const char * | str
| ) |  |

static

References len.

Referenced by cmd_complete_command_real(), cmd_execute_command_real(), cmd_match(), and is_cmd_ambiguous().

## cmd_desc_str()

static char * cmd_desc_str | ( | const char ** | string | ) |

static

Fetch next description.

Used in cmd_make_descvec().

References start, cmd_element::string, and tall_vty_cmd_ctx.

Referenced by cmd_make_descvec().

## cmd_describe_command()

vector cmd_describe_command | ( | vector | vline,
|  | struct vty * | vty,
|  | int * | status
| ) |  |

References cmd_describe_command_real(), cmd_try_do_shortcut(), ENABLE_NODE, vty::node, vector_active, vector_count(), vector_free(), vector_init(), vector_lookup(), vector_set_index(), and vector_slot.

Referenced by vty_describe_command().

## cmd_describe_command_real()

static vector cmd_describe_command_real | ( | vector | vline,
|  | struct vty * | vty,
|  | int * | status
| ) |  |

static

References ANY_MATCH, cmd_element::attr, desc::cmd, CMD_ATTR_DEPRECATED, CMD_ATTR_HIDDEN, cmd_entry_function_desc(), CMD_ERR_AMBIGUOUS, CMD_ERR_NO_MATCH, cmd_filter(), cmd_node_vector(), CMD_SUCCESS, cmdvec, desc_unique_string(), vty::expert_mode, INIT_MATCHVEC_SIZE, is_cmd_ambiguous(), vty::node, cmd_element::strvec, VARARG_MATCH, vector_active, vector_copy(), vector_free(), vector_init(), vector_set(), and vector_slot.

Referenced by cmd_describe_command().

## cmd_entry_function()

static const char * cmd_entry_function | ( | const char * | src,
|  | const char * | dst
| ) |  |

static

References CMD_IPV4, CMD_IPV4_PREFIX, CMD_OPTION, CMD_RANGE, CMD_VARARG, and CMD_VARIABLE.

Referenced by cmd_complete_command_real().

## cmd_entry_function_desc()

static const char * cmd_entry_function_desc | ( | const char * | src,
|  | const char * | dst
| ) |  |

static

References CMD_IPV4, cmd_ipv4_match(), CMD_IPV4_PREFIX, cmd_ipv4_prefix_match(), CMD_IPV6, CMD_IPV6_PREFIX, CMD_OPTION, CMD_RANGE, CMD_VARARG, CMD_VARIABLE, and vty_cmd_range_match().

Referenced by cmd_describe_command_real().

## cmd_execute_command()

int cmd_execute_command | ( | vector | vline,
|  | struct vty * | vty,
|  | struct cmd_element ** | cmd,
|  | int | vtysh
| ) |  |

References cmd_execute_command_real(), cmd_try_do_shortcut(), ENABLE_NODE, vty_parent_node::index, vty::node, vector_active, vector_count(), vector_free(), vector_init(), vector_lookup(), vector_set_index(), and vector_slot.

Referenced by vty_command().

## cmd_execute_command_real()

static int cmd_execute_command_real | ( | vector | vline,
|  | struct vty * | vty,
|  | struct cmd_element ** | cmd
| ) |  |

static

References ANY_MATCH, argc, argv, desc::cmd, CMD_ARGC_MAX, cmd_deopt(), CMD_ERR_AMBIGUOUS, CMD_ERR_EXEED_ARGC_MAX, CMD_ERR_INCOMPLETE, CMD_ERR_NO_MATCH, cmd_filter(), cmd_match(), cmd_node_vector(), CMD_OPTION, CMD_SUCCESS_DAEMON, CMD_VARARG, CMD_VARIABLE, cmd_element::cmdsize, cmdvec, CONFIG_NODE, cmd_element::daemon, vty_parent_node::entry, cmd_element::func, vty::indent, vty::index, vty_parent_node::index, is_cmd_ambiguous(), NO_MATCH, vty::node, vty_parent_node::node, vty::parent_nodes, vty::priv, cmd_element::string, cmd_element::strvec, tall_vty_cmd_ctx, VARARG_MATCH, vector_active, vector_copy(), vector_free(), vector_slot, and vty_parent().

Referenced by cmd_execute_command().

## cmd_execute_command_strict()

int cmd_execute_command_strict | ( | vector | vline,
|  | struct vty * | vty,
|  | struct cmd_element ** | cmd
| ) |  |

References argc, argv, desc::cmd, CMD_ARGC_MAX, CMD_ERR_AMBIGUOUS, CMD_ERR_EXEED_ARGC_MAX, CMD_ERR_INCOMPLETE, CMD_ERR_NO_MATCH, cmd_filter(), cmd_node_vector(), CMD_OPTION, CMD_SUCCESS_DAEMON, CMD_VARARG, CMD_VARIABLE, cmd_element::cmdsize, cmdvec, cmd_element::daemon, EXACT_MATCH, cmd_element::func, vty_parent_node::index, is_cmd_ambiguous(), vty::node, cmd_element::strvec, VARARG_MATCH, vector_active, vector_copy(), vector_free(), and vector_slot.

Referenced by config_from_file().

## cmd_filter()

static enum match_type cmd_filter | ( | char * | command,
|  | vector | v,
|  | unsigned int | index,
|  | enum match_type | level
| ) |  |

static

References ANY_MATCH, desc::cmd, cmd_match(), level, NO_MATCH, cmd_element::strvec, vector_active, and vector_slot.

Referenced by cmd_complete_command_real(), cmd_describe_command_real(), cmd_execute_command_real(), and cmd_execute_command_strict().

## cmd_flag_mask()

static const char * cmd_flag_mask | ( | const struct cmd_element * | cmd,
|  | unsigned int | flag_mask
| ) |  |

static

References host::app_info, cmd_element::attr, CMD_ATTR_LIB_COMMAND, cmd_lib_attr_letters, vty_app_info::usr_attr_letters, cmd_element::usrattr, and VTY_CMD_USR_ATTR_NUM.

Referenced by gDEFUN().

## cmd_free_strvec()

void cmd_free_strvec | ( | vector | v | ) |

Free allocated string vector.

References vector_active, vector_free(), and vector_slot.

Referenced by config_from_file(), vty_command(), vty_complete_command(), and vty_describe_command().

## cmd_gflag_mask()

static const char * cmd_gflag_mask | ( | const struct cmd_element * | cmd | ) |

static

References cmd_element::attr, cmd_attr_get_flag(), CMD_ATTR_HIDDEN, CMD_ATTR_IMMEDIATE, and CMD_ATTR_NODE_EXIT.

Referenced by gDEFUN().

## cmd_init()

void cmd_init | ( | int | terminal | ) |

References auth_enable_node, auth_node, cmdvec, host::config, config_exit_cmd, config_help_cmd, config_list_cmd, CONFIG_NODE, config_node, config_write_host(), copy_runningconfig_startupconfig_cmd, default_motd, host::enable, ENABLE_NODE, enable_node, install_lib_element(), install_node(), install_node_bare(), host::lines, host::logfile, host::motd, host::motdfile, host::name, host::password, terminal, time, vector_init(), VECTOR_MIN_SIZE, VIEW_NODE, and view_node.

Referenced by vty_init().

## cmd_ipv4_match()

static enum match_type cmd_ipv4_match | ( | const char * | str | ) |

static

References EXACT_MATCH, NO_MATCH, and PARTLY_MATCH.

Referenced by cmd_entry_function_desc(), and cmd_match().

## cmd_ipv4_prefix_match()

static enum match_type cmd_ipv4_prefix_match | ( | const char * | str | ) |

static

References EXACT_MATCH, NO_MATCH, and PARTLY_MATCH.

Referenced by cmd_entry_function_desc(), cmd_match(), and is_cmd_ambiguous().

## cmd_lcd()

static int cmd_lcd | ( | char ** | matched | ) |

static

Referenced by cmd_complete_command_real().

## cmd_make_descvec()

static vector cmd_make_descvec | ( | const char * | string,
|  | const char * | descstr
| ) |  |

static

New string vector.

References desc::cmd, cmd_desc_str(), len, OSMO_ASSERT, desc::str, cmd_element::strvec, tall_vty_cmd_ctx, vector_init(), VECTOR_MIN_SIZE, and vector_set().

Referenced by install_element().

## cmd_make_strvec()

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_make_strvec2(), and cmd_element::strvec.

Referenced by vty_command(), vty_complete_command(), and vty_describe_command().

## cmd_make_strvec2()

int cmd_make_strvec2 | ( | const char * | string,
|  | char ** | indent,
|  | vector * | strvec_p
| ) |  |

Break up string in command tokens.

Return leading indents.

Parameters

  [in] | string | String to split.
  [out] | indent | If not NULL, return a talloc_strdup of indent characters.
  [out] | strvec_p | Returns vector of split tokens, must not be NULL.

Returns
  CMD_SUCCESS or CMD_ERR_INVALID_INDENT

If indent is passed non-NULL, only simple space ' ' indents are allowed, so that indent can simply return the count of leading spaces. Otherwise any isspace() characters are allowed for indenting (backwards compat).

References CMD_ERR_INVALID_INDENT, CMD_SUCCESS, start, cmd_element::string, cmd_element::strvec, tall_vty_cmd_ctx, vector_init(), VECTOR_MIN_SIZE, and vector_set().

Referenced by cmd_make_strvec(), and config_from_file().

## cmd_match()

static enum match_type cmd_match | ( | const char * | str,
|  | const char * | command,
|  | enum match_type | min,
|  | bool | recur
| ) |  |

static

References cmd_deopt(), CMD_IPV4, cmd_ipv4_match(), CMD_IPV4_PREFIX, cmd_ipv4_prefix_match(), CMD_IPV6, CMD_IPV6_PREFIX, cmd_match(), CMD_OPTION, CMD_RANGE, CMD_VARARG, CMD_VARIABLE, EXACT_MATCH, EXTEND_MATCH, IPV4_MATCH, IPV4_PREFIX_MATCH, IPV6_MATCH, IPV6_PREFIX_MATCH, NO_MATCH, PARTLY_MATCH, RANGE_MATCH, tall_vty_cmd_ctx, VARARG_MATCH, and vty_cmd_range_match().

Referenced by cmd_execute_command_real(), cmd_filter(), and cmd_match().

## cmd_node_vector()

static vector cmd_node_vector | ( | vector | v,
|  | enum node_type | ntype
| ) |  |

static

References cmd_node::cmd_vector, OSMO_ASSERT, and vector_slot.

Referenced by cmd_complete_command_real(), cmd_describe_command_real(), cmd_execute_command_real(), and cmd_execute_command_strict().

## cmd_prompt()

const char * cmd_prompt | ( | enum node_type | node | ) |

Return prompt character of specified node.

References cmdvec, node, cmd_node::prompt, and vector_slot.

Referenced by vty_prompt().

## cmd_try_do_shortcut()

static int cmd_try_do_shortcut | ( | enum node_type | node,
|  | char * | first_word
| ) |  |

static

References AUTH_ENABLE_NODE, AUTH_NODE, ENABLE_NODE, node, and VIEW_NODE.

Referenced by cmd_complete_command(), cmd_describe_command(), and cmd_execute_command().

## cmd_unique_string()

static int cmd_unique_string | ( | vector | v,
|  | const char * | str
| ) |  |

static

References desc::str, vector_active, and vector_slot.

Referenced by cmd_complete_command_real().

## cmp_desc()

static int cmp_desc | ( | const void * | p,
|  | const void * | q
| ) |  |

static

References desc::cmd.

Referenced by sort_node().

## cmp_node()

static int cmp_node | ( | const void * | p,
|  | const void * | q
| ) |  |

static

References cmd_element::string.

Referenced by sort_node().

## 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 | ( | same as write | file | ) |

## config_from_file()

int config_from_file | ( | struct vty * | vty,
|  | FILE * | fp
| ) |  |

References vty::buf, CMD_ERR_INVALID_INDENT, CMD_ERR_NOTHING_TODO, cmd_execute_command_strict(), cmd_free_strvec(), cmd_make_strvec2(), CMD_SUCCESS, vty_parent_node::entry, vty::indent, vty_parent_node::indent, indent_cmp(), vty::index, vty::node, vty_parent_node::node, vty::parent_nodes, vty::priv, VTY_BUFSIZ, vty_go_parent(), and vty_parent().

Referenced by vty_read_config_filep().

## config_replace_string()

void config_replace_string | ( | struct cmd_element * | ,
|  | char * | ,
|  |  | ...
| ) |  |

## config_write_host()

static int config_write_host | ( | struct vty * | vty | ) |

static

References host::advanced, host::enable, host::enable_encrypt, host::encrypt, host::lines, host::motd, host::motdfile, host::name, host::password, host::password_encrypt, VTY_NEWLINE, and vty_out().

Referenced by cmd_init().

## DEFUN() [1/19]

DEFUN | ( | banner_motd_default | ,
|  | banner_motd_default_cmd | ,
|  | "banner motd default" | ,
|  | "Set banner string\n" "Strings for motd\n" "Default string\n" |
| ) |  |

References CMD_SUCCESS, default_motd, and host::motd.

## DEFUN() [2/19]

DEFUN | ( | banner_motd_file | ,
|  | banner_motd_file_cmd | ,
|  | "banner motd file " | [FILE],
|  | "Set banner\n" "Banner for motd\n" "Banner from a file\n" "Filename\n" |
| ) |  |

References argv, CMD_SUCCESS, host::motdfile, and tall_vty_cmd_ctx.

## DEFUN() [3/19]

DEFUN | ( | config_hostname | ,
|  | hostname_cmd | ,
|  | "hostname WORD" | ,
|  | "Set system's network name\n" "This system's network name\n" |
| ) |  |

References argv, CMD_SUCCESS, CMD_WARNING, host::name, tall_vty_cmd_ctx, VTY_NEWLINE, and vty_out().

## DEFUN() [4/19]

DEFUN | ( | config_no_hostname | ,
|  | no_hostname_cmd | ,
|  | "no hostname " | [HOSTNAME],
|  | NO_STR "Reset system's network name\n" "Host name of this router\n" |
| ) |  |

References CMD_SUCCESS, and host::name.

## DEFUN() [5/19]

DEFUN | ( | config_password | ,
|  | password_cmd | ,
|  | "password (8|) WORD" | ,
|  | "Assign the terminal connection password\n" "Specifies a HIDDEN password will follow\n" "dummy string \n" "The HIDDEN line password string\n" |
| ) |  |

References argc, argv, CMD_SUCCESS, CMD_WARNING, host::encrypt, host::password, host::password_encrypt, tall_vty_cmd_ctx, VTY_NEWLINE, and vty_out().

## DEFUN() [6/19]

DEFUN | ( | config_terminal | ,
|  | config_terminal_cmd | ,
|  | "configure " | [terminal],
|  | "Configuration from vty interface\n" "Configuration terminal\n" |
| ) |  |

References CMD_SUCCESS, CMD_WARNING, CONFIG_NODE, vty::node, vty_config_lock(), VTY_NEWLINE, and vty_out().

## DEFUN() [7/19]

DEFUN | ( | config_terminal_length | ,
|  | config_terminal_length_cmd | ,
|  | "terminal length <0-512>" | ,
|  | "Set terminal line parameters\n" "Set number of lines on a screen\n" "Number of lines on screen (0 for no pausing)\n" |
| ) |  |

References argv, CMD_SUCCESS, and vty::lines.

## DEFUN() [8/19]

DEFUN | ( | config_terminal_no_length | ,
|  | config_terminal_no_length_cmd | ,
|  | "terminal no length" | ,
|  | "Set terminal line parameters\n" NO_STR "Set number of lines on a screen\n" |
| ) |  |

References CMD_SUCCESS, and vty::lines.

## DEFUN() [9/19]

DEFUN | ( | config_write_file | ,
|  | config_write_file_cmd | ,
|  | "write file " | [PATH],
|  | "Write running configuration to | memory,
|  | network | ,
|  | or terminal\n" "Write to configuration file\n" "Set file path to store the | config,
|  | or replace if already exists\n" |
| ) |  |

References host::app_info, argc, argv, CMD_SUCCESS, CMD_WARNING, host::config, vty_app_info::config_is_consistent, host_config_set(), VTY_NEWLINE, vty_out(), and write_config_file().

## DEFUN() [10/19]

DEFUN | ( | disable | ,
|  | config_disable_cmd | ,
|  | "disable" | ,
|  | "Turn off privileged mode command\n" |
| ) |  |

References CMD_SUCCESS, ENABLE_NODE, vty::expert_mode, vty::node, and VIEW_NODE.

## DEFUN() [11/19]

DEFUN | ( | enable | ,
|  | config_enable_cmd | ,
|  | "enable " | [expert-mode],
|  | "Turn on privileged mode command\n" "Enable the expert mode (show hidden commands)\n" |
| ) |  |

References argc, AUTH_ENABLE_NODE, CMD_SUCCESS, host::enable, host::enable_encrypt, ENABLE_NODE, vty::expert_mode, vty::node, vty::type, and VTY_SHELL_SERV.

## DEFUN() [12/19]

DEFUN | ( | no_banner_motd | ,
|  | no_banner_motd_cmd | ,
|  | "no banner motd" | ,
|  | NO_STR "Set banner string\n" "Strings for motd\n" |
| ) |  |

References CMD_SUCCESS, host::motd, and host::motdfile.

## DEFUN() [13/19]

DEFUN | ( | no_service_terminal_length | ,
|  | no_service_terminal_length_cmd | ,
|  | "no service terminal-length " | [< 0-512 >],
|  | NO_STR "Set up miscellaneous service\n" "System wide terminal length configuration\n" "Number of lines of VTY (0 means no line control)\n" |
| ) |  |

References CMD_SUCCESS, and host::lines.

## DEFUN() [14/19]

DEFUN | ( | service_terminal_length | ,
|  | service_terminal_length_cmd | ,
|  | "service terminal-length <0-512>" | ,
|  | "Set up miscellaneous service\n" "System wide terminal length configuration\n" "Number of lines of VTY (0 means no line control)\n" |
| ) |  |

References argv, CMD_SUCCESS, and host::lines.

## DEFUN() [15/19]

DEFUN | ( | show_online_help | ,
|  | show_online_help_cmd | ,
|  | "show online-help" | ,
|  | SHOW_STR "Online help\n" |
| ) |  |

References CMD_SUCCESS, and vty_dump_xml_ref_to_vty().

## DEFUN() [16/19]

DEFUN | ( | show_pid | ,
|  | show_pid_cmd | ,
|  | "show pid" | ,
|  | SHOW_STR "Displays the process ID\n" |
| ) |  |

References CMD_SUCCESS, VTY_NEWLINE, and vty_out().

## DEFUN() [17/19]

DEFUN | ( | show_uptime | ,
|  | show_uptime_cmd | ,
|  | "show uptime" | ,
|  | SHOW_STR "Displays how long the program has been running\n" |
| ) |  |

References host::app_info, CMD_SUCCESS, vty_app_info::name, starttime, vty_out(), vty_out_newline(), and vty_out_uptime().

## DEFUN() [18/19]

DEFUN | ( | show_version | ,
|  | show_version_cmd | ,
|  | "show version" | ,
|  | SHOW_STR "Displays program version\n" |
| ) |  |

References host::app_info, CMD_SUCCESS, vty_app_info::copyright, vty_app_info::name, vty_app_info::version, VTY_NEWLINE, and vty_out().

## DEFUN() [19/19]

DEFUN | ( | shutdown | ,
|  | shutdown_cmd | ,
|  | "shutdown" | ,
|  | "Request a shutdown of the program\n" |
| ) |  |

References host::app_info, CMD_SUCCESS, DLGLOBAL, LOGL_INFO, LOGP, vty_app_info::name, VTY_NEWLINE, and vty_out().

## DEFUN_HIDDEN()

DEFUN_HIDDEN | ( | do_echo | ,
|  | echo_cmd | ,
|  | "echo .MESSAGE" | ,
|  | "Echo a message back to the vty\n" "The message to echo\n" |
| ) |  |

References argc, argv, argv_concat(), CMD_SUCCESS, VTY_NEWLINE, and vty_out().

## desc_unique_string()

static int desc_unique_string | ( | vector | v,
|  | const char * | str
| ) |  |

static

References desc::cmd, desc::str, vector_active, and vector_slot.

Referenced by cmd_describe_command_real().

## file()

write Write running configuration to or terminal n Write configuration to the file | ( | same as write | file | ) |

## for()

for | ( |  | ) |

## gDEFUN() [1/6]

gDEFUN | ( | config_end | ,
|  | config_end_cmd | ,
|  | "end" | ,
|  | "End current mode and change to enable mode." |
| ) |  |

References CMD_SUCCESS, CONFIG_NODE, ENABLE_NODE, vty::index, vty::index_sub, vty::node, vty_config_unlock(), and vty_go_parent().

## gDEFUN() [2/6]

gDEFUN | ( | config_exit | ,
|  | config_exit_cmd | ,
|  | "exit" | ,
|  | "Exit current mode and down to previous mode\n" |
| ) |  |

References AUTH_NODE, CMD_SUCCESS, CONFIG_NODE, ENABLE_NODE, vty::node, vty::status, VIEW_NODE, vty_config_unlock(), and vty_go_parent().

## gDEFUN() [3/6]

gDEFUN | ( | config_help | ,
|  | config_help_cmd | ,
|  | "help" | ,
|  | "Description of the interactive help system\n" |
| ) |  |

References CMD_SUCCESS, VTY_NEWLINE, and vty_out().

## gDEFUN() [4/6]

gDEFUN | ( | config_list | ,
|  | config_list_cmd | ,
|  | "list " | [with-flags],
|  | "Print command list\n" "Also print the VTY attribute flags\n" |
| ) |  |

References argc, cmd_element::attr, CMD_ATTR_DEPRECATED, CMD_ATTR_HIDDEN, cmd_flag_mask(), cmd_gflag_mask(), CMD_SUCCESS, cmd_node::cmd_vector, cmdvec, vty::expert_mode, vty::node, node_flag_mask(), cmd_element::string, vector_active, vector_slot, VTY_NEWLINE, and vty_out().

## gDEFUN() [5/6]

gDEFUN | ( | show_vty_attr | ,
|  | show_vty_attr_cmd | ,
|  | "show vty-attributes (application|library|global)" | ,
|  | SHOW_STR "List of VTY attributes\n" "Application specific attributes only\n" "Library specific attributes only\n" "Global attributes only\n" |
| ) |  |

References argv, ATTR_TYPE_APP, ATTR_TYPE_GLOBAL, ATTR_TYPE_LIB, CMD_SUCCESS, and print_attr_list().

## gDEFUN() [6/6]

gDEFUN | ( | show_vty_attr_all | ,
|  | show_vty_attr_all_cmd | ,
|  | "show vty-attributes" | ,
|  | SHOW_STR "List of VTY attributes\n" |
| ) |  |

References CMD_SUCCESS, and print_attr_list().

## host_config_file()

const char * host_config_file | ( | void |  | ) |

References host::config.

## host_config_set()

void host_config_set | ( | const char * | filename | ) |

References host::config, and tall_vty_cmd_ctx.

Referenced by DEFUN(), and vty_read_config_file().

## if()

if | ( | vty-> | type = `= VTY_SHELL_SERV` | ) |

References cmdvec, cmd_node::func, node, vector_active, vector_slot, VTY_NEWLINE, vty_out(), and cmd_node::vtysh.

## indent_cmp()

static int indent_cmp | ( | const char * | a,
|  | const char * | b
| ) |  |

static

Make sure the common length of strings a and b is identical, then compare their lengths.

I.e., if a is longer than b, a must start with exactly b, and vice versa.

Returns
  EINVAL on mismatch, -1 for a < b, 0 for a == b, 1 for a > b.

References len.

Referenced by config_from_file().

## install_basic_node_commands()

static void install_basic_node_commands | ( | int | node | ) |

static

Install common commands like 'exit' and 'list'.

References config_end_cmd, config_exit_cmd, config_help_cmd, config_list_cmd, CONFIG_NODE, config_write_memory_cmd, config_write_terminal_cmd, install_lib_element(), and node.

Referenced by install_node().

## install_default()

void install_default | ( | int | node | ) |

Deprecated, now happens implicitly when calling install_node().

Users of the API may still attempt to call this function, hence leave it here as a no-op.

## install_element()

void install_element | ( | int | ntype,
|  | struct cmd_element * | cmd
| ) |  |

Install a command into a node.

Parameters

  [in] | ntype | Node Type
  | [cmd] | element to be installed

References check_element_exists(), cmd_cmdsize(), cmd_make_descvec(), cmd_node::cmd_vector, cmd_element::cmdsize, cmdvec, cmd_element::doc, OSMO_ASSERT, cmd_element::string, cmd_element::strvec, vector_set(), and vector_slot.

Referenced by install_element_ve(), and install_lib_element().

## install_element_ve()

void install_element_ve | ( | struct cmd_element * | cmd | ) |

References ENABLE_NODE, install_element(), and VIEW_NODE.

Referenced by install_lib_element_ve().

## install_lib_element()

void install_lib_element | ( | int | ntype,
|  | struct cmd_element * | cmd
| ) |  |

Install a library command into a node.

Parameters

  [in] | ntype | Node Type
  [in] | cmd | element to be installed

References cmd_element::attr, CMD_ATTR_LIB_COMMAND, and install_element().

Referenced by cmd_init(), install_basic_node_commands(), logging_vty_add_cmds(), logging_vty_add_deprecated_subsys(), osmo_cpu_sched_vty_init(), osmo_stats_vty_add_cmds(), osmo_tdef_vty_groups_init(), and vty_init().

## install_lib_element_ve()

void install_lib_element_ve | ( | struct cmd_element * | cmd | ) |

References cmd_element::attr, CMD_ATTR_LIB_COMMAND, and install_element_ve().

Referenced by logging_vty_add_cmds(), osmo_cpu_sched_vty_init(), osmo_fsm_vty_add_cmds(), osmo_stats_vty_add_cmds(), osmo_talloc_vty_add_cmds(), osmo_tdef_vty_groups_init(), and vty_init().

## install_node()

void install_node | ( | struct cmd_node * | node,
|  | int(*)(struct vty *) | func
| ) |  |

Install top node of command vector.

References cmd_node::func, install_basic_node_commands(), install_node_bare(), cmd_node::node, and node.

Referenced by cmd_init(), logging_vty_add_cmds(), osmo_cpu_sched_vty_init(), osmo_stats_vty_add_cmds(), and vty_init().

## install_node_bare()

static void install_node_bare | ( | struct cmd_node * | node,
|  | int(*)(struct vty *) | func
| ) |  |

static

Install top node of command vector, without adding basic node commands.

References cmd_node::cmd_vector, cmdvec, cmd_node::func, cmd_node::name, cmd_node::node, node, node_name_from_prompt(), cmd_node::prompt, vector_init(), VECTOR_MIN_SIZE, and vector_set_index().

Referenced by cmd_init(), and install_node().

## is_cmd_ambiguous()

static int is_cmd_ambiguous | ( | char * | command,
|  | vector | v,
|  | int | index,
|  | enum match_type | type
| ) |  |

static

References desc::cmd, cmd_deopt(), CMD_IPV4, cmd_ipv4_prefix_match(), CMD_IPV6, CMD_OPTION, CMD_VARIABLE, EXACT_MATCH, EXTEND_MATCH, IPV4_MATCH, IPV4_PREFIX_MATCH, IPV6_MATCH, IPV6_PREFIX_MATCH, NO_MATCH, PARTLY_MATCH, RANGE_MATCH, desc::str, cmd_element::strvec, tall_vty_cmd_ctx, type, vector_active, vector_slot, and vty_cmd_range_match().

Referenced by cmd_complete_command_real(), cmd_describe_command_real(), cmd_execute_command_real(), and cmd_execute_command_strict().

## len()

static size_t len | ( | const char * | str | ) |

inline static

References len, and desc::str.

## node_flag_mask()

static unsigned int node_flag_mask | ( | const struct cmd_node * | cnode,
|  | bool | expert_mode
| ) |  |

static

References host::app_info, cmd_element::attr, CMD_ATTR_DEPRECATED, CMD_ATTR_HIDDEN, CMD_ATTR_LIB_COMMAND, cmd_lib_attr_letters, cmd_node::cmd_vector, vty_app_info::usr_attr_letters, cmd_element::usrattr, vector_active, vector_slot, and VTY_CMD_USR_ATTR_NUM.

Referenced by gDEFUN().

## node_name_from_prompt()

static const char * node_name_from_prompt | ( | const char * | prompt,
|  | char * | name_buf,
|  | size_t | name_buf_size
| ) |  |

static

References cmd_node::prompt.

Referenced by install_node_bare().

## node_parent()

enum node_type node_parent | ( | enum | node_type | ) |

## osmo_asciidoc_escape()

char * osmo_asciidoc_escape | ( | const char * | inp | ) |

escape all special asciidoc symbols

Parameters

  unsafe | string

Returns
  a new talloc char *

References len, and tall_vty_cmd_ctx.

Referenced by asciidoc_handle_counter(), asciidoc_osmo_stat_item_group_handler(), asciidoc_osmo_stat_item_handler(), asciidoc_rate_ctr_group_handler(), and asciidoc_rate_ctr_handler().

## osmo_vty_save_config_file()

int osmo_vty_save_config_file | ( | void |  | ) |

Save the current state to the config file.

Returns
  0 in case of success.

If the filename already exists create a filename.sav version with the current code.

References host::config, and write_config_file().

## osmo_vty_write_config_file()

int osmo_vty_write_config_file | ( | const char * | filename | ) |

Write the current running config to a given file.

Parameters

  [in] | vty | the vty of the code
  [in] | filename | where to store the file

Returns
  0 in case of success.

If the filename already exists create a filename.sav version with the current code.

References write_config_file().

## print_attr_list()

static void print_attr_list | ( | struct vty * | vty,
|  | unsigned int | attr_mask
| ) |  |

static

References _OSMO_CORE_LIB_ATTR_COUNT, host::app_info, ARRAY_SIZE, ATTR_TYPE_APP, ATTR_TYPE_GLOBAL, ATTR_TYPE_LIB, cmd_attr_desc, cmd_attr_get_flag(), cmd_lib_attr_desc, cmd_lib_attr_letters, value_string::str, vty_app_info::usr_attr_desc, vty_app_info::usr_attr_letters, VTY_CMD_USR_ATTR_NUM, VTY_NEWLINE, and vty_out().

Referenced by gDEFUN(), and gDEFUN().

## print_func_stream()

static int print_func_stream | ( | void * | data,
|  | const char * | format,
|  |  | ...
| ) |  |

static

References vty::cp, and data.

Referenced by vty_dump_xml_ref_mode().

## print_func_vty()

static int print_func_vty | ( | void * | data,
|  | const char * | format,
|  |  | ...
| ) |  |

static

References vty::cp, data, and vty_out_va().

Referenced by vty_dump_xml_ref_to_vty().

## print_version()

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.

## sort_node()

void sort_node | ( | void |  | ) |

Sort each node's command element according to command string.

References cmd_node::cmd_vector, cmdvec, cmp_desc(), cmp_node(), _vector::index, cmd_element::strvec, vector_active, and vector_slot.

## vty_clear_parents()

static void vty_clear_parents | ( | struct vty * | vty | ) |

static

References vty_pop_parent().

Referenced by vty_go_parent().

## vty_cmd_range_match()

int vty_cmd_range_match | ( | const char * | range,
|  | const char * | str
| ) |  |

References check_base().

Referenced by cmd_entry_function_desc(), cmd_match(), and is_cmd_ambiguous().

## vty_command_is_common()

static bool vty_command_is_common | ( | const struct cmd_element * | cmd | ) |

static

Return true if a node is installed by install_basic_node_commands(), so that we can avoid repeating them for each and every node during 'show running-config'.

References config_end_cmd, config_exit_cmd, config_help_cmd, config_list_cmd, config_write_memory_cmd, and config_write_terminal_cmd.

Referenced by vty_dump_nodes().

## vty_dump_element()

static int vty_dump_element | ( | const struct cmd_element * | cmd,
|  | print_func_t | print_func,
|  | void * | data,
|  | const char * | newline
| ) |  |

static

References host::app_info, ARRAY_SIZE, cmd_element::attr, desc::cmd, cmd_attr_desc, cmd_attr_get_flag(), CMD_ATTR_LIB_COMMAND, CMD_ATTR_PUBLIC_MASK, cmd_lib_attr_desc, cmd_lib_attr_letters, data, value_string::str, desc::str, cmd_element::string, cmd_element::strvec, vty_app_info::usr_attr_desc, vty_app_info::usr_attr_letters, cmd_element::usrattr, value_string::value, vector_active, vector_count(), vector_slot, and xml_escape().

Referenced by vty_dump_nodes().

## vty_dump_nodes()

static int vty_dump_nodes | ( | print_func_t | print_func,
|  | void * | data,
|  | const char * | newline,
|  | unsigned char | gflag_mask,
|  | bool | match
| ) |  |

static

References cmd_element::attr, cmd_node::cmd_vector, cmdvec, CONFIG_NODE, data, cmd_node::name, cmd_node::node, vector_active, vector_slot, vty_command_is_common(), and vty_dump_element().

Referenced by vty_dump_xml_ref_mode(), and vty_dump_xml_ref_to_vty().

## vty_dump_xml_ref()

int vty_dump_xml_ref | ( | FILE * | stream | ) |

Print the XML reference of all VTY nodes to the given stream.

Parameters

  [out] | stream | Output stream to print the XML reference to.

Returns
  always 0 for now, no errors possible.

NOTE: this function is deprecated because it does not allow to specify the XML reference generation mode (default mode is hard-coded). Use vty_dump_xml_ref_mode() instead.

References vty_dump_xml_ref_mode(), and VTY_REF_GEN_MODE_DEFAULT.

## vty_dump_xml_ref_mode()

int vty_dump_xml_ref_mode | ( | FILE * | stream,
|  | enum vty_ref_gen_mode | mode
| ) |  |

Print the XML reference of all VTY nodes to the given stream.

Parameters

  [out] | stream | Output stream to print the XML reference to.
  [in] | mode | The XML reference generation mode.

Returns
  always 0 for now, no errors possible.

References CMD_ATTR_DEPRECATED, CMD_ATTR_HIDDEN, mode, print_func_stream(), vty_dump_nodes(), VTY_REF_GEN_MODE_DEFAULT, VTY_REF_GEN_MODE_EXPERT, and VTY_REF_GEN_MODE_HIDDEN.

Referenced by vty_dump_xml_ref().

## vty_dump_xml_ref_to_vty()

static int vty_dump_xml_ref_to_vty | ( | struct vty * | vty | ) |

static

References CMD_ATTR_DEPRECATED, CMD_ATTR_HIDDEN, vty::cp, vty::expert_mode, print_func_vty(), vty_dump_nodes(), and VTY_NEWLINE.

Referenced by DEFUN().

## vty_go_parent()

int vty_go_parent | ( | struct vty * | vty | ) |

References host::app_info, AUTH_ENABLE_NODE, AUTH_NODE, CONFIG_NODE, ENABLE_NODE, vty_app_info::go_parent_cb, vty::node, VIEW_NODE, vty_clear_parents(), and vty_pop_parent().

Referenced by config_from_file(), gDEFUN(), gDEFUN(), and vty_down_level().

## vty_install_default()

void vty_install_default | ( | int | node | ) |

Deprecated, now happens implicitly when calling install_node().

Users of the API may still attempt to call this function, hence leave it here as a no-op.

## vty_out()

vty_out | ( | vty | ,
|  | "!%s" | ,
|  | VTY_NEWLINE |
| ) |  |

Referenced by ALIAS(), ALIAS(), config_write_host(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN_HIDDEN(), gDEFUN(), gDEFUN(), if(), print_attr_list(), and write_config_file().

## vty_parent()

static struct vty_parent_node * vty_parent | ( | struct vty * | vty | ) |

static

References vty_parent_node::entry, llist_first_entry_or_null, and vty::parent_nodes.

Referenced by cmd_execute_command_real(), config_from_file(), and vty_pop_parent().

## vty_pop_parent()

static bool vty_pop_parent | ( | struct vty * | vty | ) |

static

References vty_parent_node::entry, vty::indent, vty_parent_node::indent, vty::index, vty_parent_node::index, vty::node, vty_parent_node::node, vty::priv, vty_parent_node::priv, and vty_parent().

Referenced by vty_clear_parents(), and vty_go_parent().

## write_config_file()

static int write_config_file | ( | const char * | config_file,
|  | char ** | outpath
| ) |  |

static

References host::app_info, cmdvec, CONF_BACKUP_EXT, CONFIGFILE_MASK, vty::cp, vty::fd, cmd_node::func, vty_app_info::name, node, tall_vty_cmd_ctx, vty::type, vector_active, vector_slot, vty_app_info::version, vty_close(), VTY_FILE, vty_new(), and vty_out().

Referenced by DEFUN(), osmo_vty_save_config_file(), and osmo_vty_write_config_file().

## xml_escape()

static char * xml_escape | ( | const char * | inp | ) |

static

References ADD, len, and tall_vty_cmd_ctx.

Referenced by vty_dump_element().

## Variable Documentation

## auth_enable_node

struct cmd_node auth_enable_node

Initial value:
= {
AUTH_ENABLE_NODE,
"Password: ",
.name = "auth-enable",
}
AUTH_ENABLE_NODE
@ AUTH_ENABLE_NODE
Authentication mode for change enable.
Definition command.h:76

Referenced by cmd_init().

## auth_node

struct cmd_node auth_node

Initial value:
= {
AUTH_NODE,
"Password: ",
.name = "auth",
}
AUTH_NODE
@ AUTH_NODE
Authentication mode of vty interface.
Definition command.h:74

Referenced by cmd_init().

## cmd_attr_desc

const struct value_string cmd_attr_desc[]

static

Initial value:
= {
{ CMD_ATTR_DEPRECATED, "This command is deprecated" },
{ CMD_ATTR_HIDDEN, "This command is hidden (check expert mode)" },
{ CMD_ATTR_IMMEDIATE, "This command applies immediately" },
{ CMD_ATTR_NODE_EXIT, "This command applies on VTY node exit" },
{ 0, NULL }
}
CMD_ATTR_DEPRECATED
@ CMD_ATTR_DEPRECATED
Definition command.h:149
CMD_ATTR_HIDDEN
@ CMD_ATTR_HIDDEN
Definition command.h:150
CMD_ATTR_IMMEDIATE
@ CMD_ATTR_IMMEDIATE
Definition command.h:151
CMD_ATTR_NODE_EXIT
@ CMD_ATTR_NODE_EXIT
Definition command.h:152

Referenced by print_attr_list(), and vty_dump_element().

## cmd_lib_attr_desc

const char* const cmd_lib_attr_desc[32]

static

Initial value:
= {
[OSMO_SCCP_LIB_ATTR_RSTRT_ASP] =
"This command applies on ASP restart",
[OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK] =
"This command applies on IPA link establishment",
[OSMO_ABIS_LIB_ATTR_LINE_UPD] =
"This command applies on E1 line update",
}
OSMO_SCCP_LIB_ATTR_RSTRT_ASP
@ OSMO_SCCP_LIB_ATTR_RSTRT_ASP
Definition command.h:166
OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK
@ OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK
Definition command.h:167
OSMO_ABIS_LIB_ATTR_LINE_UPD
@ OSMO_ABIS_LIB_ATTR_LINE_UPD
Definition command.h:168

Referenced by print_attr_list(), and vty_dump_element().

## cmd_lib_attr_letters

const char cmd_lib_attr_letters[32]

static

Initial value:
= {
[OSMO_SCCP_LIB_ATTR_RSTRT_ASP] = 'A',
[OSMO_ABIS_LIB_ATTR_IPA_NEW_LNK] = 'I',
[OSMO_ABIS_LIB_ATTR_LINE_UPD] = 'L',
}

Referenced by cmd_flag_mask(), node_flag_mask(), print_attr_list(), and vty_dump_element().

## CMD_SUCCESS

return CMD_SUCCESS

Referenced by ALIAS(), ALIAS(), ALIAS(), cmd_describe_command_real(), cmd_make_strvec2(), config_from_file(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN(), DEFUN_HIDDEN(), gDEFUN(), gDEFUN(), gDEFUN(), gDEFUN(), gDEFUN(), and gDEFUN().

## cmdvec

vector cmdvec

Referenced by cmd_complete_command_real(), cmd_describe_command_real(), cmd_execute_command_real(), cmd_execute_command_strict(), cmd_init(), cmd_prompt(), gDEFUN(), if(), install_element(), install_node_bare(), sort_node(), vty_dump_nodes(), and write_config_file().

## config

write Write running configuration to or terminal n Write configuration to the copy running config startup config

## config_end_cmd

struct cmd_element config_end_cmd

extern

Referenced by install_basic_node_commands(), and vty_command_is_common().

## config_exit_cmd

struct cmd_element config_exit_cmd

extern

Referenced by cmd_init(), install_basic_node_commands(), vty_command_is_common(), and vty_down_level().

## config_help_cmd

struct cmd_element config_help_cmd

extern

Referenced by cmd_init(), install_basic_node_commands(), and vty_command_is_common().

## config_list_cmd

struct cmd_element config_list_cmd

extern

Referenced by cmd_init(), install_basic_node_commands(), and vty_command_is_common().

## config_node

struct cmd_node config_node

Initial value:
= {
CONFIG_NODE,
"%s(config)# ",
1
}
CONFIG_NODE
@ CONFIG_NODE
Config node.
Definition command.h:78

Referenced by cmd_init().

## config_write_memory_cmd

config_write_memory_cmd

Referenced by install_basic_node_commands(), and vty_command_is_common().

## 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 config_write_terminal_cmd

Referenced by install_basic_node_commands(), and vty_command_is_common().

## copy_runningconfig_startupconfig_cmd

write Write running configuration to or terminal n Write configuration to the copy_runningconfig_startupconfig_cmd

Referenced by cmd_init().

## default_motd

const char* default_motd = ""

Referenced by cmd_init(), and DEFUN().

## else

else

Initial value:
{
vty_out(vty, "%sCurrent configuration:%s", VTY_NEWLINE,
VTY_NEWLINE)
vty_out
vty_out(vty, "!%s", VTY_NEWLINE)
VTY_NEWLINE
#define VTY_NEWLINE
Definition vty.h:161

## enable_node

struct cmd_node enable_node

Initial value:
= {
ENABLE_NODE,
"%s# ",
.name = "enable",
}
ENABLE_NODE
@ ENABLE_NODE
Enable node.
Definition command.h:77

Referenced by cmd_init().

## host

struct host host

## memory

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 Write running configuration to memory

## n

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 Write running configuration to or terminal n Write to terminal n

Initial value:
{
unsigned int i

## network

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 Write running configuration to network

## node

struct cmd_node* node

Referenced by cmd_prompt(), cmd_try_do_shortcut(), if(), install_basic_node_commands(), install_node(), install_node_bare(), and write_config_file().

## starttime

struct timespec starttime

static

Referenced by __attribute__(), DEFUN(), and vty_out_uptime().

## tall_vty_cmd_ctx [1/2]

void* tall_vty_cmd_ctx

extern

Referenced by ALIAS(), argv_concat(), cmd_complete_command_real(), cmd_desc_str(), cmd_execute_command_real(), cmd_make_descvec(), cmd_make_strvec2(), cmd_match(), DEFUN(), DEFUN(), DEFUN(), host_config_set(), is_cmd_ambiguous(), osmo_asciidoc_escape(), timer_command_string(), timer_doc_string(), vty_init(), write_config_file(), and xml_escape().

## tall_vty_cmd_ctx [2/2]

void* tall_vty_cmd_ctx

Referenced by ALIAS(), argv_concat(), cmd_complete_command_real(), cmd_desc_str(), cmd_execute_command_real(), cmd_make_descvec(), cmd_make_strvec2(), cmd_match(), DEFUN(), DEFUN(), DEFUN(), host_config_set(), is_cmd_ambiguous(), osmo_asciidoc_escape(), timer_command_string(), timer_doc_string(), vty_init(), write_config_file(), and xml_escape().

## terminal

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

Referenced by cmd_init().

## view_node

struct cmd_node view_node

Initial value:
= {
VIEW_NODE,
"%s> ",
.name = "view",
}
VIEW_NODE
@ VIEW_NODE
View node.
Definition command.h:75

Referenced by cmd_init().

## vty_ref_gen_mode_desc [1/2]

const struct value_string vty_ref_gen_mode_desc[]

extern

## vty_ref_gen_mode_desc [2/2]

const struct value_string vty_ref_gen_mode_desc[]

Initial value:
= {
{ VTY_REF_GEN_MODE_DEFAULT, "all commands except deprecated and hidden" },
{ VTY_REF_GEN_MODE_EXPERT, "all commands including hidden, excluding deprecated" },
{ VTY_REF_GEN_MODE_HIDDEN, "hidden commands only" },
{ 0, NULL }
}
VTY_REF_GEN_MODE_HIDDEN
@ VTY_REF_GEN_MODE_HIDDEN
"Inverse" mode: only hidden commands.
Definition command.h:477
VTY_REF_GEN_MODE_EXPERT
@ VTY_REF_GEN_MODE_EXPERT
Expert mode: all commands including hidden, excluding deprecated.
Definition command.h:475
VTY_REF_GEN_MODE_DEFAULT
@ VTY_REF_GEN_MODE_DEFAULT
Default mode: all commands except deprecated and hidden.
Definition command.h:473

## vty_ref_gen_mode_names [1/2]

const struct value_string vty_ref_gen_mode_names[]

extern

## vty_ref_gen_mode_names [2/2]

const struct value_string vty_ref_gen_mode_names[]

Initial value:
= {
{ VTY_REF_GEN_MODE_DEFAULT, "default" },
{ VTY_REF_GEN_MODE_EXPERT, "expert" },
{ VTY_REF_GEN_MODE_HIDDEN, "hidden" },
{ 0, NULL }
}