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_msg_read.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_msg_read.c')
-rw-r--r-- | bgpd/bgp_msg_read.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/bgpd/bgp_msg_read.c b/bgpd/bgp_msg_read.c index e0bbfef9..3c78bcec 100644 --- a/bgpd/bgp_msg_read.c +++ b/bgpd/bgp_msg_read.c @@ -670,11 +670,13 @@ bgp_msg_open_option_parse (bgp_connection connection, bgp_notify notification, * * 2) the local AFI/SAFI must be the same as the remote AFI/SAFI. * - * TODO: verify that (2) should be checked *before* any "OVERRIDE". + * NB: cap_override and cap_strict are mutually exclusive + * + * TODO: what about graceful restart and no CAP-MP ?? */ if (session->cap_strict) { - /* Treat any unsuppprted capability as an error. */ + /* Treat any unsupported capability as an error. */ if (bgp_notify_get_subcode(notification) == BGP_NOMS_O_CAPABILITY) return -1 ; @@ -1237,6 +1239,10 @@ bgp_msg_capability_orf_entry(bgp_connection connection, uint8_t cap_code, * * Returns: 0 => OK * -1 => malformed ! + * + * TODO: RFC 4724 suggests "implicit" IPv4/Unicast if no CAP-MP + * TODO: RFC 4760 says MUST CAP-MP if propose to use CAP-MP ! + * */ static int bgp_msg_capability_restart (bgp_connection connection, sucker sr) |