summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bgpd/bgp_zebra.c6
-rw-r--r--bgpd/bgpd.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/bgpd/bgp_zebra.c b/bgpd/bgp_zebra.c
index becd99167..8ff6b63e0 100644
--- a/bgpd/bgp_zebra.c
+++ b/bgpd/bgp_zebra.c
@@ -3455,6 +3455,11 @@ static bool bgp_zebra_label_manager_connect(void)
return true;
}
+static void bgp_zebra_capabilities(struct zclient_capabilities *cap)
+{
+ bm->v6_with_v4_nexthops = cap->v6_with_v4_nexthop;
+}
+
void bgp_zebra_init(struct event_loop *master, unsigned short instance)
{
struct zclient_options options = zclient_options_default;
@@ -3470,6 +3475,7 @@ void bgp_zebra_init(struct event_loop *master, unsigned short instance)
array_size(bgp_handlers));
zclient_init(zclient, ZEBRA_ROUTE_BGP, 0, &bgpd_privs);
zclient->zebra_connected = bgp_zebra_connected;
+ zclient->zebra_capabilities = bgp_zebra_capabilities;
zclient->instance = instance;
/* Initialize special zclient for synchronous message exchanges. */
diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h
index 5e467bb87..67ee8aa13 100644
--- a/bgpd/bgpd.h
+++ b/bgpd/bgpd.h
@@ -168,6 +168,8 @@ struct bgp_master {
struct event *t_bgp_sync_label_manager;
struct event *t_bgp_start_label_manager;
+ bool v6_with_v4_nexthops;
+
QOBJ_FIELDS;
};
DECLARE_QOBJ_TYPE(bgp_master);