mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-09 05:37:07 +00:00
Merge pull request #11149 from donaldsharp/update_group_debugging
Update group debugging
This commit is contained in:
commit
e78ec23c02
@ -2576,9 +2576,9 @@ static int bgp_debug_per_prefix(const struct prefix *p,
|
||||
/* Return true if this peer is on the per_peer_list of peers to debug
|
||||
* for BGP_DEBUG_TYPE
|
||||
*/
|
||||
static int bgp_debug_per_peer(char *host, unsigned long term_bgp_debug_type,
|
||||
unsigned int BGP_DEBUG_TYPE,
|
||||
struct list *per_peer_list)
|
||||
static bool bgp_debug_per_peer(char *host, unsigned long term_bgp_debug_type,
|
||||
unsigned int BGP_DEBUG_TYPE,
|
||||
struct list *per_peer_list)
|
||||
{
|
||||
struct bgp_debug_filter *filter;
|
||||
struct listnode *node, *nnode;
|
||||
@ -2586,25 +2586,25 @@ static int bgp_debug_per_peer(char *host, unsigned long term_bgp_debug_type,
|
||||
if (term_bgp_debug_type & BGP_DEBUG_TYPE) {
|
||||
/* We are debugging all peers so return true */
|
||||
if (!per_peer_list || list_isempty(per_peer_list))
|
||||
return 1;
|
||||
return true;
|
||||
|
||||
else {
|
||||
if (!host)
|
||||
return 0;
|
||||
return false;
|
||||
|
||||
for (ALL_LIST_ELEMENTS(per_peer_list, node, nnode,
|
||||
filter))
|
||||
if (strcmp(filter->host, host) == 0)
|
||||
return 1;
|
||||
return true;
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
int bgp_debug_neighbor_events(struct peer *peer)
|
||||
bool bgp_debug_neighbor_events(const struct peer *peer)
|
||||
{
|
||||
char *host = NULL;
|
||||
|
||||
@ -2616,7 +2616,7 @@ int bgp_debug_neighbor_events(struct peer *peer)
|
||||
bgp_debug_neighbor_events_peers);
|
||||
}
|
||||
|
||||
int bgp_debug_keepalive(struct peer *peer)
|
||||
bool bgp_debug_keepalive(const struct peer *peer)
|
||||
{
|
||||
char *host = NULL;
|
||||
|
||||
@ -2628,7 +2628,7 @@ int bgp_debug_keepalive(struct peer *peer)
|
||||
bgp_debug_keepalive_peers);
|
||||
}
|
||||
|
||||
bool bgp_debug_update(struct peer *peer, const struct prefix *p,
|
||||
bool bgp_debug_update(const struct peer *peer, const struct prefix *p,
|
||||
struct update_group *updgrp, unsigned int inbound)
|
||||
{
|
||||
char *host = NULL;
|
||||
|
@ -174,9 +174,9 @@ extern void bgp_notify_print(struct peer *peer, struct bgp_notify *bgp_notify,
|
||||
const char *direct, bool hard_reset);
|
||||
|
||||
extern const struct message bgp_status_msg[];
|
||||
extern int bgp_debug_neighbor_events(struct peer *peer);
|
||||
extern int bgp_debug_keepalive(struct peer *peer);
|
||||
extern bool bgp_debug_update(struct peer *peer, const struct prefix *p,
|
||||
extern bool bgp_debug_neighbor_events(const struct peer *peer);
|
||||
extern bool bgp_debug_keepalive(const struct peer *peer);
|
||||
extern bool bgp_debug_update(const struct peer *peer, const struct prefix *p,
|
||||
struct update_group *updgrp, unsigned int inbound);
|
||||
extern bool bgp_debug_bestpath(struct bgp_dest *dest);
|
||||
extern bool bgp_debug_zebra(const struct prefix *p);
|
||||
|
@ -398,7 +398,6 @@ static unsigned int updgrp_hash_key_make(const void *p)
|
||||
key = jhash_1word(
|
||||
(peer->shared_network && peer_afi_active_nego(peer, AFI_IP6)),
|
||||
key);
|
||||
|
||||
/*
|
||||
* There are certain peers that must get their own update-group:
|
||||
* - lonesoul peers
|
||||
@ -413,6 +412,59 @@ static unsigned int updgrp_hash_key_make(const void *p)
|
||||
key = jhash_1word(jhash(peer->host, strlen(peer->host), SEED2),
|
||||
key);
|
||||
|
||||
if (bgp_debug_neighbor_events(peer)) {
|
||||
zlog_debug(
|
||||
"%pBP Update Group Hash: sort: %d UpdGrpFlags: %u UpdGrpAFFlags: %u",
|
||||
peer, peer->sort, peer->flags & PEER_UPDGRP_FLAGS,
|
||||
flags & PEER_UPDGRP_AF_FLAGS);
|
||||
zlog_debug(
|
||||
"%pBP Update Group Hash: addpath: %u UpdGrpCapFlag: %u UpdGrpCapAFFlag: %u route_adv: %u change local as: %u",
|
||||
peer, (uint32_t)peer->addpath_type[afi][safi],
|
||||
peer->cap & PEER_UPDGRP_CAP_FLAGS,
|
||||
peer->af_cap[afi][safi] & PEER_UPDGRP_AF_CAP_FLAGS,
|
||||
peer->v_routeadv, peer->change_local_as);
|
||||
zlog_debug(
|
||||
"%pBP Update Group Hash: max packet size: %u pmax_out: %u Peer Group: %s rmap out: %s",
|
||||
peer, peer->max_packet_size, peer->pmax_out[afi][safi],
|
||||
peer->group ? peer->group->name : "(NONE)",
|
||||
ROUTE_MAP_OUT_NAME(filter) ? ROUTE_MAP_OUT_NAME(filter)
|
||||
: "(NONE)");
|
||||
zlog_debug(
|
||||
"%pBP Update Group Hash: dlist out: %s plist out: %s aslist out: %s usmap out: %s advmap: %s",
|
||||
peer,
|
||||
DISTRIBUTE_OUT_NAME(filter)
|
||||
? DISTRIBUTE_OUT_NAME(filter)
|
||||
: "(NONE)",
|
||||
PREFIX_LIST_OUT_NAME(filter)
|
||||
? PREFIX_LIST_OUT_NAME(filter)
|
||||
: "(NONE)",
|
||||
FILTER_LIST_OUT_NAME(filter)
|
||||
? FILTER_LIST_OUT_NAME(filter)
|
||||
: "(NONE)",
|
||||
UNSUPPRESS_MAP_NAME(filter)
|
||||
? UNSUPPRESS_MAP_NAME(filter)
|
||||
: "(NONE)",
|
||||
ADVERTISE_MAP_NAME(filter) ? ADVERTISE_MAP_NAME(filter)
|
||||
: "(NONE)");
|
||||
zlog_debug(
|
||||
"%pBP Update Group Hash: default rmap: %s shared network and afi active network: %d",
|
||||
peer,
|
||||
peer->default_rmap[afi][safi].name
|
||||
? peer->default_rmap[afi][safi].name
|
||||
: "(NONE)",
|
||||
peer->shared_network &&
|
||||
peer_afi_active_nego(peer, AFI_IP6));
|
||||
zlog_debug(
|
||||
"%pBP Update Group Hash: Lonesoul: %u ORF prefix: %u ORF old: %u max prefix out: %u",
|
||||
peer, CHECK_FLAG(peer->flags, PEER_FLAG_LONESOUL),
|
||||
CHECK_FLAG(peer->af_cap[afi][safi],
|
||||
PEER_CAP_ORF_PREFIX_SM_RCV),
|
||||
CHECK_FLAG(peer->af_cap[afi][safi],
|
||||
PEER_CAP_ORF_PREFIX_SM_OLD_RCV),
|
||||
CHECK_FLAG(peer->af_flags[afi][safi],
|
||||
PEER_FLAG_MAX_PREFIX_OUT));
|
||||
zlog_debug("%pBP Update Group Hash key: %u", peer, key);
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user