diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c index 8d996e16eb..b62a42a4f6 100644 --- a/bgpd/bgp_fsm.c +++ b/bgpd/bgp_fsm.c @@ -1378,6 +1378,9 @@ int bgp_stop(struct peer *peer) peer->fd = -1; } + /* Reset capabilities. */ + peer->cap = 0; + FOREACH_AFI_SAFI (afi, safi) { /* Reset all negotiated variables */ peer->afc_nego[afi][safi] = 0; diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 6c9ec0ebaa..6f9be93757 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -1449,7 +1449,6 @@ void peer_xfer_config(struct peer *peer_dst, struct peer *peer_src) /* peer flags apply */ peer_dst->flags = peer_src->flags; - peer_dst->cap = peer_src->cap; peer_dst->peer_gr_present_state = peer_src->peer_gr_present_state; peer_dst->peer_gr_new_status_flag = peer_src->peer_gr_new_status_flag;