From f86a2b82fe6be0163940d717a99103abb805a00e Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Wed, 14 Sep 2016 15:34:25 -0400 Subject: [PATCH] zebra: Pass in vrf to rib_match_ipv4_multicast Pass around the vrf_id to rib_match_ipv4_multicast so that proper lookup can be maintained. Not really needed yet, but future fixing now. Signed-off-by: Donald Sharp --- zebra/rib.h | 2 +- zebra/zebra_rib.c | 18 +++++++++--------- zebra/zebra_vty.c | 2 +- zebra/zserv.c | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/zebra/rib.h b/zebra/rib.h index 500d96cbe4..9867323e6e 100644 --- a/zebra/rib.h +++ b/zebra/rib.h @@ -354,7 +354,7 @@ extern int rib_delete (afi_t afi, safi_t safi, vrf_id_t vrf_id, int type, extern struct rib *rib_match (afi_t afi, safi_t safi, vrf_id_t, union g_addr *, struct route_node **rn_out); -extern struct rib *rib_match_ipv4_multicast (struct in_addr addr, +extern struct rib *rib_match_ipv4_multicast (vrf_id_t vrf_id, struct in_addr addr, struct route_node **rn_out); extern struct rib *rib_lookup_ipv4 (struct prefix_ipv4 *, vrf_id_t); diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index 1378d008ca..45df9ac7dc 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -824,7 +824,7 @@ rib_match (afi_t afi, safi_t safi, vrf_id_t vrf_id, } struct rib * -rib_match_ipv4_multicast (struct in_addr addr, struct route_node **rn_out) +rib_match_ipv4_multicast (vrf_id_t vrf_id, struct in_addr addr, struct route_node **rn_out) { struct rib *rib = NULL, *mrib = NULL, *urib = NULL; struct route_node *m_rn = NULL, *u_rn = NULL; @@ -833,18 +833,18 @@ rib_match_ipv4_multicast (struct in_addr addr, struct route_node **rn_out) switch (ipv4_multicast_mode) { case MCAST_MRIB_ONLY: - return rib_match (AFI_IP, SAFI_MULTICAST, VRF_DEFAULT, &gaddr, rn_out); + return rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, rn_out); case MCAST_URIB_ONLY: - return rib_match (AFI_IP, SAFI_UNICAST, VRF_DEFAULT, &gaddr, rn_out); + return rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, rn_out); case MCAST_NO_CONFIG: case MCAST_MIX_MRIB_FIRST: - rib = mrib = rib_match (AFI_IP, SAFI_MULTICAST, VRF_DEFAULT, &gaddr, &m_rn); + rib = mrib = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn); if (!mrib) - rib = urib = rib_match (AFI_IP, SAFI_UNICAST, VRF_DEFAULT, &gaddr, &u_rn); + rib = urib = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn); break; case MCAST_MIX_DISTANCE: - mrib = rib_match (AFI_IP, SAFI_MULTICAST, VRF_DEFAULT, &gaddr, &m_rn); - urib = rib_match (AFI_IP, SAFI_UNICAST, VRF_DEFAULT, &gaddr, &u_rn); + mrib = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn); + urib = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn); if (mrib && urib) rib = urib->distance < mrib->distance ? urib : mrib; else if (mrib) @@ -853,8 +853,8 @@ rib_match_ipv4_multicast (struct in_addr addr, struct route_node **rn_out) rib = urib; break; case MCAST_MIX_PFXLEN: - mrib = rib_match (AFI_IP, SAFI_MULTICAST, VRF_DEFAULT, &gaddr, &m_rn); - urib = rib_match (AFI_IP, SAFI_UNICAST, VRF_DEFAULT, &gaddr, &u_rn); + mrib = rib_match (AFI_IP, SAFI_MULTICAST, vrf_id, &gaddr, &m_rn); + urib = rib_match (AFI_IP, SAFI_UNICAST, vrf_id, &gaddr, &u_rn); if (mrib && urib) rib = u_rn->p.prefixlen > m_rn->p.prefixlen ? urib : mrib; else if (mrib) diff --git a/zebra/zebra_vty.c b/zebra/zebra_vty.c index 72d0ced658..bf1d0a49c6 100644 --- a/zebra/zebra_vty.c +++ b/zebra/zebra_vty.c @@ -311,7 +311,7 @@ DEFUN (show_ip_rpf_addr, return CMD_WARNING; } - rib = rib_match_ipv4_multicast (addr, &rn); + rib = rib_match_ipv4_multicast (VRF_DEFAULT, addr, &rn); if (rib) vty_show_ip_route_detail (vty, rn, 1); diff --git a/zebra/zserv.c b/zebra/zserv.c index aad0b15a88..61f3393ed9 100644 --- a/zebra/zserv.c +++ b/zebra/zserv.c @@ -1346,7 +1346,7 @@ zread_ipv4_nexthop_lookup_mrib (struct zserv *client, u_short length, struct zeb struct rib *rib; addr.s_addr = stream_get_ipv4 (client->ibuf); - rib = rib_match_ipv4_multicast (addr, NULL); + rib = rib_match_ipv4_multicast (zvrf->vrf_id, addr, NULL); return zsend_ipv4_nexthop_lookup_mrib (client, addr, rib, zvrf); } -- 2.39.5