summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@opensourcerouting.org>2018-09-08 21:46:23 +0200
committerDavid Lamparter <equinox@diac24.net>2020-04-16 12:53:00 +0200
commit62b346eefa1b9e09c9372f5b6376e1bca4162015 (patch)
tree2e3bc16d1d0765ab033c7ffd24ca58b3b5d35168
parentMerge pull request #6237 from ton31337/fix/show_hostname_in_bgp (diff)
downloadfrr-62b346eefa1b9e09c9372f5b6376e1bca4162015.tar.xz
frr-62b346eefa1b9e09c9372f5b6376e1bca4162015.zip
*: clean up cmd_node initializers
... and use named assignments everywhere (so I can change the struct.) Signed-off-by: David Lamparter <equinox@diac24.net>
-rw-r--r--babeld/babel_interface.c9
-rw-r--r--bfdd/bfdd_vty.c12
-rw-r--r--bgpd/bgp_bmp.c5
-rw-r--r--bgpd/bgp_debug.c6
-rw-r--r--bgpd/bgp_dump.c6
-rw-r--r--bgpd/bgp_filter.c6
-rw-r--r--bgpd/bgp_rpki.c6
-rw-r--r--bgpd/bgp_vty.c74
-rw-r--r--bgpd/rfapi/bgp_rfapi_cfg.c20
-rw-r--r--bgpd/rfapi/vnc_debug.c6
-rw-r--r--eigrpd/eigrp_cli.c13
-rw-r--r--eigrpd/eigrp_dump.c4
-rw-r--r--isisd/isis_circuit.c4
-rw-r--r--isisd/isisd.c12
-rw-r--r--ldpd/ldp_debug.c9
-rw-r--r--ldpd/ldp_vty_conf.c63
-rw-r--r--lib/agentx.c8
-rw-r--r--lib/command.c18
-rw-r--r--lib/filter.c20
-rw-r--r--lib/keychain.c16
-rw-r--r--lib/nexthop_group.c6
-rw-r--r--lib/northbound_cli.c6
-rw-r--r--lib/plist.c14
-rw-r--r--lib/resolver.c6
-rw-r--r--lib/routemap.c6
-rw-r--r--lib/routemap_cli.c6
-rw-r--r--lib/vrf.c12
-rw-r--r--lib/vty.c4
-rw-r--r--ospf6d/ospf6_interface.c4
-rw-r--r--ospf6d/ospf6_top.c4
-rw-r--r--ospf6d/ospf6d.c4
-rw-r--r--ospfd/ospf_dump.c4
-rw-r--r--ospfd/ospf_vty.c12
-rw-r--r--pbrd/pbr_vty.c16
-rw-r--r--pimd/pim_cmd.c10
-rw-r--r--ripd/rip_debug.c8
-rw-r--r--ripd/rip_interface.c4
-rw-r--r--ripd/ripd.c6
-rw-r--r--ripngd/ripng_debug.c5
-rw-r--r--ripngd/ripng_interface.c4
-rw-r--r--ripngd/ripngd.c4
-rw-r--r--staticd/static_vty.c6
-rw-r--r--tests/lib/cli/test_commands.c78
-rw-r--r--vrrpd/vrrp_vty.c20
-rw-r--r--vtysh/vtysh.c226
-rw-r--r--zebra/debug.c7
-rw-r--r--zebra/interface.c10
-rw-r--r--zebra/zebra_fpm.c6
-rw-r--r--zebra/zebra_mpls_vty.c6
-rw-r--r--zebra/zebra_pw.c4
-rw-r--r--zebra/zebra_vty.c28
51 files changed, 604 insertions, 249 deletions
diff --git a/babeld/babel_interface.c b/babeld/babel_interface.c
index 7f9a13c27..a009af320 100644
--- a/babeld/babel_interface.c
+++ b/babeld/babel_interface.c
@@ -58,11 +58,10 @@ static void babel_interface_free (babel_interface_nfo *bi);
static vector babel_enable_if; /* enable interfaces (by cmd). */
-static struct cmd_node babel_interface_node = /* babeld's interface node. */
-{
- INTERFACE_NODE,
- "%s(config-if)# ",
- 1 /* VTYSH */
+static struct cmd_node babel_interface_node = {
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
};
diff --git a/bfdd/bfdd_vty.c b/bfdd/bfdd_vty.c
index f539c6d27..fddefb750 100644
--- a/bfdd/bfdd_vty.c
+++ b/bfdd/bfdd_vty.c
@@ -886,15 +886,15 @@ DEFUN_NOSH(show_debugging_bfd,
}
struct cmd_node bfd_node = {
- BFD_NODE,
- "%s(config-bfd)# ",
- 1,
+ .node = BFD_NODE,
+ .prompt = "%s(config-bfd)# ",
+ .vtysh = 1,
};
struct cmd_node bfd_peer_node = {
- BFD_PEER_NODE,
- "%s(config-bfd-peer)# ",
- 1,
+ .node = BFD_PEER_NODE,
+ .prompt = "%s(config-bfd-peer)# ",
+ .vtysh = 1,
};
static int bfdd_write_config(struct vty *vty)
diff --git a/bgpd/bgp_bmp.c b/bgpd/bgp_bmp.c
index a6fc4ebd0..871a693bc 100644
--- a/bgpd/bgp_bmp.c
+++ b/bgpd/bgp_bmp.c
@@ -1772,7 +1772,10 @@ static void bmp_active_setup(struct bmp_active *ba)
}
}
-static struct cmd_node bmp_node = {BMP_NODE, "%s(config-bgp-bmp)# "};
+static struct cmd_node bmp_node = {
+ .node = BMP_NODE,
+ .prompt = "%s(config-bgp-bmp)# "
+};
#define BMP_STR "BGP Monitoring Protocol\n"
diff --git a/bgpd/bgp_debug.c b/bgpd/bgp_debug.c
index 5104e2351..4cb86e38e 100644
--- a/bgpd/bgp_debug.c
+++ b/bgpd/bgp_debug.c
@@ -2282,7 +2282,11 @@ static int bgp_config_write_debug(struct vty *vty)
return write;
}
-static struct cmd_node debug_node = {DEBUG_NODE, "", 1};
+static struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
void bgp_debug_init(void)
{
diff --git a/bgpd/bgp_dump.c b/bgpd/bgp_dump.c
index cd1722ccc..d5609e04e 100644
--- a/bgpd/bgp_dump.c
+++ b/bgpd/bgp_dump.c
@@ -778,7 +778,11 @@ DEFUN (no_dump_bgp_all,
}
/* BGP node structure. */
-static struct cmd_node bgp_dump_node = {DUMP_NODE, "", 1};
+static struct cmd_node bgp_dump_node = {
+ .node = DUMP_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
#if 0
char *
diff --git a/bgpd/bgp_filter.c b/bgpd/bgp_filter.c
index 7de8dc2c8..49912583d 100644
--- a/bgpd/bgp_filter.c
+++ b/bgpd/bgp_filter.c
@@ -667,7 +667,11 @@ static int config_write_as_list(struct vty *vty)
return write;
}
-static struct cmd_node as_list_node = {AS_LIST_NODE, "", 1};
+static struct cmd_node as_list_node = {
+ .node = AS_LIST_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
/* Register functions. */
void bgp_filter_init(void)
diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c
index e40c7231a..d626d731f 100644
--- a/bgpd/bgp_rpki.c
+++ b/bgpd/bgp_rpki.c
@@ -143,7 +143,11 @@ static unsigned int retry_interval;
static int rpki_sync_socket_rtr;
static int rpki_sync_socket_bgpd;
-static struct cmd_node rpki_node = {RPKI_NODE, "%s(config-rpki)# ", 1};
+static struct cmd_node rpki_node = {
+ .node = RPKI_NODE,
+ .prompt = "%s(config-rpki)# ",
+ .vtysh = 1,
+};
static const struct route_map_rule_cmd route_match_rpki_cmd = {
"rpki", route_match, route_match_compile, route_match_free};
diff --git a/bgpd/bgp_vty.c b/bgpd/bgp_vty.c
index 8f06fdf86..6700b632a 100644
--- a/bgpd/bgp_vty.c
+++ b/bgpd/bgp_vty.c
@@ -15335,50 +15335,82 @@ int bgp_config_write(struct vty *vty)
/* BGP node structure. */
static struct cmd_node bgp_node = {
- BGP_NODE, "%s(config-router)# ", 1,
+ .node = BGP_NODE,
+ .prompt = "%s(config-router)# ",
+ .vtysh = 1,
};
static struct cmd_node bgp_ipv4_unicast_node = {
- BGP_IPV4_NODE, "%s(config-router-af)# ", 1,
+ .node = BGP_IPV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
};
static struct cmd_node bgp_ipv4_multicast_node = {
- BGP_IPV4M_NODE, "%s(config-router-af)# ", 1,
+ .node = BGP_IPV4M_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
};
static struct cmd_node bgp_ipv4_labeled_unicast_node = {
- BGP_IPV4L_NODE, "%s(config-router-af)# ", 1,
+ .node = BGP_IPV4L_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
};
static struct cmd_node bgp_ipv6_unicast_node = {
- BGP_IPV6_NODE, "%s(config-router-af)# ", 1,
+ .node = BGP_IPV6_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
};
static struct cmd_node bgp_ipv6_multicast_node = {
- BGP_IPV6M_NODE, "%s(config-router-af)# ", 1,
+ .node = BGP_IPV6M_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
};
static struct cmd_node bgp_ipv6_labeled_unicast_node = {
- BGP_IPV6L_NODE, "%s(config-router-af)# ", 1,
+ .node = BGP_IPV6L_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
};
-static struct cmd_node bgp_vpnv4_node = {BGP_VPNV4_NODE,
- "%s(config-router-af)# ", 1};
+static struct cmd_node bgp_vpnv4_node = {
+ .node = BGP_VPNV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
+};
-static struct cmd_node bgp_vpnv6_node = {BGP_VPNV6_NODE,
- "%s(config-router-af-vpnv6)# ", 1};
+static struct cmd_node bgp_vpnv6_node = {
+ .node = BGP_VPNV6_NODE,
+ .prompt = "%s(config-router-af-vpnv6)# ",
+ .vtysh = 1,
+};
-static struct cmd_node bgp_evpn_node = {BGP_EVPN_NODE,
- "%s(config-router-evpn)# ", 1};
+static struct cmd_node bgp_evpn_node = {
+ .node = BGP_EVPN_NODE,
+ .prompt = "%s(config-router-evpn)# ",
+ .vtysh = 1,
+};
-static struct cmd_node bgp_evpn_vni_node = {BGP_EVPN_VNI_NODE,
- "%s(config-router-af-vni)# ", 1};
+static struct cmd_node bgp_evpn_vni_node = {
+ .node = BGP_EVPN_VNI_NODE,
+ .prompt = "%s(config-router-af-vni)# ",
+ .vtysh = 1,
+};
-static struct cmd_node bgp_flowspecv4_node = {BGP_FLOWSPECV4_NODE,
- "%s(config-router-af)# ", 1};
+static struct cmd_node bgp_flowspecv4_node = {
+ .node = BGP_FLOWSPECV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+ .vtysh = 1,
+};
-static struct cmd_node bgp_flowspecv6_node = {BGP_FLOWSPECV6_NODE,
- "%s(config-router-af-vpnv6)# ", 1};
+static struct cmd_node bgp_flowspecv6_node = {
+ .node = BGP_FLOWSPECV6_NODE,
+ .prompt = "%s(config-router-af-vpnv6)# ",
+ .vtysh = 1,
+};
static void community_list_vty(void);
@@ -17859,7 +17891,9 @@ static int community_list_config_write(struct vty *vty)
}
static struct cmd_node community_list_node = {
- COMMUNITY_LIST_NODE, "", 1 /* Export to vtysh. */
+ .node = COMMUNITY_LIST_NODE,
+ .prompt = "",
+ .vtysh = 1,
};
static void community_list_vty(void)
diff --git a/bgpd/rfapi/bgp_rfapi_cfg.c b/bgpd/rfapi/bgp_rfapi_cfg.c
index acfab53d2..6f949775f 100644
--- a/bgpd/rfapi/bgp_rfapi_cfg.c
+++ b/bgpd/rfapi/bgp_rfapi_cfg.c
@@ -2965,10 +2965,16 @@ DEFUN_NOSH (exit_vnc,
}
static struct cmd_node bgp_vnc_defaults_node = {
- BGP_VNC_DEFAULTS_NODE, "%s(config-router-vnc-defaults)# ", 1};
+ .node = BGP_VNC_DEFAULTS_NODE,
+ .prompt = "%s(config-router-vnc-defaults)# ",
+ .vtysh = 1,
+};
static struct cmd_node bgp_vnc_nve_group_node = {
- BGP_VNC_NVE_GROUP_NODE, "%s(config-router-vnc-nve-group)# ", 1};
+ .node = BGP_VNC_NVE_GROUP_NODE,
+ .prompt = "%s(config-router-vnc-nve-group)# ",
+ .vtysh = 1,
+};
/*-------------------------------------------------------------------------
* VNC nve-group
@@ -3388,7 +3394,10 @@ DEFUN_NOSH (exit_vrf_policy,
}
static struct cmd_node bgp_vrf_policy_node = {
- BGP_VRF_POLICY_NODE, "%s(config-router-vrf-policy)# ", 1};
+ .node = BGP_VRF_POLICY_NODE,
+ .prompt = "%s(config-router-vrf-policy)# ",
+ .vtysh = 1,
+};
/*-------------------------------------------------------------------------
* vnc-l2-group
@@ -3624,7 +3633,10 @@ DEFUN (vnc_l2_group_rt,
static struct cmd_node bgp_vnc_l2_group_node = {
- BGP_VNC_L2_GROUP_NODE, "%s(config-router-vnc-l2-group)# ", 1};
+ .node = BGP_VNC_L2_GROUP_NODE,
+ .prompt = "%s(config-router-vnc-l2-group)# ",
+ .vtysh = 1,
+};
struct rfapi_l2_group_cfg *
bgp_rfapi_get_group_by_lni_label(struct bgp *bgp, uint32_t logical_net_id,
diff --git a/bgpd/rfapi/vnc_debug.c b/bgpd/rfapi/vnc_debug.c
index 2c5e18832..abc97786b 100644
--- a/bgpd/rfapi/vnc_debug.c
+++ b/bgpd/rfapi/vnc_debug.c
@@ -173,7 +173,11 @@ static int bgp_vnc_config_write_debug(struct vty *vty)
return write;
}
-static struct cmd_node debug_node = {DEBUG_VNC_NODE, "", 1};
+static struct cmd_node debug_node = {
+ .node = DEBUG_VNC_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
void vnc_debug_init(void)
{
diff --git a/eigrpd/eigrp_cli.c b/eigrpd/eigrp_cli.c
index a93d4c828..9b7d65c9c 100644
--- a/eigrpd/eigrp_cli.c
+++ b/eigrpd/eigrp_cli.c
@@ -838,7 +838,11 @@ void eigrp_cli_show_keychain(struct vty *vty, struct lyd_node *dnode,
/*
* CLI installation procedures.
*/
-static struct cmd_node eigrp_node = {EIGRP_NODE, "%s(config-router)# ", 1};
+static struct cmd_node eigrp_node = {
+ .node = EIGRP_NODE,
+ .prompt = "%s(config-router)# ",
+ .vtysh = 1,
+};
static int eigrp_config_write(struct vty *vty)
{
@@ -854,8 +858,11 @@ static int eigrp_config_write(struct vty *vty)
return written;
}
-static struct cmd_node eigrp_interface_node = {INTERFACE_NODE,
- "%s(config-if)# ", 1};
+static struct cmd_node eigrp_interface_node = {
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
+};
static int eigrp_write_interface(struct vty *vty)
diff --git a/eigrpd/eigrp_dump.c b/eigrpd/eigrp_dump.c
index 7278b002d..c37e0fae5 100644
--- a/eigrpd/eigrp_dump.c
+++ b/eigrpd/eigrp_dump.c
@@ -556,7 +556,9 @@ DEFUN (no_debug_eigrp_packets,
/* Debug node. */
static struct cmd_node eigrp_debug_node = {
- DEBUG_NODE, "", 1 /* VTYSH */
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
};
/* Initialize debug commands. */
diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 7d4f7b355..2d3bd89fa 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -1336,7 +1336,9 @@ ferr_r isis_circuit_passwd_hmac_md5_set(struct isis_circuit *circuit,
}
struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ", 1,
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
};
void isis_circuit_circ_type_set(struct isis_circuit *circuit, int circ_type)
diff --git a/isisd/isisd.c b/isisd/isisd.c
index c61c7f0e0..b56f88982 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -785,7 +785,11 @@ DEFUN_NOSH (show_debugging,
}
/* Debug node. */
-static struct cmd_node debug_node = {DEBUG_NODE, "", 1};
+static struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_debug(struct vty *vty)
{
@@ -2141,7 +2145,11 @@ int isis_config_write(struct vty *vty)
}
#endif /* ifdef FABRICD */
-struct cmd_node router_node = {ROUTER_NODE, "%s(config-router)# ", 1};
+struct cmd_node router_node = {
+ .node = ROUTER_NODE,
+ .prompt = "%s(config-router)# ",
+ .vtysh = 1,
+};
void isis_init(void)
{
diff --git a/ldpd/ldp_debug.c b/ldpd/ldp_debug.c
index ec70ef510..78d40b8ff 100644
--- a/ldpd/ldp_debug.c
+++ b/ldpd/ldp_debug.c
@@ -30,11 +30,10 @@ struct ldp_debug conf_ldp_debug;
struct ldp_debug ldp_debug;
/* Debug node. */
-struct cmd_node ldp_debug_node =
-{
- DEBUG_NODE,
- "",
- 1
+struct cmd_node ldp_debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
};
int
diff --git a/ldpd/ldp_vty_conf.c b/ldpd/ldp_vty_conf.c
index 84a5c0b1b..3b8c3404e 100644
--- a/ldpd/ldp_vty_conf.c
+++ b/ldpd/ldp_vty_conf.c
@@ -37,53 +37,46 @@ static void ldp_l2vpn_pw_config_write(struct vty *, struct l2vpn_pw *);
static int ldp_vty_get_af(struct vty *);
static int ldp_iface_is_configured(struct ldpd_conf *, const char *);
-struct cmd_node ldp_node =
-{
- LDP_NODE,
- "%s(config-ldp)# ",
- 1,
+struct cmd_node ldp_node = {
+ .node = LDP_NODE,
+ .prompt = "%s(config-ldp)# ",
+ .vtysh = 1,
};
-struct cmd_node ldp_ipv4_node =
-{
- LDP_IPV4_NODE,
- "%s(config-ldp-af)# ",
- 1,
+struct cmd_node ldp_ipv4_node = {
+ .node = LDP_IPV4_NODE,
+ .prompt = "%s(config-ldp-af)# ",
+ .vtysh = 1,
};
-struct cmd_node ldp_ipv6_node =
-{
- LDP_IPV6_NODE,
- "%s(config-ldp-af)# ",
- 1,
+struct cmd_node ldp_ipv6_node = {
+ .node = LDP_IPV6_NODE,
+ .prompt = "%s(config-ldp-af)# ",
+ .vtysh = 1,
};
-struct cmd_node ldp_ipv4_iface_node =
-{
- LDP_IPV4_IFACE_NODE,
- "%s(config-ldp-af-if)# ",
- 1,
+struct cmd_node ldp_ipv4_iface_node = {
+ .node = LDP_IPV4_IFACE_NODE,
+ .prompt = "%s(config-ldp-af-if)# ",
+ .vtysh = 1,
};
-struct cmd_node ldp_ipv6_iface_node =
-{
- LDP_IPV6_IFACE_NODE,
- "%s(config-ldp-af-if)# ",
- 1,
+struct cmd_node ldp_ipv6_iface_node = {
+ .node = LDP_IPV6_IFACE_NODE,
+ .prompt = "%s(config-ldp-af-if)# ",
+ .vtysh = 1,
};
-struct cmd_node ldp_l2vpn_node =
-{
- LDP_L2VPN_NODE,
- "%s(config-l2vpn)# ",
- 1,
+struct cmd_node ldp_l2vpn_node = {
+ .node = LDP_L2VPN_NODE,
+ .prompt = "%s(config-l2vpn)# ",
+ .vtysh = 1,
};
-struct cmd_node ldp_pseudowire_node =
-{
- LDP_PSEUDOWIRE_NODE,
- "%s(config-l2vpn-pw)# ",
- 1,
+struct cmd_node ldp_pseudowire_node = {
+ .node = LDP_PSEUDOWIRE_NODE,
+ .prompt = "%s(config-l2vpn-pw)# ",
+ .vtysh = 1,
};
int
diff --git a/lib/agentx.c b/lib/agentx.c
index d1b801fe8..0215affd9 100644
--- a/lib/agentx.c
+++ b/lib/agentx.c
@@ -158,9 +158,11 @@ static void agentx_events_update(void)
}
/* AgentX node. */
-static struct cmd_node agentx_node = {SMUX_NODE,
- "", /* AgentX has no interface. */
- 1};
+static struct cmd_node agentx_node = {
+ .node = SMUX_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
/* Logging NetSNMP messages */
static int agentx_log_callback(int major, int minor, void *serverarg,
diff --git a/lib/command.c b/lib/command.c
index 8811b3a79..85ccbbf19 100644
--- a/lib/command.c
+++ b/lib/command.c
@@ -181,22 +181,30 @@ const char *cmd_domainname_get(void)
/* Standard command node structures. */
static struct cmd_node auth_node = {
- AUTH_NODE, "Password: ",
+ .node = AUTH_NODE,
+ .prompt = "Password: ",
};
static struct cmd_node view_node = {
- VIEW_NODE, "%s> ",
+ .node = VIEW_NODE,
+ .prompt = "%s> ",
};
static struct cmd_node auth_enable_node = {
- AUTH_ENABLE_NODE, "Password: ",
+ .node = AUTH_ENABLE_NODE,
+ .prompt = "Password: ",
};
static struct cmd_node enable_node = {
- ENABLE_NODE, "%s# ",
+ .node = ENABLE_NODE,
+ .prompt = "%s# ",
};
-static struct cmd_node config_node = {CONFIG_NODE, "%s(config)# ", 1};
+static struct cmd_node config_node = {
+ .node = CONFIG_NODE,
+ .prompt = "%s(config)# ",
+ .vtysh = 1,
+};
static const struct facility_map {
int facility;
diff --git a/lib/filter.c b/lib/filter.c
index 3226fb2f5..381f9829b 100644
--- a/lib/filter.c
+++ b/lib/filter.c
@@ -2813,8 +2813,10 @@ static int config_write_access(struct vty *vty, afi_t afi)
}
static struct cmd_node access_mac_node = {
- ACCESS_MAC_NODE, "", /* Access list has no interface. */
- 1};
+ .node = ACCESS_MAC_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_access_mac(struct vty *vty)
{
@@ -2863,9 +2865,11 @@ static void access_list_init_mac(void)
}
/* Access-list node. */
-static struct cmd_node access_node = {ACCESS_NODE,
- "", /* Access list has no interface. */
- 1};
+static struct cmd_node access_node = {
+ .node = ACCESS_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_access_ipv4(struct vty *vty)
{
@@ -2948,7 +2952,11 @@ static void access_list_init_ipv4(void)
install_element(CONFIG_NODE, &no_access_list_remark_comment_cmd);
}
-static struct cmd_node access_ipv6_node = {ACCESS_IPV6_NODE, "", 1};
+static struct cmd_node access_ipv6_node = {
+ .node = ACCESS_IPV6_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_access_ipv6(struct vty *vty)
{
diff --git a/lib/keychain.c b/lib/keychain.c
index ea512a269..c0af630c4 100644
--- a/lib/keychain.c
+++ b/lib/keychain.c
@@ -959,11 +959,17 @@ DEFUN (no_send_lifetime,
return CMD_SUCCESS;
}
-static struct cmd_node keychain_node = {KEYCHAIN_NODE, "%s(config-keychain)# ",
- 1};
-
-static struct cmd_node keychain_key_node = {KEYCHAIN_KEY_NODE,
- "%s(config-keychain-key)# ", 1};
+static struct cmd_node keychain_node = {
+ .node = KEYCHAIN_NODE,
+ .prompt = "%s(config-keychain)# ",
+ .vtysh = 1,
+};
+
+static struct cmd_node keychain_key_node = {
+ .node = KEYCHAIN_KEY_NODE,
+ .prompt = "%s(config-keychain-key)# ",
+ .vtysh = 1,
+};
static int keychain_strftime(char *buf, int bufsiz, time_t *time)
{
diff --git a/lib/nexthop_group.c b/lib/nexthop_group.c
index a4c823e37..7c7914a72 100644
--- a/lib/nexthop_group.c
+++ b/lib/nexthop_group.c
@@ -934,9 +934,9 @@ DEFPY(ecmp_nexthops, ecmp_nexthops_cmd,
}
static struct cmd_node nexthop_group_node = {
- NH_GROUP_NODE,
- "%s(config-nh-group)# ",
- 1
+ .node = NH_GROUP_NODE,
+ .prompt = "%s(config-nh-group)# ",
+ .vtysh = 1,
};
void nexthop_group_write_nexthop(struct vty *vty, struct nexthop *nh)
diff --git a/lib/northbound_cli.c b/lib/northbound_cli.c
index 17dc25628..9c001a3b0 100644
--- a/lib/northbound_cli.c
+++ b/lib/northbound_cli.c
@@ -1674,7 +1674,11 @@ static int nb_debug_config_write(struct vty *vty)
}
static struct debug_callbacks nb_dbg_cbs = {.debug_set_all = nb_debug_set_all};
-static struct cmd_node nb_debug_node = {NORTHBOUND_DEBUG_NODE, "", 1};
+static struct cmd_node nb_debug_node = {
+ .node = NORTHBOUND_DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
void nb_cli_install_default(int node)
{
diff --git a/lib/plist.c b/lib/plist.c
index b7a020c6f..15a79a1cd 100644
--- a/lib/plist.c
+++ b/lib/plist.c
@@ -2045,9 +2045,11 @@ static void prefix_list_reset_afi(afi_t afi, int orf)
/* Prefix-list node. */
-static struct cmd_node prefix_node = {PREFIX_NODE,
- "", /* Prefix list has no interface. */
- 1};
+static struct cmd_node prefix_node = {
+ .node = PREFIX_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_prefix_ipv4(struct vty *vty)
{
@@ -2109,8 +2111,10 @@ static void prefix_list_init_ipv4(void)
/* Prefix-list node. */
static struct cmd_node prefix_ipv6_node = {
- PREFIX_IPV6_NODE, "", /* Prefix list has no interface. */
- 1};
+ .node = PREFIX_IPV6_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_prefix_ipv6(struct vty *vty)
{
diff --git a/lib/resolver.c b/lib/resolver.c
index 1be47bd6e..83e2f5269 100644
--- a/lib/resolver.c
+++ b/lib/resolver.c
@@ -245,7 +245,11 @@ DEFUN(debug_resolver,
return CMD_SUCCESS;
}
-static struct cmd_node resolver_debug_node = {RESOLVER_DEBUG_NODE, "", 1};
+static struct cmd_node resolver_debug_node = {
+ .node = RESOLVER_DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int resolver_config_write_debug(struct vty *vty)
{
diff --git a/lib/routemap.c b/lib/routemap.c
index e2baa36f2..dc73b1e0d 100644
--- a/lib/routemap.c
+++ b/lib/routemap.c
@@ -3015,7 +3015,11 @@ DEFUN (no_debug_rmap,
}
/* Debug node. */
-static struct cmd_node rmap_debug_node = {RMAP_DEBUG_NODE, "", 1};
+static struct cmd_node rmap_debug_node = {
+ .node = RMAP_DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
/* Configuration write function. */
static int rmap_config_write_debug(struct vty *vty)
diff --git a/lib/routemap_cli.c b/lib/routemap_cli.c
index 41e8cacd8..b7db1d4dd 100644
--- a/lib/routemap_cli.c
+++ b/lib/routemap_cli.c
@@ -1064,7 +1064,11 @@ static int route_map_config_write(struct vty *vty)
}
/* Route map node structure. */
-static struct cmd_node rmap_node = {RMAP_NODE, "%s(config-route-map)# ", 1};
+static struct cmd_node rmap_node = {
+ .node = RMAP_NODE,
+ .prompt = "%s(config-route-map)# ",
+ .vtysh = 1,
+};
static void rmap_autocomplete(vector comps, struct cmd_token *token)
{
diff --git a/lib/vrf.c b/lib/vrf.c
index f642aa560..52923a5cd 100644
--- a/lib/vrf.c
+++ b/lib/vrf.c
@@ -758,7 +758,11 @@ DEFUN (no_vrf,
}
-static struct cmd_node vrf_node = {VRF_NODE, "%s(config-vrf)# ", 1};
+static struct cmd_node vrf_node = {
+ .node = VRF_NODE,
+ .prompt = "%s(config-vrf)# ",
+ .vtysh = 1,
+};
DEFUN_NOSH (vrf_netns,
vrf_netns_cmd,
@@ -848,7 +852,11 @@ static int vrf_write_host(struct vty *vty)
return 1;
}
-static struct cmd_node vrf_debug_node = {VRF_DEBUG_NODE, "", 1};
+static struct cmd_node vrf_debug_node = {
+ .node = VRF_DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
void vrf_install_commands(void)
{
diff --git a/lib/vty.c b/lib/vty.c
index 8056236de..57350ea89 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -2990,7 +2990,9 @@ static int vty_config_write(struct vty *vty)
}
struct cmd_node vty_node = {
- VTY_NODE, "%s(config-line)# ", 1,
+ .node = VTY_NODE,
+ .prompt = "%s(config-line)# ",
+ .vtysh = 1,
};
/* Reset all VTY status. */
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 93265afc4..a0dd396cc 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -1944,7 +1944,9 @@ static int config_write_ospf6_interface(struct vty *vty)
}
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ", 1 /* VTYSH */
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
};
static int ospf6_ifp_create(struct interface *ifp)
diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c
index dc10fa52c..2f646ce44 100644
--- a/ospf6d/ospf6_top.c
+++ b/ospf6d/ospf6_top.c
@@ -1114,7 +1114,9 @@ static int config_write_ospf6(struct vty *vty)
/* OSPF6 node structure. */
static struct cmd_node ospf6_node = {
- OSPF6_NODE, "%s(config-ospf6)# ", 1 /* VTYSH */
+ .node = OSPF6_NODE,
+ .prompt = "%s(config-ospf6)# ",
+ .vtysh = 1,
};
/* Install ospf related commands. */
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index db61fe087..1beadca79 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -70,7 +70,9 @@ struct route_node *route_prev(struct route_node *node)
}
static struct cmd_node debug_node = {
- DEBUG_NODE, "", 1 /* VTYSH */
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
};
static int config_write_ospf6_debug(struct vty *vty)
diff --git a/ospfd/ospf_dump.c b/ospfd/ospf_dump.c
index a712ecde9..fda96a80d 100644
--- a/ospfd/ospf_dump.c
+++ b/ospfd/ospf_dump.c
@@ -1642,7 +1642,9 @@ DEFUN_NOSH (show_debugging_ospf_instance,
/* Debug node. */
static struct cmd_node debug_node = {
- DEBUG_NODE, "", 1 /* VTYSH */
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
};
static int config_write_debug(struct vty *vty)
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index ea73834a6..c2b08cab7 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -10556,7 +10556,11 @@ void ospf_vty_show_init(void)
/* ospfd's interface node. */
-static struct cmd_node interface_node = {INTERFACE_NODE, "%s(config-if)# ", 1};
+static struct cmd_node interface_node = {
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
+};
/* Initialization of OSPF interface. */
static void ospf_vty_if_init(void)
@@ -10668,7 +10672,11 @@ static void ospf_vty_zebra_init(void)
#endif /* 0 */
}
-static struct cmd_node ospf_node = {OSPF_NODE, "%s(config-router)# ", 1};
+static struct cmd_node ospf_node = {
+ .node = OSPF_NODE,
+ .prompt = "%s(config-router)# ",
+ .vtysh = 1,
+};
static void ospf_interface_clear(struct interface *ifp)
{
diff --git a/pbrd/pbr_vty.c b/pbrd/pbr_vty.c
index 4a3a9ca38..0ef856bd0 100644
--- a/pbrd/pbr_vty.c
+++ b/pbrd/pbr_vty.c
@@ -677,7 +677,11 @@ DEFPY (show_pbr_interface,
/* PBR debugging CLI ------------------------------------------------------- */
-static struct cmd_node debug_node = {DEBUG_NODE, "", 1};
+static struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
DEFPY(debug_pbr,
debug_pbr_cmd,
@@ -726,7 +730,9 @@ DEFUN_NOSH(show_debugging_pbr,
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ", 1 /* vtysh ? yes */
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
};
static int pbr_interface_config_write(struct vty *vty)
@@ -755,7 +761,11 @@ static int pbr_interface_config_write(struct vty *vty)
}
/* PBR map node structure. */
-static struct cmd_node pbr_map_node = {PBRMAP_NODE, "%s(config-pbr-map)# ", 1};
+static struct cmd_node pbr_map_node = {
+ .node = PBRMAP_NODE,
+ .prompt = "%s(config-pbr-map)# ",
+ .vtysh = 1,
+};
static int pbr_vty_map_config_write_sequence(struct vty *vty,
struct pbr_map *pbrm,
diff --git a/pimd/pim_cmd.c b/pimd/pim_cmd.c
index d6c500cdb..248fb9543 100644
--- a/pimd/pim_cmd.c
+++ b/pimd/pim_cmd.c
@@ -70,10 +70,16 @@
#endif
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ", 1 /* vtysh ? yes */
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
};
-static struct cmd_node debug_node = {DEBUG_NODE, "", 1};
+static struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static struct vrf *pim_cmd_lookup_vrf(struct vty *vty, struct cmd_token *argv[],
const int argc, int *idx)
diff --git a/ripd/rip_debug.c b/ripd/rip_debug.c
index 3356d99c2..fe6b534c9 100644
--- a/ripd/rip_debug.c
+++ b/ripd/rip_debug.c
@@ -173,9 +173,11 @@ DEFUN (no_debug_rip_zebra,
}
/* Debug node. */
-static struct cmd_node debug_node = {DEBUG_NODE,
- "", /* Debug node has no interface. */
- 1};
+static struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_debug(struct vty *vty)
{
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index c05d776eb..99b7c78d6 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -1194,7 +1194,9 @@ int rip_show_network_config(struct vty *vty, struct rip *rip)
}
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ", 1,
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
};
void rip_interface_sync(struct interface *ifp)
diff --git a/ripd/ripd.c b/ripd/ripd.c
index f092da847..ecb3fa2d3 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -3328,7 +3328,11 @@ static int config_write_rip(struct vty *vty)
}
/* RIP node structure. */
-static struct cmd_node rip_node = {RIP_NODE, "%s(config-router)# ", 1};
+static struct cmd_node rip_node = {
+ .node = RIP_NODE,
+ .prompt = "%s(config-router)# ",
+ .vtysh = 1,
+};
/* Distribute-list update functions. */
static void rip_distribute_update(struct distribute_ctx *ctx,
diff --git a/ripngd/ripng_debug.c b/ripngd/ripng_debug.c
index fe63d8fde..fe4ec256b 100644
--- a/ripngd/ripng_debug.c
+++ b/ripngd/ripng_debug.c
@@ -176,8 +176,9 @@ DEFUN (no_debug_ripng_zebra,
/* Debug node. */
static struct cmd_node debug_node = {
- DEBUG_NODE, "", /* Debug node has no interface. */
- 1 /* VTYSH */
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
};
static int config_write_debug(struct vty *vty)
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index 25d9ed2b9..d322a6ddb 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -956,7 +956,9 @@ static int interface_config_write(struct vty *vty)
/* ripngd's interface node. */
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ", 1 /* VTYSH */
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
};
/* Initialization of interface. */
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index 1ea006abd..12f8b268f 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -2436,7 +2436,9 @@ static int ripng_config_write(struct vty *vty)
/* RIPng node structure. */
static struct cmd_node cmd_ripng_node = {
- RIPNG_NODE, "%s(config-router)# ", 1,
+ .node = RIPNG_NODE,
+ .prompt = "%s(config-router)# ",
+ .vtysh = 1,
};
static void ripng_distribute_update(struct distribute_ctx *ctx,
diff --git a/staticd/static_vty.c b/staticd/static_vty.c
index a950b0473..82d8997da 100644
--- a/staticd/static_vty.c
+++ b/staticd/static_vty.c
@@ -1470,7 +1470,11 @@ DEFUN_NOSH (show_debugging_static,
return CMD_SUCCESS;
}
-static struct cmd_node debug_node = {DEBUG_NODE, "", 1};
+static struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
void static_vty_init(void)
{
diff --git a/tests/lib/cli/test_commands.c b/tests/lib/cli/test_commands.c
index 779a7539e..3ebe46a9a 100644
--- a/tests/lib/cli/test_commands.c
+++ b/tests/lib/cli/test_commands.c
@@ -49,50 +49,84 @@ static vector test_cmds;
static char test_buf[32768];
static struct cmd_node bgp_node = {
- BGP_NODE, "%s(config-router)# ",
+ .node = BGP_NODE,
+ .prompt = "%s(config-router)# ",
};
static struct cmd_node rip_node = {
- RIP_NODE, "%s(config-router)# ",
+ .node = RIP_NODE,
+ .prompt = "%s(config-router)# ",
};
static struct cmd_node isis_node = {
- ISIS_NODE, "%s(config-router)# ",
+ .node = ISIS_NODE,
+ .prompt = "%s(config-router)# ",
};
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ",
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
};
-static struct cmd_node rmap_node = {RMAP_NODE, "%s(config-route-map)# "};
+static struct cmd_node rmap_node = {
+ .node = RMAP_NODE,
+ .prompt = "%s(config-route-map)# ",
+};
-static struct cmd_node zebra_node = {ZEBRA_NODE, "%s(config-router)# "};
+static struct cmd_node zebra_node = {
+ .node = ZEBRA_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node bgp_vpnv4_node = {BGP_VPNV4_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_vpnv4_node = {
+ .node = BGP_VPNV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv4_node = {BGP_IPV4_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv4_node = {
+ .node = BGP_IPV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv4m_node = {BGP_IPV4M_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv4m_node = {
+ .node = BGP_IPV4M_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv6_node = {BGP_IPV6_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv6_node = {
+ .node = BGP_IPV6_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv6m_node = {BGP_IPV6M_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv6m_node = {
+ .node = BGP_IPV6M_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node ospf_node = {OSPF_NODE, "%s(config-router)# "};
+static struct cmd_node ospf_node = {
+ .node = OSPF_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node ripng_node = {RIPNG_NODE, "%s(config-router)# "};
+static struct cmd_node ripng_node = {
+ .node = RIPNG_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node ospf6_node = {OSPF6_NODE, "%s(config-ospf6)# "};
+static struct cmd_node ospf6_node = {
+ .node = OSPF6_NODE,
+ .prompt = "%s(config-ospf6)# ",
+};
-static struct cmd_node keychain_node = {KEYCHAIN_NODE, "%s(config-keychain)# "};
+static struct cmd_node keychain_node = {
+ .node = KEYCHAIN_NODE,
+ .prompt = "%s(config-keychain)# ",
+};
-static struct cmd_node keychain_key_node = {KEYCHAIN_KEY_NODE,
- "%s(config-keychain-key)# "};
+static struct cmd_node keychain_key_node = {
+ .node = KEYCHAIN_KEY_NODE,
+ .prompt = "%s(config-keychain-key)# ",
+};
static int test_callback(const struct cmd_element *cmd, struct vty *vty,
int argc, struct cmd_token *argv[])
diff --git a/vrrpd/vrrp_vty.c b/vrrpd/vrrp_vty.c
index 892c8dadd..98e0e598e 100644
--- a/vrrpd/vrrp_vty.c
+++ b/vrrpd/vrrp_vty.c
@@ -744,9 +744,23 @@ static int vrrp_config_write_interface(struct vty *vty)
return write;
}
-static struct cmd_node interface_node = {INTERFACE_NODE, "%s(config-if)# ", 1};
-static struct cmd_node debug_node = {DEBUG_NODE, "", 1};
-static struct cmd_node vrrp_node = {VRRP_NODE, "", 1};
+static struct cmd_node interface_node = {
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
+};
+
+static struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
+
+static struct cmd_node vrrp_node = {
+ .node = VRRP_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
void vrrp_vty_init(void)
{
diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c
index a5fa686eb..b8fd31142 100644
--- a/vtysh/vtysh.c
+++ b/vtysh/vtysh.c
@@ -1173,141 +1173,235 @@ static char **new_completion(const char *text, int start, int end)
/* Vty node structures. */
static struct cmd_node bgp_node = {
- BGP_NODE, "%s(config-router)# ",
+ .node = BGP_NODE,
+ .prompt = "%s(config-router)# ",
};
static struct cmd_node rip_node = {
- RIP_NODE, "%s(config-router)# ",
+ .node = RIP_NODE,
+ .prompt = "%s(config-router)# ",
};
static struct cmd_node isis_node = {
- ISIS_NODE, "%s(config-router)# ",
+ .node = ISIS_NODE,
+ .prompt = "%s(config-router)# ",
};
static struct cmd_node openfabric_node = {
- OPENFABRIC_NODE, "%s(config-router)# ",
+ .node = OPENFABRIC_NODE,
+ .prompt = "%s(config-router)# ",
};
static struct cmd_node interface_node = {
- INTERFACE_NODE, "%s(config-if)# ",
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
};
static struct cmd_node pw_node = {
- PW_NODE, "%s(config-pw)# ",
+ .node = PW_NODE,
+ .prompt = "%s(config-pw)# ",
};
static struct cmd_node vrf_node = {
- VRF_NODE, "%s(config-vrf)# ",
+ .node = VRF_NODE,
+ .prompt = "%s(config-vrf)# ",
};
static struct cmd_node nh_group_node = {
- NH_GROUP_NODE,
- "%s(config-nh-group)# ",
+ .node = NH_GROUP_NODE,
+ .prompt = "%s(config-nh-group)# ",
};
-static struct cmd_node rmap_node = {RMAP_NODE, "%s(config-route-map)# "};
+static struct cmd_node rmap_node = {
+ .node = RMAP_NODE,
+ .prompt = "%s(config-route-map)# ",
+};
-static struct cmd_node pbr_map_node = {PBRMAP_NODE, "%s(config-pbr-map)# "};
+static struct cmd_node pbr_map_node = {
+ .node = PBRMAP_NODE,
+ .prompt = "%s(config-pbr-map)# ",
+};
-static struct cmd_node zebra_node = {ZEBRA_NODE, "%s(config-router)# "};
+static struct cmd_node zebra_node = {
+ .node = ZEBRA_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node bgp_vpnv4_node = {BGP_VPNV4_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_vpnv4_node = {
+ .node = BGP_VPNV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_vpnv6_node = {BGP_VPNV6_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_vpnv6_node = {
+ .node = BGP_VPNV6_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_flowspecv4_node = {BGP_FLOWSPECV4_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_flowspecv4_node = {
+ .node = BGP_FLOWSPECV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_flowspecv6_node = {BGP_FLOWSPECV6_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_flowspecv6_node = {
+ .node = BGP_FLOWSPECV6_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv4_node = {BGP_IPV4_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv4_node = {
+ .node = BGP_IPV4_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv4m_node = {BGP_IPV4M_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv4m_node = {
+ .node = BGP_IPV4M_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv4l_node = {BGP_IPV4L_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv4l_node = {
+ .node = BGP_IPV4L_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv6_node = {BGP_IPV6_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv6_node = {
+ .node = BGP_IPV6_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_ipv6m_node = {BGP_IPV6M_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv6m_node = {
+ .node = BGP_IPV6M_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_evpn_node = {BGP_EVPN_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_evpn_node = {
+ .node = BGP_EVPN_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
-static struct cmd_node bgp_evpn_vni_node = {BGP_EVPN_VNI_NODE,
- "%s(config-router-af-vni)# "};
+static struct cmd_node bgp_evpn_vni_node = {
+ .node = BGP_EVPN_VNI_NODE,
+ .prompt = "%s(config-router-af-vni)# ",
+};
-static struct cmd_node bgp_ipv6l_node = {BGP_IPV6L_NODE,
- "%s(config-router-af)# "};
+static struct cmd_node bgp_ipv6l_node = {
+ .node = BGP_IPV6L_NODE,
+ .prompt = "%s(config-router-af)# ",
+};
static struct cmd_node bgp_vnc_defaults_node = {
- BGP_VNC_DEFAULTS_NODE, "%s(config-router-vnc-defaults)# "};
+ .node = BGP_VNC_DEFAULTS_NODE,
+ .prompt = "%s(config-router-vnc-defaults)# ",
+};
static struct cmd_node bgp_vnc_nve_group_node = {
- BGP_VNC_NVE_GROUP_NODE, "%s(config-router-vnc-nve-group)# "};
+ .node = BGP_VNC_NVE_GROUP_NODE,
+ .prompt = "%s(config-router-vnc-nve-group)# ",
+};
-static struct cmd_node bgp_vrf_policy_node = {BGP_VRF_POLICY_NODE,
- "%s(config-router-vrf-policy)# "};
+static struct cmd_node bgp_vrf_policy_node = {
+ .node = BGP_VRF_POLICY_NODE,
+ .prompt = "%s(config-router-vrf-policy)# ",
+};
static struct cmd_node bgp_vnc_l2_group_node = {
- BGP_VNC_L2_GROUP_NODE, "%s(config-router-vnc-l2-group)# "};
+ .node = BGP_VNC_L2_GROUP_NODE,
+ .prompt = "%s(config-router-vnc-l2-group)# ",
+};
-static struct cmd_node bmp_node = {BMP_NODE, "%s(config-bgp-bmp)# "};
+static struct cmd_node bmp_node = {
+ .node = BMP_NODE,
+ .prompt = "%s(config-bgp-bmp)# "
+};
-static struct cmd_node ospf_node = {OSPF_NODE, "%s(config-router)# "};
+static struct cmd_node ospf_node = {
+ .node = OSPF_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node eigrp_node = {EIGRP_NODE, "%s(config-router)# "};
+static struct cmd_node eigrp_node = {
+ .node = EIGRP_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node babel_node = {BABEL_NODE, "%s(config-router)# "};
+static struct cmd_node babel_node = {
+ .node = BABEL_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node ripng_node = {RIPNG_NODE, "%s(config-router)# "};
+static struct cmd_node ripng_node = {
+ .node = RIPNG_NODE,
+ .prompt = "%s(config-router)# ",
+};
-static struct cmd_node ospf6_node = {OSPF6_NODE, "%s(config-ospf6)# "};
+static struct cmd_node ospf6_node = {
+ .node = OSPF6_NODE,
+ .prompt = "%s(config-ospf6)# ",
+};
-static struct cmd_node ldp_node = {LDP_NODE, "%s(config-ldp)# "};
+static struct cmd_node ldp_node = {
+ .node = LDP_NODE,
+ .prompt = "%s(config-ldp)# ",
+};
-static struct cmd_node ldp_ipv4_node = {LDP_IPV4_NODE, "%s(config-ldp-af)# "};
+static struct cmd_node ldp_ipv4_node = {
+ .node = LDP_IPV4_NODE,
+ .prompt = "%s(config-ldp-af)# ",
+};
-static struct cmd_node ldp_ipv6_node = {LDP_IPV6_NODE, "%s(config-ldp-af)# "};
+static struct cmd_node ldp_ipv6_node = {
+ .node = LDP_IPV6_NODE,
+ .prompt = "%s(config-ldp-af)# ",
+};
-static struct cmd_node ldp_ipv4_iface_node = {LDP_IPV4_IFACE_NODE,
- "%s(config-ldp-af-if)# "};
+static struct cmd_node ldp_ipv4_iface_node = {
+ .node = LDP_IPV4_IFACE_NODE,
+ .prompt = "%s(config-ldp-af-if)# ",
+};
-static struct cmd_node ldp_ipv6_iface_node = {LDP_IPV6_IFACE_NODE,
- "%s(config-ldp-af-if)# "};
+static struct cmd_node ldp_ipv6_iface_node = {
+ .node = LDP_IPV6_IFACE_NODE,
+ .prompt = "%s(config-ldp-af-if)# ",
+};
-static struct cmd_node ldp_l2vpn_node = {LDP_L2VPN_NODE, "%s(config-l2vpn)# "};
+static struct cmd_node ldp_l2vpn_node = {
+ .node = LDP_L2VPN_NODE,
+ .prompt = "%s(config-l2vpn)# ",
+};
-static struct cmd_node ldp_pseudowire_node = {LDP_PSEUDOWIRE_NODE,
- "%s(config-l2vpn-pw)# "};
+static struct cmd_node ldp_pseudowire_node = {
+ .node = LDP_PSEUDOWIRE_NODE,
+ .prompt = "%s(config-l2vpn-pw)# ",
+};
-static struct cmd_node keychain_node = {KEYCHAIN_NODE, "%s(config-keychain)# "};
+static struct cmd_node keychain_node = {
+ .node = KEYCHAIN_NODE,
+ .prompt = "%s(config-keychain)# ",
+};
-static struct cmd_node keychain_key_node = {KEYCHAIN_KEY_NODE,
- "%s(config-keychain-key)# "};
+static struct cmd_node keychain_key_node = {
+ .node = KEYCHAIN_KEY_NODE,
+ .prompt = "%s(config-keychain-key)# ",
+};
struct cmd_node link_params_node = {
- LINK_PARAMS_NODE, "%s(config-link-params)# ",
+ .node = LINK_PARAMS_NODE,
+ .prompt = "%s(config-link-params)# ",
};
-static struct cmd_node rpki_node = {RPKI_NODE, "%s(config-rpki)# ", 1};
+static struct cmd_node rpki_node = {
+ .node = RPKI_NODE,
+ .prompt = "%s(config-rpki)# ",
+ .vtysh = 1,
+};
#if HAVE_BFDD > 0
static struct cmd_node bfd_node = {
- BFD_NODE,
- "%s(config-bfd)# ",
+ .node = BFD_NODE,
+ .prompt = "%s(config-bfd)# ",
};
static struct cmd_node bfd_peer_node = {
- BFD_PEER_NODE,
- "%s(config-bfd-peer)# ",
+ .node = BFD_PEER_NODE,
+ .prompt = "%s(config-bfd-peer)# ",
};
#endif /* HAVE_BFDD */
diff --git a/zebra/debug.c b/zebra/debug.c
index 68f6b6930..6e177f839 100644
--- a/zebra/debug.c
+++ b/zebra/debug.c
@@ -471,8 +471,11 @@ DEFPY (debug_zebra_nexthop,
}
/* Debug node. */
-struct cmd_node debug_node = {DEBUG_NODE, "", /* Debug node has no interface. */
- 1};
+struct cmd_node debug_node = {
+ .node = DEBUG_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
static int config_write_debug(struct vty *vty)
{
diff --git a/zebra/interface.c b/zebra/interface.c
index 59cbfc685..520d6a336 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -1664,7 +1664,11 @@ static void interface_update_stats(void)
#endif /* HAVE_NET_RT_IFLIST */
}
-struct cmd_node interface_node = {INTERFACE_NODE, "%s(config-if)# ", 1};
+struct cmd_node interface_node = {
+ .node = INTERFACE_NODE,
+ .prompt = "%s(config-if)# ",
+ .vtysh = 1,
+};
#ifndef VTYSH_EXTRACT_PL
#include "zebra/interface_clippy.c"
@@ -2074,7 +2078,9 @@ DEFUN (no_bandwidth_if,
struct cmd_node link_params_node = {
- LINK_PARAMS_NODE, "%s(config-link-params)# ", 1,
+ .node = LINK_PARAMS_NODE,
+ .prompt = "%s(config-link-params)# ",
+ .vtysh = 1,
};
static void link_param_cmd_set_uint32(struct interface *ifp, uint32_t *field,
diff --git a/zebra/zebra_fpm.c b/zebra/zebra_fpm.c
index 10cdf49d1..d0e193317 100644
--- a/zebra/zebra_fpm.c
+++ b/zebra/zebra_fpm.c
@@ -1939,7 +1939,11 @@ static int fpm_remote_srv_write(struct vty *vty)
/* Zebra node */
-static struct cmd_node zebra_node = {ZEBRA_NODE, "", 1};
+static struct cmd_node zebra_node = {
+ .node = ZEBRA_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
/**
diff --git a/zebra/zebra_mpls_vty.c b/zebra/zebra_mpls_vty.c
index 796aa3f66..78a3110ea 100644
--- a/zebra/zebra_mpls_vty.c
+++ b/zebra/zebra_mpls_vty.c
@@ -450,7 +450,11 @@ DEFUN (no_mpls_label_global_block,
}
/* MPLS node for MPLS LSP. */
-static struct cmd_node mpls_node = {MPLS_NODE, "", 1};
+static struct cmd_node mpls_node = {
+ .node = MPLS_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
/* MPLS VTY. */
void zebra_mpls_vty_init(void)
diff --git a/zebra/zebra_pw.c b/zebra/zebra_pw.c
index 610a052c3..d16082c51 100644
--- a/zebra/zebra_pw.c
+++ b/zebra/zebra_pw.c
@@ -548,7 +548,9 @@ static int zebra_pw_config(struct vty *vty)
}
static struct cmd_node pw_node = {
- PW_NODE, "%s(config-pw)# ", 1,
+ .node = PW_NODE,
+ .prompt = "%s(config-pw)# ",
+ .vtysh = 1,
};
void zebra_pw_vty_init(void)
diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c
index ef3dc9808..d663e4c5a 100644
--- a/zebra/zebra_vty.c
+++ b/zebra/zebra_vty.c
@@ -3478,15 +3478,27 @@ DEFUN_HIDDEN (show_frr,
}
/* IP node for static routes. */
-static struct cmd_node ip_node = {IP_NODE, "", 1};
-static struct cmd_node protocol_node = {PROTOCOL_NODE, "", 1};
+static struct cmd_node ip_node = {
+ .node = IP_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
+static struct cmd_node protocol_node = {
+ .node = PROTOCOL_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
/* table node for routing tables. */
-static struct cmd_node table_node = {TABLE_NODE,
- "", /* This node has no interface. */
- 1};
-static struct cmd_node forwarding_node = {FORWARDING_NODE,
- "", /* This node has no interface. */
- 1};
+static struct cmd_node table_node = {
+ .node = TABLE_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
+static struct cmd_node forwarding_node = {
+ .node = FORWARDING_NODE,
+ .prompt = "",
+ .vtysh = 1,
+};
/* Route VTY. */
void zebra_vty_init(void)