mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-28 15:05:03 +00:00
Merge pull request #12837 from donaldsharp/unlikely_routemap
Unlikely routemap
This commit is contained in:
commit
c0656e9040
@ -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);}
|
||||
#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;
|
||||
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);
|
||||
*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
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
@ -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) {
|
||||
if (p.family == AF_INET)
|
||||
table = index->map->ipv4_prefix_table;
|
||||
if (!table)
|
||||
index->map->ipv4_prefix_table = route_table_init();
|
||||
|
||||
table = index->map->ipv4_prefix_table;
|
||||
} else {
|
||||
else
|
||||
table = index->map->ipv6_prefix_table;
|
||||
if (!table)
|
||||
index->map->ipv6_prefix_table = route_table_init();
|
||||
|
||||
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);
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user