diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c index e1204f55a1..b0362b5537 100644 --- a/bgpd/bgp_nht.c +++ b/bgpd/bgp_nht.c @@ -432,6 +432,7 @@ bgp_parse_nexthop_update (int command, vrf_id_t vrf_id) { case NEXTHOP_TYPE_IPV4: nexthop->gate.ipv4.s_addr = stream_get_ipv4 (s); + nexthop->ifindex = stream_getl (s); break; case NEXTHOP_TYPE_IFINDEX: nexthop->ifindex = stream_getl (s); @@ -442,6 +443,7 @@ bgp_parse_nexthop_update (int command, vrf_id_t vrf_id) break; case NEXTHOP_TYPE_IPV6: stream_get (&nexthop->gate.ipv6, s, 16); + nexthop->ifindex = stream_getl (s); break; case NEXTHOP_TYPE_IPV6_IFINDEX: stream_get (&nexthop->gate.ipv6, s, 16); diff --git a/zebra/zebra_rnh.c b/zebra/zebra_rnh.c index b180930a0a..f42354b6e6 100644 --- a/zebra/zebra_rnh.c +++ b/zebra/zebra_rnh.c @@ -893,6 +893,7 @@ send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vr { case NEXTHOP_TYPE_IPV4: stream_put_in_addr (s, &nexthop->gate.ipv4); + stream_putl (s, nexthop->ifindex); break; case NEXTHOP_TYPE_IFINDEX: stream_putl (s, nexthop->ifindex); @@ -903,6 +904,7 @@ send_client (struct rnh *rnh, struct zserv *client, rnh_type_t type, vrf_id_t vr break; case NEXTHOP_TYPE_IPV6: stream_put (s, &nexthop->gate.ipv6, 16); + stream_putl (s, nexthop->ifindex); break; case NEXTHOP_TYPE_IPV6_IFINDEX: stream_put (s, &nexthop->gate.ipv6, 16);