Version 3.0alpha1 (2023-04-18) o Worker threads for BGP, Pipe, RPKI and BFD o Configurable number of threads o Asynchronous route export o Flat attribute structure o Inline import tables o Export tables merged with BGP prefix / attribute buckets o Fixed ROA check locking inversion in route table dumps o MRT switched off Version 3.0-alpha0 (2022-02-07) o Removal of fixed protocol-specific route attributes o Asynchronous route export o Explicit table import / export hooks o Partially lockless route attribute cache o Thread-safe resource management o Thread-safe interface notifications o Thread-safe protocol API o Adoption of BFD IO loop for general use o Parallel Pipe protocol o Parallel RPKI protocol o Parallel BGP protocol o Lots of refactoring o Bugfixes and improvements as they came along Version 2.0.12 (2023-01-23) o Filter: New 'onlink' route attribute o Compile-time option to use 4-way tries instead of 16-way ones o BSD: Support for kernel route metric and other improvements o Important bugfixes Version 2.0.11 (2022-11-12) o BGP roles (RFC 9234) o BGP: Keepalive time scaling o BGP: New 'min hold time' and 'min keepalive time' options o BGP: New 'next hop prefer global' option o Filter: For loops and direct recursion o Filter: Mixed declarations of local variables o Filter: Improved static type checks o Filter: Literal [] for empty set o Linux: Netlink KRT improvements o BSD: Experimental support for Netlink API o Memory management improvements o Many bugfixes Notes: In contrast to prior versions, configured keepalive time in BGP now scales with negotiated hold time to maintain proportion between the keepalive time and the hold time. The Linux KRT was updated to use the recent API for IPv6 ECMP routes instead of the legacy one. Consequently, the Linux versions older than 4.11 are no longer supported, at least for IPv6 ECMP routes. Also, routing table scanning now runs separately for each table to avoid congestion. There is a minor change in recursive next hop processing. Previously, recursive next hop must be resolved through a non-recursive route, now it must be resolved through a prefix where both the best route and all routes with the same preference (as the best route) are non-recursive. The old behavior might lead in some corner cases to an infinite loop of recursive next hop resolution due to a priority inversion. There is a minor change in the 'configure undo' command, it is no longer available after failed reconfiguration, as the old configuration is already released. Version 2.0.10 (2022-06-16) o BGP performance improvements o BFD: New 'strict bind' option o RPKI: VRF support o Allow use of 240.0.0.0/4 as a private range o BIRD client uses exit status to report errors o Important bugfixes Version 2.0.9 (2022-02-09) o BGP: Flowspec validation procedure o Babel: MAC authentication support o Routing table configuration blocks o Optional prefix trie in routing table for faster LPM/interval queries o CLI: New 'show route in ' command o Filter: Faster (16-way) prefix sets o Filter: MPLS label route attribute o Filter: Operators to pick community components o Filter: Operators to find minimum and maximum element of lists o BGP: New 'free bind' option o BGP: Log route updates that were changed to withdraws o BGP: Improved 'invalid next hop' error reporting o OSPF: Allow ifaces with host address as unnumbered PtP or PtMP ifaces o OSPF: All packets on PtP networks should be sent to AllSPFRouters address o Scripts for apkg-powered upstream packaging for deb and rpm o Support for Blake2s and Blake2b hash functions o Security keys / passwords can be entered in hexadecimal digits o Memory statistics split into Effective and Overhead o Linux: New option 'netlink rx buffer' to specify netlink socket buffer size o BSD: Assume onlink flag on ifaces with only host addresses o Many bugfixes Notes: For OSPF on PtP network, BIRD now sends all packets to multicast AllSPFRouters address (as required in RFC 2328 8.1). This likely breaks setups with multiple neighbors on a network configured as PtP, which worked in previous versions. Such links should be configured as PtMP. Since Linux 5.3, netlink socket can be flooded by route cache entries during route table scan. This version mitigates that issue by using strict netlink filtering. Version 3.0-alpha0 (2022-02-07) o Removal of fixed protocol-specific route attributes o Asynchronous route export o Explicit table import / export hooks o Partially lockless route attribute cache o Thread-safe resource management o Thread-safe interface notifications o Thread-safe protocol API o Adoption of BFD IO loop for general use o Parallel Pipe protocol o Parallel RPKI protocol o Parallel BGP protocol o Lots of refactoring o Bugfixes and improvements as they came along Version 2.0.8 (2021-03-18) o Automatic channel reloads based on RPKI changes o Multiple static routes with the same network o Use bitmaps to keep track of exported routes o Per-channel debug flags o CLI commands show info from multiple protocols o Linux: IPv4 routes with IPv6 nexthops o Filter: Optimized redesign of prefix sets o Filter: Improved type checking of user filters o Filter: New src/dst accessors for Flowspec and SADR o Filter: New 'weight' route attribute o Filter: BGP path mask loop operator o Filter: Remove quitbird command o RIP: Demand circuit support (RFC 2091) o BGP: New 'allow as sets' and 'enforce first as' options o BGP: Support for BGP hostname capability o BGP: Support for MD5SIG with dynamic BGP o BFD: Optional separation of IPv4 / IPv6 BFD instances o BFD: Per-peer session options o RPKI: Allow build without libSSH o RPKI: New 'ignore max length' option o OSPF: Redesign of handling of unnumbered PtPs o OSPF: Allow key id 0 in authentication o Babel: Use onlink flag for routes with unreachable next hop o Many bugfixes Notes: Automatic channel reloads based on RPKI changes are enabled by default, but require import table enabled when used in BGP import filter. BIRD now uses bitmaps to keep track of exported routes instead of re-evaluation of export filters. That should improve speed and accuracy in route export handling during reconfiguration, but takes some more memory. Per-channel debug logging and some CLI commands (like 'show ospf neighbors') defaulting to all protocol instances lead to some minor changes in log and CLI output. Caution is recommended when logs or CLI output are monitored by scripts. Version 2.0.7 (2019-10-11) o BGP: Accumulated IGP metric (RFC 7311) o Important filter reconfiguration bugfix o Several other bugfixes Version 2.0.6 (2019-09-10) o RAdv: Solicited unicast RAs o BGP: Optional Adj-RIB-Out o BGP: Extended optional parameters length o Filter: Sets and set expressions in path masks o Several important bugfixes Version 2.0.5 (2019-08-01) o OSPF Graceful restart (RFC 3623, RFC 5187) o BGP: Dynamic BGP o BGP: Promiscuous ASN mode o BGP: Mandatory option for channels o BFD: Support for VRFs o Graceful restart command o Redesigned filtering code o Many bugfixes Notes: Previous version introduced an error in handling of OSPF NSSA-LSA, causing compatibility issues with proper implementations. The error is fixed in this version, therefore there are compatibility issues in OSPF NSSA areas between this and previous version. Version 2.0.4 (2019-02-27) o OSPF: Opaque LSAs (RFC 5250) o OSPF: DN-bit handling (RFC 4576) o Preferred route counters are back o Important BGP bugfix o Several bugfixes related to route propagation o some minor bugfixes Version 2.0.3 (2019-01-05) o MRT table dumps (RFC 6396) o BGP Long-lived graceful restart o BGP: Optional import table (Adj-RIB-In) o BGP: Extend 'next hop keep' and 'next hop self' options o BGP: Improved VRF support o OSPF: Authentication trailer for OSPFv3 (RFC 7166) o Babel: New option to randomize router ID o Filter: Custom route attributes o Filter: Support for src accessor to SADR source prefix o Filter: Support for VPN_RD sets o Filter: Make ifname attribute modifiable o Perf: Protocol to measure BIRD performance internally o More verbose error messages in config processing o Log file size limit / log rotation o Many bugfixes Notes: Export of routes to RS EBGP (route server) sessions from other sources than RS EBGP sessions was changed that ASN is no longer prepended to BGP_PATH in that case. The change does not affect regular BGP configurations or regular route servers that have only RS EBGP peers. For BGP route servers and route reflectors, the default value of option 'next hop keep' was changed to a more appropriate value. Attributes for OSPF and Babel metrics are no longer reset when exported to these protocols and could be set anywhere in BIRD. As a result, OSPF metric is kept when a route is reannounced between OSPF instances. Also, when route is exported to OSPF with both ospf_metric1 and ospf_metric2 attributes it is now propagated as OSPF-E2 route instead of as OSPF-E1 route. Compiling BIRD with --enable-debug no longer automatically activates debug mode (-d option) nor local mode (-l option). Also, debug mode with output to file (-D option) no longer not forces foreground mode (-f option). The configure script now uses standard option --runstatedir, the old option --with-runtimedir is deprecated. Version 2.0.2 (2018-03-22) o Source-specific routing support for Linux kernel and Babel o BGP: New option 'disable after cease' o Filter: Allow silent filter execution o Filter: Fixed stack overflow in BGP mask expressions. o Several bugfixes Notes: Syntax prefix:netmask for IPv4 prefixes was dropped. Just use prefix/pxlen. Version 2.0.1 (2018-01-16) o Linux MPLS kernel support o Better handling of channels inherited from templates o Default EBGP Route Propagation Behavior without Policies (RFC 8212) o Many bugfixes Notes: To satisfy requirements of RFC 8212, external BGP protocols now require explicit configuration of import and export policies. Version 2.0.0 (2017-12-11) o Integrated IPv4 + IPv6 design o Support for MPLS next hops o Support for VPNv4 and VPNv6 networks o Microsecond timers infrastructure o Basic VRF support o Babel: Support for dual-stack IPv4/IPv6 o Babel: Many improvements and bugfixes o Major BGP protocol redesign o Full support for Multiprotocol BGP o BGP multicast support (SAFI 2) o BGP flowspec support (RFC 5575) o BGP with MPLS labels (RFC 3107) o BGP MPLS/VPN support (RFC 4364) o BGP 6PE - IPv6 NLRI over IPv4 MPLS (RFC 4798) o BGP IPv4 NLRI with an IPv6 Next Hop (RFC 5549) o BGP Confederations (RFC 5065) o BGP Shutdown communication (RFC 8203) o BGP: Allow exchanging LOCAL_PREF with eBGP peers o BGP: Allow to specify interface for regular sessions o OSPF: Support of address families in OSPFv3 o OSPF: Enable ECMP and Link detection by default o RAdv: Support for more specific routes (RFC 4191) o RAdv: Proper handling of prefix retraction o RIP: Enable ECMP and Link detection by default o Redesign of RPKI handling o New RPKI-Router protocol o Static: Minor overhaul o Static: Support for all new route types o Kenrel: Default Linux kernel metric changed to 32 o Kernel: Fix IPv6 ECMP handling with Linux 4.11+ o Update of show route command o BIRD client persistent history o New build system o Unit tests o ... Notes: Tables are now defined with appropriate net type keyword. Protocols and tables are now connected by explicit channels, most related protocol options (table, import, export, ...) are now channel options. See doc/bird.conf.example2 for configuration examples. Some options were removed/replaced. Version 1.6.3 (2016-12-21) o Large BGP communities o BFD authentication (MD5, SHA1) o SHA1 and SHA2 authentication for RIP and OSPF o Improved documentation o Several bug fixes Version 1.6.2 (2016-09-29) o Fixes serious bug introduced in the previous version Version 1.6.1 (2016-09-22) o Support for IPv6 ECMP o Better handling of IPv6 tentative addresses o Several updates and fixes in Babel protocol o Filter: New !~ operator o Filter: ASN ranges in bgpmask o KRT: New kernel protocol option 'metric' o KRT: New route attribute 'krt_scope' o Improved BIRD help messages o Fixes memory leak in BGP multipath o Fixes handling of empty path segments in BGP AS_PATH o Several bug fixes Version 1.6.0 (2016-04-29) o Major RIP protocol redesign o New Babel routing protocol o BGP multipath support o KRT: Add support for plenty of kernel route metrics o KRT: Allow more than 256 routing tables o Static: Allow to specify attributes for static routes o Static: Support for BFD controlled static routes o FreeBSD: Setup password for BGP MD5 authentication o IO: Remove socket number limit o Plenty of bug fixes Upgrade notes: For RIP, most protocol options were moved to interface blocks. Version 1.5.0 (2015-04-20) o Major OSPF protocol redesign. o OSPFv2 multi-instance extension (RFC 6549). o BGP AS-wide unique router ID (RFC 6286). o BGP enhanced route refresh (RFC 7313). o Link state support in BGP. o Latency tracking and internal watchdog. o Uses high port range for BFD on BSD. o Increase max symbol length to 64. o Allows to define unnamed protocols from templates. o Fixes two serious bugs in BGP. o Several bugfixes and minor improvements. o Several minor option changes: - OSPF: Protocol-wide 'instance id' option added. - BGP: Parameters to option 'neighbor' extended. - BGP: Separate option 'interface' added. - BGP: Option 'start delay time' renamed to 'connect delay time'. - BGP: Option 'route limit' deprecated. Upgrade notes: For OSPF, there are deep internal changes, but user-visible changes are limited to log messages and minor changes in formatting of command output. For BGP, version 1.5.0 is essentially a minor release. There are two deprecated options ('start delay time' and 'route limit') and some minor formatting changes. Version 1.4.5 (2014-10-06) o New 'show route noexport' command option. o Port option for BGP sessions. o Better constant handling in set literals. o Better rate filtering of log messages. o Several minor bugfixes. Version 1.4.4 (2014-07-09) o Extended OSPF multipath support. o Default router preference for RAdv. o Significant changes in socket layer. o Important bugfix in BGP. o Several minor bugfixes. Version 1.4.3 (2014-04-14) o Important bugfix in IPv6 BGP. Version 1.4.2 (2014-04-02) o Important bugfix in BFD. Version 1.4.1 (2014-03-31) o BGP add-path support (RFC draft). o BGP graceful restart (RFC 4724). o OSPF: many changes in socket layer. o OSPF: support for secondary addresses in BSD. o OSPF: names for vlink pseudointerfaces (vlinkX). o Several bugfixes. Version 1.4.0 (2013-11-25) o BFD protocol (RFC 5880). o BFD support for OSPF and BGP. o New 'allow local as' option for BGP. o Filters allows setting gw, ifname and ifindex. o Filter operator 'delete/filter' extended to bgp_paths. o Filter operator 'len' extended to [e]clists. o BIRD client now allows shorthands for noninteractive commands. o Flag -P for PID file support. o Flag -f added to force BIRD to run in foreground. o Protocol export/import/receive limits are checked during reconfiguration. o Several bugfixes and minor improvements. o Several minor but incompatible changes: - IBGP is multihop by default. - Changes primary address selection on BSD to the first one. - Integers in filters are handled as unsigned. - ISO 8601 time formats used by default. - Import of device routes from kernel protocol allowed. - Last state change now tracks just protocol state change. - Minor changes to default router ID calculation. Version 1.3.11 (2013-07-27) o OSPF stub router option (RFC 3137). o TTL security for OSPF and RIP. o Protocol packet priority and traffic class handling. o Multiple routing tables support for FreeBSD and OpenBSD. o Extends constants to all filter data types. o Implements eval command. o 'bgppath ~ int set' filter operation. o Several bugfixes. Version 1.3.10 (2013-04-30) o Lightweight BIRD client for embedded environments. o Dynamic IPv6 router advertisements. o New 'next hop keep' option for BGP. o Smart default routing table for 'show route export/preexport/protocol'. o Automatic router ID selection could be configured to use address of loopback. o Allows configured global addresses of NBMA neighbors in OSPFv3. o Allows BIRD commands from UNIX shell even in restricted mode. o Route limits inherited from templates can be disabled. o Symbol names enclosed by apostrophes can contain dots. o Several bugfixes. Version 1.3.9 (2013-01-11) o BIRD can be configured to keep and show filtered routes. o Separate receive and import limits. o Several new reconfiguration cmd options (undo, timeout, check). o Configurable automatic router ID selection. o Dragonfly BSD support. o Fixed OSPFv3 vlinks. o Several minor bugfixes. Version 1.3.8 (2012-08-07) o Generalized import and export route limits. o RDNSS and DNSSL support for RAdv. o Include in config file support wildcards. o History deduplication in BIRD client. o New route attributes krt_source, krt_metric. o Different instance ID support for OSPFv3. o Real broadcast mode for OSPFv2. o Several minor bugfixes. Version 1.3.7 (2012-03-22) o Route Origin Authorization basics. o RIPng working again. o Extended clist operations in filters. o Fixes several bugs in BSD iface handling. o Several minor bugfixes and enhancements. Version 1.3.6 (2012-01-20) o Important bugfix in BGP. Version 1.3.5 (2012-01-10) o Protocol templates. o Deterministic MED option for BGP. o Support for link-local addresses in BGP and static protocols. o Several bugfixes. Version 1.3.4 (2011-10-10) o Static recursive routes. o Several bugfixes. Version 1.3.3 (2011-09-11) o OSPF NSSA. o BGP extended communities. o BGP TTL security. o Configuration option "include" added (based on patch from Alexander V. Chernikov). o Some minor bugfixes. Version 1.3.2 (2011-07-08) o Allows run with restricted privileges. o Community list filter operation. o Fixes several problems in filter syntax: - Fixes several conflicts in the grammar. - Fixes a bug in (a..b, c) pair patterns. - Makes pair patterns orthogonal. - Allows term expressions in pair patterns without additional ( ). - Allows several comma separated values in switch cases. o Many bugfixes. Version 1.3.1 (2011-05-02) o Added Linux kernel route attributes krt_prefsrc and krt_realm. o Added BGP option 'med metric' related to MED handling. o Allows to use constants from /etc/iproute2/rt_* files. o Several bugfixes. Version 1.3.0 (2011-03-31) o Proper iBGP (can be used with IGP). o Multipath support (OSPF and static). o L2 link state detection. o IPv6 router advertisements. o Much improved OSPF reconfiguration. o Point-to-MultiPoint interfaces (OSPF). o Minor changes and improvements in config file grammar. o Better community list matching. o Changes default behavior of BGP IPv6 socket to v6only. Use 'listen bgp dual' for the old behavior. o Changes default for handling missing link-local addresses on route servers. Use 'missing lladdr drop' for the old behavior. o Important bugfix for OSPF. o Several minor bugfixes. Version 1.2.5 (2010-10-10) o Several mostly minor bugfixes. Version 1.2.4 (2010-08-03) o Added 'show memory' command. o Important bugfix in IPv6 BGP. o Several minor bugfixes. Version 1.2.3 (2010-06-01) o Pattern matching for community lists. o Many fixes in OSPF protocol (esp. in multi-areas and vlinks). o Several minor bugfixes. Version 1.2.2 (2010-04-10) o Much better BSD kernel support (IPv6, alien routes, ...). o Deep OSPF socket changes, fixes OSPFv2/v3 behavior on BSD. o OSPFv2 in Linux now supports more non-stub IP prefixes on one physical iface. o Export of device routes to the kernel is more restricted. o Routes with strange scope not allowed in BIRD routing tables. o New filterable route attributes bgp_originator_id, bgp_cluster_list and ospf_router_id. o Restricted read-only CLI (option -r). o Pattern matching for 'show protocols' command. o BGP protocol details in 'show protocols all' command. o Configurable syslog name (and default on IPv6 changed). o Statistic counters for pipes were fixed. o Many bugfixes in BGP, OSPF, filters, ... Version 1.2.1 (2010-02-11) o Option 'interpret communities' allows to override implicit handling of well-known communities. o 'configure' command uses route reload when filters change. o Adds router ID of advertising router as OSPF route attribute. o 'show route' command indicates primary route and shows OSPF Router ID. o Configurable date/time formats. o Symbol names can be enclosed by '' and so include hyphen and start with number. o Several minor bugfixes. Version 1.2.0 (2010-01-05) o Implements OSPFv3 (IPv6 support for OSPF). Because the code is shared with OSPFv2 and there were deep changes in it, we suggest caution during upgrade to OSPF users. Some advanced features (like NSSA, vlinks and authentication) are not yet implemented. o Implements MRTdump - binary logging protocol compatible with other routing daemons. Only BGP part of MRTdump is yet implemented. o Changes default value of BGP attribute LOCAL_PREF from 0 to 100. Use 'default bgp_local_pref 0' BGP protocol option for the old behavior. The new value is suggested by RFC 4277. o Changes default mode of pipes from opaque to transparent. Use 'mode opaque' protocol option if the old behavior is needed. Opaque pipe mode is deprecated and might be removed in the future. Version 1.1.7 (2009-12-20) o Implements BGP Route Refresh (RFC 2918). o Implements route reload command. o Deep changes and bugfixes in pipe protocol. o Bugfix in OSPF premature aging of LSA. o Bugfix in OSPF next hop calculation. o Bugfix in core related to route withdraws. o Several minor bugfixes. Version 1.1.6 (2009-11-19) o Implements RFC 5004 - prefer older external routes. o There is a change how route servers handle missing IPv6 link local addresses in next hop atribute - see 'missing lladdr' option. o Several minor features (description field, parse check option). o Several minor bugfixes. Version 1.1.5 (2009-10-29) o Better scalability of BGP. o New accessors for AS path - first and last. o Allows to set protocol-specific router ID. o Allows import kernel 'onlink' routes. o Endianity check in buildsystem changed. Version 1.1.4 (2009-10-02) o BGP passive option. o Several minor bugfixes. Version 1.1.3 (2009-09-11) o Bugfix in core o Bugfix in BGP related to AS2->AS4 conversion. Version 1.1.2 (2009-08-23) o Allow more kernel routing tables in IPv6. o Bugfix in core Version 1.1.1 (2009-08-14) o 'more' style paging in BIRD client. o Important core bug fixed. o Portability to non-x86 related bugfixes. o As usual, miscellaneous bugfixes. Version 1.1.0 (2009-06-28) o Parametrized pair and path mask expressions in the filter language. o Transparent pipe mode allows to implement BGP route server with independent route policy for each peer. o Kernel route table synchronization does not allow overwriting of alien routes. o Configurable BGP import route limits. o During BGP error delay, incoming connections are rejected. o BGP route statistics. o Better support for multiple network addresses on OSPF interfaces. o As usual, miscellaneous bugfixes. Version 1.0.15 (2009-05-25) o FreeBSD and NetBSD port renewed. OpenBSD port introduced. o import/preimport 'show route' modifiers was renamed to export/preexport for consistency with filters. o Minor change in the grammar of 'interface' config option. o Many bugfixes in IPv6 BGP. o As usual, miscellaneous bugfixes. Version 1.0.14 (2009-04-28) o A lot of bugfixes in BGP, OSPF and core. o A bugfix in filters in the pipe protocol. It is recommended to check whether the new behavior of used pipe filters is consistent with expectations. o Reimplementation of prefix sets and a slight change in the meaning of some prefix set patterns. Version 1.0.13 (2009-03-14) o A lot of bugfixes in BGP, OSPF and core o A new syntax for BGP masks Version 1.0.12 (2008-11-12) o new BGP features: BGP MD5, ASN32, BGP route reflector o BGP bugfixes ... Version 1.0.9 (2004-07-15) o Minor bugfix in RIP o A lot of OSPF code rewritten, OSPF supports multiple areas, virtual links, MD5 authentication. It is fully compatible with rfc2329. Version 1.0.8 (2004-06-07) o A lot of bug fixes in RIP, OSPF and BGP (thanx to Andreas Steinmetz) o FreeBSD and NetBSD port introduced o Complete code clean up Version 1.0.7 (2003-08-20) o OSPF bug fixes Version 1.0.6 (2003-04-06) o No more byte order problems in RIP authentication. Thanks to Eric Leblond for a patch. o Fixed interoperability problems with Cisco and Zebra when talking IPv6 BGP. o Handle more primary addresses with different scopes gracefully. IPv6 needs that. o Comparison of prefixes in filters doesn't ignore their lengts. o As usually, OSPF bug fixes. o Documentation building tools now work with recent linuxdoc-tools. Version 1.0.5 (2001-06-09) o Minor cleanups in the libraries. o Removed a couple of warnings when compiling with newer glibc. o OSPF bug fixes. Version 1.0.4 (2000-09-04) o Fixed a serious bug in 1.0.3. Version 1.0.3 (2000-09-03) o OSPF works better on NBMA networks. Some configuration tags added. Version 1.0.2 (2000-08-24) o Minor bug fixes to OSPF. Version 1.0.1 (2000-06-22) o Updated documentation and fixed a couple of bugs. Version 1.0.0 (2000-06-09) o First stable release. Version 0.0.0 (2000-05-13) o First public development release.