From d14b95ce968a44a8278745fc23ac9f37e98629a1 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Fri, 9 Dec 2016 12:05:29 -0500 Subject: [PATCH] bgpd, zebra: Pass distance as part of the ZEBRA_NEXTHOP_UPDATE When zebra calls routing protocols back with either ZEBRA_NEXTHOP_UPDATE or ZEBRA_IMPORT_CHECK_UPDATE pass the distance value too. This is to set us up for nht for pim as that it needs the distance sometimes too. Signed-off-by: Donald Sharp --- bgpd/bgp_nht.c | 1 + zebra/zebra_rnh.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c index 057e2ace76..aa752280cf 100644 --- a/bgpd/bgp_nht.c +++ b/bgpd/bgp_nht.c @@ -377,6 +377,7 @@ bgp_parse_nexthop_update (int command, vrf_id_t vrf_id) bgp_unlock_node (rn); bnc->last_update = bgp_clock(); bnc->change_flags = 0; + stream_getc (s); // Distance but not currently used metric = stream_getl (s); nexthop_num = stream_getc (s); diff --git a/zebra/zebra_rnh.c b/zebra/zebra_rnh.c index 182cfe552d..b180930a0a 100644 --- a/zebra/zebra_rnh.c +++ b/zebra/zebra_rnh.c @@ -878,6 +878,7 @@ send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vr } if (rib) { + stream_putc (s, rib->distance); stream_putl (s, rib->metric); num = 0; nump = stream_get_endp(s); @@ -917,8 +918,9 @@ send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vr } else { - stream_putl (s, 0); - stream_putc (s, 0); + stream_putc (s, 0); // distance + stream_putl (s, 0); // metric + stream_putc (s, 0); // nexthops } stream_putw_at (s, 0, stream_get_endp (s)); -- 2.39.5