diff options
author | Francois Dumontet <francois.dumontet@6wind.com> | 2024-01-22 11:53:36 +0100 |
---|---|---|
committer | Francois Dumontet <francois.dumontet@6wind.com> | 2024-02-02 11:31:47 +0100 |
commit | e146ea53ef5a8f33d9bdb2f79410682fe710e37c (patch) | |
tree | 2bd2dc807b81134d62b59a34607afdf38d69f83f /bgpd/bgpd.c | |
parent | Merge pull request #15206 from routingrocks/rajesh/pbr_map (diff) | |
download | frr-e146ea53ef5a8f33d9bdb2f79410682fe710e37c.tar.xz frr-e146ea53ef5a8f33d9bdb2f79410682fe710e37c.zip |
bgpd: add [no]neighbor capability fqdn command
cisco routers are not dealing fairly whith unsupported capabilities.
When a cisco router receive an unsupported capabilities it reset the
negociation without notifying the unmatching capability as described in
RFC2842.
Cisco suggest the use of
neighbor x.x.x.x capability fqdn
to avoid the use of fqdn in open message.
this new command is to remove the use of fqdn capability in the
open message with the peer "x.x.x.x".
Link: https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/116189-problemsolution-technology-00.pdf
Signed-off-by: Francois Dumontet <francois.dumontet@6wind.com>
Diffstat (limited to 'bgpd/bgpd.c')
-rw-r--r-- | bgpd/bgpd.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 90ac529f8..58514566e 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -1535,6 +1535,9 @@ struct peer *peer_new(struct bgp *bgp) if (CHECK_FLAG(bgp->flags, BGP_FLAG_ENFORCE_FIRST_AS)) SET_FLAG(peer->flags, PEER_FLAG_ENFORCE_FIRST_AS); + SET_FLAG(peer->flags_invert, PEER_FLAG_CAPABILITY_FQDN); + SET_FLAG(peer->flags, PEER_FLAG_CAPABILITY_FQDN); + /* Initialize per peer bgp GR FSM */ bgp_peer_gr_init(peer); @@ -4571,6 +4574,7 @@ static const struct peer_flag_action peer_flag_action_list[] = { {PEER_FLAG_AIGP, 0, peer_change_none}, {PEER_FLAG_GRACEFUL_SHUTDOWN, 0, peer_change_none}, {PEER_FLAG_CAPABILITY_SOFT_VERSION, 0, peer_change_none}, + {PEER_FLAG_CAPABILITY_FQDN, 0, peer_change_reset}, {0, 0, 0}}; static const struct peer_flag_action peer_af_flag_action_list[] = { |