Skip to content

Commit

Permalink
Merge pull request #15792 from opensourcerouting/fix/bgp_send_notific…
Browse files Browse the repository at this point in the history
…ation_with_data

bgpd: Include capabilities when sending NOTIFICATION(7)
  • Loading branch information
donaldsharp authored Apr 19, 2024
2 parents 8e7fb95 + 79cf651 commit 855fa82
Showing 1 changed file with 9 additions and 21 deletions.
30 changes: 9 additions & 21 deletions bgpd/bgp_open.c
Original file line number Diff line number Diff line change
Expand Up @@ -1452,23 +1452,17 @@ int bgp_open_option_parse(struct peer *peer, uint16_t length,
/* All OPEN option is parsed. Check capability when strict compare
flag is enabled.*/
if (CHECK_FLAG(peer->flags, PEER_FLAG_STRICT_CAP_MATCH)) {
/* If Unsupported Capability exists. */
if (error != error_data) {
/* If Unsupported Capability exists or local capability does
* not negotiated with remote peer
*/
if (error != error_data || !strict_capability_same(peer)) {
bgp_notify_send_with_data(peer->connection,
BGP_NOTIFY_OPEN_ERR,
BGP_NOTIFY_OPEN_UNSUP_CAPBL,
error_data,
error - error_data);
return -1;
}

/* Check local capability does not negotiated with remote
peer. */
if (!strict_capability_same(peer)) {
bgp_notify_send(peer->connection, BGP_NOTIFY_OPEN_ERR,
BGP_NOTIFY_OPEN_UNSUP_CAPBL);
return -1;
}
}

/* Extended Message Support */
Expand Down Expand Up @@ -1503,17 +1497,11 @@ int bgp_open_option_parse(struct peer *peer, uint16_t length,
"%s [Error] Configured AFI/SAFIs do not overlap with received MP capabilities",
peer->host);

if (error != error_data)
bgp_notify_send_with_data(peer->connection,
BGP_NOTIFY_OPEN_ERR,
BGP_NOTIFY_OPEN_UNSUP_CAPBL,
error_data,
error - error_data);
else
bgp_notify_send(peer->connection,
BGP_NOTIFY_OPEN_ERR,
BGP_NOTIFY_OPEN_UNSUP_CAPBL);
return -1;
bgp_notify_send_with_data(peer->connection,
BGP_NOTIFY_OPEN_ERR,
BGP_NOTIFY_OPEN_UNSUP_CAPBL,
error_data,
error - error_data);
}
}
return 0;
Expand Down

0 comments on commit 855fa82

Please sign in to comment.