diff options
author | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-11-02 00:24:59 +0100 |
---|---|---|
committer | Donald Sharp <sharpd@cumulusnetworks.com> | 2018-11-02 00:24:59 +0100 |
commit | a756969dc61880d781060a9387c7bdf6da02a238 (patch) | |
tree | 8607532fc8861413d9ea72fde1060f7cda696ca0 /pimd/pim_zlookup.c | |
parent | lib, zebra: Encode nexthop vrf in nht updates (diff) | |
download | frr-a756969dc61880d781060a9387c7bdf6da02a238.tar.xz frr-a756969dc61880d781060a9387c7bdf6da02a238.zip |
pimd, zebra: Encode nexthop vrf in message
Encode the nexthop vrf in the message sent about mrib lookups.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'pimd/pim_zlookup.c')
-rw-r--r-- | pimd/pim_zlookup.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/pimd/pim_zlookup.c b/pimd/pim_zlookup.c index 6e7035210..0e7486611 100644 --- a/pimd/pim_zlookup.c +++ b/pimd/pim_zlookup.c @@ -202,10 +202,12 @@ static int zclient_read_nexthop(struct pim_instance *pim, } for (i = 0; i < nexthop_num; ++i) { + vrf_id_t nexthop_vrf_id; enum nexthop_types_t nexthop_type; struct pim_neighbor *nbr; struct prefix p; + nexthop_vrf_id = stream_getl(s); nexthop_type = stream_getc(s); if (num_ifindex >= tab_size) { char addr_str[INET_ADDRSTRLEN]; @@ -219,6 +221,7 @@ static int zclient_read_nexthop(struct pim_instance *pim, } nexthop_tab[num_ifindex].protocol_distance = distance; nexthop_tab[num_ifindex].route_metric = metric; + nexthop_tab[num_ifindex].vrf_id = nexthop_vrf_id; switch (nexthop_type) { case NEXTHOP_TYPE_IFINDEX: nexthop_tab[num_ifindex].ifindex = stream_getl(s); @@ -265,12 +268,12 @@ static int zclient_read_nexthop(struct pim_instance *pim, if_lookup_by_index( nexthop_tab[num_ifindex] .ifindex, - vrf_id), + nexthop_vrf_id), &p); else nbr = pim_neighbor_find_if(if_lookup_by_index( nexthop_tab[num_ifindex].ifindex, - vrf_id)); + nexthop_vrf_id)); if (nbr) { nexthop_tab[num_ifindex].nexthop_addr.family = AF_INET; |