Reorganizing bgp gr debug logs and code review comments.
Signed-off-by: Biswajit Sadhu <sadhub@vmware.com>
safi_t safi;
char orf_name[BUFSIZ];
int ret = 0;
- peer->nsf_af_count = 0;
struct bgp *bgp = peer->bgp;
struct graceful_restart_info *gr_info = NULL;
+ peer->nsf_af_count = 0;
+
if (peer_dynamic_neighbor(peer)
&& !(CHECK_FLAG(peer->flags, PEER_FLAG_DELETE))) {
if (bgp_debug_neighbor_events(peer))
if (gr_info && BGP_DEBUG(update,
UPDATE_OUT))
zlog_debug(
- "peer %s, EOR %d",
+ "peer %s, EOR_required %d",
peer->host,
gr_info->eor_required);
ret = bgp_start_deferral_timer(bgp, afi, safi, gr_info);
}
}
- return (ret);
+ return ret;
}
/**
status = bgp_update_gr_info(peer, afi,
safi);
if (status < 0)
- zlog_debug("Error in updating graceful restart for %s",
- get_afi_safi_str(afi,
+ zlog_err("Error in updating graceful restart for %s",
+ get_afi_safi_str(afi,
safi, false));
} else {
if (BGP_PEER_GRACEFUL_RESTART_CAPABLE(
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: %s Peer: (%s) :",
+ "%s [BGP_GR] Peer: (%s) :",
__func__, peer->host);
peer_old_state = bgp_peer_gr_mode_get(peer);
*/
switch (global_new_state) {
-
case GLOBAL_HELPER:
-
BGP_PEER_GR_HELPER_ENABLE(peer);
break;
case GLOBAL_GR:
-
BGP_PEER_GR_ENABLE(peer);
break;
case GLOBAL_DISABLE:
-
BGP_PEER_GR_DISABLE(peer);
break;
case GLOBAL_INVALID:
-
zlog_debug(
- "BGP_GR:: %s :GLOBAL_INVALID",
+ "%s [BGP_GR]GLOBAL_INVALID",
__func__);
return BGP_ERR_GR_OPERATION_FAILED;
default:
-
zlog_debug(
- "BGP_GR:: %s :Global unknown ERROR",
+ "%s [BGP_GR]Global unknown ERROR",
__func__);
return BGP_ERR_GR_OPERATION_FAILED;
}
bgp->global_gr_present_state = global_new_state;
- /* debug Trace msg */
return BGP_GR_SUCCESS;
}
-int bgp_gr_update_all(struct bgp *bgp, int global_GR_Cmd)
+int bgp_gr_update_all(struct bgp *bgp, int global_gr_cmd)
{
enum global_mode global_new_state = GLOBAL_INVALID;
enum global_mode global_old_state = GLOBAL_INVALID;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR::%s:START: global_GR_Cmd :%d:",
- __func__, global_GR_Cmd);
+ "%s [BGP_GR]START: global_gr_cmd :%s:",
+ __func__, print_global_gr_cmd(global_gr_cmd));
global_old_state = bgp_global_gr_mode_get(bgp);
- if (global_old_state != GLOBAL_INVALID) {
+ if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
+ zlog_debug(
+ "[BGP_GR] global_old_gr_state :%s:",
+ print_global_gr_mode(global_old_state));
+ if (global_old_state != GLOBAL_INVALID) {
global_new_state =
- bgp->GLOBAL_GR_FSM[global_old_state][global_GR_Cmd];
+ bgp->GLOBAL_GR_FSM[global_old_state][global_gr_cmd];
+
+ if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
+ zlog_debug(
+ "[BGP_GR] global_new_gr_state :%s:",
+ print_global_gr_mode(global_new_state));
} else {
- /* Trace msg */
- zlog_debug("BGP_GR::%s:global_old_state == GLOBAL_INVALID",
+ zlog_err(
+ "%s [BGP_GR] global_old_state == GLOBAL_INVALID",
__func__);
return BGP_ERR_GR_OPERATION_FAILED;
}
if (global_new_state == GLOBAL_INVALID) {
- /* Trace msg */
- zlog_debug(
- "BGP_GR::%s: global_new_state == GLOBAL_INVALID",
+ zlog_err(
+ "%s [BGP_GR] global_new_state == GLOBAL_INVALID",
__func__);
return BGP_ERR_GR_INVALID_CMD;
}
if (global_new_state == global_old_state) {
/* Trace msg */
- zlog_debug(
- "BGP_GR::%s : global_new_state == global_old_state",
- __func__);
+ if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
+ zlog_debug(
+ "%s [BGP_GR] global_new_state == global_old_state :%s",
+ __func__, print_global_gr_mode(global_new_state));
return BGP_GR_NO_OPERATION;
}
global_old_state);
}
+const char *print_peer_gr_mode(enum peer_mode pr_mode)
+{
+ const char *peer_gr_mode = NULL;
+
+ switch (pr_mode) {
+ case PEER_HELPER:
+ peer_gr_mode = "PEER_HELPER";
+ break;
+ case PEER_GR:
+ peer_gr_mode = "PEER_GR";
+ break;
+ case PEER_DISABLE:
+ peer_gr_mode = "PEER_DISABLE";
+ break;
+ case PEER_INVALID:
+ peer_gr_mode = "PEER_INVALID";
+ break;
+ case PEER_GLOBAL_INHERIT:
+ peer_gr_mode = "PEER_GLOBAL_INHERIT";
+ break;
+ }
+
+ return peer_gr_mode;
+}
+
+const char *print_peer_gr_cmd(enum peer_gr_command pr_gr_cmd)
+{
+ const char *peer_gr_cmd = NULL;
+
+ switch (pr_gr_cmd) {
+ case PEER_GR_CMD:
+ peer_gr_cmd = "PEER_GR_CMD";
+ break;
+ case NO_PEER_GR_CMD:
+ peer_gr_cmd = "NO_PEER_GR_CMD";
+ break;
+ case PEER_DISABLE_CMD:
+ peer_gr_cmd = "PEER_GR_CMD";
+ break;
+ case NO_PEER_DISABLE_CMD:
+ peer_gr_cmd = "NO_PEER_GR_CMD";
+ break;
+ case PEER_HELPER_CMD:
+ peer_gr_cmd = "PEER_HELPER_CMD";
+ break;
+ case NO_PEER_HELPER_CMD:
+ peer_gr_cmd = "NO_PEER_HELPER_CMD";
+ break;
+ }
+
+ return peer_gr_cmd;
+}
+
+const char *print_global_gr_mode(enum global_mode gl_mode)
+{
+ const char *global_gr_mode = NULL;
+
+ switch (gl_mode) {
+ case GLOBAL_HELPER:
+ global_gr_mode = "GLOBAL_HELPER";
+ break;
+ case GLOBAL_GR:
+ global_gr_mode = "GLOBAL_GR";
+ break;
+ case GLOBAL_DISABLE:
+ global_gr_mode = "GLOBAL_DISABLE";
+ break;
+ case GLOBAL_INVALID:
+ global_gr_mode = "GLOBAL_INVALID";
+ break;
+ }
+
+ return global_gr_mode;
+}
+
+const char *print_global_gr_cmd(enum global_gr_command gl_gr_cmd)
+{
+ const char *global_gr_cmd = NULL;
+
+ switch (gl_gr_cmd) {
+ case GLOBAL_GR_CMD:
+ global_gr_cmd = "GLOBAL_GR_CMD";
+ break;
+ case NO_GLOBAL_GR_CMD:
+ global_gr_cmd = "NO_GLOBAL_GR_CMD";
+ break;
+ case GLOBAL_DISABLE_CMD:
+ global_gr_cmd = "GLOBAL_DISABLE_CMD";
+ break;
+ case NO_GLOBAL_DISABLE_CMD:
+ global_gr_cmd = "NO_GLOBAL_DISABLE_CMD";
+ break;
+ }
+
+ return global_gr_cmd;
+}
+
enum global_mode bgp_global_gr_mode_get(struct bgp *bgp)
{
return bgp->global_gr_present_state;
}
int bgp_neighbor_graceful_restart(struct peer *peer,
- int peer_GR_Cmd)
+ int peer_gr_cmd)
{
enum peer_mode peer_new_state = PEER_INVALID;
enum peer_mode peer_old_state = PEER_INVALID;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: %s:START--->Peer: (%s) : peer_GR_Cmd :%d:",
- __func__, peer->host, peer_GR_Cmd);
+ "%s [BGP_GR] START:Peer: (%s) : peer_gr_cmd :%s:",
+ __func__, peer->host, print_peer_gr_cmd(peer_gr_cmd));
peer_old_state = bgp_peer_gr_mode_get(peer);
if (peer_old_state == PEER_INVALID) {
- /* debug Trace msg */
zlog_debug(
- "BGP_GR:: peer_old_state ==Invalid state !");
+ "[BGP_GR] peer_old_state == Invalid state !");
return BGP_ERR_GR_OPERATION_FAILED;
}
- peer_state = peer->PEER_GR_FSM[peer_old_state][peer_GR_Cmd];
+ peer_state = peer->PEER_GR_FSM[peer_old_state][peer_gr_cmd];
peer_new_state = peer_state.next_state;
if (peer_new_state == PEER_INVALID) {
- /* debug Trace msg */
zlog_debug(
- "BGP_GR:: Invalid bgp graceful restart command used !");
+ "[BGP_GR] Invalid bgp graceful restart command used !");
return BGP_ERR_GR_INVALID_CMD;
}
peer_old_state,
peer_new_state);
} else {
- /* debug Trace msg */
- zlog_debug(
- "BGP_GR:: peer_old_state == peer_new_state !");
+ if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
+ zlog_debug(
+ "[BGP_GR] peer_old_state == peer_new_state !");
return BGP_GR_NO_OPERATION;
}
/* Update the mode i.e peer_new_state into the peer structure */
peer->peer_gr_present_state = peer_new_state;
- /* debug Trace msg */
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: Succesfully change the state of the peer to : %d : !",
- peer_new_state);
+ zlog_debug("[BGP_GR] Succesfully change the state of the peer to : %s : !",
+ print_peer_gr_mode(peer_new_state));
return BGP_GR_SUCCESS;
}
{
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: %s : Move peer from old_peer_state :%d: to old_peer_state :%d: !!!!",
- __func__, old_peer_state, new_peer_state);
+ "%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;
unsigned int ret = BGP_GR_FAILURE;
if (old_peer_state == new_peer_state) {
/* Nothing to do over here as the present and old state is the same */
- /* debug Trace msg */
return BGP_GR_NO_OPERATION;
}
if ((old_peer_state == PEER_INVALID) ||
*of the existing session
*as the peer is already working in the same mode.
*/
- /* debug Trace msg */
ret = BGP_GR_SUCCESS;
} else {
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: Peer state changed from :%d =>",
- old_peer_state);
+ "[BGP_GR] Peer state changed from :%s ",
+ print_peer_gr_mode(old_peer_state));
bgp_peer_move_to_gr_mode(peer, new_peer_state);
*/
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: Peer state changed from :%d ==>",
- old_peer_state);
+ zlog_debug("[BGP_GR] Peer state changed from :%s",
+ print_peer_gr_mode(old_peer_state));
bgp_peer_move_to_gr_mode(peer, bgp_gr_global_mode);
*( old_peer_state != Peer_Global )
*/
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: Peer state changed from :%d ===>",
- old_peer_state);
+ zlog_debug("[BGP_GR] Peer state changed from :%s",
+ print_peer_gr_mode(old_peer_state));
bgp_peer_move_to_gr_mode(peer, new_peer_state);
int bgp_global_gr_mode = bgp_global_gr_mode_get(peer->bgp);
switch (new_state) {
-
case PEER_HELPER:
BGP_PEER_GR_HELPER_ENABLE(peer);
break;
-
case PEER_GR:
BGP_PEER_GR_ENABLE(peer);
break;
-
case PEER_DISABLE:
BGP_PEER_GR_DISABLE(peer);
break;
-
case PEER_GLOBAL_INHERIT:
BGP_PEER_GR_GLOBAL_INHERIT_SET(peer);
} else if (bgp_global_gr_mode == GLOBAL_DISABLE) {
BGP_PEER_GR_DISABLE(peer);
} else {
- zlog_debug(
- "BGP_GR:: Default switch inherit mode ::: SOMETHING IS WRONG !!!");
+ zlog_err(
+ "[BGP_GR] Default switch inherit mode ::: SOMETHING IS WRONG !!!");
}
break;
default:
- zlog_debug("BGP_GR:: Default switch mode ::: SOMETHING IS WRONG !!!");
+ zlog_err("[BGP_GR] Default switch mode ::: SOMETHING IS WRONG !!!");
break;
}
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: Peer state changed --to--> : %d : !",
+ zlog_debug("[BGP_GR] Peer state changed --to--> : %d : !",
new_state);
}
{
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: %s called !",
+ "%s [BGP_GR] called !",
__func__);
if (CHECK_FLAG(peer->peer_gr_new_status_flag,
PEER_GRACEFUL_RESTART_NEW_STATE_HELPER))
PEER_FLAG_GRACEFUL_RESTART_HELPER);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: Peer %s Flag PEER_FLAG_GRACEFUL_RESTART_HELPER : %s : !",
+ "[BGP_GR] Peer %s Flag PEER_FLAG_GRACEFUL_RESTART_HELPER : %s : !",
peer->host,
(CHECK_FLAG(peer->flags,
PEER_FLAG_GRACEFUL_RESTART_HELPER) ?
PEER_FLAG_GRACEFUL_RESTART);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: Peer %s Flag PEER_FLAG_GRACEFUL_RESTART : %s : !",
+ "[BGP_GR] Peer %s Flag PEER_FLAG_GRACEFUL_RESTART : %s : !",
peer->host,
(CHECK_FLAG(peer->flags,
PEER_FLAG_GRACEFUL_RESTART) ?
PEER_FLAG_GRACEFUL_RESTART_GLOBAL_INHERIT);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: Peer %s Flag PEER_FLAG_GRACEFUL_RESTART_GLOBAL_INHERIT : %s : !",
+ "[BGP_GR] Peer %s Flag PEER_FLAG_GRACEFUL_RESTART_GLOBAL_INHERIT : %s : !",
peer->host,
(CHECK_FLAG(peer->flags,
PEER_FLAG_GRACEFUL_RESTART_GLOBAL_INHERIT) ?
!CHECK_FLAG(peer->flags,
PEER_FLAG_GRACEFUL_RESTART_HELPER)){
zlog_debug(
- "BGP_GR:: Peer %s UNSET PEER_STATUS_NSF_MODE!",
+ "[BGP_GR] Peer %s UNSET PEER_STATUS_NSF_MODE!",
peer->host);
UNSET_FLAG(peer->sflags, PEER_STATUS_NSF_MODE);
peer_nsf_stop(peer);
zlog_debug(
- "BGP_GR:: Peer %s UNSET PEER_STATUS_NSF_WAIT!",
+ "[BGP_GR] Peer %s UNSET PEER_STATUS_NSF_WAIT!",
peer->host);
}
}
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_gr_update_all(struct bgp *bgp, int global_gr_cmd);
int bgp_neighbor_graceful_restart(struct peer *peer,
- int peer_GR_Cmd);
+ int peer_gr_cmd);
unsigned int bgp_peer_gr_action(struct peer *peer,
int old_peer_state, int new_peer_state);
void bgp_peer_move_to_gr_mode(struct peer *peer, int new_state);
enum global_mode global_new_state,
enum global_mode global_old_state);
void bgp_peer_gr_flags_update(struct peer *peer);
+const char *print_peer_gr_mode(enum peer_mode pr_mode);
+const char *print_peer_gr_cmd(enum peer_gr_command pr_gr_cmd);
+const char *print_global_gr_mode(enum global_mode gl_mode);
+const char *print_global_gr_cmd(enum global_gr_command gl_gr_cmd);
#endif /* _QUAGGA_BGP_FSM_H */
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: Sending helper Capability for Peer :%s :",
+ "[BGP_GR] Sending helper Capability for Peer :%s :",
peer->host);
SET_FLAG(peer->cap, PEER_CAP_RESTART_ADV);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: Sending R-Bit for Peer :%s :",
+ "[BGP_GR] Sending R-Bit for Peer :%s :",
peer->host);
}
if (BGP_DEBUG(graceful_restart,
GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: Sending GR Capability for AFI :%d :, SAFI :%d:",
+ "[BGP_GR] Sending GR Capability for AFI :%d :, SAFI :%d:",
afi, safi);
/* Convert AFI, SAFI to values for
data[i]);
strlcat(bgp_notify.data, c,
- bgp_notify.length * 3);
+ bgp_notify.length);
} else {
first = 1;
snprintf(c, sizeof(c), "%02x", data[i]);
strlcpy(bgp_notify.data, c,
- bgp_notify.length * 3);
+ bgp_notify.length);
}
}
/* If the flag BGP_NODE_SELECT_DEFER is set and new path is added
* then the route selection is deferred
*/
- if (CHECK_FLAG(rn->flags, BGP_NODE_SELECT_DEFER) && (delete == false))
+ if (CHECK_FLAG(rn->flags, BGP_NODE_SELECT_DEFER) && (!delete))
return 0;
if (CHECK_FLAG(rn->flags, BGP_NODE_PROCESS_SCHEDULED)) {
/* Set the flag BGP_NODE_SELECT_DEFER if route selection deferral timer
* is active
*/
- if (set_flag) {
+ if (set_flag && table) {
if (bgp && (bgp->gr_info[afi][safi].t_select_deferral)) {
SET_FLAG(rn->flags, BGP_NODE_SELECT_DEFER);
prefix2str(&rn->p, buf, PREFIX2STR_BUFFER);
*/
if (CHECK_FLAG(rn->flags, BGP_NODE_SELECT_DEFER)) {
if (BGP_DEBUG(update, UPDATE_OUT))
- zlog_debug("DEFER set for route %p", rn);
+ zlog_debug("SELECT_DEFER falg set for route %p", rn);
return;
}
bgp = table->bgp;
afi = table->afi;
safi = table->safi;
- }
+ } else
+ return;
+
rn = bgp_node_to_rnode(node);
if (bgp && rn && rn->lock == 1) {
(struct bgp *bgp, struct vty *vty),
(bgp, vty))
-#define GR_NO_OPER "The Graceful Restart No Operation was executed as cmd same as previous one"
+#define GR_NO_OPER "The Graceful Restart No Operation was executed as cmd same as previous one."
#define GR_INVALID "The Graceful Restart command used is not valid at this moment."
static struct peer_group *listen_range_exists(struct bgp *bgp,
struct prefix *range, int exact);
if (CHECK_FLAG(peer->flags,
PEER_FLAG_GRACEFUL_RESTART))
- gr_router_detected = TRUE;
+ gr_router_detected = true;
ret = bgp_peer_clear(peer, afi, safi, nnode, stype);
if (CHECK_FLAG(peer->flags,
PEER_FLAG_GRACEFUL_RESTART))
- gr_router_detected = TRUE;
+ gr_router_detected = true;
ret = bgp_peer_clear(peer, afi, safi, nnode, stype);
/* "bgp graceful-restart mode" configuration. */
DEFUN (bgp_graceful_restart,
- bgp_graceful_restart_cmd,
- "bgp graceful-restart",
- "BGP specific commands\n"
- GR_CMD
+ bgp_graceful_restart_cmd,
+ "bgp graceful-restart",
+ "BGP specific commands\n"
+ GR_CMD
)
{
int ret = BGP_GR_FAILURE;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: bgp_graceful_restart_cmd : START ");
+ zlog_debug("[BGP_GR] bgp_graceful_restart_cmd : START ");
VTY_DECLVAR_CONTEXT(bgp, bgp);
bgp->peer, ret);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: bgp_graceful_restart_cmd : END ");
+ zlog_debug("[BGP_GR] bgp_graceful_restart_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset all peers to take effect\n");
return bgp_vty_return(vty, ret);
}
DEFUN (no_bgp_graceful_restart,
- no_bgp_graceful_restart_cmd,
- "no bgp graceful-restart",
- NO_STR
- "BGP specific commands\n"
- NO_GR_CMD
+ no_bgp_graceful_restart_cmd,
+ "no bgp graceful-restart",
+ NO_STR
+ "BGP specific commands\n"
+ NO_GR_CMD
)
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: no_bgp_graceful_restart_cmd : START ");
+ zlog_debug("[BGP_GR] no_bgp_graceful_restart_cmd : START ");
int ret = BGP_GR_FAILURE;
bgp->peer, ret);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: no_bgp_graceful_restart_cmd : END ");
+ zlog_debug("[BGP_GR] no_bgp_graceful_restart_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset all peers to take effect\n");
}
DEFUN (bgp_graceful_restart_stalepath_time,
- bgp_graceful_restart_stalepath_time_cmd,
- "bgp graceful-restart stalepath-time (1-4095)",
- "BGP specific commands\n"
- "Graceful restart capability parameters\n"
- "Set the max time to hold onto restarting peer's stale paths\n"
- "Delay value (seconds)\n")
+ bgp_graceful_restart_stalepath_time_cmd,
+ "bgp graceful-restart stalepath-time (1-4095)",
+ "BGP specific commands\n"
+ "Graceful restart capability parameters\n"
+ "Set the max time to hold onto restarting peer's stale paths\n"
+ "Delay value (seconds)\n")
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
int idx_number = 3;
}
DEFUN (bgp_graceful_restart_restart_time,
- bgp_graceful_restart_restart_time_cmd,
- "bgp graceful-restart restart-time (1-4095)",
- "BGP specific commands\n"
- "Graceful restart capability parameters\n"
- "Set the time to wait to delete stale routes before a BGP open message is received\n"
- "Delay value (seconds)\n")
+ bgp_graceful_restart_restart_time_cmd,
+ "bgp graceful-restart restart-time (1-4095)",
+ "BGP specific commands\n"
+ "Graceful restart capability parameters\n"
+ "Set the time to wait to delete stale routes before a BGP open message is received\n"
+ "Delay value (seconds)\n")
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
int idx_number = 3;
}
DEFUN (no_bgp_graceful_restart_stalepath_time,
- no_bgp_graceful_restart_stalepath_time_cmd,
- "no bgp graceful-restart stalepath-time [(1-4095)]",
- NO_STR
- "BGP specific commands\n"
- "Graceful restart capability parameters\n"
- "Set the max time to hold onto restarting peer's stale paths\n"
- "Delay value (seconds)\n")
+ no_bgp_graceful_restart_stalepath_time_cmd,
+ "no bgp graceful-restart stalepath-time [(1-4095)]",
+ NO_STR
+ "BGP specific commands\n"
+ "Graceful restart capability parameters\n"
+ "Set the max time to hold onto restarting peer's stale paths\n"
+ "Delay value (seconds)\n")
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
}
DEFUN (no_bgp_graceful_restart_restart_time,
- no_bgp_graceful_restart_restart_time_cmd,
- "no bgp graceful-restart restart-time [(1-4095)]",
- NO_STR
- "BGP specific commands\n"
- "Graceful restart capability parameters\n"
- "Set the time to wait to delete stale routes before a BGP open message is received\n"
- "Delay value (seconds)\n")
+ no_bgp_graceful_restart_restart_time_cmd,
+ "no bgp graceful-restart restart-time [(1-4095)]",
+ NO_STR
+ "BGP specific commands\n"
+ "Graceful restart capability parameters\n"
+ "Set the time to wait to delete stale routes before a BGP open message is received\n"
+ "Delay value (seconds)\n")
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
}
DEFUN (bgp_graceful_restart_preserve_fw,
- bgp_graceful_restart_preserve_fw_cmd,
- "bgp graceful-restart preserve-fw-state",
- "BGP specific commands\n"
- "Graceful restart capability parameters\n"
- "Sets F-bit indication that fib is preserved while doing Graceful Restart\n")
+ bgp_graceful_restart_preserve_fw_cmd,
+ "bgp graceful-restart preserve-fw-state",
+ "BGP specific commands\n"
+ "Graceful restart capability parameters\n"
+ "Sets F-bit indication that fib is preserved while doing Graceful Restart\n")
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
bgp_flag_set(bgp, BGP_FLAG_GR_PRESERVE_FWD);
}
DEFUN (no_bgp_graceful_restart_preserve_fw,
- no_bgp_graceful_restart_preserve_fw_cmd,
- "no bgp graceful-restart preserve-fw-state",
- NO_STR
- "BGP specific commands\n"
- "Graceful restart capability parameters\n"
- "Unsets F-bit indication that fib is preserved while doing Graceful Restart\n")
+ no_bgp_graceful_restart_preserve_fw_cmd,
+ "no bgp graceful-restart preserve-fw-state",
+ NO_STR
+ "BGP specific commands\n"
+ "Graceful restart capability parameters\n"
+ "Unsets F-bit indication that fib is preserved while doing Graceful Restart\n")
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
bgp_flag_unset(bgp, BGP_FLAG_GR_PRESERVE_FWD);
}
DEFUN (bgp_graceful_restart_disable,
- bgp_graceful_restart_disable_cmd,
- "bgp graceful-restart-disable",
- "BGP specific commands\n"
- GR_DISABLE)
+ bgp_graceful_restart_disable_cmd,
+ "bgp graceful-restart-disable",
+ "BGP specific commands\n"
+ GR_DISABLE)
{
int ret = BGP_GR_FAILURE;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: bgp_graceful_restart_disable_cmd : START ");
+ "[BGP_GR] bgp_graceful_restart_disable_cmd : START ");
VTY_DECLVAR_CONTEXT(bgp, bgp);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: bgp_graceful_restart_disable_cmd : END ");
+ "[BGP_GR] bgp_graceful_restart_disable_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset all peers to take effect\n");
}
DEFUN (no_bgp_graceful_restart_disable,
- no_bgp_graceful_restart_disable_cmd,
- "no bgp graceful-restart-disable",
- NO_STR
- "BGP specific commands\n"
- NO_GR_DISABLE
+ no_bgp_graceful_restart_disable_cmd,
+ "no bgp graceful-restart-disable",
+ NO_STR
+ "BGP specific commands\n"
+ NO_GR_DISABLE
)
{
VTY_DECLVAR_CONTEXT(bgp, bgp);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_graceful_restart_disable_cmd : START ");
+ "[BGP_GR] no_bgp_graceful_restart_disable_cmd : START ");
int ret = BGP_GR_FAILURE;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_graceful_restart_disable_cmd : END ");
+ "[BGP_GR] no_bgp_graceful_restart_disable_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset all peers to take effect\n");
}
DEFUN (bgp_neighbor_graceful_restart_set,
- bgp_neighbor_graceful_restart_set_cmd,
- "neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart",
- NEIGHBOR_STR
- NEIGHBOR_ADDR_STR2
- GR_NEIGHBOR_CMD
+ bgp_neighbor_graceful_restart_set_cmd,
+ "neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart",
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ GR_NEIGHBOR_CMD
)
{
int idx_peer = 1;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: bgp_neighbor_graceful_restart_set_cmd : START ");
+ "[BGP_GR] bgp_neighbor_graceful_restart_set_cmd : START ");
peer = peer_and_group_lookup_vty(vty, argv[idx_peer]->arg);
if (!peer)
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: bgp_neighbor_graceful_restart_set_cmd : END ");
+ "[BGP_GR] bgp_neighbor_graceful_restart_set_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset this peer to take effect\n");
}
DEFUN (no_bgp_neighbor_graceful_restart,
- no_bgp_neighbor_graceful_restart_set_cmd,
- "no neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart",
- NO_STR
- NEIGHBOR_STR
- NEIGHBOR_ADDR_STR2
- NO_GR_NEIGHBOR_CMD
+ no_bgp_neighbor_graceful_restart_set_cmd,
+ "no neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ NO_GR_NEIGHBOR_CMD
)
{
int idx_peer = 2;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_neighbor_graceful_restart_set_cmd : START ");
+ "[BGP_GR] no_bgp_neighbor_graceful_restart_set_cmd : START ");
ret = bgp_neighbor_graceful_restart(peer, NO_PEER_GR_CMD);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_neighbor_graceful_restart_set_cmd : END ");
+ "[BGP_GR] no_bgp_neighbor_graceful_restart_set_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset this peer to take effect\n");
}
DEFUN (bgp_neighbor_graceful_restart_helper_set,
- bgp_neighbor_graceful_restart_helper_set_cmd,
- "neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-helper",
- NEIGHBOR_STR
- NEIGHBOR_ADDR_STR2
- GR_NEIGHBOR_HELPER_CMD
+ bgp_neighbor_graceful_restart_helper_set_cmd,
+ "neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-helper",
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ GR_NEIGHBOR_HELPER_CMD
)
{
int idx_peer = 1;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: bgp_neighbor_graceful_restart_helper_set_cmd : START ");
+ "[BGP_GR] bgp_neighbor_graceful_restart_helper_set_cmd : START ");
peer = peer_and_group_lookup_vty(vty, argv[idx_peer]->arg);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: bgp_neighbor_graceful_restart_helper_set_cmd : END ");
+ "[BGP_GR] bgp_neighbor_graceful_restart_helper_set_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset this peer to take effect\n");
}
DEFUN (no_bgp_neighbor_graceful_restart_helper,
- no_bgp_neighbor_graceful_restart_helper_set_cmd,
- "no neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-helper",
- NO_STR
- NEIGHBOR_STR
- NEIGHBOR_ADDR_STR2
- NO_GR_NEIGHBOR_HELPER_CMD
+ no_bgp_neighbor_graceful_restart_helper_set_cmd,
+ "no neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-helper",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ NO_GR_NEIGHBOR_HELPER_CMD
)
{
int idx_peer = 2;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_neighbor_graceful_restart_helper_set_cmd : START ");
+ "[BGP_GR] no_bgp_neighbor_graceful_restart_helper_set_cmd : START ");
ret = bgp_neighbor_graceful_restart(peer,
NO_PEER_HELPER_CMD);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_neighbor_graceful_restart_helper_set_cmd : END ");
+ "[BGP_GR] no_bgp_neighbor_graceful_restart_helper_set_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset this peer to take effect\n");
}
DEFUN (bgp_neighbor_graceful_restart_disable_set,
- bgp_neighbor_graceful_restart_disable_set_cmd,
- "neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-disable",
- NEIGHBOR_STR
- NEIGHBOR_ADDR_STR2
- GR_NEIGHBOR_DISABLE_CMD
+ bgp_neighbor_graceful_restart_disable_set_cmd,
+ "neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-disable",
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ GR_NEIGHBOR_DISABLE_CMD
)
{
int idx_peer = 1;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: bgp_neighbor_graceful_restart_disable_set_cmd : START ");
+ "[BGP_GR] bgp_neighbor_graceful_restart_disable_set_cmd : START ");
peer = peer_and_group_lookup_vty(vty, argv[idx_peer]->arg);
if (!peer)
return CMD_WARNING_CONFIG_FAILED;
ret = bgp_neighbor_graceful_restart(peer,
- PEER_DISABLE_cmd);
+ PEER_DISABLE_CMD);
if (peer->bgp->t_startup)
bgp_peer_gr_flags_update(peer);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR::bgp_neighbor_graceful_restart_disable_set_cmd : END ");
+ "[BGP_GR]bgp_neighbor_graceful_restart_disable_set_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset this peer to take effect\n");
}
DEFUN (no_bgp_neighbor_graceful_restart_disable,
- no_bgp_neighbor_graceful_restart_disable_set_cmd,
- "no neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-disable",
- NO_STR
- NEIGHBOR_STR
- NEIGHBOR_ADDR_STR2
- NO_GR_NEIGHBOR_DISABLE_CMD
+ no_bgp_neighbor_graceful_restart_disable_set_cmd,
+ "no neighbor <A.B.C.D|X:X::X:X|WORD> graceful-restart-disable",
+ NO_STR
+ NEIGHBOR_STR
+ NEIGHBOR_ADDR_STR2
+ NO_GR_NEIGHBOR_DISABLE_CMD
)
{
int idx_peer = 2;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_neighbor_graceful_restart_disable_set_cmd : START ");
+ "[BGP_GR] no_bgp_neighbor_graceful_restart_disable_set_cmd : START ");
ret = bgp_neighbor_graceful_restart(peer, NO_PEER_DISABLE_CMD);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
- "BGP_GR:: no_bgp_neighbor_graceful_restart_disable_set_cmd : END ");
+ "[BGP_GR] no_bgp_neighbor_graceful_restart_disable_set_cmd : END ");
vty_out(vty,
"Graceful restart configuration changed, reset this peer to take effect\n");
if ((peer->nsf_af_count == 0) &&
!CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) {
- /*Gr disabled case*/
mode = "Disable";
} else if (peer->nsf_af_count == 0 &&
CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) {
- /* Helper */
mode = "Helper";
} else if (peer->nsf_af_count != 0 &&
CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) {
- /* Restart */
mode = "Restart";
}
mode = "Restart";
else if (bgp_peer_gr_mode_get(p) == PEER_DISABLE)
mode = "Disable";
- else if (bgp_peer_gr_mode_get(p) == PEER_GLOBAL_INHERIT)
+ else if (bgp_peer_gr_mode_get(p) == PEER_GLOBAL_INHERIT) {
if (bgp_global_gr_mode_get(p->bgp) == GLOBAL_HELPER)
mode = "Helper*";
else if (bgp_global_gr_mode_get(p->bgp) == GLOBAL_GR)
mode = "Disable*";
else
mode = "Invalid*";
- else
- mode = "Invalid";
+ }
if (use_json) {
json_object_string_add(json,
struct vty *vty, struct peer *peer,
bool use_json, json_object *json)
{
- afi_t afi = AFI_MAX;
- safi_t safi = SAFI_MAX;
+ afi_t afi;
+ safi_t safi;
json_object *json_afi_safi = NULL;
json_object *json_timer = NULL;
json_object *json_endofrib_status = NULL;
p->bgp->restart_time);
json_object_int_add(json_timer,
- "recivedRestartTimer",
+ "receivedRestartTimer",
p->v_gr_restart);
if (p->t_gr_restart != NULL) {
char dn_flag[2] = {0};
char neighborAddr[INET6_ADDRSTRLEN] = {0};
- memset(dn_flag, '\0', sizeof(dn_flag));
if (!p->conf_if && peer_dynamic_neighbor(p))
dn_flag[0] = '*';
if (use_json)
json_neighbor = json_object_new_object();
- if (show_all == type) {
+ if (type == show_all) {
bgp_show_peer_gr_status(vty, peer, use_json,
json_neighbor);
json_object_object_add(json,
peer->host, json_neighbor);
- } else if (show_peer == type) {
+ } else if (type == show_peer) {
if (conf_if) {
if ((peer->conf_if
&& !strcmp(peer->conf_if, conf_if))
enum show_type sh_type;
int idx = 0;
afi_t afi = AFI_MAX;
-
bool uj = use_json(argc, argv);
if (!argv_find_and_parse_afi(argv, argc, &idx, &afi))
case GLOBAL_HELPER:
vty_out(vty,
- "Global Bgp GR Mode : Helper\n");
+ "Global BGP GR Mode : Helper\n");
break;
case GLOBAL_GR:
vty_out(vty,
- "Global Bgp GR Mode : Restart\n");
+ "Global BGP GR Mode : Restart\n");
break;
case GLOBAL_DISABLE:
vty_out(vty,
- "Global Bgp GR Mode : Disable\n");
+ "Global BGP GR Mode : Disable\n");
break;
case GLOBAL_INVALID:
default:
vty_out(vty,
- "Global Bgp GR Mode Invalid\n");
+ "Global BGP GR Mode Invalid\n");
break;
}
vty_out(vty, "\n");
if (zclient_capabilities_send(ZEBRA_CLIENT_CAPABILITIES,
zclient, &api) < 0) {
- if (BGP_DEBUG(zebra, ZEBRA))
- zlog_debug("error sending capability");
+ zlog_err("error sending capability");
ret = BGP_GR_FAILURE;
} else {
if (disable)
*/
int bgp_zebra_update(afi_t afi, safi_t safi, vrf_id_t vrf_id, int type)
{
- struct zapi_cap api;
+ struct zapi_cap api = {0};
if (zclient == NULL) {
if (BGP_DEBUG(zebra, ZEBRA))
- zlog_debug("zclient invalid");
+ zlog_debug("zclient == NULL, invalid");
return BGP_GR_FAILURE;
}
return BGP_GR_FAILURE;
}
- memset(&api, 0, sizeof(struct zapi_cap));
api.afi = afi;
api.safi = safi;
api.vrf_id = vrf_id;
return zclient_send_message(zclient);
}
-
-
-
/* Send RIB stale timer update */
int bgp_zebra_stale_timer_update(struct bgp *bgp)
{
struct bgp_pbr_rule;
struct bgp_pbr_match_entry;
-
extern void bgp_send_pbr_rule_action(struct bgp_pbr_action *pbra,
struct bgp_pbr_rule *pbr,
bool install);
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug("%s called ..", __func__);
- int local_GLOBAL_GR_FSM[GLOBAL_MODE][EVENT_CMD] = {
+ int local_GLOBAL_GR_FSM[BGP_GLOBAL_GR_MODE][BGP_GLOBAL_GR_EVENT_CMD] = {
/* GLOBAL_HELPER Mode */
{
/*Event -> */
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug("%s called ..", __func__);
- struct bgp_peer_gr local_Peer_GR_FSM[PEER_MODE][PEER_EVENT_CMD] = {
+ struct bgp_peer_gr local_Peer_GR_FSM[BGP_PEER_GR_MODE]
+ [BGP_PEER_GR_EVENT_CMD] = {
{
/* PEER_HELPER Mode */
/* Event-> */ /* PEER_GR_CMD */ /* NO_PEER_GR_CMD */
{ PEER_GR, bgp_peer_gr_action }, {PEER_INVALID, NULL },
- /* Event-> */ /* PEER_DISABLE_cmd */ /* NO_PEER_DISABLE_CMD */
+ /* Event-> */ /* PEER_DISABLE_CMD */ /* NO_PEER_DISABLE_CMD */
{PEER_DISABLE, bgp_peer_gr_action }, {PEER_INVALID, NULL },
/* Event-> */ /* PEER_HELPER_cmd */ /* NO_PEER_HELPER_CMD */
{ PEER_INVALID, NULL }, {PEER_GLOBAL_INHERIT,
/* Event-> */ /* PEER_GR_CMD */ /* NO_PEER_GR_CMD */
{ PEER_INVALID, NULL }, { PEER_GLOBAL_INHERIT,
bgp_peer_gr_action },
- /* Event-> */ /* PEER_DISABLE_cmd */ /* NO_PEER_DISABLE_CMD */
+ /* Event-> */ /* PEER_DISABLE_CMD */ /* NO_PEER_DISABLE_CMD */
{PEER_DISABLE, bgp_peer_gr_action }, { PEER_INVALID, NULL },
/* Event-> */ /* PEER_HELPER_cmd */ /* NO_PEER_HELPER_CMD */
{ PEER_HELPER, bgp_peer_gr_action }, { PEER_INVALID, NULL }
/* PEER_DISABLE Mode */
/* Event-> */ /* PEER_GR_CMD */ /* NO_PEER_GR_CMD */
{ PEER_GR, bgp_peer_gr_action }, { PEER_INVALID, NULL },
- /* Event-> */ /* PEER_DISABLE_cmd */ /* NO_PEER_DISABLE_CMD */
+ /* Event-> */ /* PEER_DISABLE_CMD */ /* NO_PEER_DISABLE_CMD */
{ PEER_INVALID, NULL }, { PEER_GLOBAL_INHERIT,
bgp_peer_gr_action },
/* Event-> */ /* PEER_HELPER_cmd */ /* NO_PEER_HELPER_CMD */
/* PEER_INVALID Mode */
/* Event-> */ /* PEER_GR_CMD */ /* NO_PEER_GR_CMD */
{ PEER_INVALID, NULL }, { PEER_INVALID, NULL },
- /* Event-> */ /* PEER_DISABLE_cmd */ /* NO_PEER_DISABLE_CMD */
+ /* Event-> */ /* PEER_DISABLE_CMD */ /* NO_PEER_DISABLE_CMD */
{ PEER_INVALID, NULL }, { PEER_INVALID, NULL },
/* Event-> */ /* PEER_HELPER_cmd */ /* NO_PEER_HELPER_CMD */
{ PEER_INVALID, NULL }, { PEER_INVALID, NULL },
/* PEER_GLOBAL_INHERIT Mode */
/* Event-> */ /* PEER_GR_CMD */ /* NO_PEER_GR_CMD */
{ PEER_GR, bgp_peer_gr_action }, { PEER_INVALID, NULL },
- /* Event-> */ /* PEER_DISABLE_cmd */ /* NO_PEER_DISABLE_CMD */
+ /* Event-> */ /* PEER_DISABLE_CMD */ /* NO_PEER_DISABLE_CMD */
{ PEER_DISABLE, bgp_peer_gr_action}, { PEER_INVALID, NULL },
/* Event-> */ /* PEER_HELPER_cmd */ /* NO_PEER_HELPER_CMD */
{ PEER_HELPER, bgp_peer_gr_action }, { PEER_INVALID, NULL }
bool gr_router_detected = false;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
- zlog_debug("BGP_GR:: %s called !",
+ zlog_debug("[BGP_GR] %s called !",
__func__);
for (ALL_LIST_ELEMENTS(bm->bgp, node, nnode, bgp)) {
if (gr_router_detected &&
bgp->present_zebra_gr_state == ZEBRA_GR_DISABLE) {
- bgp_zebra_send_capabilities(bgp, false);
+ bgp_zebra_send_capabilities(bgp, true);
} else if (!gr_router_detected &&
bgp->present_zebra_gr_state == ZEBRA_GR_ENABLE) {
- bgp_zebra_send_capabilities(bgp, true);
+ bgp_zebra_send_capabilities(bgp, false);
}
gr_router_detected = false;
/* BGP GR Global ds */
-#define GLOBAL_MODE 4
-#define EVENT_CMD 4
+#define BGP_GLOBAL_GR_MODE 4
+#define BGP_GLOBAL_GR_EVENT_CMD 4
/* Graceful restart selection deferral timer info */
struct graceful_restart_info {
#define BGP_FLAG_SELECT_DEFER_DISABLE (1 << 23)
#define BGP_FLAG_GR_DISABLE_EOR (1 << 24)
- enum global_mode GLOBAL_GR_FSM[GLOBAL_MODE][EVENT_CMD];
+ enum global_mode GLOBAL_GR_FSM[BGP_GLOBAL_GR_MODE]
+ [BGP_GLOBAL_GR_EVENT_CMD];
enum global_mode global_gr_present_state;
/* This variable stores the current Graceful Restart state of Zebra
#define BGP_VRF_RD_CFGD (1 << 3)
#define BGP_VRF_L3VNI_PREFIX_ROUTES_ONLY (1 << 4)
-#define BGP_SEND_EOR(bgp, afi, safi) \
- (!bgp_flag_check(bgp, BGP_FLAG_GR_DISABLE_EOR) && \
- ((bgp->gr_info[afi][safi].t_select_deferral == NULL) || \
- (bgp->gr_info[afi][safi].eor_required == \
- bgp->gr_info[afi][safi].eor_received)))
-
/* unique ID for auto derivation of RD for this vrf */
uint16_t vrf_rd_id;
};
/* BGP GR per peer ds */
-#define PEER_MODE 5
-#define PEER_EVENT_CMD 6
+#define BGP_PEER_GR_MODE 5
+#define BGP_PEER_GR_EVENT_CMD 6
enum peer_mode {
PEER_HELPER = 0,
enum peer_gr_command {
PEER_GR_CMD = 0,
NO_PEER_GR_CMD,
- PEER_DISABLE_cmd,
+ PEER_DISABLE_CMD,
NO_PEER_DISABLE_CMD,
PEER_HELPER_CMD,
NO_PEER_HELPER_CMD
*and PEER_FLAG_GRACEFUL_RESTART_GLOBAL_INHERIT
*/
- struct bgp_peer_gr PEER_GR_FSM[PEER_MODE][PEER_EVENT_CMD];
+ struct bgp_peer_gr PEER_GR_FSM[BGP_PEER_GR_MODE][BGP_PEER_GR_EVENT_CMD];
enum peer_mode peer_gr_present_state;
/* Non stop forwarding afi-safi count for BGP gr feature*/
uint8_t nsf_af_count;
If per peer mode is configured, the GR mode of this particular peer will
override the global mode.
-.. _bgp-GR-globla-mode-cmd:
+.. _bgp-GR-global-mode-cmd:
BGP GR Global Mode Commands
^^^^^^^^^^^^^^^^^^^^^^^^^^^
default:
break;
}
+
stream_failure:
return 0;
}