diff --git a/configure.ac b/configure.ac index 25157d1fa3..3cc74c4110 100755 --- a/configure.ac +++ b/configure.ac @@ -1561,10 +1561,70 @@ dnl -------------------- dnl Daemon disable check dnl -------------------- +AS_IF([test "$enable_bgpd" != "no"], [ + AC_DEFINE([HAVE_BGPD], [1], [bgpd]) +]) + +AS_IF([test "$enable_ripd" != "no"], [ + AC_DEFINE([HAVE_RIPD], [1], [ripd]) +]) + +AS_IF([test "$enable_ripngd" != "no"], [ + AC_DEFINE([HAVE_RIPNGD], [1], [ripngd]) +]) + +AS_IF([test "$enable_ospfd" != "no"], [ + AC_DEFINE([HAVE_OSPFD], [1], [ospfd]) +]) + +AS_IF([test "$enable_ospf6d" != "no"], [ + AC_DEFINE([HAVE_OSPF6D], [1], [ospf6d]) +]) + AS_IF([test "$enable_ldpd" != "no"], [ AC_DEFINE([HAVE_LDPD], [1], [ldpd]) ]) +AS_IF([test "$enable_nhrpd" != "no"], [ + AC_DEFINE([HAVE_NHRPD], [1], [nhrpd]) +]) + +AS_IF([test "$enable_eigrpd" != "no"], [ + AC_DEFINE([HAVE_EIGRPD], [1], [eigrpd]) +]) + +AS_IF([test "$enable_babeld" != "no"], [ + AC_DEFINE([HAVE_BABELD], [1], [babeld]) +]) + +AS_IF([test "$enable_isisd" != "no"], [ + AC_DEFINE([HAVE_ISISD], [1], [isisd]) +]) + +AS_IF([test "$enable_pimd" != "no"], [ + AC_DEFINE([HAVE_PIMD], [1], [pimd]) +]) + +AS_IF([test "$enable_pbrd" != "no"], [ + AC_DEFINE([HAVE_PBRD], [1], [pbrd]) +]) + +AS_IF([test "$enable_sharpd" = "yes"], [ + AC_DEFINE([HAVE_SHARPD], [1], [sharpd]) +]) + +AS_IF([test "$enable_staticd" != "no"], [ + AC_DEFINE([HAVE_STATICD], [1], [staticd]) +]) + +AS_IF([test "$enable_fabricd" != "no"], [ + AC_DEFINE([HAVE_FABRICD], [1], [fabricd]) +]) + +AS_IF([test "$enable_vrrpd" != "no"], [ + AC_DEFINE([HAVE_VRRPD], [1], [vrrpd]) +]) + if test "$enable_bfdd" = "no"; then AC_DEFINE([HAVE_BFDD], [0], [bfdd]) BFDD="" diff --git a/vtysh/vtysh.c b/vtysh/vtysh.c index bb158f3c9e..9993e73353 100644 --- a/vtysh/vtysh.c +++ b/vtysh/vtysh.c @@ -1173,12 +1173,14 @@ static char **new_completion(const char *text, int start, int end) } /* Vty node structures. */ +#ifdef HAVE_BGPD static struct cmd_node bgp_node = { .name = "bgp", .node = BGP_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-router)# ", }; +#endif /* HAVE_BGPD */ static struct cmd_node rip_node = { .name = "rip", @@ -1187,19 +1189,23 @@ static struct cmd_node rip_node = { .prompt = "%s(config-router)# ", }; +#ifdef HAVE_ISISD static struct cmd_node isis_node = { .name = "isis", .node = ISIS_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-router)# ", }; +#endif /* HAVE_ISISD */ +#ifdef HAVE_FABRICD static struct cmd_node openfabric_node = { .name = "openfabric", .node = OPENFABRIC_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-router)# ", }; +#endif /* HAVE_FABRICD */ static struct cmd_node interface_node = { .name = "interface", @@ -1236,12 +1242,14 @@ static struct cmd_node rmap_node = { .prompt = "%s(config-route-map)# ", }; +#ifdef HAVE_PBRD static struct cmd_node pbr_map_node = { .name = "pbr-map", .node = PBRMAP_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-pbr-map)# ", }; +#endif /* HAVE_PBRD */ static struct cmd_node zebra_node = { .name = "zebra", @@ -1250,6 +1258,7 @@ static struct cmd_node zebra_node = { .prompt = "%s(config-router)# ", }; +#ifdef HAVE_BGPD static struct cmd_node bgp_vpnv4_node = { .name = "bgp vpnv4", .node = BGP_VPNV4_NODE, @@ -1334,6 +1343,7 @@ static struct cmd_node bgp_ipv6l_node = { .prompt = "%s(config-router-af)# ", }; +#ifdef ENABLE_BGP_VNC static struct cmd_node bgp_vnc_defaults_node = { .name = "bgp vnc defaults", .node = BGP_VNC_DEFAULTS_NODE, @@ -1361,6 +1371,7 @@ static struct cmd_node bgp_vnc_l2_group_node = { .parent_node = BGP_NODE, .prompt = "%s(config-router-vnc-l2-group)# ", }; +#endif /* ENABLE_BGP_VNC */ static struct cmd_node bmp_node = { .name = "bmp", @@ -1368,27 +1379,34 @@ static struct cmd_node bmp_node = { .parent_node = BGP_NODE, .prompt = "%s(config-bgp-bmp)# " }; +#endif /* HAVE_BGPD */ +#ifdef HAVE_OSPFD static struct cmd_node ospf_node = { .name = "ospf", .node = OSPF_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-router)# ", }; +#endif /* HAVE_OSPFD */ +#ifdef HAVE_EIGRPD static struct cmd_node eigrp_node = { .name = "eigrp", .node = EIGRP_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-router)# ", }; +#endif /* HAVE_EIGRPD */ +#ifdef HAVE_BABELD static struct cmd_node babel_node = { .name = "babel", .node = BABEL_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-router)# ", }; +#endif /* HAVE_BABELD */ static struct cmd_node ripng_node = { .name = "ripng", @@ -1397,13 +1415,16 @@ static struct cmd_node ripng_node = { .prompt = "%s(config-router)# ", }; +#ifdef HAVE_OSPF6D static struct cmd_node ospf6_node = { .name = "ospf6", .node = OSPF6_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-ospf6)# ", }; +#endif /* HAVE_OSPF6D */ +#ifdef HAVE_LDPD static struct cmd_node ldp_node = { .name = "ldp", .node = LDP_NODE, @@ -1452,6 +1473,7 @@ static struct cmd_node ldp_pseudowire_node = { .parent_node = LDP_L2VPN_NODE, .prompt = "%s(config-l2vpn-pw)# ", }; +#endif /* HAVE_LDPD */ static struct cmd_node keychain_node = { .name = "keychain", @@ -1474,12 +1496,14 @@ struct cmd_node link_params_node = { .prompt = "%s(config-link-params)# ", }; +#ifdef HAVE_BGPD static struct cmd_node rpki_node = { .name = "rpki", .node = RPKI_NODE, .parent_node = CONFIG_NODE, .prompt = "%s(config-rpki)# ", }; +#endif /* HAVE_BGPD */ #if HAVE_BFDD > 0 static struct cmd_node bfd_node = { @@ -1528,6 +1552,7 @@ DEFUNSH(VTYSH_REALLYALL, vtysh_end_all, vtysh_end_all_cmd, "end", return vtysh_end(); } +#ifdef HAVE_BGPD DEFUNSH(VTYSH_BGPD, router_bgp, router_bgp_cmd, "router bgp [(1-4294967295) [ WORD]]", ROUTER_STR BGP_STR AS_STR @@ -1748,6 +1773,7 @@ DEFUNSH(VTYSH_BGPD, vnc_l2_group, vnc_l2_group_cmd, "vnc l2-group NAME", return CMD_SUCCESS; } #endif +#endif /* HAVE_BGPD */ DEFUNSH(VTYSH_KEYS, key_chain, key_chain_cmd, "key chain WORD", "Authentication key management\n" @@ -1766,20 +1792,25 @@ DEFUNSH(VTYSH_KEYS, key, key_cmd, "key (0-2147483647)", return CMD_SUCCESS; } +#ifdef HAVE_RIPD DEFUNSH(VTYSH_RIPD, router_rip, router_rip_cmd, "router rip [vrf NAME]", ROUTER_STR "RIP\n" VRF_CMD_HELP_STR) { vty->node = RIP_NODE; return CMD_SUCCESS; } +#endif /* HAVE_RIPD */ +#ifdef HAVE_RIPNGD DEFUNSH(VTYSH_RIPNGD, router_ripng, router_ripng_cmd, "router ripng [vrf NAME]", ROUTER_STR "RIPng\n" VRF_CMD_HELP_STR) { vty->node = RIPNG_NODE; return CMD_SUCCESS; } +#endif /* HAVE_RIPNGD */ +#ifdef HAVE_OSPFD DEFUNSH(VTYSH_OSPFD, router_ospf, router_ospf_cmd, "router ospf [(1-65535)] [vrf NAME]", "Enable a routing process\n" @@ -1790,7 +1821,9 @@ DEFUNSH(VTYSH_OSPFD, router_ospf, router_ospf_cmd, vty->node = OSPF_NODE; return CMD_SUCCESS; } +#endif /* HAVE_OSPFD */ +#ifdef HAVE_EIGRPD DEFUNSH(VTYSH_EIGRPD, router_eigrp, router_eigrp_cmd, "router eigrp (1-65535) [vrf NAME]", "Enable a routing process\n" "Start EIGRP configuration\n" @@ -1800,7 +1833,9 @@ DEFUNSH(VTYSH_EIGRPD, router_eigrp, router_eigrp_cmd, "router eigrp (1-65535) [v vty->node = EIGRP_NODE; return CMD_SUCCESS; } +#endif /* HAVE_EIGRPD */ +#ifdef HAVE_BABELD DEFUNSH(VTYSH_BABELD, router_babel, router_babel_cmd, "router babel", "Enable a routing process\n" "Make Babel instance command\n") @@ -1808,13 +1843,16 @@ DEFUNSH(VTYSH_BABELD, router_babel, router_babel_cmd, "router babel", vty->node = BABEL_NODE; return CMD_SUCCESS; } +#endif /* HAVE_BABELD */ +#ifdef HAVE_OSPF6D DEFUNSH(VTYSH_OSPF6D, router_ospf6, router_ospf6_cmd, "router ospf6", ROUTER_STR OSPF6_STR) { vty->node = OSPF6_NODE; return CMD_SUCCESS; } +#endif #if defined(HAVE_LDPD) DEFUNSH(VTYSH_LDPD, ldp_mpls_ldp, ldp_mpls_ldp_cmd, "mpls ldp", @@ -1892,6 +1930,7 @@ DEFUNSH(VTYSH_LDPD, ldp_member_pseudowire_ifname, } #endif +#ifdef HAVE_ISISD DEFUNSH(VTYSH_ISISD, router_isis, router_isis_cmd, "router isis WORD [vrf NAME]", ROUTER_STR @@ -1901,7 +1940,9 @@ DEFUNSH(VTYSH_ISISD, router_isis, router_isis_cmd, vty->node = ISIS_NODE; return CMD_SUCCESS; } +#endif /* HAVE_ISISD */ +#ifdef HAVE_FABRICD DEFUNSH(VTYSH_FABRICD, router_openfabric, router_openfabric_cmd, "router openfabric WORD", ROUTER_STR "OpenFabric routing protocol\n" @@ -1910,6 +1951,7 @@ DEFUNSH(VTYSH_FABRICD, router_openfabric, router_openfabric_cmd, "router openfab vty->node = OPENFABRIC_NODE; return CMD_SUCCESS; } +#endif /* HAVE_FABRICD */ DEFUNSH(VTYSH_RMAP, vtysh_route_map, vtysh_route_map_cmd, "route-map WORD (1-65535)", @@ -1923,6 +1965,7 @@ DEFUNSH(VTYSH_RMAP, vtysh_route_map, vtysh_route_map_cmd, return CMD_SUCCESS; } +#ifdef HAVE_PBRD DEFUNSH(VTYSH_PBRD, vtysh_pbr_map, vtysh_pbr_map_cmd, "pbr-map PBRMAP seq (1-700)", "Create pbr-map or enter pbr-map command mode\n" @@ -1934,6 +1977,14 @@ DEFUNSH(VTYSH_PBRD, vtysh_pbr_map, vtysh_pbr_map_cmd, return CMD_SUCCESS; } +DEFSH(VTYSH_PBRD, vtysh_no_pbr_map_cmd, "no pbr-map PBRMAP [seq (1-700)]", + NO_STR + "Delete pbr-map\n" + "The name of the PBR MAP\n" + "Sequence to delete from existing pbr-map entry\n" + "Sequence number\n") +#endif /* HAVE_PBRD */ + #if HAVE_BFDD > 0 DEFUNSH(VTYSH_BFDD, bfd_enter, bfd_enter_cmd, "bfd", "Configure BFD peers\n") { @@ -1969,13 +2020,6 @@ DEFUNSH(VTYSH_BFDD, bfd_profile_enter, bfd_profile_enter_cmd, } #endif /* HAVE_BFDD */ -DEFSH(VTYSH_PBRD, vtysh_no_pbr_map_cmd, "no pbr-map PBRMAP [seq (1-700)]", - NO_STR - "Delete pbr-map\n" - "The name of the PBR MAP\n" - "Sequence to delete from existing pbr-map entry\n" - "Sequence number\n") - DEFUNSH(VTYSH_ALL, vtysh_line_vty, vtysh_line_vty_cmd, "line vty", "Configure a terminal line\n" "Virtual terminal\n") @@ -2039,6 +2083,7 @@ DEFUNSH(VTYSH_ALL, vtysh_quit_all, vtysh_quit_all_cmd, "quit", return vtysh_exit_all(self, vty, argc, argv); } +#ifdef HAVE_BGPD DEFUNSH(VTYSH_BGPD, exit_address_family, exit_address_family_cmd, "exit-address-family", "Exit from Address Family configuration mode\n") { @@ -2097,6 +2142,15 @@ DEFUNSH(VTYSH_BGPD, bmp_quit, bmp_quit_cmd, "quit", return bmp_exit(self, vty, argc, argv); } +DEFUNSH(VTYSH_BGPD, exit_vrf_policy, exit_vrf_policy_cmd, "exit-vrf-policy", + "Exit from VRF policy configuration mode\n") +{ + if (vty->node == BGP_VRF_POLICY_NODE) + vty->node = BGP_NODE; + return CMD_SUCCESS; +} +#endif /* HAVE_BGPD */ + DEFUNSH(VTYSH_VRF, exit_vrf_config, exit_vrf_config_cmd, "exit-vrf", "Exit from VRF configuration mode\n") { @@ -2105,14 +2159,7 @@ DEFUNSH(VTYSH_VRF, exit_vrf_config, exit_vrf_config_cmd, "exit-vrf", return CMD_SUCCESS; } -DEFUNSH(VTYSH_BGPD, exit_vrf_policy, exit_vrf_policy_cmd, "exit-vrf-policy", - "Exit from VRF policy configuration mode\n") -{ - if (vty->node == BGP_VRF_POLICY_NODE) - vty->node = BGP_NODE; - return CMD_SUCCESS; -} - +#ifdef HAVE_RIPD DEFUNSH(VTYSH_RIPD, vtysh_exit_ripd, vtysh_exit_ripd_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2124,7 +2171,9 @@ DEFUNSH(VTYSH_RIPD, vtysh_quit_ripd, vtysh_quit_ripd_cmd, "quit", { return vtysh_exit_ripd(self, vty, argc, argv); } +#endif /* HAVE_RIPD */ +#ifdef HAVE_RIPNGD DEFUNSH(VTYSH_RIPNGD, vtysh_exit_ripngd, vtysh_exit_ripngd_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2136,6 +2185,7 @@ DEFUNSH(VTYSH_RIPNGD, vtysh_quit_ripngd, vtysh_quit_ripngd_cmd, "quit", { return vtysh_exit_ripngd(self, vty, argc, argv); } +#endif /* HAVE_RIPNGD */ DEFUNSH(VTYSH_RMAP, vtysh_exit_rmap, vtysh_exit_rmap_cmd, "exit", "Exit current mode and down to previous mode\n") @@ -2149,6 +2199,7 @@ DEFUNSH(VTYSH_RMAP, vtysh_quit_rmap, vtysh_quit_rmap_cmd, "quit", return vtysh_exit_rmap(self, vty, argc, argv); } +#ifdef HAVE_PBRD DEFUNSH(VTYSH_PBRD, vtysh_exit_pbr_map, vtysh_exit_pbr_map_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2160,7 +2211,9 @@ DEFUNSH(VTYSH_PBRD, vtysh_quit_pbr_map, vtysh_quit_pbr_map_cmd, "quit", { return vtysh_exit_rmap(self, vty, argc, argv); } +#endif /* HAVE_PBRD */ +#ifdef HAVE_BGPD DEFUNSH(VTYSH_BGPD, vtysh_exit_bgpd, vtysh_exit_bgpd_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2172,7 +2225,9 @@ DEFUNSH(VTYSH_BGPD, vtysh_quit_bgpd, vtysh_quit_bgpd_cmd, "quit", { return vtysh_exit_bgpd(self, vty, argc, argv); } +#endif /* HAVE_BGPD */ +#ifdef HAVE_OSPFD DEFUNSH(VTYSH_OSPFD, vtysh_exit_ospfd, vtysh_exit_ospfd_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2184,7 +2239,9 @@ DEFUNSH(VTYSH_OSPFD, vtysh_quit_ospfd, vtysh_quit_ospfd_cmd, "quit", { return vtysh_exit_ospfd(self, vty, argc, argv); } +#endif /* HAVE_OSPFD */ +#ifdef HAVE_EIGRPD DEFUNSH(VTYSH_EIGRPD, vtysh_exit_eigrpd, vtysh_exit_eigrpd_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2196,7 +2253,9 @@ DEFUNSH(VTYSH_EIGRPD, vtysh_quit_eigrpd, vtysh_quit_eigrpd_cmd, "quit", { return vtysh_exit(vty); } +#endif /* HAVE_EIGRPD */ +#ifdef HAVE_BABELD DEFUNSH(VTYSH_BABELD, vtysh_exit_babeld, vtysh_exit_babeld_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2208,7 +2267,9 @@ DEFUNSH(VTYSH_BABELD, vtysh_quit_babeld, vtysh_quit_babeld_cmd, "quit", { return vtysh_exit(vty); } +#endif /* HAVE_BABELD */ +#ifdef HAVE_OSPF6D DEFUNSH(VTYSH_OSPF6D, vtysh_exit_ospf6d, vtysh_exit_ospf6d_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2220,6 +2281,7 @@ DEFUNSH(VTYSH_OSPF6D, vtysh_quit_ospf6d, vtysh_quit_ospf6d_cmd, "quit", { return vtysh_exit_ospf6d(self, vty, argc, argv); } +#endif /* HAVE_OSPF6D */ #if defined(HAVE_LDPD) DEFUNSH(VTYSH_LDPD, vtysh_exit_ldpd, vtysh_exit_ldpd_cmd, "exit", @@ -2232,6 +2294,7 @@ ALIAS(vtysh_exit_ldpd, vtysh_quit_ldpd_cmd, "quit", "Exit current mode and down to previous mode\n") #endif +#ifdef HAVE_ISISD DEFUNSH(VTYSH_ISISD, vtysh_exit_isisd, vtysh_exit_isisd_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2243,6 +2306,7 @@ DEFUNSH(VTYSH_ISISD, vtysh_quit_isisd, vtysh_quit_isisd_cmd, "quit", { return vtysh_exit_isisd(self, vty, argc, argv); } +#endif /* HAVE_ISISD */ #if HAVE_BFDD > 0 DEFUNSH(VTYSH_BFDD, vtysh_exit_bfdd, vtysh_exit_bfdd_cmd, "exit", @@ -2255,6 +2319,7 @@ ALIAS(vtysh_exit_bfdd, vtysh_quit_bfdd_cmd, "quit", "Exit current mode and down to previous mode\n") #endif +#ifdef HAVE_FABRICD DEFUNSH(VTYSH_FABRICD, vtysh_exit_fabricd, vtysh_exit_fabricd_cmd, "exit", "Exit current mode and down to previous mode\n") { @@ -2266,6 +2331,7 @@ DEFUNSH(VTYSH_FABRICD, vtysh_quit_fabricd, vtysh_quit_fabricd_cmd, "quit", { return vtysh_exit_fabricd(self, vty, argc, argv); } +#endif /* HAVE_FABRICD */ DEFUNSH(VTYSH_KEYS, vtysh_exit_keys, vtysh_exit_keys_cmd, "exit", "Exit current mode and down to previous mode\n") @@ -3783,58 +3849,366 @@ void vtysh_init_vty(void) cmd_init(0); cmd_variable_handler_register(vtysh_var_handler); - /* Install nodes. */ + /* bgpd */ +#ifdef HAVE_BGPD install_node(&bgp_node); - install_node(&rip_node); - install_node(&interface_node); - install_node(&pw_node); - install_node(&link_params_node); - install_node(&vrf_node); - install_node(&nh_group_node); - install_node(&rmap_node); - install_node(&pbr_map_node); - install_node(&zebra_node); + install_element(CONFIG_NODE, &router_bgp_cmd); + install_element(BGP_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_NODE, &vtysh_end_all_cmd); + install_node(&bgp_vpnv4_node); + install_element(BGP_NODE, &address_family_ipv4_vpn_cmd); +#ifdef KEEP_OLD_VPN_COMMANDS + install_element(BGP_NODE, &address_family_vpnv4_cmd); +#endif /* KEEP_OLD_VPN_COMMANDS */ + install_element(BGP_VPNV4_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_VPNV4_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_VPNV4_NODE, &vtysh_end_all_cmd); + install_element(BGP_VPNV4_NODE, &exit_address_family_cmd); + install_node(&bgp_vpnv6_node); + install_element(BGP_NODE, &address_family_ipv6_vpn_cmd); +#ifdef KEEP_OLD_VPN_COMMANDS + install_element(BGP_NODE, &address_family_vpnv6_cmd); +#endif /* KEEP_OLD_VPN_COMMANDS */ + install_element(BGP_VPNV6_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_VPNV6_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_VPNV6_NODE, &vtysh_end_all_cmd); + install_element(BGP_VPNV6_NODE, &exit_address_family_cmd); + install_node(&bgp_flowspecv4_node); + install_element(BGP_NODE, &address_family_flowspecv4_cmd); + install_element(BGP_FLOWSPECV4_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_FLOWSPECV4_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_FLOWSPECV4_NODE, &vtysh_end_all_cmd); + install_element(BGP_FLOWSPECV4_NODE, &exit_address_family_cmd); + install_node(&bgp_flowspecv6_node); + install_element(BGP_NODE, &address_family_flowspecv6_cmd); + install_element(BGP_FLOWSPECV6_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_FLOWSPECV6_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_FLOWSPECV6_NODE, &vtysh_end_all_cmd); + install_element(BGP_FLOWSPECV6_NODE, &exit_address_family_cmd); + install_node(&bgp_ipv4_node); + install_element(BGP_NODE, &address_family_ipv4_cmd); + install_element(BGP_IPV4_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_IPV4_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_IPV4_NODE, &vtysh_end_all_cmd); + install_element(BGP_IPV4_NODE, &exit_address_family_cmd); + install_node(&bgp_ipv4m_node); + install_element(BGP_NODE, &address_family_ipv4_multicast_cmd); + install_element(BGP_IPV4M_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_IPV4M_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_IPV4M_NODE, &vtysh_end_all_cmd); + install_element(BGP_IPV4M_NODE, &exit_address_family_cmd); + install_node(&bgp_ipv4l_node); + install_element(BGP_NODE, &address_family_ipv4_labeled_unicast_cmd); + install_element(BGP_IPV4L_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_IPV4L_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_IPV4L_NODE, &vtysh_end_all_cmd); + install_element(BGP_IPV4L_NODE, &exit_address_family_cmd); + install_node(&bgp_ipv6_node); + install_element(BGP_NODE, &address_family_ipv6_cmd); + install_element(BGP_IPV6_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_IPV6_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_IPV6_NODE, &vtysh_end_all_cmd); + install_element(BGP_IPV6_NODE, &exit_address_family_cmd); + install_node(&bgp_ipv6m_node); + install_element(BGP_NODE, &address_family_ipv6_multicast_cmd); + install_element(BGP_IPV6M_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_IPV6M_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_IPV6M_NODE, &vtysh_end_all_cmd); + install_element(BGP_IPV6M_NODE, &exit_address_family_cmd); + install_node(&bgp_ipv6l_node); + install_element(BGP_NODE, &address_family_ipv6_labeled_unicast_cmd); + install_element(BGP_IPV6L_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_IPV6L_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_IPV6L_NODE, &vtysh_end_all_cmd); + install_element(BGP_IPV6L_NODE, &exit_address_family_cmd); + +#if defined(ENABLE_BGP_VNC) install_node(&bgp_vrf_policy_node); - install_node(&bgp_evpn_node); - install_node(&bgp_evpn_vni_node); + install_element(BGP_NODE, &vnc_vrf_policy_cmd); + install_element(BGP_VRF_POLICY_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_VRF_POLICY_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_VRF_POLICY_NODE, &vtysh_end_all_cmd); + install_element(BGP_VRF_POLICY_NODE, &exit_vrf_policy_cmd); + install_node(&bgp_vnc_defaults_node); + install_element(BGP_NODE, &vnc_defaults_cmd); + install_element(BGP_VNC_DEFAULTS_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_VNC_DEFAULTS_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_VNC_DEFAULTS_NODE, &vtysh_end_all_cmd); + install_element(BGP_VNC_DEFAULTS_NODE, &exit_vnc_config_cmd); + install_node(&bgp_vnc_nve_group_node); + install_element(BGP_NODE, &vnc_nve_group_cmd); + install_element(BGP_VNC_NVE_GROUP_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_VNC_NVE_GROUP_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_VNC_NVE_GROUP_NODE, &vtysh_end_all_cmd); + install_element(BGP_VNC_NVE_GROUP_NODE, &exit_vnc_config_cmd); + install_node(&bgp_vnc_l2_group_node); - install_node(&ospf_node); - install_node(&eigrp_node); - install_node(&babel_node); - install_node(&ripng_node); - install_node(&ospf6_node); - install_node(&ldp_node); - install_node(&ldp_ipv4_node); - install_node(&ldp_ipv6_node); - install_node(&ldp_ipv4_iface_node); - install_node(&ldp_ipv6_iface_node); - install_node(&ldp_l2vpn_node); - install_node(&ldp_pseudowire_node); - install_node(&keychain_node); - install_node(&keychain_key_node); - install_node(&isis_node); - install_node(&openfabric_node); - install_node(&vty_node); + install_element(BGP_NODE, &vnc_l2_group_cmd); + install_element(BGP_VNC_L2_GROUP_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_VNC_L2_GROUP_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_VNC_L2_GROUP_NODE, &vtysh_end_all_cmd); + install_element(BGP_VNC_L2_GROUP_NODE, &exit_vnc_config_cmd); +#endif + + install_node(&bgp_evpn_node); + install_element(BGP_NODE, &address_family_evpn_cmd); +#if defined(HAVE_CUMULUS) + install_element(BGP_NODE, &address_family_evpn2_cmd); +#endif + install_element(BGP_EVPN_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_EVPN_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_EVPN_NODE, &vtysh_end_all_cmd); + install_element(BGP_EVPN_NODE, &exit_address_family_cmd); + + install_node(&bgp_evpn_vni_node); + install_element(BGP_EVPN_NODE, &bgp_evpn_vni_cmd); + install_element(BGP_EVPN_VNI_NODE, &vtysh_exit_bgpd_cmd); + install_element(BGP_EVPN_VNI_NODE, &vtysh_quit_bgpd_cmd); + install_element(BGP_EVPN_VNI_NODE, &vtysh_end_all_cmd); + install_element(BGP_EVPN_VNI_NODE, &exit_vni_cmd); + install_node(&rpki_node); + install_element(CONFIG_NODE, &rpki_cmd); + install_element(RPKI_NODE, &rpki_exit_cmd); + install_element(RPKI_NODE, &rpki_quit_cmd); + install_element(RPKI_NODE, &vtysh_end_all_cmd); + install_node(&bmp_node); + install_element(BGP_NODE, &bmp_targets_cmd); + install_element(BMP_NODE, &bmp_exit_cmd); + install_element(BMP_NODE, &bmp_quit_cmd); + install_element(BMP_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_BGPD */ + + /* ripd */ + install_node(&rip_node); +#ifdef HAVE_RIPD + install_element(CONFIG_NODE, &router_rip_cmd); + install_element(RIP_NODE, &vtysh_exit_ripd_cmd); + install_element(RIP_NODE, &vtysh_quit_ripd_cmd); + install_element(RIP_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_RIPD */ + + /* ripngd */ + install_node(&ripng_node); +#ifdef HAVE_RIPNGD + install_element(CONFIG_NODE, &router_ripng_cmd); + install_element(RIPNG_NODE, &vtysh_exit_ripngd_cmd); + install_element(RIPNG_NODE, &vtysh_quit_ripngd_cmd); + install_element(RIPNG_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_RIPNGD */ + + /* ospfd */ +#ifdef HAVE_OSPFD + install_node(&ospf_node); + install_element(CONFIG_NODE, &router_ospf_cmd); + install_element(OSPF_NODE, &vtysh_exit_ospfd_cmd); + install_element(OSPF_NODE, &vtysh_quit_ospfd_cmd); + install_element(OSPF_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_OSPFD */ + + /* ospf6d */ +#ifdef HAVE_OSPF6D + install_node(&ospf6_node); + install_element(CONFIG_NODE, &router_ospf6_cmd); + install_element(OSPF6_NODE, &vtysh_exit_ospf6d_cmd); + install_element(OSPF6_NODE, &vtysh_quit_ospf6d_cmd); + install_element(OSPF6_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_OSPF6D */ + + /* ldpd */ +#if defined(HAVE_LDPD) + install_node(&ldp_node); + install_element(CONFIG_NODE, &ldp_mpls_ldp_cmd); + install_element(LDP_NODE, &vtysh_exit_ldpd_cmd); + install_element(LDP_NODE, &vtysh_quit_ldpd_cmd); + install_element(LDP_NODE, &vtysh_end_all_cmd); + + install_node(&ldp_ipv4_node); + install_element(LDP_NODE, &ldp_address_family_ipv4_cmd); + install_element(LDP_IPV4_NODE, &vtysh_exit_ldpd_cmd); + install_element(LDP_IPV4_NODE, &vtysh_quit_ldpd_cmd); + install_element(LDP_IPV4_NODE, &ldp_exit_address_family_cmd); + install_element(LDP_IPV4_NODE, &vtysh_end_all_cmd); + + install_node(&ldp_ipv6_node); + install_element(LDP_NODE, &ldp_address_family_ipv6_cmd); + install_element(LDP_IPV6_NODE, &vtysh_exit_ldpd_cmd); + install_element(LDP_IPV6_NODE, &vtysh_quit_ldpd_cmd); + install_element(LDP_IPV6_NODE, &ldp_exit_address_family_cmd); + install_element(LDP_IPV6_NODE, &vtysh_end_all_cmd); + + install_node(&ldp_ipv4_iface_node); + install_element(LDP_IPV4_NODE, &ldp_interface_ifname_cmd); + install_element(LDP_IPV4_IFACE_NODE, &vtysh_exit_ldpd_cmd); + install_element(LDP_IPV4_IFACE_NODE, &vtysh_quit_ldpd_cmd); + install_element(LDP_IPV4_IFACE_NODE, &vtysh_end_all_cmd); + + install_node(&ldp_ipv6_iface_node); + install_element(LDP_IPV6_NODE, &ldp_interface_ifname_cmd); + install_element(LDP_IPV6_IFACE_NODE, &vtysh_exit_ldpd_cmd); + install_element(LDP_IPV6_IFACE_NODE, &vtysh_quit_ldpd_cmd); + install_element(LDP_IPV6_IFACE_NODE, &vtysh_end_all_cmd); + + install_node(&ldp_l2vpn_node); + install_element(CONFIG_NODE, &ldp_l2vpn_word_type_vpls_cmd); + install_element(LDP_L2VPN_NODE, &vtysh_exit_ldpd_cmd); + install_element(LDP_L2VPN_NODE, &vtysh_quit_ldpd_cmd); + install_element(LDP_L2VPN_NODE, &vtysh_end_all_cmd); + + install_node(&ldp_pseudowire_node); + install_element(LDP_L2VPN_NODE, &ldp_member_pseudowire_ifname_cmd); + install_element(LDP_PSEUDOWIRE_NODE, &vtysh_exit_ldpd_cmd); + install_element(LDP_PSEUDOWIRE_NODE, &vtysh_quit_ldpd_cmd); + install_element(LDP_PSEUDOWIRE_NODE, &vtysh_end_all_cmd); +#endif + + /* eigrpd */ +#ifdef HAVE_EIGRPD + install_node(&eigrp_node); + install_element(CONFIG_NODE, &router_eigrp_cmd); + install_element(EIGRP_NODE, &vtysh_exit_eigrpd_cmd); + install_element(EIGRP_NODE, &vtysh_quit_eigrpd_cmd); + install_element(EIGRP_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_EIGRPD */ + + /* babeld */ +#ifdef HAVE_BABELD + install_node(&babel_node); + install_element(CONFIG_NODE, &router_babel_cmd); + install_element(BABEL_NODE, &vtysh_exit_babeld_cmd); + install_element(BABEL_NODE, &vtysh_quit_babeld_cmd); + install_element(BABEL_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_BABELD */ + + /* isisd */ +#ifdef HAVE_ISISD + install_node(&isis_node); + install_element(CONFIG_NODE, &router_isis_cmd); + install_element(ISIS_NODE, &vtysh_exit_isisd_cmd); + install_element(ISIS_NODE, &vtysh_quit_isisd_cmd); + install_element(ISIS_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_ISISD */ + + /* fabricd */ +#ifdef HAVE_FABRICD + install_node(&openfabric_node); + install_element(CONFIG_NODE, &router_openfabric_cmd); + install_element(OPENFABRIC_NODE, &vtysh_exit_fabricd_cmd); + install_element(OPENFABRIC_NODE, &vtysh_quit_fabricd_cmd); + install_element(OPENFABRIC_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_FABRICD */ + + /* pbrd */ +#ifdef HAVE_PBRD + install_node(&pbr_map_node); + install_element(CONFIG_NODE, &vtysh_pbr_map_cmd); + install_element(CONFIG_NODE, &vtysh_no_pbr_map_cmd); + install_element(PBRMAP_NODE, &vtysh_exit_pbr_map_cmd); + install_element(PBRMAP_NODE, &vtysh_quit_pbr_map_cmd); + install_element(PBRMAP_NODE, &vtysh_end_all_cmd); +#endif /* HAVE_PBRD */ + + /* bfdd */ #if HAVE_BFDD > 0 install_node(&bfd_node); + install_element(CONFIG_NODE, &bfd_enter_cmd); + install_element(BFD_NODE, &vtysh_exit_bfdd_cmd); + install_element(BFD_NODE, &vtysh_quit_bfdd_cmd); + install_element(BFD_NODE, &vtysh_end_all_cmd); + install_node(&bfd_peer_node); + install_element(BFD_NODE, &bfd_peer_enter_cmd); + install_element(BFD_PEER_NODE, &vtysh_exit_bfdd_cmd); + install_element(BFD_PEER_NODE, &vtysh_quit_bfdd_cmd); + install_element(BFD_PEER_NODE, &vtysh_end_all_cmd); + install_node(&bfd_profile_node); + install_element(BFD_NODE, &bfd_profile_enter_cmd); + install_element(BFD_PROFILE_NODE, &vtysh_exit_bfdd_cmd); + install_element(BFD_PROFILE_NODE, &vtysh_quit_bfdd_cmd); + install_element(BFD_PROFILE_NODE, &vtysh_end_all_cmd); #endif /* HAVE_BFDD */ + /* keychain */ + install_node(&keychain_node); + install_element(CONFIG_NODE, &key_chain_cmd); + install_element(KEYCHAIN_NODE, &key_chain_cmd); + install_element(KEYCHAIN_NODE, &vtysh_exit_keys_cmd); + install_element(KEYCHAIN_NODE, &vtysh_quit_keys_cmd); + install_element(KEYCHAIN_NODE, &vtysh_end_all_cmd); + + install_node(&keychain_key_node); + install_element(KEYCHAIN_NODE, &key_cmd); + install_element(KEYCHAIN_KEY_NODE, &key_chain_cmd); + install_element(KEYCHAIN_KEY_NODE, &vtysh_exit_keys_cmd); + install_element(KEYCHAIN_KEY_NODE, &vtysh_quit_keys_cmd); + install_element(KEYCHAIN_KEY_NODE, &vtysh_end_all_cmd); + + /* nexthop-group */ + install_node(&nh_group_node); + install_element(CONFIG_NODE, &vtysh_nexthop_group_cmd); + install_element(CONFIG_NODE, &vtysh_no_nexthop_group_cmd); + install_element(NH_GROUP_NODE, &vtysh_end_all_cmd); + install_element(NH_GROUP_NODE, &vtysh_exit_nexthop_group_cmd); + install_element(NH_GROUP_NODE, &vtysh_quit_nexthop_group_cmd); + + /* zebra and all */ + install_node(&zebra_node); + + install_node(&interface_node); + install_element(CONFIG_NODE, &vtysh_interface_cmd); + install_element(INTERFACE_NODE, &vtysh_end_all_cmd); + install_element(INTERFACE_NODE, &vtysh_exit_interface_cmd); + install_element(INTERFACE_NODE, &vtysh_quit_interface_cmd); + + install_node(&link_params_node); + install_element(INTERFACE_NODE, &vtysh_link_params_cmd); + install_element(LINK_PARAMS_NODE, &exit_link_params_cmd); + install_element(LINK_PARAMS_NODE, &vtysh_end_all_cmd); + install_element(LINK_PARAMS_NODE, &vtysh_exit_interface_cmd); + + install_node(&pw_node); + install_element(CONFIG_NODE, &vtysh_pseudowire_cmd); + install_element(PW_NODE, &vtysh_end_all_cmd); + install_element(PW_NODE, &vtysh_exit_interface_cmd); + install_element(PW_NODE, &vtysh_quit_interface_cmd); + + install_node(&vrf_node); + install_element(CONFIG_NODE, &vtysh_vrf_cmd); + install_element(VRF_NODE, &vtysh_vrf_netns_cmd); + install_element(VRF_NODE, &vtysh_no_vrf_netns_cmd); + install_element(VRF_NODE, &exit_vrf_config_cmd); + install_element(VRF_NODE, &vtysh_end_all_cmd); + install_element(VRF_NODE, &vtysh_exit_vrf_cmd); + install_element(VRF_NODE, &vtysh_quit_vrf_cmd); + + install_node(&rmap_node); + install_element(CONFIG_NODE, &vtysh_route_map_cmd); + install_element(RMAP_NODE, &vtysh_exit_rmap_cmd); + install_element(RMAP_NODE, &vtysh_quit_rmap_cmd); + install_element(RMAP_NODE, &vtysh_end_all_cmd); + + install_node(&vty_node); + install_element(CONFIG_NODE, &vtysh_line_vty_cmd); + install_element(VTY_NODE, &vtysh_exit_line_vty_cmd); + install_element(VTY_NODE, &vtysh_quit_line_vty_cmd); + install_element(VTY_NODE, &vtysh_end_all_cmd); + + struct cmd_node *node; for (unsigned int i = 0; i < vector_active(cmdvec); i++) { node = vector_slot(cmdvec, i); @@ -3843,6 +4217,8 @@ void vtysh_init_vty(void) vtysh_install_default(node->node); } + /* vtysh */ + install_element(VIEW_NODE, &vtysh_enable_cmd); install_element(ENABLE_NODE, &vtysh_config_terminal_cmd); install_element(ENABLE_NODE, &vtysh_disable_cmd); @@ -3852,262 +4228,15 @@ void vtysh_init_vty(void) install_element(CONFIG_NODE, &vtysh_exit_all_cmd); install_element(VIEW_NODE, &vtysh_quit_all_cmd); install_element(CONFIG_NODE, &vtysh_quit_all_cmd); - install_element(RIP_NODE, &vtysh_exit_ripd_cmd); - install_element(RIP_NODE, &vtysh_quit_ripd_cmd); - install_element(RIPNG_NODE, &vtysh_exit_ripngd_cmd); - install_element(RIPNG_NODE, &vtysh_quit_ripngd_cmd); - install_element(OSPF_NODE, &vtysh_exit_ospfd_cmd); - install_element(OSPF_NODE, &vtysh_quit_ospfd_cmd); - install_element(EIGRP_NODE, &vtysh_exit_eigrpd_cmd); - install_element(EIGRP_NODE, &vtysh_quit_eigrpd_cmd); - install_element(BABEL_NODE, &vtysh_exit_babeld_cmd); - install_element(BABEL_NODE, &vtysh_quit_babeld_cmd); - install_element(OSPF6_NODE, &vtysh_exit_ospf6d_cmd); - install_element(OSPF6_NODE, &vtysh_quit_ospf6d_cmd); -#if defined(HAVE_LDPD) - install_element(LDP_NODE, &vtysh_exit_ldpd_cmd); - install_element(LDP_NODE, &vtysh_quit_ldpd_cmd); - install_element(LDP_IPV4_NODE, &vtysh_exit_ldpd_cmd); - install_element(LDP_IPV4_NODE, &vtysh_quit_ldpd_cmd); - install_element(LDP_IPV4_NODE, &ldp_exit_address_family_cmd); - install_element(LDP_IPV6_NODE, &vtysh_exit_ldpd_cmd); - install_element(LDP_IPV6_NODE, &vtysh_quit_ldpd_cmd); - install_element(LDP_IPV6_NODE, &ldp_exit_address_family_cmd); - install_element(LDP_IPV4_IFACE_NODE, &vtysh_exit_ldpd_cmd); - install_element(LDP_IPV4_IFACE_NODE, &vtysh_quit_ldpd_cmd); - install_element(LDP_IPV6_IFACE_NODE, &vtysh_exit_ldpd_cmd); - install_element(LDP_IPV6_IFACE_NODE, &vtysh_quit_ldpd_cmd); - install_element(LDP_L2VPN_NODE, &vtysh_exit_ldpd_cmd); - install_element(LDP_L2VPN_NODE, &vtysh_quit_ldpd_cmd); - install_element(LDP_PSEUDOWIRE_NODE, &vtysh_exit_ldpd_cmd); - install_element(LDP_PSEUDOWIRE_NODE, &vtysh_quit_ldpd_cmd); -#endif - install_element(BGP_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_VPNV4_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_VPNV4_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_VPNV6_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_VPNV6_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_FLOWSPECV4_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_FLOWSPECV4_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_FLOWSPECV6_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_FLOWSPECV6_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_IPV4_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_IPV4_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_IPV4M_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_IPV4M_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_IPV4L_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_IPV4L_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_IPV6_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_IPV6_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_IPV6M_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_IPV6M_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_EVPN_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_EVPN_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_EVPN_VNI_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_EVPN_VNI_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_IPV6L_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_IPV6L_NODE, &vtysh_quit_bgpd_cmd); -#if defined(ENABLE_BGP_VNC) - install_element(BGP_VRF_POLICY_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_VRF_POLICY_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_VNC_DEFAULTS_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_VNC_DEFAULTS_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_VNC_NVE_GROUP_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_VNC_NVE_GROUP_NODE, &vtysh_quit_bgpd_cmd); - install_element(BGP_VNC_L2_GROUP_NODE, &vtysh_exit_bgpd_cmd); - install_element(BGP_VNC_L2_GROUP_NODE, &vtysh_quit_bgpd_cmd); -#endif - install_element(ISIS_NODE, &vtysh_exit_isisd_cmd); - install_element(ISIS_NODE, &vtysh_quit_isisd_cmd); - install_element(OPENFABRIC_NODE, &vtysh_exit_fabricd_cmd); - install_element(OPENFABRIC_NODE, &vtysh_quit_fabricd_cmd); - install_element(KEYCHAIN_NODE, &vtysh_exit_keys_cmd); - install_element(KEYCHAIN_NODE, &vtysh_quit_keys_cmd); - install_element(KEYCHAIN_KEY_NODE, &vtysh_exit_keys_cmd); - install_element(KEYCHAIN_KEY_NODE, &vtysh_quit_keys_cmd); - install_element(RMAP_NODE, &vtysh_exit_rmap_cmd); - install_element(RMAP_NODE, &vtysh_quit_rmap_cmd); - install_element(PBRMAP_NODE, &vtysh_exit_pbr_map_cmd); - install_element(PBRMAP_NODE, &vtysh_quit_pbr_map_cmd); -#if HAVE_BFDD > 0 - /* Enter node. */ - install_element(CONFIG_NODE, &bfd_enter_cmd); - install_element(BFD_NODE, &bfd_peer_enter_cmd); - install_element(BFD_NODE, &bfd_profile_enter_cmd); - - /* Exit/quit node. */ - install_element(BFD_NODE, &vtysh_exit_bfdd_cmd); - install_element(BFD_NODE, &vtysh_quit_bfdd_cmd); - install_element(BFD_PEER_NODE, &vtysh_exit_bfdd_cmd); - install_element(BFD_PEER_NODE, &vtysh_quit_bfdd_cmd); - install_element(BFD_PROFILE_NODE, &vtysh_exit_bfdd_cmd); - install_element(BFD_PROFILE_NODE, &vtysh_quit_bfdd_cmd); - - /* End/exit all. */ - install_element(BFD_NODE, &vtysh_end_all_cmd); - install_element(BFD_PEER_NODE, &vtysh_end_all_cmd); - install_element(BFD_PROFILE_NODE, &vtysh_end_all_cmd); -#endif /* HAVE_BFDD */ - install_element(VTY_NODE, &vtysh_exit_line_vty_cmd); - install_element(VTY_NODE, &vtysh_quit_line_vty_cmd); /* "end" command. */ install_element(CONFIG_NODE, &vtysh_end_all_cmd); install_element(ENABLE_NODE, &vtysh_end_all_cmd); - install_element(RIP_NODE, &vtysh_end_all_cmd); - install_element(RIPNG_NODE, &vtysh_end_all_cmd); - install_element(OSPF_NODE, &vtysh_end_all_cmd); - install_element(EIGRP_NODE, &vtysh_end_all_cmd); - install_element(BABEL_NODE, &vtysh_end_all_cmd); - install_element(OSPF6_NODE, &vtysh_end_all_cmd); - install_element(LDP_NODE, &vtysh_end_all_cmd); - install_element(LDP_IPV4_NODE, &vtysh_end_all_cmd); - install_element(LDP_IPV6_NODE, &vtysh_end_all_cmd); - install_element(LDP_IPV4_IFACE_NODE, &vtysh_end_all_cmd); - install_element(LDP_IPV6_IFACE_NODE, &vtysh_end_all_cmd); - install_element(LDP_L2VPN_NODE, &vtysh_end_all_cmd); - install_element(LDP_PSEUDOWIRE_NODE, &vtysh_end_all_cmd); - install_element(BGP_NODE, &vtysh_end_all_cmd); - install_element(BGP_IPV4_NODE, &vtysh_end_all_cmd); - install_element(BGP_IPV4M_NODE, &vtysh_end_all_cmd); - install_element(BGP_IPV4L_NODE, &vtysh_end_all_cmd); - install_element(BGP_VPNV4_NODE, &vtysh_end_all_cmd); - install_element(BGP_VPNV6_NODE, &vtysh_end_all_cmd); - install_element(BGP_FLOWSPECV4_NODE, &vtysh_end_all_cmd); - install_element(BGP_FLOWSPECV6_NODE, &vtysh_end_all_cmd); - install_element(BGP_IPV6_NODE, &vtysh_end_all_cmd); - install_element(BGP_IPV6M_NODE, &vtysh_end_all_cmd); - install_element(BGP_IPV6L_NODE, &vtysh_end_all_cmd); - install_element(BGP_VRF_POLICY_NODE, &vtysh_end_all_cmd); - install_element(BGP_EVPN_NODE, &vtysh_end_all_cmd); - install_element(BGP_EVPN_VNI_NODE, &vtysh_end_all_cmd); - install_element(BGP_VNC_DEFAULTS_NODE, &vtysh_end_all_cmd); - install_element(BGP_VNC_NVE_GROUP_NODE, &vtysh_end_all_cmd); - install_element(BGP_VNC_L2_GROUP_NODE, &vtysh_end_all_cmd); - install_element(ISIS_NODE, &vtysh_end_all_cmd); - install_element(OPENFABRIC_NODE, &vtysh_end_all_cmd); - install_element(KEYCHAIN_NODE, &vtysh_end_all_cmd); - install_element(KEYCHAIN_KEY_NODE, &vtysh_end_all_cmd); - install_element(RMAP_NODE, &vtysh_end_all_cmd); - install_element(PBRMAP_NODE, &vtysh_end_all_cmd); - install_element(VTY_NODE, &vtysh_end_all_cmd); - install_element(INTERFACE_NODE, &vtysh_end_all_cmd); - install_element(INTERFACE_NODE, &vtysh_exit_interface_cmd); - install_element(LINK_PARAMS_NODE, &exit_link_params_cmd); - install_element(LINK_PARAMS_NODE, &vtysh_end_all_cmd); - install_element(LINK_PARAMS_NODE, &vtysh_exit_interface_cmd); - install_element(INTERFACE_NODE, &vtysh_quit_interface_cmd); - - install_element(PW_NODE, &vtysh_end_all_cmd); - install_element(PW_NODE, &vtysh_exit_interface_cmd); - install_element(PW_NODE, &vtysh_quit_interface_cmd); - - install_element(CONFIG_NODE, &vtysh_nexthop_group_cmd); - install_element(NH_GROUP_NODE, &vtysh_end_all_cmd); - install_element(NH_GROUP_NODE, &vtysh_exit_nexthop_group_cmd); - install_element(NH_GROUP_NODE, &vtysh_quit_nexthop_group_cmd); - - install_element(VRF_NODE, &vtysh_end_all_cmd); - install_element(VRF_NODE, &vtysh_exit_vrf_cmd); - install_element(VRF_NODE, &vtysh_quit_vrf_cmd); - - install_element(CONFIG_NODE, &router_eigrp_cmd); - install_element(CONFIG_NODE, &router_babel_cmd); - install_element(CONFIG_NODE, &router_rip_cmd); - install_element(CONFIG_NODE, &router_ripng_cmd); - install_element(CONFIG_NODE, &router_ospf_cmd); - install_element(CONFIG_NODE, &router_ospf6_cmd); -#if defined(HAVE_LDPD) - install_element(CONFIG_NODE, &ldp_mpls_ldp_cmd); - install_element(LDP_NODE, &ldp_address_family_ipv4_cmd); - install_element(LDP_NODE, &ldp_address_family_ipv6_cmd); - install_element(LDP_IPV4_NODE, &ldp_interface_ifname_cmd); - install_element(LDP_IPV6_NODE, &ldp_interface_ifname_cmd); - install_element(CONFIG_NODE, &ldp_l2vpn_word_type_vpls_cmd); - install_element(LDP_L2VPN_NODE, &ldp_member_pseudowire_ifname_cmd); -#endif - install_element(CONFIG_NODE, &router_isis_cmd); - install_element(CONFIG_NODE, &router_openfabric_cmd); - install_element(CONFIG_NODE, &router_bgp_cmd); -#ifdef KEEP_OLD_VPN_COMMANDS - install_element(BGP_NODE, &address_family_vpnv4_cmd); - install_element(BGP_NODE, &address_family_vpnv6_cmd); -#endif /* KEEP_OLD_VPN_COMMANDS */ -#if defined(ENABLE_BGP_VNC) - install_element(BGP_NODE, &vnc_vrf_policy_cmd); - install_element(BGP_NODE, &vnc_defaults_cmd); - install_element(BGP_NODE, &vnc_nve_group_cmd); - install_element(BGP_NODE, &vnc_l2_group_cmd); -#endif - install_element(BGP_NODE, &address_family_ipv4_cmd); - install_element(BGP_NODE, &address_family_ipv4_multicast_cmd); - install_element(BGP_NODE, &address_family_ipv4_vpn_cmd); - install_element(BGP_NODE, &address_family_ipv4_labeled_unicast_cmd); - install_element(BGP_NODE, &address_family_ipv6_cmd); - install_element(BGP_NODE, &address_family_ipv6_multicast_cmd); - install_element(BGP_NODE, &address_family_ipv6_vpn_cmd); - install_element(BGP_NODE, &address_family_ipv6_labeled_unicast_cmd); - install_element(BGP_NODE, &address_family_evpn_cmd); - install_element(BGP_NODE, &address_family_flowspecv4_cmd); - install_element(BGP_NODE, &address_family_flowspecv6_cmd); -#if defined(HAVE_CUMULUS) - install_element(BGP_NODE, &address_family_evpn2_cmd); -#endif - install_element(BGP_VPNV4_NODE, &exit_address_family_cmd); - install_element(BGP_VPNV6_NODE, &exit_address_family_cmd); - install_element(BGP_IPV4_NODE, &exit_address_family_cmd); - install_element(BGP_IPV4M_NODE, &exit_address_family_cmd); - install_element(BGP_IPV4L_NODE, &exit_address_family_cmd); - install_element(BGP_IPV6_NODE, &exit_address_family_cmd); - install_element(BGP_IPV6M_NODE, &exit_address_family_cmd); - install_element(BGP_EVPN_NODE, &exit_address_family_cmd); - install_element(BGP_IPV6L_NODE, &exit_address_family_cmd); - install_element(BGP_FLOWSPECV4_NODE, &exit_address_family_cmd); - install_element(BGP_FLOWSPECV6_NODE, &exit_address_family_cmd); - - install_element(BGP_NODE, &bmp_targets_cmd); - install_element(BMP_NODE, &bmp_exit_cmd); - install_element(BMP_NODE, &bmp_quit_cmd); - install_element(BMP_NODE, &vtysh_end_all_cmd); - - install_element(CONFIG_NODE, &rpki_cmd); - install_element(RPKI_NODE, &rpki_exit_cmd); - install_element(RPKI_NODE, &rpki_quit_cmd); - install_element(RPKI_NODE, &vtysh_end_all_cmd); - - /* EVPN commands */ - install_element(BGP_EVPN_NODE, &bgp_evpn_vni_cmd); - install_element(BGP_EVPN_VNI_NODE, &exit_vni_cmd); - - install_element(BGP_VRF_POLICY_NODE, &exit_vrf_policy_cmd); - install_element(BGP_VNC_DEFAULTS_NODE, &exit_vnc_config_cmd); - install_element(BGP_VNC_NVE_GROUP_NODE, &exit_vnc_config_cmd); - install_element(BGP_VNC_L2_GROUP_NODE, &exit_vnc_config_cmd); - - install_element(CONFIG_NODE, &key_chain_cmd); - install_element(CONFIG_NODE, &vtysh_route_map_cmd); - install_element(CONFIG_NODE, &vtysh_pbr_map_cmd); - install_element(CONFIG_NODE, &vtysh_no_pbr_map_cmd); - install_element(CONFIG_NODE, &vtysh_line_vty_cmd); - install_element(KEYCHAIN_NODE, &key_cmd); - install_element(KEYCHAIN_NODE, &key_chain_cmd); - install_element(KEYCHAIN_KEY_NODE, &key_chain_cmd); - install_element(CONFIG_NODE, &vtysh_interface_cmd); - install_element(CONFIG_NODE, &vtysh_pseudowire_cmd); - install_element(INTERFACE_NODE, &vtysh_link_params_cmd); install_element(ENABLE_NODE, &vtysh_show_running_config_cmd); install_element(ENABLE_NODE, &vtysh_copy_running_config_cmd); install_element(ENABLE_NODE, &vtysh_copy_to_running_cmd); - install_element(CONFIG_NODE, &vtysh_vrf_cmd); - install_element(VRF_NODE, &vtysh_vrf_netns_cmd); - install_element(VRF_NODE, &vtysh_no_vrf_netns_cmd); - install_element(VRF_NODE, &exit_vrf_config_cmd); - - install_element(CONFIG_NODE, &vtysh_no_nexthop_group_cmd); - /* "write terminal" command. */ install_element(ENABLE_NODE, &vtysh_write_terminal_cmd);