Moves errno.h include.
Fixes a crash caused by missing error hook on BGP listening socket.
Error happened when too many BGP connections arrived in one moment(ECONNABORTED).
Workaround for some broken BGP implementations that skip initial KEEPALIVE.
Changes 'ignore communities' to 'interpret communities'.
Better handling of well-known communities.
Process well-known communities before the export filter (old behavior isto process these attributes after, which does not allow to send routewith such community) and just for routes received from other BGPprotocols. Also fixes a bug in next_hop check.
Implements MRTdump feature.
Change default LOCAL_PREF attribute to 100 (suggested value by RFC 4277).
Merge branch 'ospf3' into new
Fixes export of routes with link-local gw.
Remove bgp_as4_support variable.
Implements BGP route refresh.
Implements option that controls IPv6 BGP next hops when lladdr is missing.
Show both IPv6 next hop addresses in BGP.
Implements RFC 5004 - prefer older external routes.
Implements protocol-specific router id and updates documentation.
Rename as_path_get_last/as_path_get_first to be consistent.
Workaround for stupid callback scheduler.
There is no reak callback scheduler and previous behavior causesbad things during hard congestion (like BGP hold timeouts).
Smart callback scheduler is still missing, but main loop waschanged such that it first processes all tx callbacks (which...
Show bad peer AS number in log in decimal.
Fixes setting of IP addresses to route attributes (NEXT_HOP).
Fixes headers for uintptr_t (and build on NetBSD).
Fixes bug related to AS2->AS4 conversion.
Fixed bug related to reconfiguration of BGP with MD5 passwords.
Replace 'bind' option with 'listen' option.
To be consistent with other daemons.
Fixes bug in ORIGIN check.
Changes handling of AS_PATH_CONFED_* segments in AS_PATH.
Although standard says that if we receive AS_PATH_CONFED_*(and we are not a part of a confederation) segment, we shoulddrop session, nobody does that and it is unwise to do that.
Now we drop session just in case that peer ASN is in...
Implements option that changes BGP listening socket parametres.
Minor BGP changes related to error wait time.
Fixes bug related to startup delay change.
Differentiate between error delay and connect/reconnect delay.
The difference is here to reject incoming connections in thefirst case.
Implements import route limits.
The pipe cleanup.
Changes pipes to transfer all routes between routing table, not just optimal routes.
Fixes one recently introduced IPv6 BGP compatibility problem.
Allow 'third party' BGP updates for originated routes.
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).
Fixes BGPv6 bug - mandatory attributes weren't validated;
Fixe bug in BGPv6 that causes to send invalid network withdraws.
Fixes bug in BGPv6 causing crash by checking missing attributes.
Better handling of AS4 optional attribute errors
AS4 optional attribute errors were handled by sessiondrop (according to BGP RFC). This patch implementserror handling according to new BGP AS4 draft (*) - ignoring invalid AS4 optional attributes.
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
Add format for BGP_AGGREGATOR attribute
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.
Fixes bug related to reconfiguration of BGP.
BGP keeps its copy of configuration ptr and didn't update it duringreconfiguration. But old configuration is freed during reconfiguration.That leads to unnecessary reset of BGP connection during reconfiguration...
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.
Proper format functions for ORIGINATOR_ID, CLUSTER_LIST
Fixes bugs in IPv6 code caused by recent commits.
Multihop BGP was completely broken, because listening socket has alwaysttl 1.
Implementation of route server.
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...
Bugfixes in MULIT_EXIT_DISC attribute handling.
- Old MED handling was completely different from behavior specified in RFCs - for example they havn't been propagated to neighboring areas.
- Update tie-breaking according to RFC 4271.
- Change default value for 'default bgp_med' configuration...
Bugfix in LOCAL_PREF attribute handling.
Implementation of an option for disabling AS4 support per BGP instance.
Implementation of route reflection for BGP
Implementation of MD5 authentication of BGP sessions.
Implementation of 4B ASN support for BGP
The source address configuration in BGP added.
A lot of changes: - metric is 3 byte long now - summary lsa originating - more OSPF areas possible - virtual links - better E1/E2 routes handling - some bug fixes..
I have to do: - md5 auth (last mandatory item from rfc2328) - !!!!DEBUG!!!!! (mainly virtual link system has probably a lot of bugs)...
Staticized lots of local functions.
... in BGP.
ALIGN -> BIRD_ALIGN
Rewritten the I/O loop. All socket operations are now safe, meaning thatyou can delete the socket from anywhere in the hooks and nothing should break.Also, the receive/transmit buffers are now regular xmalloc()'ed buffers,not separate resources which would need shuffling around between pools....
Killed a couple of unused variables.
We really should compile with warnings enabled.
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.
Added missing includes.
Added missing semicolons.
Don't accept incoming connections when the neighbor is not up.
Fixes to the progdoc.
Spelling fixes to progdoc.
Updated to new neighbor cache.
Updated all the Doc files to new format.
`path metric' and `disable after error' are switches, not numeric clauses.
Don't print trace messages about null updates.
BGP now reports originating AS and origin type in get_route_info().
bgp_get_status: If protocol is down, don't print BGP state.
Cleanup of configuration.
o Use `expr' instead of `NUM' and `ipa' instead of `IPA', so that defined symbols work everywhere.o `define' now accepts both numbers and IP addresses.o Renamed `ipa' in filters to `fipa'.
Pavel, please update filters to accept define'd symbols as well.
Adapted to new rt_notify semantics.
Use correct flags for the LOCAL_PREF attribute.
When an invalid attribute is found, copy the entire attribute to the datasection of the NOTIFICATION message.
KEEPALIVE TIME ought to set keepalive time, not connect retry time :)
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.
The bgp_list is gone. Incomming connections are now handled in a muchmore straightforward manner by scanning the active configuration formatching protocols.
Don't generate corrupted packets when sending only route deletes.
Link the instance to the global BGP list as soon as possible.
Setup of incoming connection is now a separate function.
Added skeleton Doc files for the whole developer's documentation.
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.