command.h File Reference
VTY Command

Zebra configuration command interface routine. More...

`#include <stdio.h>`
`#include <stdbool.h>`
`#include <sys/types.h>`
`#include "vector.h"`
`#include <osmocom/core/defs.h>`
`#include <osmocom/core/utils.h>`
`#include "vty.h"`

Go to the source code of this file.

## 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_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. 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_ATTR_USRATTR(funcname, cmdname, attr, usrattr, cmdstr, helpstr)
| Macro for defining a VTY node and function with global & program specific attributes. More...
#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"

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

## 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_lib_element (int ntype, struct cmd_element *cmd)
| Install a library command into a node. More...
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. 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)
const char * | host_config_file (void)
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...
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. More...
int | vty_dump_xml_ref (FILE *stream)
| Print the XML reference of all VTY nodes to the given stream. More...
int | vty_cmd_range_match (const char *range, const char *str)

## 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 []

## Detailed Description

Zebra configuration command interface routine.