summaryrefslogtreecommitdiff
path: root/proto/bgp
AgeCommit message (Collapse)Author
2016-07-11BGP: Fix extended messagesOndrej Zajicek (work)
Change attribute length limit to handle extended (64 kB) messages. Do not mix updates and withdraws (RFC 7606).
2016-06-29BGP: Skip empty path segments in received AS_PATHOndrej Zajicek (work)
Although RFC 4271 does not forbid empty path segments, they are useless and some implementations consider them invalid. It is clarified in RFC 7606, specifying that AS_PATH with empty segment is considered malformed.
2016-04-13BSD: Add the IPsec SA/SP database entries controlOndrej Zajicek (work)
Add code for manipulation with TCP-MD5 keys in the IPsec SA/SP database at FreeBSD systems. Now, BGP MD5 authentication (RFC 2385) keys are handled automatically on both Linux and FreeBSD. Based on patches from Pavel Tvrdik.
2016-04-06IO: Avoid multiple event cycles in one loop cycle.Ondrej Zajicek (work)
Event cycle may took too much time and trigger next timer events, so avoid cycling between timer and event cycles inside the loop cycle.
2016-04-06IO: Replace RX priority heuristic with explicit markOndrej Zajicek (work)
In BIRD, RX has lower priority than TX with the exception of RX from control socket. The patch replaces heuristic based on socket type with explicit mark and uses it for both control socket and BGP session waiting to be established. This should avoid an issue when during heavy load, outgoing connection could connect (TX event), send open, but then failed to receive OPEN / establish in time, not sending notifications between and therefore got hold timer expired error from the neighbor immediately after it finally established the connection.
2016-02-11BGP: Fix bug in incoming connection handlingOndrej Zajicek (work)
When a BGP session was established by an outgoing connection with Graceful Restart behavior negotiated, a pending incoming connection in OpenSent state, and another incoming connection was received, then the outgoing connection (and whole BGP session) was closed, but the old incoming connection was just overwritten by the new one. That later caused a crash when the hold timer from the old connection fired.
2015-11-25BGP: Update capability number from IANA for extended messagesOndrej Zajicek (work)
2015-07-18BGP: Extended messages supportOndrej Zajicek
Implements draft-ietf-idr-bgp-extended-messages-10, for now undocumented and with temporary private capability number.
2015-06-08BGP multipath supportOndrej Zajicek
Kernel option 'merge paths' allows to merge routes exported to kernel protocol (currently BGP and static routes) to multipath routes.
2015-06-08unsigned [int] -> uintPavel Tvrdík
2015-04-01BGP: Fixes serious bug in TX handlingOndrej Zajicek
Under some circumstances and heavy load, TX could be postponed until the session fails with hold timer expired. Thanks to Javor Kliachev for making the bug reproductible.
2015-03-29BGP: AS-wide unique router ID (RFC 6286) supportOndrej Zajicek
RFC 6286 relaxed rules for router IDs, allowing EBGP sessions between routers with the same ID (but different ASN).
2015-03-29BGP: Enhanced route refresh (RFC 7313) supportOndrej Zajicek
Also hook feed_done is renamed to feed_end.
2015-03-02Fixes serious bug in BGP add-pathOndrej Zajicek
Temporary rta is reused in BGP, while rta_lookup() breaks it. Thanks to Alexander Chernikov for analysing the problem.
2015-02-22Rename BGP option 'start delay' to 'connect delay'Ondrej Zajicek
Also update log message for error-triggered startup delay.
2015-02-22Relax BGP neighbor parameterOndrej Zajicek
Permit specifying neighbor address, AS number and port independently. Add 'interface' parameter for specifying interface for link-local sessions independently. Thanks to Alexander V. Chernikov for the original patch.
2015-02-21Store protocol config size inside protocol structureOndrej Zajicek
Make proto_config_new() use this info instead of supplied size. Thanks to Alexander V. Chernikov for the patch.
2015-02-21Make BGP protocol instance search a separate functionOndrej Zajicek
Thanks to Alexander V. Chernikov for the patch.
2015-02-21Replacing GNU old-style field designator extensionPavel Tvrdik
2015-02-21Fixes potential alignment bug in BGP.Ondrej Zajicek
Thanks to Andrew (seti.kr.ua) for the bug report.
2015-02-21Link state support in BGP.Ondrej Zajicek
Configurable fast shutdown of a BGP session when an interface loses link.
2014-10-24Integrated IP functions.Ondrej Zajicek
2014-10-02Implements token bucket filter for rate limiting.Ondrej Zajicek
2014-10-02Allows to configure different remote port for BGP sessions.Ondrej Zajicek
Thanks to João Taveira Araújo for the original patch.
2014-05-29String constants could be used for string option values.Ondrej Zajicek
Thanks to Frederik Kriewitz for the patch.
2014-05-18IPv4/IPv6 integrated socket code.Ondrej Zajicek
2014-05-04Fixes BGP crash when update with some attributes and empty NLRI is received.Ondrej Zajicek
Thanks to Charlie Allom for the bugreport.
2014-04-14Fixes a bug in (mainly) IPv6 BGP.Ondrej Zajicek
Stack variable may be used unitialized and that would lead to spurious rta_free(), which may cause crash. The bug was introduced in 1.4.1 from merging add-path branch. Thanks to Peter Andreev for reporting it and Alexander V. Chernikov for resolving it.
2014-03-24Fixes a bug in graceful restart.Ondrej Zajicek
2014-03-24Fixes some minor issues in graceful restart.Ondrej Zajicek
2014-03-23Documentation (and minor fixes) for BGP graceful restart.Ondrej Zajicek
2014-03-20BGP graceful restart support.Ondrej Zajicek
Also significant core protocol state changes needed for that, global graceful restart recovery state and kernel proto support for recovery.
2014-02-06Merge branch 'add-path'Ondrej Zajicek
2013-12-10Merge branch 'add-path'Ondrej Zajicek
2013-12-02Fixes problem with source address selection in BGP and BFD.Ondrej Zajicek
2013-12-01Finishes add-path.Ondrej Zajicek
Fixes some bugs and uses generic hash implementation.
2013-11-25Merge branch 'master' into add-pathOndrej Zajicek
2013-11-24Enables multihop mode for IBGP by default.Ondrej Zajicek
This is more consistent with common usage and also with the behavior of other implementations (Cisco, Juniper). Also changes the default for gw mode to be based solely on direct/multihop.
2013-11-23Merge branch 'master' into add-pathOndrej Zajicek
Conflicts: filter/filter.c nest/proto.c nest/rt-table.c proto/bgp/bgp.h proto/bgp/config.Y
2013-11-22Minor fixes.Ondrej Zajicek
2013-11-22Merge commit 'origin/bfd'Ondrej Zajicek
2013-11-19BFD protocol, ready for release.Ondrej Zajicek
Supports OSPF and BGP and also statically configured sessions.
2013-10-21Implements 'allow local as' option.Ondrej Zajicek
Similar to allowas-in option on other routers.
2013-08-13Fixes a bug related to mixed up neighbor events in BGP.Ondrej Zajicek
Neighbor events related to received route next hops got mixed up with sticky neighbor node for an IP of the BGP peer. If a neighbor for a next hop disappears, BGP session is shut down.
2013-07-25Implements RFC 6608 Subcodes for BGP FSM Error.Ondrej Zajicek
2013-07-13Fixes stuck connection during BGP session shutdown.Ondrej Zajicek
If TX buffers were full during BGP session shutdown then a protocol waited indefinitely to be able to send notification packet to close the session.
2013-05-09Fixes a problem with BGP neighbors, link-local addresses and locking.Ondrej Zajicek
Thanks to Fritz Grimpen for the bugfix.
2013-04-29Fixes a crash when mrtdump is enabled and interface goes away.Ondrej Zajicek
Thanks to Peter Christensen for the bugfix.
2013-04-16Fixes a bug in IPv6 BGP next hop processing.Ondrej Zajicek
BGP next hop attributes with empty link-local IPv6 addresses were not handled properly. Thanks to Sergey Popovich for the bugfix.
2013-04-16Implements 'next hop keep' option for BGP.Ondrej Zajicek
This option allows to keep the received next hop even in cases when the route is sent to an interface with a different subnet.