Skip to content

Commit

Permalink
Merge pull request #15218 from FRRouting/mergify/bp/stable/9.0/pr-15210
Browse files Browse the repository at this point in the history
bgpd: Fix format overflow for graceful-restart debug logs (backport #15210)
  • Loading branch information
donaldsharp authored Jan 25, 2024
2 parents d2fe61f + f7f9335 commit 6c77f04
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
22 changes: 11 additions & 11 deletions bgpd/bgp_fsm.c
Original file line number Diff line number Diff line change
Expand Up @@ -2735,7 +2735,7 @@ int bgp_gr_lookup_n_update_all_peer(struct bgp *bgp,
return BGP_GR_SUCCESS;
}

int bgp_gr_update_all(struct bgp *bgp, int global_gr_cmd)
int bgp_gr_update_all(struct bgp *bgp, enum global_gr_command global_gr_cmd)
{
enum global_mode global_new_state = GLOBAL_INVALID;
enum global_mode global_old_state = GLOBAL_INVALID;
Expand Down Expand Up @@ -2889,7 +2889,8 @@ enum peer_mode bgp_peer_gr_mode_get(struct peer *peer)
return peer->peer_gr_present_state;
}

int bgp_neighbor_graceful_restart(struct peer *peer, int peer_gr_cmd)
int bgp_neighbor_graceful_restart(struct peer *peer,
enum peer_gr_command peer_gr_cmd)
{
enum peer_mode peer_new_state = PEER_INVALID;
enum peer_mode peer_old_state = PEER_INVALID;
Expand Down Expand Up @@ -2948,16 +2949,16 @@ int bgp_neighbor_graceful_restart(struct peer *peer, int peer_gr_cmd)
return result;
}

unsigned int bgp_peer_gr_action(struct peer *peer, int old_peer_state,
int new_peer_state)
unsigned int bgp_peer_gr_action(struct peer *peer, enum peer_mode old_peer_state,
enum peer_mode new_peer_state)
{
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
"%s [BGP_GR] Move peer from old_peer_state :%s: to new_peer_state :%s: !!!!",
__func__, print_peer_gr_mode(old_peer_state),
print_peer_gr_mode(new_peer_state));

int bgp_gr_global_mode = GLOBAL_INVALID;
enum global_mode bgp_gr_global_mode = GLOBAL_INVALID;
unsigned int ret = BGP_GR_FAILURE;

if (old_peer_state == new_peer_state) {
Expand Down Expand Up @@ -2989,10 +2990,10 @@ unsigned int bgp_peer_gr_action(struct peer *peer, int old_peer_state,

BGP_PEER_GR_GLOBAL_INHERIT_UNSET(peer);

if (new_peer_state == bgp_gr_global_mode) {
/*This is incremental updates i.e no tear down
*of the existing session
*as the peer is already working in the same mode.
if ((int)new_peer_state == (int)bgp_gr_global_mode) {
/* This is incremental updates i.e no tear down
* of the existing session
* as the peer is already working in the same mode.
*/
ret = BGP_GR_SUCCESS;
} else {
Expand All @@ -3019,8 +3020,7 @@ unsigned int bgp_peer_gr_action(struct peer *peer, int old_peer_state,

BGP_PEER_GR_GLOBAL_INHERIT_SET(peer);

if (old_peer_state == bgp_gr_global_mode) {

if ((int)old_peer_state == (int)bgp_gr_global_mode) {
/* This is incremental updates
*i.e no tear down of the existing session
*as the peer is already working in the same mode.
Expand Down
9 changes: 5 additions & 4 deletions bgpd/bgp_fsm.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,10 +140,11 @@ extern void bgp_adjust_routeadv(struct peer *);
DECLARE_HOOK(peer_backward_transition, (struct peer *peer), (peer));
DECLARE_HOOK(peer_established, (struct peer *peer), (peer));

int bgp_gr_update_all(struct bgp *bgp, int global_gr_cmd);
int bgp_neighbor_graceful_restart(struct peer *peer, int peer_gr_cmd);
unsigned int bgp_peer_gr_action(struct peer *peer,
int old_peer_state, int new_peer_state);
int bgp_gr_update_all(struct bgp *bgp, enum global_gr_command global_gr_cmd);
int bgp_neighbor_graceful_restart(struct peer *peer,
enum peer_gr_command peer_gr_cmd);
unsigned int bgp_peer_gr_action(struct peer *peer, enum peer_mode old_peer_state,
enum peer_mode new_peer_state);
void bgp_peer_move_to_gr_mode(struct peer *peer, int new_state);
unsigned int bgp_peer_gr_helper_enable(struct peer *peer);
unsigned int bgp_peer_gr_enable(struct peer *peer);
Expand Down
3 changes: 2 additions & 1 deletion bgpd/bgpd.h
Original file line number Diff line number Diff line change
Expand Up @@ -1017,7 +1017,8 @@ enum peer_gr_command {
NO_PEER_HELPER_CMD
};

typedef unsigned int (*bgp_peer_gr_action_ptr)(struct peer *, int, int);
typedef unsigned int (*bgp_peer_gr_action_ptr)(struct peer *, enum peer_mode,
enum peer_mode);

struct bgp_peer_gr {
enum peer_mode next_state;
Expand Down

0 comments on commit 6c77f04

Please sign in to comment.