diff options
author | Chris Hall <GMCH@hestia.halldom.com> | 2010-08-04 11:20:31 +0100 |
---|---|---|
committer | Chris Hall <GMCH@hestia.halldom.com> | 2010-08-04 11:20:31 +0100 |
commit | 11fe7d1d77cfd7b29ea14cc05b7fb2ea6ba13b74 (patch) | |
tree | 09b66e2a01eac2c3a8f610fed5bec9fbb062abfb /bgpd/bgp_open.c | |
parent | 4af8f7adc4fe05de92cb11912af029c623feb821 (diff) | |
download | quagga-11fe7d1d77cfd7b29ea14cc05b7fb2ea6ba13b74.tar.bz2 quagga-11fe7d1d77cfd7b29ea14cc05b7fb2ea6ba13b74.tar.xz |
Fix various capability flags so that sessions are restarted.
For some reason (unknown) changing the following did NOT restart any
active session:
neighbor dont-capability-negotiate
neighbor override-capability
neighbor strict-capability-match
since these can all change the nature of a session, this seems to be
a (long time) bug, and has been fixed.
Also, per RFC 5492: if (during OpenSent and OpenConfirm) get a
NOTIFICATION: "Open/Unsupported Optional Parameter", treat that as
"don't understand capabilities" and suppress sending of capabilities.
Advanced to "ex05".
Diffstat (limited to 'bgpd/bgp_open.c')
-rw-r--r-- | bgpd/bgp_open.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c index ab9acf63..80b90683 100644 --- a/bgpd/bgp_open.c +++ b/bgpd/bgp_open.c @@ -938,8 +938,8 @@ bgp_open_capability (struct stream *s, struct peer *peer) stream_putc (s, 0); /* Do not send capability. */ - if (! CHECK_FLAG (peer->sflags, PEER_STATUS_CAPABILITY_OPEN) - || CHECK_FLAG (peer->flags, PEER_FLAG_DONT_CAPABILITY)) + if (// ! CHECK_FLAG (peer->sflags, PEER_STATUS_CAPABILITY_OPEN) || + CHECK_FLAG (peer->flags, PEER_FLAG_DONT_CAPABILITY)) return; /* IPv4 unicast. */ |