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 <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2016-12-09 12:05:29 -05:00
parent 38f4935a5d
commit d14b95ce96
2 changed files with 5 additions and 2 deletions

View File

@ -377,6 +377,7 @@ bgp_parse_nexthop_update (int command, vrf_id_t vrf_id)
bgp_unlock_node (rn); bgp_unlock_node (rn);
bnc->last_update = bgp_clock(); bnc->last_update = bgp_clock();
bnc->change_flags = 0; bnc->change_flags = 0;
stream_getc (s); // Distance but not currently used
metric = stream_getl (s); metric = stream_getl (s);
nexthop_num = stream_getc (s); nexthop_num = stream_getc (s);

View File

@ -878,6 +878,7 @@ send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vr
} }
if (rib) if (rib)
{ {
stream_putc (s, rib->distance);
stream_putl (s, rib->metric); stream_putl (s, rib->metric);
num = 0; num = 0;
nump = stream_get_endp(s); 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 else
{ {
stream_putl (s, 0); stream_putc (s, 0); // distance
stream_putc (s, 0); stream_putl (s, 0); // metric
stream_putc (s, 0); // nexthops
} }
stream_putw_at (s, 0, stream_get_endp (s)); stream_putw_at (s, 0, stream_get_endp (s));