28 #include <sys/types.h> 195 #define CMD_SUCCESS 0 196 #define CMD_WARNING 1 197 #define CMD_ERR_NO_MATCH 2 198 #define CMD_ERR_AMBIGUOUS 3 199 #define CMD_ERR_INCOMPLETE 4 200 #define CMD_ERR_EXEED_ARGC_MAX 5 201 #define CMD_ERR_NOTHING_TODO 6 202 #define CMD_COMPLETE_FULL_MATCH 7 203 #define CMD_COMPLETE_MATCH 8 204 #define CMD_COMPLETE_LIST_MATCH 9 205 #define CMD_SUCCESS_DAEMON 10 206 #define CMD_ERR_INVALID_INDENT 11 209 #define CMD_ARGC_MAX 256 212 #ifndef VTYSH_EXTRACT_PL 215 #define DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attrs, dnum) \ 216 static struct cmd_element cmdname = \ 226 #define gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attrs, dnum) \ 227 struct cmd_element cmdname = \ 236 #define DEFUN_CMD_ELEMENT_ATTR_USRATTR(funcname, cmdname, cmdstr, helpstr, attrs, usrattrs) \ 237 static struct cmd_element cmdname = \ 243 .usrattr = usrattrs, \ 246 #define DEFUN_CMD_FUNC_DECL(funcname) \ 247 static int funcname (struct cmd_element *, struct vty *, int, const char *[]); \ 249 #define DEFUN_CMD_FUNC_TEXT(funcname) \ 250 static int funcname \ 251 (struct cmd_element *self, struct vty *vty, int argc, const char *argv[]) 259 #define DEFUN(funcname, cmdname, cmdstr, helpstr) \ 260 DEFUN_CMD_FUNC_DECL(funcname) \ 261 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) \ 262 DEFUN_CMD_FUNC_TEXT(funcname) 270 #define gDEFUN(funcname, cmdname, cmdstr, helpstr) \ 271 DEFUN_CMD_FUNC_DECL(funcname) \ 272 gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) \ 273 DEFUN_CMD_FUNC_TEXT(funcname) 275 #define DEFUN_ATTR(funcname, cmdname, cmdstr, helpstr, attr) \ 276 DEFUN_CMD_FUNC_DECL(funcname) \ 277 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, 0) \ 278 DEFUN_CMD_FUNC_TEXT(funcname) 280 #define DEFUN_HIDDEN(funcname, cmdname, cmdstr, helpstr) \ 281 DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN) 283 #define DEFUN_DEPRECATED(funcname, cmdname, cmdstr, helpstr) \ 284 DEFUN_ATTR (funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED) 294 #define DEFUN_ATTR_USRATTR(funcname, cmdname, attr, usrattr, cmdstr, helpstr) \ 295 DEFUN_CMD_FUNC_DECL(funcname) \ 296 DEFUN_CMD_ELEMENT_ATTR_USRATTR(funcname, cmdname, cmdstr, helpstr, attr, usrattr) \ 297 DEFUN_CMD_FUNC_TEXT(funcname) 299 #define DEFUN_USRATTR(funcname, cmdname, usrattr, cmdstr, helpstr) \ 300 DEFUN_ATTR_USRATTR(funcname, cmdname, 0, usrattr, cmdstr, helpstr) 303 #define DEFUN_NOSH(funcname, cmdname, cmdstr, helpstr) \ 304 DEFUN(funcname, cmdname, cmdstr, helpstr) 307 #define DEFSH(daemon, cmdname, cmdstr, helpstr) \ 308 DEFUN_CMD_ELEMENT(NULL, cmdname, cmdstr, helpstr, 0, daemon) \ 311 #define DEFUNSH(daemon, funcname, cmdname, cmdstr, helpstr) \ 312 DEFUN_CMD_FUNC_DECL(funcname) \ 313 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, daemon) \ 314 DEFUN_CMD_FUNC_TEXT(funcname) 317 #define DEFUNSH_ATTR(daemon, funcname, cmdname, cmdstr, helpstr, attr) \ 318 DEFUN_CMD_FUNC_DECL(funcname) \ 319 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, daemon) \ 320 DEFUN_CMD_FUNC_TEXT(funcname) 322 #define DEFUNSH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr) \ 323 DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN) 325 #define DEFUNSH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr) \ 326 DEFUNSH_ATTR (daemon, funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED) 329 #define ALIAS(funcname, cmdname, cmdstr, helpstr) \ 330 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) 333 #define gALIAS(funcname, cmdname, cmdstr, helpstr) \ 334 gDEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, 0) 336 #define ALIAS_ATTR(funcname, cmdname, cmdstr, helpstr, attr) \ 337 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, attr, 0) 339 #define ALIAS_HIDDEN(funcname, cmdname, cmdstr, helpstr) \ 340 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, 0) 342 #define ALIAS_DEPRECATED(funcname, cmdname, cmdstr, helpstr) \ 343 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, 0) 345 #define ALIAS_SH(daemon, funcname, cmdname, cmdstr, helpstr) \ 346 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, 0, daemon) 348 #define ALIAS_SH_HIDDEN(daemon, funcname, cmdname, cmdstr, helpstr) \ 349 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_HIDDEN, daemon) 351 #define ALIAS_SH_DEPRECATED(daemon, funcname, cmdname, cmdstr, helpstr) \ 352 DEFUN_CMD_ELEMENT(funcname, cmdname, cmdstr, helpstr, CMD_ATTR_DEPRECATED, daemon) 357 #define CMD_OPTION(S) ((S[0]) == '[') 358 #define CMD_VARIABLE(S) (((S[0]) >= 'A' && (S[0]) <= 'Z') || ((S[0]) == '<')) 359 #define CMD_VARARG(S) ((S[0]) == '.') 360 #define CMD_RANGE(S) ((S[0] == '<')) 362 #define CMD_IPV4(S) ((strcmp ((S), "A.B.C.D") == 0)) 363 #define CMD_IPV4_PREFIX(S) ((strcmp ((S), "A.B.C.D/M") == 0)) 364 #define CMD_IPV6(S) ((strcmp ((S), "X:X::X:X") == 0)) 365 #define CMD_IPV6_PREFIX(S) ((strcmp ((S), "X:X::X:X/M") == 0)) 367 #define VTY_IPV4_CMD "A.B.C.D" 368 #define VTY_IPV6_CMD "X:X::X:X" 369 #define VTY_IPV46_CMD "(" VTY_IPV4_CMD "|" VTY_IPV6_CMD ")" 372 #define SHOW_STR "Show running system information\n" 373 #define IP_STR "IP information\n" 374 #define IPV6_STR "IPv6 information\n" 375 #define NO_STR "Negate a command or set its defaults\n" 376 #define CLEAR_STR "Reset functions\n" 377 #define RIP_STR "RIP information\n" 378 #define BGP_STR "BGP information\n" 379 #define OSPF_STR "OSPF information\n" 380 #define NEIGHBOR_STR "Specify neighbor router\n" 381 #define DEBUG_STR "Debugging functions (see also 'undebug')\n" 382 #define UNDEBUG_STR "Disable debugging functions (see also 'debug')\n" 383 #define ROUTER_STR "Enable a routing process\n" 384 #define AS_STR "AS number\n" 385 #define MBGP_STR "MBGP information\n" 386 #define MATCH_STR "Match values from routing table\n" 387 #define SET_STR "Set values in destination routing protocol\n" 388 #define OUT_STR "Filter outgoing routing updates\n" 389 #define IN_STR "Filter incoming routing updates\n" 390 #define V4NOTATION_STR "specify by IPv4 address notation(e.g. 0.0.0.0)\n" 391 #define OSPF6_NUMBER_STR "Specify by number\n" 392 #define INTERFACE_STR "Interface infomation\n" 393 #define IFNAME_STR "Interface name(e.g. ep0)\n" 394 #define IP6_STR "IPv6 Information\n" 395 #define OSPF6_STR "Open Shortest Path First (OSPF) for IPv6\n" 396 #define OSPF6_ROUTER_STR "Enable a routing process\n" 397 #define OSPF6_INSTANCE_STR "<1-65535> Instance ID\n" 398 #define SECONDS_STR "<1-65535> Seconds\n" 399 #define ROUTE_STR "Routing Table\n" 400 #define PREFIX_LIST_STR "Build a prefix list\n" 401 #define OSPF6_DUMP_TYPE_LIST \ 402 "(neighbor|interface|area|lsa|zebra|config|dbex|spf|route|lsdb|redistribute|hook|asbr|prefix|abr)" 403 #define ISIS_STR "IS-IS information\n" 404 #define AREA_TAG_STR "[area tag]\n" 406 #define CONF_BACKUP_EXT ".sav" 411 #define NEIGHBOR_CMD "neighbor (A.B.C.D|X:X::X:X) " 412 #define NO_NEIGHBOR_CMD "no neighbor (A.B.C.D|X:X::X:X) " 413 #define NEIGHBOR_ADDR_STR "Neighbor address\nIPv6 address\n" 414 #define NEIGHBOR_CMD2 "neighbor (A.B.C.D|X:X::X:X|WORD) " 415 #define NO_NEIGHBOR_CMD2 "no neighbor (A.B.C.D|X:X::X:X|WORD) " 416 #define NEIGHBOR_ADDR_STR2 "Neighbor address\nNeighbor IPv6 address\nNeighbor tag\n" 418 #define NEIGHBOR_CMD "neighbor A.B.C.D " 419 #define NO_NEIGHBOR_CMD "no neighbor A.B.C.D " 420 #define NEIGHBOR_ADDR_STR "Neighbor address\n" 421 #define NEIGHBOR_CMD2 "neighbor (A.B.C.D|WORD) " 422 #define NO_NEIGHBOR_CMD2 "no neighbor (A.B.C.D|WORD) " 423 #define NEIGHBOR_ADDR_STR2 "Neighbor address\nNeighbor tag\n" 440 char *
argv_concat(
const char **argv,
int argc,
int shift);
int advanced
Flags for services.
Definition: command.h:61
SS7 Application Server Process.
Definition: command.h:94
const char * prompt
Prompt character at vty interface.
Definition: command.h:130
unsigned int usrattr
Command attributes (program specific)
Definition: command.h:185
char name[64]
Human-readable ID of this node.
Definition: command.h:144
NS NSE node.
Definition: command.h:104
#define OSMO_DEPRECATED(text)
Reserved for later extensions.
Definition: command.h:112
SS7 root node.
Definition: command.h:92
CPU Sched related options node.
Definition: command.h:102
const char * string
Command specification by string.
Definition: command.h:176
const char * cmd
Command string.
Definition: command.h:190
int(* func)(struct vty *)
Node's configuration write function.
Definition: command.h:136
int daemon
Daemon to which this command belong.
Definition: command.h:179
const char * doc
Documentation of this command.
Definition: command.h:178
char * argv_concat(const char **argv, int argc, int shift)
Definition: command.c:141
int(* func)(struct cmd_element *, struct vty *, int, const char *[])
Definition: command.h:177
Internal representation of a single VTY.
Definition: vty.h:60
Definition: command.h:152
NS bind node.
Definition: command.h:103
Default mode: all commands except deprecated and hidden.
Definition: command.h:473
const struct value_string vty_ref_gen_mode_desc[]
Definition: command.c:926
NS node in libosmo-gb.
Definition: command.h:88
int vty_cmd_range_match(const char *range, const char *str)
Definition: command.c:1527
Reserved for later extensions.
Definition: command.h:115
Definition: command.h:151
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.
Definition: command.c:938
void config_replace_string(struct cmd_element *, char *,...)
SS7 xUA Listener.
Definition: command.h:95
char * config
Configuration string.
Definition: command.h:182
const struct vty_app_info * app_info
VTY application information.
Definition: command.h:69
SS7 Link.
Definition: command.h:97
char * password
Password for vty interface.
Definition: command.h:44
Definition: command.h:118
E1 line in libosmo-abis.
Definition: command.h:86
void * tall_vty_cmd_ctx
Definition: command.c:68
Configure the logging.
Definition: command.h:81
Reserved for later extensions.
Definition: command.h:109
char ** cmd_complete_command(vector vline, struct vty *vty, int *status)
Definition: command.c:2411
IPA proxying commands in libosmo-abis.
Definition: command.h:87
Vty node.
Definition: command.h:84
void install_element(int node_type, struct cmd_element *)
Install a command into a node.
Definition: command.c:996
vty_ref_gen_mode
VTY reference generation mode.
Definition: command.h:471
char * config
config file name of this host
Definition: command.h:58
Command description structure.
Definition: command.h:189
Reserved for later extensions.
Definition: command.h:116
const char * cmd_prompt(enum node_type)
Return prompt character of specified node.
Definition: command.c:517
Host configuration variable.
Definition: command.h:39
Configure the statistics.
Definition: command.h:82
char * motdfile
Definition: command.h:66
Config node.
Definition: command.h:78
void sort_node(void)
Sort each node's command element according to command string.
Definition: command.c:227
Expert mode: all commands including hidden, excluding deprecated.
Definition: command.h:475
node_type
There are some command levels which called from command node.
Definition: command.h:73
Node which has some commands and prompt string and configuration function pointer ...
Definition: command.h:125
int cmd_make_strvec2(const char *string, char **indent, vector *strvec_p)
Break up string in command tokens.
Definition: command.c:266
Definition: command.h:166
void install_node(struct cmd_node *, int(*)(struct vty *))
Install top node of command vector.
Definition: command.c:203
void cmd_init(int)
Definition: command.c:4407
int cmd_execute_command(vector, struct vty *, struct cmd_element **, int)
Definition: command.c:2694
void install_default(int node_type) OSMO_DEPRECATED("Now happens implicitly with install_node()")
Deprecated, now happens implicitly when calling install_node().
Definition: command.c:4311
vector cmd_make_strvec(const char *)
Breaking up string into each command piece.
Definition: command.c:337
Definition: command.h:171
struct cmd_element config_list_cmd
void cmd_free_strvec(vector)
Free allocated string vector.
Definition: command.c:345
Authentication mode of vty interface.
Definition: command.h:74
SS7 Application Server.
Definition: command.h:93
View node.
Definition: command.h:75
SS7 Routing Table.
Definition: command.h:96
struct cmd_element config_help_cmd
struct cmd_element config_exit_cmd
const char * host_config_file(void)
Definition: command.c:4303
SS7 SCCP Address.
Definition: command.h:99
vector strvec
Pointing out each description vector.
Definition: command.h:180
void install_lib_element(int node_type, struct cmd_element *)
Install a library command into a node.
Definition: command.c:1017
"Inverse" mode: only hidden commands.
Definition: command.h:477
int lines
System wide terminal lines.
Definition: command.h:52
char * logfile
Log filename.
Definition: command.h:55
Reserved for later extensions.
Definition: command.h:114
int vtysh
Is this node's configuration goes to vtysh ?
Definition: command.h:133
char * enable_encrypt
Definition: command.h:49
const char * motd
Banner configuration.
Definition: command.h:65
char * osmo_asciidoc_escape(const char *inp)
escape all special asciidoc symbols
Definition: command.c:530
vector cmd_vector
Vector of this node's command list.
Definition: command.h:139
Service node.
Definition: command.h:79
char * password_encrypt
Definition: command.h:45
Reserved for later extensions.
Definition: command.h:111
int cmd_execute_command_strict(vector, struct vty *, struct cmd_element **)
Definition: command.c:2728
Generic vector interface header.
char * enable
Enable password.
Definition: command.h:48
SS7 SCCP Global Title.
Definition: command.h:100
Structure of a command element.
Definition: command.h:175
int encrypt
Definition: command.h:62
unsigned char attr
Command attributes (global)
Definition: command.h:184
char * name
Host name of this router.
Definition: command.h:41
void install_element_ve(struct cmd_element *cmd)
Definition: command.c:1024
void vty_install_default(int node_type) OSMO_DEPRECATED("Now happens implicitly with install_node()")
Deprecated, now happens implicitly when calling install_node().
Definition: command.c:4318
Definition: command.h:153
int config_from_file(struct vty *, FILE *)
Definition: command.c:2864
Definition: command.h:168
void install_lib_element_ve(struct cmd_element *cmd)
Definition: command.c:1031
int node
Node index.
Definition: command.h:127
vector subconfig
Sub configuration string.
Definition: command.h:183
unsigned int cmdsize
Command index count.
Definition: command.h:181
int vty_dump_xml_ref(FILE *stream) OSMO_DEPRECATED("Use vty_dump_xml_ref_mode() instead")
Print the XML reference of all VTY nodes to the given stream.
Definition: command.c:971
Definition: command.h:149
SS7 Linkset.
Definition: command.h:98
vector cmd_describe_command(vector vline, struct vty *vty, int *status)
Definition: command.c:2197
Control interface node.
Definition: command.h:90
enum node_type node_parent(enum node_type)
void print_version(int print_copyright)
print the version (and optionally copyright) information
Definition: command.c:132
void host_config_set(const char *)
Definition: command.c:4298
const char * str
Command's description.
Definition: command.h:191
const struct value_string vty_ref_gen_mode_names[]
Definition: command.c:919
Enable node.
Definition: command.h:77
struct cmd_element config_end_cmd
Definition: command.h:167
Authentication mode for change enable.
Definition: command.h:76
Information an application registers with the VTY.
Definition: vty.h:169
Reserved for later extensions.
Definition: command.h:110
BSSGP node in libosmo-gb.
Definition: command.h:89
Debug node.
Definition: command.h:80
Reserved for later extensions.
Definition: command.h:113
Definition: command.h:150