]> git.puffer.fish Git - matthieu/frr.git/commitdiff
vtysh: respect --disable-daemon configure flags
authorIgor Ryzhov <iryzhov@nfware.com>
Tue, 29 Sep 2020 10:12:55 +0000 (13:12 +0300)
committerIgor Ryzhov <iryzhov@nfware.com>
Tue, 29 Sep 2020 11:03:57 +0000 (14:03 +0300)
Don't install nodes for daemons that are disabled by configure flags.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
configure.ac
vtysh/vtysh.c

index 25157d1fa3ba7e6b4615d749aa1ca9f53bc1ae0d..3cc74c41108fd08e052cf773e953061daa0919fb 100755 (executable)
@@ -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=""
index 0c85c0e81ed4d931b09b8102713a78017ffb48ce..9993e733533a3f4af4b9c75d0a282d99522b6139 100644 (file)
@@ -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) [<view|vrf> 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 <deny|permit> (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"
@@ -1940,6 +1983,7 @@ DEFSH(VTYSH_PBRD, vtysh_no_pbr_map_cmd, "no pbr-map PBRMAP [seq (1-700)]",
        "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")
@@ -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")
 {
@@ -2104,6 +2149,7 @@ DEFUNSH(VTYSH_BGPD, exit_vrf_policy, exit_vrf_policy_cmd, "exit-vrf-policy",
                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")
@@ -2113,6 +2159,7 @@ DEFUNSH(VTYSH_VRF, exit_vrf_config, exit_vrf_config_cmd, "exit-vrf",
        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")
@@ -3784,6 +3850,7 @@ void vtysh_init_vty(void)
        cmd_variable_handler_register(vtysh_var_handler);
 
        /* bgpd */
+#ifdef HAVE_BGPD
        install_node(&bgp_node);
        install_element(CONFIG_NODE, &router_bgp_cmd);
        install_element(BGP_NODE, &vtysh_exit_bgpd_cmd);
@@ -3924,34 +3991,43 @@ void vtysh_init_vty(void)
        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)
@@ -4001,40 +4077,50 @@ void vtysh_init_vty(void)
 #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