libosmovty  0.12.0.47-7c74
Osmocom VTY library
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...
 

Macros

#define CMD_SUCCESS   0
 Return value of the commands. More...
 
#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_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. More...
 
#define gDEFUN(funcname, cmdname, cmdstr, helpstr)
 Macro for defining a non-static (global) VTY node and function. More...
 
#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,
  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,
  RESERVED3_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. More...
 
void install_default (int node)
 Deprecated, now happens implicitly when calling install_node(). More...
 
void install_element (int ntype, struct cmd_element *cmd)
 Install a command into a node. More...
 
void install_element_ve (struct cmd_element *cmd)
 
void sort_node (void)
 Sort each node's command element according to command string. More...
 
void vty_install_default (int node)
 Deprecated, now happens implicitly when calling install_node(). More...
 
char * argv_concat (const char **argv, int argc, int shift)
 
vector cmd_make_strvec (const char *string)
 Breaking up string into each command piece. More...
 
int cmd_make_strvec2 (const char *string, char **indent, vector *strvec_p)
 Break up string in command tokens. More...
 
void cmd_free_strvec (vector v)
 Free allocated string vector. More...
 
vector cmd_describe_command ()
 
char ** cmd_complete_command ()
 
const char * cmd_prompt (enum node_type node)
 Return prompt character of specified node. More...
 
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 *)
 
char * osmo_asciidoc_escape (const char *inp)
 escape all special asciidoc symbols More...
 
void print_version (int print_copyright)
 print the version (and optionally copyright) information More...
 
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'. More...
 
static void install_node_bare (struct cmd_node *node, int(*func)(struct vty *))
 Install top node of command vector, without adding basic node commands. More...
 
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. More...
 
static vector cmd_make_descvec (const char *string, const char *descstr)
 New string vector. More...
 
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 bool vty_command_is_common (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'. More...
 
static int vty_dump_nodes (struct vty *vty)
 
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 cmd_range_match (const char *range, 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)
 
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)
 
