BGP: Fix extended messages
Change attribute length limit to handle extended (64 kB) messages.
Do not mix updates and withdraws (RFC 7606).
BGP: Update capability number from IANA for extended messages
BGP: Extended messages support
Implements draft-ietf-idr-bgp-extended-messages-10, for nowundocumented and with temporary private capability number.
unsigned [int] -> uint
BGP: Fixes serious bug in TX handling
Under some circumstances and heavy load, TX could be postponeduntil the session fails with hold timer expired.
Thanks to Javor Kliachev for making the bug reproductible.
BGP: AS-wide unique router ID (RFC 6286) support
RFC 6286 relaxed rules for router IDs, allowing EBGP sessions betweenrouters with the same ID (but different ASN).
BGP: Enhanced route refresh (RFC 7313) support
Also hook feed_done is renamed to feed_end.
Fixes serious bug in BGP add-path
Temporary rta is reused in BGP, while rta_lookup() breaks it.
Thanks to Alexander Chernikov for analysing the problem.
Integrated IP functions.
Implements token bucket filter for rate limiting.
Fixes BGP crash when update with some attributes and empty NLRI is received.
Thanks to Charlie Allom for the bugreport.
Fixes a bug in (mainly) IPv6 BGP.
Stack variable may be used unitialized and that would lead to spuriousrta_free(), which may cause crash. The bug was introduced in 1.4.1 frommerging add-path branch.
Thanks to Peter Andreev for reporting it and Alexander V. Chernikov for...
Fixes a bug in graceful restart.
BGP graceful restart support.
Also significant core protocol state changes needed for that,global graceful restart recovery state and kernel proto supportfor recovery.
Fixes some bugs and uses generic hash implementation.
Merge branch 'master' into add-path
filter/filter.c nest/proto.c nest/rt-table.c proto/bgp/bgp.h proto/bgp/config.Y
Implements RFC 6608 Subcodes for BGP FSM Error.
Fixes a crash when mrtdump is enabled and interface goes away.
Thanks to Peter Christensen for the bugfix.
Fixes a bug in IPv6 BGP next hop processing.
BGP next hop attributes with empty link-local IPv6 addresses were nothandled properly.
Thanks to Sergey Popovich for the bugfix.
Implements ADD-PATH extension for BGP.
Allows to send and receive multiple routes for one network by one BGPsession. Also contains necessary core changes to support this (routingtables accepting several routes for one network from one protocol).It needs some more cleanup before merging to the master branch.
Implements generalized import hooks.
Thanks to Alexander V. Chernikov for the original patch.
Fixes a new bug in BGP route ordering.
Some minor fixes.
Implements support for link-local addresses in BGP.
Thanks Matthias Schiffer for the original patch.
Fixes bug that causes crash with strange BGP updates.
Fixes some problems in BGP error handling.
Fixes IPv6 build.
Implements IGP metric comparison for BGP routes.
Use link-local addresses in recursive next hops for IPv6 BGP.
Fixes a buffer overflow in TX code of IPv6 BGP.
Adds some options and documentation related to recursive next hops.
Implements proper multihop BGP.
Also does some incompatible changes to config file syntax,like removing 'via IP' from multihop option.
Implements hostcache and recursive next hops.
Hostcache is a structure for monitoring changes in a routing table thatis used for routes with dynamic/recursive next hops. This is needed forproper iBGP next hop handling.
Handle EPIPE as a common connection close event.
Merge several fixes suggested by Joakim Tjernlund.
Implements BGP 'show protocols' info details.
Many changes in (mainly) kernel syncers.
- BSD kernel syncer is now self-conscious and can learn alien routes- important bugfix in BSD kernel syncer (crash after protocol restart)- many minor changes and bugfixes in kernel syncers and neighbor cache- direct protocol does not generate host and link local routes...
Fix configure to enable warnings and fix most of them.
Workaround for some broken BGP implementations that skip initial KEEPALIVE.
Implements MRTdump feature.
Implements BGP route refresh.
Implements option that controls IPv6 BGP next hops when lladdr is missing.
Show bad peer AS number in log in decimal.
Fixes setting of IP addresses to route attributes (NEXT_HOP).
Minor BGP changes related to error wait time.
Implements import route limits.
The pipe cleanup.
Fixes one recently introduced IPv6 BGP compatibility problem.
Fixes BGP IPv6 link local next hop handling.
When sending 'third party' BGP update, Bird used bogus link localaddresses instead of addresses it received before.
Fixes handling of 'next hop self' and 'source address' configurationoptions.
Fixes BGPv6 bug - missing endianity conversion.
Also removes code skipping SNPAs(obsoleted by newer RFCs, should be ignored).
Fixe bug in BGPv6 that causes to send invalid network withdraws.
Update capability handshake options
Add 'capabilities' option, change default behavior to advertise ipv4,add some checks and ignore incoming capabilities when capabilitiesare disabled.
Added Cisco and Quagga capability workaround option.
Better handling of too long attributes
This patch extends the length for attributes from 1024 to 2048(because both AS_PATH and AS4_PATH attributes take 2+4 B per AS).
If there is not enough space for attributes, Bird skips thatroute group. Old behavior (skipping remaining attributes)...
Rate limit for most abundant log messages
Adds support for fallback to capabilityless BGP connect
When capability related error is received, next connect will bewithout capabilities. Also cease error subcodes descriptions(according to [RFC4486]) are added.
Major changes to BGP
Fixes two race conditions causing crash of Bird, several unhandledcases during BGP initialization, and some other bugs. Also changeshandling of startup delay to be more useful and implementreporting of last error in 'show protocols' command.
Fixes bugs in IPv6 code caused by recent commits.
Fix race condition that breaks BGP connections after reconfigure.
RFC says that only connections in OpenConfirm and Established stateshould participate in connection collision detection.
The current implementation leads to race condition when both sides...
Implementation of an option for disabling AS4 support per BGP instance.
Implementation of route reflection for BGP
Implementation of 4B ASN support for BGP
... in BGP.
Updated a comment.
Better selection of link-local NLRI addresses, at least for our ownaddress. Need to do it better for the other neighbors -- the currentsolution works only if they use the standard 64+64 global addressesand the interface identifier in lower 64 bits is the same as for the...
Temporary fix for BGP protocol capability announcement for IPv6 mode.
Fixed length check miscalculation in IPv6 receive path.
Updated to new neighbor cache.
Don't print trace messages about null updates.
Don't crash when the socket gets closed between updates.
Also, this time not only update `remains', but update it right :)
Update `remains' counter correctly.
Don't generate corrupted packets when sending only route deletes.
Unused variables in IPv6 code.
Removed a lot of unused variables.
Please try compiling your code with --enable-warnings to see them. (Theunused parameter warnings are usually bogus, the unused variable onesare very useful, but gcc is unable to control them separately.)
IPv6 BGP support finished. Also simplified the BGP stuff a bit.
Receive-only IPv6 BGP.
Full protocol tracing.
Some more fixes for attributeless UPDATEs.
Avoid printing of error messages on Cease notifications.
Support dynamic reconfiguration.
Better reporting of both local and remote errors.
Real parsing of BGP OPEN options including capabilitynegotiation.
If no NLRI's are present in an UPDATE message, parse the attributes, butdon't check presence of mandatory attributes. [draft-09]
Synced to draft-ietf-idr-bgp4-09.
Fixed reporting of unknown options.
Temporarily ignore unknown options.
Send and receive communities.
Sending of update messages works!
Implemented outgoing attribute cache.
BGP now handles incoming routes (IPv4 only).
Parsing of BGP attributes.
Basic analysis of UPDATE packets.
Connection state machine works.
More BGP. This time it connects, but the state machine still isn't complete.
Construction of BGP packets.
Started work on BGP. Wrote main part of the connection handling code.