diff options
| author | Russ White <russ@riw.us> | 2023-04-04 08:20:25 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-04 08:20:25 -0400 | 
| commit | c0656e90406bcac5094a8bce86c03c1913a80831 (patch) | |
| tree | c7f3e393f0ba2deab99c721fd2b452710a74f485 | |
| parent | 6fc9bfb11ddf5c187bad91e1a759361d249f512f (diff) | |
| parent | 71cb4a57a8a2047623497d2e4100b5c99d236b81 (diff) | |
Merge pull request #12837 from donaldsharp/unlikely_routemap
Unlikely routemap
| -rw-r--r-- | babeld/babeld.c | 62 | ||||
| -rw-r--r-- | babeld/babeld.h | 4 | ||||
| -rw-r--r-- | babeld/util.h | 9 | ||||
| -rw-r--r-- | bgpd/bgp_routemap.c | 30 | ||||
| -rw-r--r-- | lib/compiler.h | 8 | ||||
| -rw-r--r-- | lib/routemap.c | 74 | ||||
| -rw-r--r-- | nhrpd/debug.h | 8 | ||||
| -rw-r--r-- | ospfd/ospf_routemap.c | 8 | ||||
| -rw-r--r-- | zebra/zebra_routemap.c | 8 | 
9 files changed, 97 insertions, 114 deletions
diff --git a/babeld/babeld.c b/babeld/babeld.c index 4ce92c5204..f4c932971e 100644 --- a/babeld/babeld.c +++ b/babeld/babeld.c @@ -444,37 +444,39 @@ babel_fill_with_next_timeout(struct timeval *tv)  #if (defined NO_DEBUG)  #define printIfMin(a,b,c,d)  #else -#define printIfMin(a,b,c,d) \ -  if (UNLIKELY(debug & BABEL_DEBUG_TIMEOUT)) {printIfMin(a,b,c,d);} - -    struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT); -    struct interface *ifp = NULL; +#define printIfMin(a, b, c, d)                                                 \ +	if (unlikely(debug & BABEL_DEBUG_TIMEOUT)) {                           \ +		printIfMin(a, b, c, d);                                        \ +	} -    *tv = check_neighbours_timeout; -    printIfMin(tv, 0, "check_neighbours_timeout", NULL); -    timeval_min_sec(tv, expiry_time); -    printIfMin(tv, 1, "expiry_time", NULL); -    timeval_min_sec(tv, source_expiry_time); -    printIfMin(tv, 1, "source_expiry_time", NULL); -    timeval_min(tv, &resend_time); -    printIfMin(tv, 1, "resend_time", NULL); -    FOR_ALL_INTERFACES(vrf, ifp) { -        babel_interface_nfo *babel_ifp = NULL; -        if(!if_up(ifp)) -            continue; -        babel_ifp = babel_get_if_nfo(ifp); -        timeval_min(tv, &babel_ifp->flush_timeout); -        printIfMin(tv, 1, "flush_timeout", ifp->name); -        timeval_min(tv, &babel_ifp->hello_timeout); -        printIfMin(tv, 1, "hello_timeout", ifp->name); -        timeval_min(tv, &babel_ifp->update_timeout); -        printIfMin(tv, 1, "update_timeout", ifp->name); -        timeval_min(tv, &babel_ifp->update_flush_timeout); -        printIfMin(tv, 1, "update_flush_timeout",ifp->name); -    } -    timeval_min(tv, &unicast_flush_timeout); -    printIfMin(tv, 1, "unicast_flush_timeout", NULL); -    printIfMin(tv, 2, NULL, NULL); +	struct vrf *vrf = vrf_lookup_by_id(VRF_DEFAULT); +	struct interface *ifp = NULL; + +	*tv = check_neighbours_timeout; +	printIfMin(tv, 0, "check_neighbours_timeout", NULL); +	timeval_min_sec(tv, expiry_time); +	printIfMin(tv, 1, "expiry_time", NULL); +	timeval_min_sec(tv, source_expiry_time); +	printIfMin(tv, 1, "source_expiry_time", NULL); +	timeval_min(tv, &resend_time); +	printIfMin(tv, 1, "resend_time", NULL); +	FOR_ALL_INTERFACES (vrf, ifp) { +		babel_interface_nfo *babel_ifp = NULL; +		if (!if_up(ifp)) +			continue; +		babel_ifp = babel_get_if_nfo(ifp); +		timeval_min(tv, &babel_ifp->flush_timeout); +		printIfMin(tv, 1, "flush_timeout", ifp->name); +		timeval_min(tv, &babel_ifp->hello_timeout); +		printIfMin(tv, 1, "hello_timeout", ifp->name); +		timeval_min(tv, &babel_ifp->update_timeout); +		printIfMin(tv, 1, "update_timeout", ifp->name); +		timeval_min(tv, &babel_ifp->update_flush_timeout); +		printIfMin(tv, 1, "update_flush_timeout", ifp->name); +	} +	timeval_min(tv, &unicast_flush_timeout); +	printIfMin(tv, 1, "unicast_flush_timeout", NULL); +	printIfMin(tv, 2, NULL, NULL);  #undef printIfMin  #endif  } diff --git a/babeld/babeld.h b/babeld/babeld.h index 6c51af48a8..619550f651 100644 --- a/babeld/babeld.h +++ b/babeld/babeld.h @@ -26,12 +26,8 @@ Copyright 2011 by Matthieu Boutier and Juliusz Chroboczek  #if defined(__GNUC__) && (__GNUC__ >= 3)  #define ATTRIBUTE(x) __attribute__ (x) -#define LIKELY(_x) __builtin_expect(!!(_x), 1) -#define UNLIKELY(_x) __builtin_expect(!!(_x), 0)  #else  #define ATTRIBUTE(x) /**/ -#define LIKELY(_x) !!(_x) -#define UNLIKELY(_x) !!(_x)  #endif  #if defined(__GNUC__) && (__GNUC__ >= 4) && (__GNUC_MINOR__ >= 3) diff --git a/babeld/util.h b/babeld/util.h index 5e5843543a..8535d4dd6a 100644 --- a/babeld/util.h +++ b/babeld/util.h @@ -122,10 +122,11 @@ extern const unsigned char v4prefix[16];  #define BABEL_DEBUG_ROUTE       (1 << 5)  #define BABEL_DEBUG_ALL         (0xFFFF) -#define debugf(level, ...) \ -do { \ -if(UNLIKELY(debug & level)) zlog_debug(__VA_ARGS__);     \ -} while(0) +#define debugf(level, ...)                                                     \ +	do {                                                                   \ +		if (unlikely(debug & level))                                   \ +			zlog_debug(__VA_ARGS__);                               \ +	} while (0)  #endif /* NO_DEBUG */ diff --git a/bgpd/bgp_routemap.c b/bgpd/bgp_routemap.c index 4faf4a9f15..32ecb083be 100644 --- a/bgpd/bgp_routemap.c +++ b/bgpd/bgp_routemap.c @@ -461,7 +461,8 @@ route_match_ip_address(void *rule, const struct prefix *prefix, void *object)  	if (prefix->family == AF_INET) {  		alist = access_list_lookup(AFI_IP, (char *)rule);  		if (alist == NULL) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); @@ -521,7 +522,8 @@ route_match_ip_next_hop(void *rule, const struct prefix *prefix, void *object)  		alist = access_list_lookup(AFI_IP, (char *)rule);  		if (alist == NULL) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); @@ -581,7 +583,8 @@ route_match_ip_route_source(void *rule, const struct prefix *pfx, void *object)  		alist = access_list_lookup(AFI_IP, (char *)rule);  		if (alist == NULL) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); @@ -676,7 +679,7 @@ route_match_address_prefix_list(void *rule, afi_t afi,  	plist = prefix_list_lookup(afi, (char *)rule);  	if (plist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -737,7 +740,8 @@ route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,  		plist = prefix_list_lookup(AFI_IP, (char *)rule);  		if (plist == NULL) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); @@ -786,7 +790,8 @@ route_match_ipv6_next_hop_prefix_list(void *rule, const struct prefix *prefix,  		plist = prefix_list_lookup(AFI_IP6, (char *)rule);  		if (!plist) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); @@ -891,7 +896,8 @@ route_match_ip_route_source_prefix_list(void *rule, const struct prefix *prefix,  		plist = prefix_list_lookup(AFI_IP, (char *)rule);  		if (plist == NULL) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); @@ -956,7 +962,7 @@ route_match_mac_address(void *rule, const struct prefix *prefix, void *object)  	alist = access_list_lookup(AFI_L2VPN, (char *)rule);  	if (alist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -964,7 +970,7 @@ route_match_mac_address(void *rule, const struct prefix *prefix, void *object)  		return RMAP_NOMATCH;  	}  	if (prefix->u.prefix_evpn.route_type != BGP_EVPN_MAC_IP_ROUTE) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Prefix %pFX is not a EVPN MAC IP ROUTE defaulting to NO_MATCH",  				__func__, prefix); @@ -3242,7 +3248,8 @@ route_match_ipv6_address(void *rule, const struct prefix *prefix, void *object)  	if (prefix->family == AF_INET6) {  		alist = access_list_lookup(AFI_IP6, (char *)rule);  		if (alist == NULL) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); @@ -3299,7 +3306,8 @@ route_match_ipv6_next_hop(void *rule, const struct prefix *prefix, void *object)  		alist = access_list_lookup(AFI_IP6, (char *)rule);  		if (!alist) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  					__func__, (char *)rule); diff --git a/lib/compiler.h b/lib/compiler.h index d12e282832..29fcfbefbf 100644 --- a/lib/compiler.h +++ b/lib/compiler.h @@ -439,6 +439,14 @@ _Static_assert(sizeof(_uint64_t) == 8 && sizeof(_int64_t) == 8,  #pragma diag_suppress 167  #endif /* __INTELISENSE__ */ +#if defined(__GNUC__) && (__GNUC__ >= 3) +#define likely(_x) __builtin_expect(!!(_x), 1) +#define unlikely(_x) __builtin_expect(!!(_x), 0) +#else +#define likely(_x) !!(_x) +#define unlikely(_x) !!(_x) +#endif +  #ifdef __cplusplus  }  #endif diff --git a/lib/routemap.c b/lib/routemap.c index 16da81fa74..20dcd2a53d 100644 --- a/lib/routemap.c +++ b/lib/routemap.c @@ -669,7 +669,7 @@ static struct route_map *route_map_add(const char *name)  	if (!map->ipv6_prefix_table)  		map->ipv6_prefix_table = route_table_init(); -	if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +	if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  		zlog_debug("Add route-map %s", name);  	return map;  } @@ -689,7 +689,7 @@ static void route_map_free_map(struct route_map *map)  	while ((index = map->head) != NULL)  		route_map_index_delete(index, 0); -	if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +	if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  		zlog_debug("Deleting route-map %s", map->name);  	list = &route_map_master; @@ -706,6 +706,9 @@ static void route_map_free_map(struct route_map *map)  	else  		list->head = map->next; +	route_table_finish(map->ipv4_prefix_table); +	route_table_finish(map->ipv6_prefix_table); +  	hash_release(route_map_master_hash, map);  	XFREE(MTYPE_ROUTE_MAP_NAME, map->name);  	XFREE(MTYPE_ROUTE_MAP, map); @@ -1120,7 +1123,7 @@ void route_map_index_delete(struct route_map_index *index, int notify)  	QOBJ_UNREG(index); -	if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +	if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  		zlog_debug("Deleting route-map %s sequence %d",  			   index->map->name, index->pref); @@ -1231,7 +1234,7 @@ route_map_index_add(struct route_map *map, enum route_map_type type, int pref)  		route_map_notify_dependencies(map->name, RMAP_EVENT_CALL_ADDED);  	} -	if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +	if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  		zlog_debug("Route-map %s add sequence %d, type: %s",  			   map->name, pref, route_map_type_str(type)); @@ -1811,10 +1814,8 @@ route_map_get_index(struct route_map *map, const struct prefix *prefix,  	 * must be AF_INET or AF_INET6 in order for the lookup to succeed. So if  	 * the AF doesn't line up with the LPM trees, skip the optimization.  	 */ -	if (map->optimization_disabled || -	    (prefix->family == AF_INET && !map->ipv4_prefix_table) || -	    (prefix->family == AF_INET6 && !map->ipv6_prefix_table)) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +	if (map->optimization_disabled) { +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"Skipping route-map optimization for route-map: %s, pfx: %pFX, family: %d",  				map->name, prefix, prefix->family); @@ -1826,9 +1827,6 @@ route_map_get_index(struct route_map *map, const struct prefix *prefix,  	else  		table = map->ipv6_prefix_table; -	if (!table) -		return NULL; -  	do {  		candidate_rmap_list =  			route_map_get_index_list(&rn, prefix, table); @@ -1914,19 +1912,10 @@ static void route_map_pfx_table_add_default(afi_t afi,  	p.family = afi2family(afi);  	p.prefixlen = 0; -	if (p.family == AF_INET) { -		table = index->map->ipv4_prefix_table; -		if (!table) -			index->map->ipv4_prefix_table = route_table_init(); - +	if (p.family == AF_INET)  		table = index->map->ipv4_prefix_table; -	} else { -		table = index->map->ipv6_prefix_table; -		if (!table) -			index->map->ipv6_prefix_table = route_table_init(); - +	else  		table = index->map->ipv6_prefix_table; -	}  	/* Add default route to table */  	rn = route_node_get(table, &p); @@ -2317,8 +2306,6 @@ static void route_map_pfx_tbl_update(route_map_event_t event,  				     struct route_map_index *index, afi_t afi,  				     const char *plist_name)  { -	struct route_map *rmap = NULL; -  	if (!index)  		return; @@ -2332,19 +2319,6 @@ static void route_map_pfx_tbl_update(route_map_event_t event,  		route_map_pfx_table_del_default(AFI_IP, index);  		route_map_pfx_table_del_default(AFI_IP6, index); -		if ((index->map->head == NULL) && (index->map->tail == NULL)) { -			rmap = index->map; - -			if (rmap->ipv4_prefix_table) { -				route_table_finish(rmap->ipv4_prefix_table); -				rmap->ipv4_prefix_table = NULL; -			} - -			if (rmap->ipv6_prefix_table) { -				route_table_finish(rmap->ipv6_prefix_table); -				rmap->ipv6_prefix_table = NULL; -			} -		}  		return;  	} @@ -2569,12 +2543,14 @@ route_map_result_t route_map_apply_ext(struct route_map *map,  	 */  	if (prefix->family == AF_EVPN) {  		if (evpn_prefix2prefix(prefix, &conv) != 0) { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"Unable to convert EVPN prefix %pFX into IPv4/IPv6 prefix. Falling back to non-optimized route-map lookup",  					prefix);  		} else { -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +			if (unlikely(CHECK_FLAG(rmap_debug, +						DEBUG_ROUTEMAP_DETAIL)))  				zlog_debug(  					"Converted EVPN prefix %pFX into %pFX for optimized route-map lookup",  					prefix, &conv); @@ -2586,13 +2562,13 @@ route_map_result_t route_map_apply_ext(struct route_map *map,  	index = route_map_get_index(map, prefix, match_object, &match_ret);  	if (index) {  		index->applied++; -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  			zlog_debug(  				"Best match route-map: %s, sequence: %d for pfx: %pFX, result: %s",  				map->name, index->pref, prefix,  				route_map_cmd_result_str(match_ret));  	} else { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  			zlog_debug(  				"No best match sequence for pfx: %pFX in route-map: %s, result: %s",  				prefix, map->name, @@ -2615,7 +2591,7 @@ route_map_result_t route_map_apply_ext(struct route_map *map,  			/* Apply this index. */  			match_ret = route_map_apply_match(&index->match_list,  							  prefix, match_object); -			if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) { +			if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP))) {  				zlog_debug(  					"Route-map: %s, sequence: %d, prefix: %pFX, result: %s",  					map->name, index->pref, prefix, @@ -2728,7 +2704,7 @@ route_map_result_t route_map_apply_ext(struct route_map *map,  	}  route_map_apply_end: -	if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +	if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  		zlog_debug("Route-map: %s, prefix: %pFX, result: %s",  			   (map ? map->name : "null"), prefix,  			   route_map_result_str(ret)); @@ -2783,7 +2759,7 @@ static void route_map_clear_reference(struct hash_bucket *bucket, void *arg)  	tmp_dep_data.rname = arg;  	dep_data = hash_release(dep->dep_rmap_hash, &tmp_dep_data);  	if (dep_data) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  			zlog_debug("Clearing reference for %s to %s count: %d",  				   dep->dep_name, tmp_dep_data.rname,  				   dep_data->refcnt); @@ -2803,7 +2779,7 @@ static void route_map_clear_all_references(char *rmap_name)  {  	int i; -	if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +	if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  		zlog_debug("Clearing references for %s", rmap_name);  	for (i = 1; i < ROUTE_MAP_DEP_MAX; i++) { @@ -2879,7 +2855,7 @@ static int route_map_dep_update(struct hash *dephash, const char *dep_name,  	case RMAP_EVENT_LLIST_ADDED:  	case RMAP_EVENT_CALL_ADDED:  	case RMAP_EVENT_FILTER_ADDED: -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  			zlog_debug("Adding dependency for filter %s in route-map %s",  				   dep_name, rmap_name);  		dep = (struct route_map_dep *)hash_get( @@ -2908,7 +2884,7 @@ static int route_map_dep_update(struct hash *dephash, const char *dep_name,  	case RMAP_EVENT_LLIST_DELETED:  	case RMAP_EVENT_CALL_DELETED:  	case RMAP_EVENT_FILTER_DELETED: -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  			zlog_debug("Deleting dependency for filter %s in route-map %s",  				   dep_name, rmap_name);  		dep = (struct route_map_dep *)hash_get(dephash, dname, NULL); @@ -3034,7 +3010,7 @@ static void route_map_process_dependency(struct hash_bucket *bucket, void *data)  	dep_data = bucket->data;  	rmap_name = dep_data->rname; -	if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +	if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  		zlog_debug("Notifying %s of dependency", rmap_name);  	if (route_map_master.event_hook)  		(*route_map_master.event_hook)(rmap_name); @@ -3082,7 +3058,7 @@ void route_map_notify_dependencies(const char *affected_name,  		if (!dep->this_hash)  			dep->this_hash = upd8_hash; -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP)))  			zlog_debug("Filter %s updated", dep->dep_name);  		hash_iterate(dep->dep_rmap_hash, route_map_process_dependency,  			     (void *)event); diff --git a/nhrpd/debug.h b/nhrpd/debug.h index e9428fa90a..f2c7022ad4 100644 --- a/nhrpd/debug.h +++ b/nhrpd/debug.h @@ -1,13 +1,5 @@  #include "log.h" -#if defined(__GNUC__) && (__GNUC__ >= 3) -#define likely(_x) __builtin_expect(!!(_x), 1) -#define unlikely(_x) __builtin_expect(!!(_x), 0) -#else -#define likely(_x) !!(_x) -#define unlikely(_x) !!(_x) -#endif -  #define NHRP_DEBUG_COMMON	(1 << 0)  #define NHRP_DEBUG_KERNEL	(1 << 1)  #define NHRP_DEBUG_IF		(1 << 2) diff --git a/ospfd/ospf_routemap.c b/ospfd/ospf_routemap.c index 3087008819..3d5c5aa2d5 100644 --- a/ospfd/ospf_routemap.c +++ b/ospfd/ospf_routemap.c @@ -120,7 +120,7 @@ route_match_ip_nexthop(void *rule, const struct prefix *prefix, void *object)  	alist = access_list_lookup(AFI_IP, (char *)rule);  	if (alist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -168,7 +168,7 @@ route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,  	plist = prefix_list_lookup(AFI_IP, (char *)rule);  	if (plist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -245,7 +245,7 @@ route_match_ip_address(void *rule, const struct prefix *prefix, void *object)  	alist = access_list_lookup(AFI_IP, (char *)rule);  	if (alist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -286,7 +286,7 @@ route_match_ip_address_prefix_list(void *rule, const struct prefix *prefix,  	plist = prefix_list_lookup(AFI_IP, (char *)rule);  	if (plist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); diff --git a/zebra/zebra_routemap.c b/zebra/zebra_routemap.c index d9a7ee465a..142501b149 100644 --- a/zebra/zebra_routemap.c +++ b/zebra/zebra_routemap.c @@ -1041,7 +1041,7 @@ route_match_ip_next_hop(void *rule, const struct prefix *prefix, void *object)  	}  	alist = access_list_lookup(AFI_IP, (char *)rule);  	if (alist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -1104,7 +1104,7 @@ route_match_ip_next_hop_prefix_list(void *rule, const struct prefix *prefix,  	}  	plist = prefix_list_lookup(AFI_IP, (char *)rule);  	if (plist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -1145,7 +1145,7 @@ route_match_address(afi_t afi, void *rule, const struct prefix *prefix,  	alist = access_list_lookup(afi, (char *)rule);  	if (alist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Access-List Specified: %s does not exist defaulting to NO_MATCH",  				__func__, (char *)rule); @@ -1207,7 +1207,7 @@ route_match_address_prefix_list(void *rule, const struct prefix *prefix,  	plist = prefix_list_lookup(afi, (char *)rule);  	if (plist == NULL) { -		if (CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)) +		if (unlikely(CHECK_FLAG(rmap_debug, DEBUG_ROUTEMAP_DETAIL)))  			zlog_debug(  				"%s: Prefix List %s specified does not exist defaulting to NO_MATCH",  				__func__, (char *)rule);  | 
