extern const struct frr_yang_module_info frr_staticd_cli_info;
#endif
+#if HAVE_BFDD == 0 || defined(HAVE_RTADV)
+const char *zebra_features[] = {
#if HAVE_BFDD == 0
-const char *zebra_features[] = { "ptm-bfd", NULL };
+ "ptm-bfd",
+#endif
+#if defined(HAVE_RTADV)
+ "ipv6-router-advertisements",
+#endif
+ NULL
+};
#endif
/*
*/
const struct frr_yang_module_info zebra_info = {
.name = "frr-zebra",
-#if HAVE_BFDD == 0
+#if HAVE_BFDD == 0 || defined(HAVE_RTADV)
.features = zebra_features,
#endif
.ignore_cfg_cbs = true,
"Initial revision.";
}
+ feature ipv6-router-advertisements {
+ description
+ "Support for IPv6 Router Advertisements.";
+ }
+
feature ptm-bfd {
description
"Using an external PTM daemon that implements BFD.";
}
}
container ipv6-router-advertisements {
+ if-feature "ipv6-router-advertisements";
description
"Support for IPv6 Router Advertisements.";
leaf send-advertisements {
#include "libfrr.h"
#include "zebra_nb.h"
+#if HAVE_BFDD == 0 || defined(HAVE_RTADV)
+const char *features[] = {
#if HAVE_BFDD == 0
-const char *features[] = { "ptm-bfd", NULL };
+ "ptm-bfd",
+#endif
+#if defined(HAVE_RTADV)
+ "ipv6-router-advertisements",
+#endif
+ NULL
+};
#endif
/* clang-format off */
const struct frr_yang_module_info frr_zebra_info = {
.name = "frr-zebra",
-#if HAVE_BFDD == 0
+#if HAVE_BFDD == 0 || defined(HAVE_RTADV)
.features = features,
#endif
.nodes = {
.modify = lib_interface_zebra_evpn_mh_uplink_modify,
}
},
+#if defined(HAVE_RTADV)
{
.xpath = "/frr-interface:lib/interface/frr-zebra:zebra/ipv6-router-advertisements/send-advertisements",
.cbs = {
.destroy = lib_interface_zebra_ipv6_router_advertisements_rdnss_rdnss_address_lifetime_destroy,
}
},
+#endif /* defined(HAVE_RTADV) */
#if HAVE_BFDD == 0
{
.xpath = "/frr-interface:lib/interface/frr-zebra:zebra/ptm-enable",
struct nb_cb_modify_args *args);
int lib_interface_zebra_evpn_mh_bypass_modify(struct nb_cb_modify_args *args);
int lib_interface_zebra_evpn_mh_uplink_modify(struct nb_cb_modify_args *args);
+#if defined(HAVE_RTADV)
int lib_interface_zebra_ipv6_router_advertisements_send_advertisements_modify(
struct nb_cb_modify_args *args);
int lib_interface_zebra_ipv6_router_advertisements_max_rtr_adv_interval_modify(
struct nb_cb_modify_args *args);
int lib_interface_zebra_ipv6_router_advertisements_dnssl_dnssl_domain_lifetime_destroy(
struct nb_cb_destroy_args *args);
+#endif /* defined(HAVE_RTADV) */
#if HAVE_BFDD == 0
int lib_interface_zebra_ptm_enable_modify(struct nb_cb_modify_args *args);
#endif
return NB_OK;
}
+#if defined(HAVE_RTADV)
/*
* XPath: /frr-interface:lib/interface/frr-zebra:zebra/ipv6-router-advertisements/send-advertisements
*/
return NB_OK;
}
+#endif /* defined(HAVE_RTADV) */
#if HAVE_BFDD == 0
/*