diff options
Diffstat (limited to 'zebra/zebra_rib.c')
| -rw-r--r-- | zebra/zebra_rib.c | 61 | 
1 files changed, 1 insertions, 60 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index e64a620f00..51458e4e84 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -503,7 +503,7 @@ struct route_entry *rib_match(afi_t afi, safi_t safi, vrf_id_t vrf_id,  	/* Lookup table.  */  	table = zebra_vrf_table(afi, safi, vrf_id);  	if (!table) -		return 0; +		return NULL;  	memset(&p, 0, sizeof(p));  	p.family = afi; @@ -552,65 +552,6 @@ struct route_entry *rib_match(afi_t afi, safi_t safi, vrf_id_t vrf_id,  	return NULL;  } -struct route_entry *rib_match_multicast(afi_t afi, vrf_id_t vrf_id, -					union g_addr *gaddr, -					struct route_node **rn_out) -{ -	struct route_entry *re = NULL, *mre = NULL, *ure = NULL; -	struct route_node *m_rn = NULL, *u_rn = NULL; - -	switch (zrouter.ipv4_multicast_mode) { -	case MCAST_MRIB_ONLY: -		return rib_match(afi, SAFI_MULTICAST, vrf_id, gaddr, rn_out); -	case MCAST_URIB_ONLY: -		return rib_match(afi, SAFI_UNICAST, vrf_id, gaddr, rn_out); -	case MCAST_NO_CONFIG: -	case MCAST_MIX_MRIB_FIRST: -		re = mre = rib_match(afi, SAFI_MULTICAST, vrf_id, gaddr, &m_rn); -		if (!mre) -			re = ure = rib_match(afi, SAFI_UNICAST, vrf_id, gaddr, -					     &u_rn); -		break; -	case MCAST_MIX_DISTANCE: -		mre = rib_match(afi, SAFI_MULTICAST, vrf_id, gaddr, &m_rn); -		ure = rib_match(afi, SAFI_UNICAST, vrf_id, gaddr, &u_rn); -		if (mre && ure) -			re = ure->distance < mre->distance ? ure : mre; -		else if (mre) -			re = mre; -		else if (ure) -			re = ure; -		break; -	case MCAST_MIX_PFXLEN: -		mre = rib_match(afi, SAFI_MULTICAST, vrf_id, gaddr, &m_rn); -		ure = rib_match(afi, SAFI_UNICAST, vrf_id, gaddr, &u_rn); -		if (mre && ure) -			re = u_rn->p.prefixlen > m_rn->p.prefixlen ? ure : mre; -		else if (mre) -			re = mre; -		else if (ure) -			re = ure; -		break; -	} - -	if (rn_out) -		*rn_out = (re == mre) ? m_rn : u_rn; - -	if (IS_ZEBRA_DEBUG_RIB) { -		char buf[BUFSIZ]; -		inet_ntop(afi == AFI_IP ? AF_INET : AF_INET6, gaddr, buf, -			  BUFSIZ); - -		zlog_debug("%s: %s: %pRN vrf: %s(%u) found %s, using %s", -			   __func__, buf, (re == mre) ? m_rn : u_rn, -			   vrf_id_to_name(vrf_id), vrf_id, -			   mre ? (ure ? "MRIB+URIB" : "MRIB") -			       : ure ? "URIB" : "nothing", -			   re == ure ? "URIB" : re == mre ? "MRIB" : "none"); -	} -	return re; -} -  /*   * Is this RIB labeled-unicast? It must be of type BGP and all paths   * (nexthops) must have a label.  | 
