summaryrefslogtreecommitdiff
path: root/proto/bgp/bgp.c
AgeCommit message (Collapse)Author
2016-12-07BGP redesignOndrej Zajicek (work)
Integrated and extensible BGP with generalized AFI handling, support for IPv4+IPv6 AFI and unicast+multicast SAFI.
2016-11-08Merge branch 'master' into int-newOndrej Zajicek (work)
2016-11-01Build: switch on -Wextra, get rid of most of the warningsJan Moskyto Matejka
There are several unresolved -Wmissing-field-initializers on older versions of GCC than 5.1, all of them false positive.
2016-05-12Merge remote-tracking branch 'origin/master' into int-newOndrej Zajicek (work)
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-08Merge branch 'master' into int-new-channelsJan Moskyto Matejka
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.
2016-02-01Channels - explicit links between protocols and tablesOndrej Zajicek (work)
The patch adds support for channels, structures connecting protocols and tables and handling most interactions between them. The documentation is missing yet.
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-03-29BGP: Enhanced route refresh (RFC 7313) supportOndrej Zajicek
Also hook feed_done is renamed to feed_end.
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-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-02Allows to configure different remote port for BGP sessions.Ondrej Zajicek
Thanks to João Taveira Araújo for the original patch.
2014-05-18IPv4/IPv6 integrated socket code.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-19BFD protocol, ready for release.Ondrej Zajicek
Supports OSPF and BGP and also statically configured sessions.
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-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-01-10Separate import and receive limits.Ondrej Zajicek
They have different behavior w.r.t. filtered routes that are kept.
2012-12-27Implements interface masks for choosing router id.Ondrej Zajicek
Router ID could be automatically determined based of subset of ifaces/addresses specified by 'router id from' option. The patch also does some minor changes related to router ID reconfiguration. Thanks to Alexander V. Chernikov for most of the work.
2012-11-15Changes 'rejected' to 'filtered' in one of the last patches.Ondrej Zajicek
2012-11-10Allows rejected routes to be kept and examined.Ondrej Zajicek
When 'import keep rejected' protocol option is activated, routes rejected by the import filter are kept in the routing table, but they are hidden and not propagated to other protocols. It is possible to examine them using 'show route rejected'.
2012-08-14Implements ADD-PATH extension for BGP.Ondrej Zajicek
Allows to send and receive multiple routes for one network by one BGP session. Also contains necessary core changes to support this (routing tables accepting several routes for one network from one protocol). It needs some more cleanup before merging to the master branch.
2012-08-06Fixes BGP subcode during global shutdown.Ondrej Zajicek
2012-07-16Merge branch 'rt-accepted'Ondrej Zajicek
Conflicts: nest/config.Y nest/rt-table.c proto/bgp/bgp.c
2012-07-16Finalize RA_ACCEPTED handling.Ondrej Zajicek
2012-04-24Implements generalized export limits.Ondrej Zajicek
And also fixes some minor bugs in limits.
2012-04-21Fixes in generalized import limits.Ondrej Zajicek
2012-04-15Implements generalized import hooks.Ondrej Zajicek
Thanks to Alexander V. Chernikov for the original patch.
2012-04-15Implement RA_ACCEPTED mode of route propagation.Ondrej Zajicek
2012-03-15Better support for multitable protocols.Ondrej Zajicek
The nest-protocol interaction is changed to better handle multitable protocols. Multitable protocols now declare that by 'multitable' field, which tells nest that a protocol handles things related to proto-rtable interaction (table locking, announce hook adding, reconfiguration of filters) itself. Filters and stats are moved to announce hooks, a protocol could have different filters and stats to different tables. The patch is based on one from Alexander V. Chernikov, thanks.