static struct vty_parent_nodevty_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. More...
 
 DEFUN (config_terminal, config_terminal_cmd, "configure terminal", "Configuration from vty interface\ "Configuration terminal\")
 
 DEFUN (enable, config_enable_cmd, "enable", "Turn on privileged mode command\)
 
 DEFUN (disable, config_disable_cmd, "disable", "Turn off privileged mode command\)
 
 gDEFUN (config_exit, config_exit_cmd, "exit", "Exit current mode and down to previous mode\)
 
 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\)
 
 DEFUN (show_online_help, show_online_help_cmd, "show online-help", SHOW_STR "Online help\)
 
 gDEFUN (config_help, config_help_cmd, "help", "Description of the interactive help system\)
 
 gDEFUN (config_list, config_list_cmd, "list", "Print command list\)
 
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\ "Write to configuration file\")
 
 ALIAS (config_write_file, config_write_cmd, "write", "Write running configuration to memory, network, or terminal\) 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 ()
 
 vty_out (vty, "end%s", VTY_NEWLINE)
 
 ALIAS (config_write_terminal, show_running_config_cmd, "show running-config", SHOW_STR "running configuration\
 
 DEFUN (config_hostname, hostname_cmd, "hostname WORD", "Set system's network name\ "This system 's network name\")
 
 DEFUN (config_no_hostname, no_hostname_cmd, "no hostname [HOSTNAME]", NO_STR "Reset system's network name\ "Host name of this router\")
 
 DEFUN (config_password, password_cmd, "password (8|) WORD", "Assign the terminal connection password\ "Specifies a HIDDEN password will follow\" "dummy string \" "The HIDDEN line password string\")
 
 ALIAS (config_password, password_text_cmd, "password LINE", "Assign the terminal connection password\he UNENCRYPTED(cleartext) line password\
 
 ALIAS (config_enable_password, enable_password_text_cmd, "enable password LINE", "Modify enable password parameters\ssign the privileged level password\"The UNENCRYPTED(cleartext) 'enable' password\")
 
 DEFUN (config_terminal_length, config_terminal_length_cmd, "terminal length <0-512>", "Set terminal line parameters\ "Set number of lines on a screen\" "Number of lines on screen(0 for no pausing)\")
 
 DEFUN (config_terminal_no_length, config_terminal_no_length_cmd, "terminal no length", "Set terminal line parameters\ NO_STR "Set number of lines on a screen\")
 
 DEFUN (service_terminal_length, service_terminal_length_cmd, "service terminal-length <0-512>", "Set up miscellaneous service\ "System wide terminal length configuration\" "Number of lines of VTY(0 means no line control)\")
 
 DEFUN (no_service_terminal_length, no_service_terminal_length_cmd, "no service terminal-length [<0-512>]", NO_STR "Set up miscellaneous service\ "System wide terminal length configuration\" "Number of lines of VTY(0 means no line control)\")
 
 DEFUN_HIDDEN (do_echo, echo_cmd, "echo .MESSAGE", "Echo a message back to the vty\ "The message to echo\")
 
 DEFUN (banner_motd_file, banner_motd_file_cmd, "banner motd file [FILE]", "Set banner\ "Banner for motd\" "Banner from a file\" "Filename\")
 
 DEFUN (banner_motd_default, banner_motd_default_cmd, "banner motd default", "Set banner string\ "Strings for motd\" "Default string\")
 
 DEFUN (no_banner_motd, no_banner_motd_cmd, "no banner motd", NO_STR "Set banner string\ "Strings for motd\")
 
int osmo_vty_write_config_file (const char *filename)
 Write the current running config to a given file. More...
 
int osmo_vty_save_config_file (void)
 Save the current state to the config file. More...
 

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
 
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_nodenode
 
 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_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

◆ 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

◆ 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

◆ 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

◆ CONF_BACKUP_EXT

#define CONF_BACKUP_EXT   ".sav"

Referenced by write_config_file().

◆ CONFIGFILE_MASK

#define CONFIGFILE_MASK   022

Referenced by write_config_file().

◆ DEBUG_STR

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

◆ DECIMAL_STRLEN_MAX

#define DECIMAL_STRLEN_MAX   10

Referenced by cmd_range_match().

◆ 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_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) \
DEFUN_CMD_FUNC_TEXT(funcname)
#define DEFUN_CMD_FUNC_DECL(funcname)
Definition: command.h:201

Macro for defining a VTY node and function.

Parameters
[in]funcnameName of the function implementing the node
[in]cmdnameName of the command node
[in]cmdstrString with syntax of node
[in]helpstrString with help message of node

◆ DEFUN_ATTR

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

◆ 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, \
};
const char * string
Command specification by string.
Definition: command.h:142
Structure of a command element.
Definition: command.h:141

◆ 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[])
Internal representation of a single VTY.
Definition: vty.h:65
Structure of a command element.
Definition: command.h:141

◆ DEFUN_DEPRECATED

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

Referenced by DEFUN_HIDDEN().

◆ 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)

◆ DEFUNSH

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

◆ DEFUNSH_ATTR

#define DEFUNSH_ATTR (   daemon,
  funcname,
  cmdname,
  cmdstr,
  helpstr,
  attr 
)
Value:
DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, daemon) \
DEFUN_CMD_FUNC_TEXT(funcname)
#define DEFUN_CMD_FUNC_DECL(funcname)
Definition: command.h:201

◆ 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:
gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) \
DEFUN_CMD_FUNC_TEXT(funcname)
#define DEFUN_CMD_FUNC_DECL(funcname)
Definition: command.h:201

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

Parameters
[in]funcnameName of the function implementing the node
[in]cmdnameName of the command node
[in]cmdstrString with syntax of node
[in]helpstrString 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, \
};
const char * string
Command specification by string.
Definition: command.h:142
Structure of a command element.
Definition: command.h:141

◆ 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"

Referenced by ALIAS(), and DEFUN_HIDDEN().

◆ 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"

Referenced by DEFUN_HIDDEN().

◆ 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"

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CMD_ATTR_DEPRECATED 
CMD_ATTR_HIDDEN 

◆ 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.

RESERVED3_NODE 

Reserved for later extensions.

_LAST_OSMOVTY_NODE 

Function Documentation

◆ ALIAS() [1/4]

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

Referenced by DEFUN(), and DEFUN_HIDDEN().

◆ ALIAS() [2/4]

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

◆ ALIAS() [3/4]

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

◆ ALIAS() [4/4]

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

◆ argv_concat()

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

References len(), and tall_vty_cmd_ctx.

Referenced by DEFUN_HIDDEN(), and gDEFUN().

◆ check_element_exists()

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

◆ 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() [1/2]

char** cmd_complete_command ( )

Referenced by vty_complete_command().

◆ cmd_complete_command() [2/2]

◆ cmd_complete_command_real()

◆ cmd_deopt()

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

References len().

Referenced by 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 cmd_element::string, and tall_vty_cmd_ctx.

Referenced by cmd_make_descvec().

◆ cmd_describe_command() [1/2]

vector cmd_describe_command ( )

Referenced by vty_describe_command().

◆ cmd_describe_command() [2/2]

◆ cmd_describe_command_real()

◆ cmd_entry_function()

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

◆ cmd_entry_function_desc()

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

◆ cmd_execute_command()

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

◆ cmd_execute_command_real()

◆ cmd_execute_command_strict()

◆ cmd_filter()

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

◆ 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_init()

◆ cmd_ipv4_match()

static enum match_type cmd_ipv4_match ( const char *  str)
static

◆ cmd_ipv4_prefix_match()

static enum match_type cmd_ipv4_prefix_match ( const char *  str)
static

◆ cmd_lcd()

static int cmd_lcd ( char **  matched)
static

◆ cmd_make_descvec()

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

◆ 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]stringString to split.
[out]indentIf not NULL, return a talloc_strdup of indent characters.
[out]strvec_pReturns 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, 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()

◆ cmd_node_vector()

◆ cmd_prompt()

const char * cmd_prompt ( enum node_type  node)

Return prompt character of specified node.

References cmd_node::prompt, and vector_slot.

Referenced by vty_prompt().

◆ cmd_range_match()

static int cmd_range_match ( const char *  range,
const char *  str 
)
static

◆ cmd_try_do_shortcut()

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

◆ cmd_unique_string()

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

References 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()

◆ config_replace_string()

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

◆ config_write_host()

◆ DEFUN() [1/16]

DEFUN ( config_terminal  ,
config_terminal_cmd  ,
"configure terminal ,
"Configuration from vty interface\ "Configuration terminal\"   
)

◆ DEFUN() [2/16]

DEFUN ( enable  ,
config_enable_cmd  ,
"enable"  ,
"Turn on privileged mode command\   
)

◆ DEFUN() [3/16]

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

◆ DEFUN() [4/16]

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

◆ DEFUN() [5/16]

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

References CMD_SUCCESS, and vty_dump_nodes().

◆ DEFUN() [6/16]

DEFUN ( config_write_file  ,
config_write_file_cmd  ,
"write file ,
"Write running configuration to  memory,
network  ,
or terminal\n" "Write to configuration file\n  
)

◆ DEFUN() [7/16]

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

◆ DEFUN() [8/16]

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

References CMD_SUCCESS, and host::name.

◆ DEFUN() [9/16]

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

◆ DEFUN() [10/16]

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

◆ DEFUN() [11/16]

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

References CMD_SUCCESS, and vty::lines.

◆ DEFUN() [12/16]

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

◆ DEFUN() [13/16]

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

References CMD_SUCCESS, and host::lines.

◆ DEFUN() [14/16]

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

◆ DEFUN() [15/16]

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

References CMD_SUCCESS, default_motd, and host::motd.

◆ DEFUN() [16/16]

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

◆ DEFUN_HIDDEN()

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

◆ desc_unique_string()

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

◆ file()

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

◆ for()

for ( )

◆ gDEFUN() [1/4]

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

◆ gDEFUN() [2/4]

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

◆ gDEFUN() [3/4]

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

References CMD_SUCCESS, VTY_NEWLINE, and vty_out().

◆ gDEFUN() [4/4]

◆ host_config_file()

char* host_config_file ( )

◆ host_config_set()

void host_config_set ( const char *  filename)

References host::config, and tall_vty_cmd_ctx.

Referenced by vty_read_config_file().

◆ if()

◆ 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_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()

◆ install_element_ve()

◆ install_node()

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

◆ 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, cmd_node::func, cmd_node::name, cmd_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()

◆ is_config_child()

static int is_config_child ( struct vty vty)
static

◆ len()

◆ node_name_from_prompt()

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

References install_basic_node_commands(), and node.

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
unsafestring
Returns
a new talloc char *

References ADD, 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]vtythe vty of the code
[in]filenamewhere 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_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, 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_command_is_common()

static bool vty_command_is_common ( 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_element(), and vty_dump_nodes().

◆ vty_dump_element()

static int vty_dump_element ( struct cmd_element cmd,
struct vty vty 
)
static

◆ vty_dump_nodes()

◆ vty_go_parent()

◆ 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() [1/2]

◆ vty_out() [2/2]

vty_out ( vty  ,
"end%s"  ,
VTY_NEWLINE   
)

◆ vty_parent()

static struct vty_parent_node* vty_parent ( struct vty vty)
static

◆ vty_pop_parent()

◆ 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:
= {
"Password: ",
.name = "auth-enable",
}
Authentication mode for change enable.
Definition: command.h:74

◆ auth_node

struct cmd_node auth_node
Initial value:
= {
"Password: ",
.name = "auth",
}
Authentication mode of vty interface.
Definition: command.h:72

◆ CMD_SUCCESS

◆ cmdvec

vector cmdvec

◆ 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

◆ config_exit_cmd

◆ config_help_cmd

struct cmd_element config_help_cmd

◆ config_list_cmd

struct cmd_element config_list_cmd

◆ config_node

struct cmd_node config_node
Initial value:
= {
"%s(config)# ",
1
}
Config node.
Definition: command.h:76

◆ config_write_memory_cmd

config_write_memory_cmd

◆ 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

◆ 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,
Internal representation of a single VTY.
Definition: vty.h:65
vty_out(vty, "!%s", VTY_NEWLINE)
#define VTY_NEWLINE
Definition: vty.h:163

◆ enable_node

struct cmd_node enable_node
Initial value:
= {
"%s# ",
.name = "enable",
}
Enable node.
Definition: command.h:75

◆ 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

Referenced by install_element_ve().

◆ 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 node_name_from_prompt().

◆ tall_vty_cmd_ctx [1/2]

◆ tall_vty_cmd_ctx [2/2]

◆ 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

◆ view_node

struct cmd_node view_node
Initial value:
= {
"%s> ",
.name = "view",
}
View node.
Definition: command.h:73