iana_safi2str(pkt_safi));
break;
case CAPABILITY_CODE_RESTART:
- if (!CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART) &&
- !CHECK_FLAG(peer->flags, PEER_FLAG_GRACEFUL_RESTART_HELPER))
- return;
-
stream_putc(s, action);
stream_putc(s, CAPABILITY_CODE_RESTART);
cap_len = stream_get_endp(s);
action == CAPABILITY_ACTION_SET);
break;
case CAPABILITY_CODE_LLGR:
- if (!CHECK_FLAG(peer->cap, PEER_CAP_RESTART_ADV))
- return;
-
stream_putc(s, action);
stream_putc(s, CAPABILITY_CODE_LLGR);
cap_len = stream_get_endp(s);
GR_DISABLE)
{
int ret = BGP_GR_FAILURE;
+ struct listnode *node, *nnode;
+ struct peer *peer;
if (BGP_DEBUG(graceful_restart, GRACEFUL_RESTART))
zlog_debug(
vty_out(vty,
"Graceful restart configuration changed, reset all peers to take effect\n");
+ for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
+ bgp_capability_send(peer, AFI_IP, SAFI_UNICAST,
+ CAPABILITY_CODE_RESTART,
+ CAPABILITY_ACTION_UNSET);
+ bgp_capability_send(peer, AFI_IP, SAFI_UNICAST,
+ CAPABILITY_CODE_LLGR,
+ CAPABILITY_ACTION_UNSET);
+ }
+
return bgp_vty_return(vty, ret);
}