BGP: changing remote-as from external to external resets connection

Modify code to recognize that we are not actually reseting the
neighbor if the user actually enters a remote-as of external->external
for a neighbor.

Ticket: CM-8100
Reviewed-by: CCR-3783
Testing: See bug

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2015-11-11 08:52:51 -08:00
parent 219178b6ba
commit 9da3a1a191

View File

@ -1616,7 +1616,8 @@ peer_remote_as (struct bgp *bgp, union sockunion *su, const char *conf_if,
}
/* Existing peer's AS number change. */
if ((peer->as != *as) || (peer->as_type != as_type))
if (((peer->as_type == AS_SPECIFIED) && peer->as != *as) ||
(peer->as_type != as_type))
peer_as_change (peer, *as, as_type);
}
else
@ -2305,7 +2306,8 @@ peer_group_remote_as (struct bgp *bgp, const char *group_name,
for (ALL_LIST_ELEMENTS (group->peer, node, nnode, peer))
{
if ((peer->as != *as) || (peer->as_type != as_type))
if (((peer->as_type == AS_SPECIFIED) && peer->as != *as) ||
(peer->as_type != as_type))
peer_as_change (peer, *as, as_type);
}