summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zebra/rib.h2
-rw-r--r--zebra/zebra_rib.c18
-rw-r--r--zebra/zebra_vty.c2
-rw-r--r--zebra/zserv.c2
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);
}