1 Version 2.0.10 (2022-06-16)
2 o BGP performance improvements
3 o BFD: New 'strict bind' option
5 o Allow use of 240.0.0.0/4 as a private range
6 o BIRD client uses exit status to report errors
9 Version 2.0.9 (2022-02-09)
10 o BGP: Flowspec validation procedure
11 o Babel: MAC authentication support
12 o Routing table configuration blocks
13 o Optional prefix trie in routing table for faster LPM/interval queries
14 o CLI: New 'show route in <prefix>' command
15 o Filter: Faster (16-way) prefix sets
16 o Filter: MPLS label route attribute
17 o Filter: Operators to pick community components
18 o Filter: Operators to find minimum and maximum element of lists
19 o BGP: New 'free bind' option
20 o BGP: Log route updates that were changed to withdraws
21 o BGP: Improved 'invalid next hop' error reporting
22 o OSPF: Allow ifaces with host address as unnumbered PtP or PtMP ifaces
23 o OSPF: All packets on PtP networks should be sent to AllSPFRouters address
24 o Scripts for apkg-powered upstream packaging for deb and rpm
25 o Support for Blake2s and Blake2b hash functions
26 o Security keys / passwords can be entered in hexadecimal digits
27 o Memory statistics split into Effective and Overhead
28 o Linux: New option 'netlink rx buffer' to specify netlink socket buffer size
29 o BSD: Assume onlink flag on ifaces with only host addresses
34 For OSPF on PtP network, BIRD now sends all packets to multicast AllSPFRouters
35 address (as required in RFC 2328 8.1). This likely breaks setups with multiple
36 neighbors on a network configured as PtP, which worked in previous versions.
37 Such links should be configured as PtMP.
39 Since Linux 5.3, netlink socket can be flooded by route cache entries during
40 route table scan. This version mitigates that issue by using strict netlink
44 Version 2.0.8 (2021-03-18)
45 o Automatic channel reloads based on RPKI changes
46 o Multiple static routes with the same network
47 o Use bitmaps to keep track of exported routes
48 o Per-channel debug flags
49 o CLI commands show info from multiple protocols
50 o Linux: IPv4 routes with IPv6 nexthops
51 o Filter: Optimized redesign of prefix sets
52 o Filter: Improved type checking of user filters
53 o Filter: New src/dst accessors for Flowspec and SADR
54 o Filter: New 'weight' route attribute
55 o Filter: BGP path mask loop operator
56 o Filter: Remove quitbird command
57 o RIP: Demand circuit support (RFC 2091)
58 o BGP: New 'allow as sets' and 'enforce first as' options
59 o BGP: Support for BGP hostname capability
60 o BGP: Support for MD5SIG with dynamic BGP
61 o BFD: Optional separation of IPv4 / IPv6 BFD instances
62 o BFD: Per-peer session options
63 o RPKI: Allow build without libSSH
64 o RPKI: New 'ignore max length' option
65 o OSPF: Redesign of handling of unnumbered PtPs
66 o OSPF: Allow key id 0 in authentication
67 o Babel: Use onlink flag for routes with unreachable next hop
72 Automatic channel reloads based on RPKI changes are enabled by default,
73 but require import table enabled when used in BGP import filter.
75 BIRD now uses bitmaps to keep track of exported routes instead of
76 re-evaluation of export filters. That should improve speed and accuracy in
77 route export handling during reconfiguration, but takes some more memory.
79 Per-channel debug logging and some CLI commands (like 'show ospf neighbors')
80 defaulting to all protocol instances lead to some minor changes in log and
81 CLI output. Caution is recommended when logs or CLI output are monitored by
85 Version 2.0.7 (2019-10-11)
86 o BGP: Accumulated IGP metric (RFC 7311)
87 o Important filter reconfiguration bugfix
88 o Several other bugfixes
90 Version 2.0.6 (2019-09-10)
91 o RAdv: Solicited unicast RAs
92 o BGP: Optional Adj-RIB-Out
93 o BGP: Extended optional parameters length
94 o Filter: Sets and set expressions in path masks
95 o Several important bugfixes
97 Version 2.0.5 (2019-08-01)
98 o OSPF Graceful restart (RFC 3623, RFC 5187)
100 o BGP: Promiscuous ASN mode
101 o BGP: Mandatory option for channels
102 o BFD: Support for VRFs
103 o Graceful restart command
104 o Redesigned filtering code
109 Previous version introduced an error in handling of OSPF NSSA-LSA, causing
110 compatibility issues with proper implementations. The error is fixed in this
111 version, therefore there are compatibility issues in OSPF NSSA areas between
112 this and previous version.
115 Version 2.0.4 (2019-02-27)
116 o OSPF: Opaque LSAs (RFC 5250)
117 o OSPF: DN-bit handling (RFC 4576)
118 o Preferred route counters are back
119 o Important BGP bugfix
120 o Several bugfixes related to route propagation
121 o some minor bugfixes
123 Version 2.0.3 (2019-01-05)
124 o MRT table dumps (RFC 6396)
125 o BGP Long-lived graceful restart
126 o BGP: Optional import table (Adj-RIB-In)
127 o BGP: Extend 'next hop keep' and 'next hop self' options
128 o BGP: Improved VRF support
129 o OSPF: Authentication trailer for OSPFv3 (RFC 7166)
130 o Babel: New option to randomize router ID
131 o Filter: Custom route attributes
132 o Filter: Support for src accessor to SADR source prefix
133 o Filter: Support for VPN_RD sets
134 o Filter: Make ifname attribute modifiable
135 o Perf: Protocol to measure BIRD performance internally
136 o More verbose error messages in config processing
137 o Log file size limit / log rotation
142 Export of routes to RS EBGP (route server) sessions from other sources than
143 RS EBGP sessions was changed that ASN is no longer prepended to BGP_PATH in
144 that case. The change does not affect regular BGP configurations or regular
145 route servers that have only RS EBGP peers.
147 For BGP route servers and route reflectors, the default value of option
148 'next hop keep' was changed to a more appropriate value.
150 Attributes for OSPF and Babel metrics are no longer reset when exported to
151 these protocols and could be set anywhere in BIRD. As a result, OSPF metric is
152 kept when a route is reannounced between OSPF instances. Also, when route is
153 exported to OSPF with both ospf_metric1 and ospf_metric2 attributes it is now
154 propagated as OSPF-E2 route instead of as OSPF-E1 route.
156 Compiling BIRD with --enable-debug no longer automatically activates debug
157 mode (-d option) nor local mode (-l option). Also, debug mode with output to
158 file (-D option) no longer not forces foreground mode (-f option).
160 The configure script now uses standard option --runstatedir, the old option
161 --with-runtimedir is deprecated.
164 Version 2.0.2 (2018-03-22)
165 o Source-specific routing support for Linux kernel and Babel
166 o BGP: New option 'disable after cease'
167 o Filter: Allow silent filter execution
168 o Filter: Fixed stack overflow in BGP mask expressions.
173 Syntax prefix:netmask for IPv4 prefixes was dropped. Just use prefix/pxlen.
176 Version 2.0.1 (2018-01-16)
177 o Linux MPLS kernel support
178 o Better handling of channels inherited from templates
179 o Default EBGP Route Propagation Behavior without Policies (RFC 8212)
184 To satisfy requirements of RFC 8212, external BGP protocols now require
185 explicit configuration of import and export policies.
188 Version 2.0.0 (2017-12-11)
189 o Integrated IPv4 + IPv6 design
190 o Support for MPLS next hops
191 o Support for VPNv4 and VPNv6 networks
192 o Microsecond timers infrastructure
194 o Babel: Support for dual-stack IPv4/IPv6
195 o Babel: Many improvements and bugfixes
196 o Major BGP protocol redesign
197 o Full support for Multiprotocol BGP
198 o BGP multicast support (SAFI 2)
199 o BGP flowspec support (RFC 5575)
200 o BGP with MPLS labels (RFC 3107)
201 o BGP MPLS/VPN support (RFC 4364)
202 o BGP 6PE - IPv6 NLRI over IPv4 MPLS (RFC 4798)
203 o BGP IPv4 NLRI with an IPv6 Next Hop (RFC 5549)
204 o BGP Confederations (RFC 5065)
205 o BGP Shutdown communication (RFC 8203)
206 o BGP: Allow exchanging LOCAL_PREF with eBGP peers
207 o BGP: Allow to specify interface for regular sessions
208 o OSPF: Support of address families in OSPFv3
209 o OSPF: Enable ECMP and Link detection by default
210 o RAdv: Support for more specific routes (RFC 4191)
211 o RAdv: Proper handling of prefix retraction
212 o RIP: Enable ECMP and Link detection by default
213 o Redesign of RPKI handling
214 o New RPKI-Router protocol
215 o Static: Minor overhaul
216 o Static: Support for all new route types
217 o Kenrel: Default Linux kernel metric changed to 32
218 o Kernel: Fix IPv6 ECMP handling with Linux 4.11+
219 o Update of show route command
220 o BIRD client persistent history
227 Tables are now defined with appropriate net type keyword. Protocols and tables
228 are now connected by explicit channels, most related protocol options (table,
229 import, export, ...) are now channel options. See doc/bird.conf.example2 for
230 configuration examples. Some options were removed/replaced.
233 Version 1.6.3 (2016-12-21)
234 o Large BGP communities
235 o BFD authentication (MD5, SHA1)
236 o SHA1 and SHA2 authentication for RIP and OSPF
237 o Improved documentation
240 Version 1.6.2 (2016-09-29)
241 o Fixes serious bug introduced in the previous version
243 Version 1.6.1 (2016-09-22)
244 o Support for IPv6 ECMP
245 o Better handling of IPv6 tentative addresses
246 o Several updates and fixes in Babel protocol
247 o Filter: New !~ operator
248 o Filter: ASN ranges in bgpmask
249 o KRT: New kernel protocol option 'metric'
250 o KRT: New route attribute 'krt_scope'
251 o Improved BIRD help messages
252 o Fixes memory leak in BGP multipath
253 o Fixes handling of empty path segments in BGP AS_PATH
256 Version 1.6.0 (2016-04-29)
257 o Major RIP protocol redesign
258 o New Babel routing protocol
259 o BGP multipath support
260 o KRT: Add support for plenty of kernel route metrics
261 o KRT: Allow more than 256 routing tables
262 o Static: Allow to specify attributes for static routes
263 o Static: Support for BFD controlled static routes
264 o FreeBSD: Setup password for BGP MD5 authentication
265 o IO: Remove socket number limit
266 o Plenty of bug fixes
270 For RIP, most protocol options were moved to interface blocks.
273 Version 1.5.0 (2015-04-20)
274 o Major OSPF protocol redesign.
275 o OSPFv2 multi-instance extension (RFC 6549).
276 o BGP AS-wide unique router ID (RFC 6286).
277 o BGP enhanced route refresh (RFC 7313).
278 o Link state support in BGP.
279 o Latency tracking and internal watchdog.
280 o Uses high port range for BFD on BSD.
281 o Increase max symbol length to 64.
282 o Allows to define unnamed protocols from templates.
283 o Fixes two serious bugs in BGP.
284 o Several bugfixes and minor improvements.
285 o Several minor option changes:
286 - OSPF: Protocol-wide 'instance id' option added.
287 - BGP: Parameters to option 'neighbor' extended.
288 - BGP: Separate option 'interface' added.
289 - BGP: Option 'start delay time' renamed to 'connect delay time'.
290 - BGP: Option 'route limit' deprecated.
294 For OSPF, there are deep internal changes, but user-visible changes
295 are limited to log messages and minor changes in formatting of command
298 For BGP, version 1.5.0 is essentially a minor release. There are two
299 deprecated options ('start delay time' and 'route limit') and some
300 minor formatting changes.
303 Version 1.4.5 (2014-10-06)
304 o New 'show route noexport' command option.
305 o Port option for BGP sessions.
306 o Better constant handling in set literals.
307 o Better rate filtering of log messages.
308 o Several minor bugfixes.
310 Version 1.4.4 (2014-07-09)
311 o Extended OSPF multipath support.
312 o Default router preference for RAdv.
313 o Significant changes in socket layer.
314 o Important bugfix in BGP.
315 o Several minor bugfixes.
317 Version 1.4.3 (2014-04-14)
318 o Important bugfix in IPv6 BGP.
320 Version 1.4.2 (2014-04-02)
321 o Important bugfix in BFD.
323 Version 1.4.1 (2014-03-31)
324 o BGP add-path support (RFC draft).
325 o BGP graceful restart (RFC 4724).
326 o OSPF: many changes in socket layer.
327 o OSPF: support for secondary addresses in BSD.
328 o OSPF: names for vlink pseudointerfaces (vlinkX).
331 Version 1.4.0 (2013-11-25)
332 o BFD protocol (RFC 5880).
333 o BFD support for OSPF and BGP.
334 o New 'allow local as' option for BGP.
335 o Filters allows setting gw, ifname and ifindex.
336 o Filter operator 'delete/filter' extended to bgp_paths.
337 o Filter operator 'len' extended to [e]clists.
338 o BIRD client now allows shorthands for noninteractive commands.
339 o Flag -P for PID file support.
340 o Flag -f added to force BIRD to run in foreground.
341 o Protocol export/import/receive limits are checked during reconfiguration.
342 o Several bugfixes and minor improvements.
343 o Several minor but incompatible changes:
344 - IBGP is multihop by default.
345 - Changes primary address selection on BSD to the first one.
346 - Integers in filters are handled as unsigned.
347 - ISO 8601 time formats used by default.
348 - Import of device routes from kernel protocol allowed.
349 - Last state change now tracks just protocol state change.
350 - Minor changes to default router ID calculation.
352 Version 1.3.11 (2013-07-27)
353 o OSPF stub router option (RFC 3137).
354 o TTL security for OSPF and RIP.
355 o Protocol packet priority and traffic class handling.
356 o Multiple routing tables support for FreeBSD and OpenBSD.
357 o Extends constants to all filter data types.
358 o Implements eval command.
359 o 'bgppath ~ int set' filter operation.
362 Version 1.3.10 (2013-04-30)
363 o Lightweight BIRD client for embedded environments.
364 o Dynamic IPv6 router advertisements.
365 o New 'next hop keep' option for BGP.
366 o Smart default routing table for 'show route export/preexport/protocol'.
367 o Automatic router ID selection could be configured to use address of loopback.
368 o Allows configured global addresses of NBMA neighbors in OSPFv3.
369 o Allows BIRD commands from UNIX shell even in restricted mode.
370 o Route limits inherited from templates can be disabled.
371 o Symbol names enclosed by apostrophes can contain dots.
374 Version 1.3.9 (2013-01-11)
375 o BIRD can be configured to keep and show filtered routes.
376 o Separate receive and import limits.
377 o Several new reconfiguration cmd options (undo, timeout, check).
378 o Configurable automatic router ID selection.
379 o Dragonfly BSD support.
380 o Fixed OSPFv3 vlinks.
381 o Several minor bugfixes.
383 Version 1.3.8 (2012-08-07)
384 o Generalized import and export route limits.
385 o RDNSS and DNSSL support for RAdv.
386 o Include in config file support wildcards.
387 o History deduplication in BIRD client.
388 o New route attributes krt_source, krt_metric.
389 o Different instance ID support for OSPFv3.
390 o Real broadcast mode for OSPFv2.
391 o Several minor bugfixes.
393 Version 1.3.7 (2012-03-22)
394 o Route Origin Authorization basics.
395 o RIPng working again.
396 o Extended clist operations in filters.
397 o Fixes several bugs in BSD iface handling.
398 o Several minor bugfixes and enhancements.
400 Version 1.3.6 (2012-01-20)
401 o Important bugfix in BGP.
403 Version 1.3.5 (2012-01-10)
404 o Protocol templates.
405 o Deterministic MED option for BGP.
406 o Support for link-local addresses in BGP and static protocols.
409 Version 1.3.4 (2011-10-10)
410 o Static recursive routes.
413 Version 1.3.3 (2011-09-11)
415 o BGP extended communities.
417 o Configuration option "include" added (based on patch from Alexander V. Chernikov).
418 o Some minor bugfixes.
420 Version 1.3.2 (2011-07-08)
421 o Allows run with restricted privileges.
422 o Community list filter operation.
423 o Fixes several problems in filter syntax:
424 - Fixes several conflicts in the grammar.
425 - Fixes a bug in (a..b, c) pair patterns.
426 - Makes pair patterns orthogonal.
427 - Allows term expressions in pair patterns without additional ( ).
428 - Allows several comma separated values in switch cases.
431 Version 1.3.1 (2011-05-02)
432 o Added Linux kernel route attributes krt_prefsrc and krt_realm.
433 o Added BGP option 'med metric' related to MED handling.
434 o Allows to use constants from /etc/iproute2/rt_* files.
437 Version 1.3.0 (2011-03-31)
438 o Proper iBGP (can be used with IGP).
439 o Multipath support (OSPF and static).
440 o L2 link state detection.
441 o IPv6 router advertisements.
442 o Much improved OSPF reconfiguration.
443 o Point-to-MultiPoint interfaces (OSPF).
444 o Minor changes and improvements in config file grammar.
445 o Better community list matching.
446 o Changes default behavior of BGP IPv6 socket to v6only.
447 Use 'listen bgp dual' for the old behavior.
448 o Changes default for handling missing link-local addresses on
449 route servers. Use 'missing lladdr drop' for the old behavior.
450 o Important bugfix for OSPF.
451 o Several minor bugfixes.
453 Version 1.2.5 (2010-10-10)
454 o Several mostly minor bugfixes.
456 Version 1.2.4 (2010-08-03)
457 o Added 'show memory' command.
458 o Important bugfix in IPv6 BGP.
459 o Several minor bugfixes.
461 Version 1.2.3 (2010-06-01)
462 o Pattern matching for community lists.
463 o Many fixes in OSPF protocol (esp. in multi-areas and vlinks).
464 o Several minor bugfixes.
466 Version 1.2.2 (2010-04-10)
467 o Much better BSD kernel support (IPv6, alien routes, ...).
468 o Deep OSPF socket changes, fixes OSPFv2/v3 behavior on BSD.
469 o OSPFv2 in Linux now supports more non-stub IP prefixes
470 on one physical iface.
471 o Export of device routes to the kernel is more restricted.
472 o Routes with strange scope not allowed in BIRD routing tables.
473 o New filterable route attributes bgp_originator_id,
474 bgp_cluster_list and ospf_router_id.
475 o Restricted read-only CLI (option -r).
476 o Pattern matching for 'show protocols' command.
477 o BGP protocol details in 'show protocols all' command.
478 o Configurable syslog name (and default on IPv6 changed).
479 o Statistic counters for pipes were fixed.
480 o Many bugfixes in BGP, OSPF, filters, ...
482 Version 1.2.1 (2010-02-11)
483 o Option 'interpret communities' allows to override implicit handling
484 of well-known communities.
485 o 'configure' command uses route reload when filters change.
486 o Adds router ID of advertising router as OSPF route attribute.
487 o 'show route' command indicates primary route and shows OSPF Router ID.
488 o Configurable date/time formats.
489 o Symbol names can be enclosed by '' and so include hyphen and start with number.
490 o Several minor bugfixes.
492 Version 1.2.0 (2010-01-05)
493 o Implements OSPFv3 (IPv6 support for OSPF). Because the code is
494 shared with OSPFv2 and there were deep changes in it, we suggest
495 caution during upgrade to OSPF users. Some advanced features
496 (like NSSA, vlinks and authentication) are not yet implemented.
497 o Implements MRTdump - binary logging protocol compatible with other
498 routing daemons. Only BGP part of MRTdump is yet implemented.
499 o Changes default value of BGP attribute LOCAL_PREF from 0 to 100.
500 Use 'default bgp_local_pref 0' BGP protocol option for the old
501 behavior. The new value is suggested by RFC 4277.
502 o Changes default mode of pipes from opaque to transparent.
503 Use 'mode opaque' protocol option if the old behavior is needed.
504 Opaque pipe mode is deprecated and might be removed in the future.
506 Version 1.1.7 (2009-12-20)
507 o Implements BGP Route Refresh (RFC 2918).
508 o Implements route reload command.
509 o Deep changes and bugfixes in pipe protocol.
510 o Bugfix in OSPF premature aging of LSA.
511 o Bugfix in OSPF next hop calculation.
512 o Bugfix in core related to route withdraws.
513 o Several minor bugfixes.
515 Version 1.1.6 (2009-11-19)
516 o Implements RFC 5004 - prefer older external routes.
517 o There is a change how route servers handle missing IPv6 link
518 local addresses in next hop atribute - see 'missing lladdr'
520 o Several minor features (description field, parse check option).
521 o Several minor bugfixes.
523 Version 1.1.5 (2009-10-29)
524 o Better scalability of BGP.
525 o New accessors for AS path - first and last.
526 o Allows to set protocol-specific router ID.
527 o Allows import kernel 'onlink' routes.
528 o Endianity check in buildsystem changed.
530 Version 1.1.4 (2009-10-02)
531 o BGP passive option.
532 o Several minor bugfixes.
534 Version 1.1.3 (2009-09-11)
536 o Bugfix in BGP related to AS2->AS4 conversion.
538 Version 1.1.2 (2009-08-23)
539 o Allow more kernel routing tables in IPv6.
542 Version 1.1.1 (2009-08-14)
543 o 'more' style paging in BIRD client.
544 o Important core bug fixed.
545 o Portability to non-x86 related bugfixes.
546 o As usual, miscellaneous bugfixes.
548 Version 1.1.0 (2009-06-28)
549 o Parametrized pair and path mask expressions in the filter language.
550 o Transparent pipe mode allows to implement BGP route server with
551 independent route policy for each peer.
552 o Kernel route table synchronization does not allow overwriting
554 o Configurable BGP import route limits.
555 o During BGP error delay, incoming connections are rejected.
556 o BGP route statistics.
557 o Better support for multiple network addresses on OSPF interfaces.
558 o As usual, miscellaneous bugfixes.
560 Version 1.0.15 (2009-05-25)
561 o FreeBSD and NetBSD port renewed. OpenBSD port introduced.
562 o import/preimport 'show route' modifiers was renamed to export/preexport
563 for consistency with filters.
564 o Minor change in the grammar of 'interface' config option.
565 o Many bugfixes in IPv6 BGP.
566 o As usual, miscellaneous bugfixes.
568 Version 1.0.14 (2009-04-28)
569 o A lot of bugfixes in BGP, OSPF and core.
570 o A bugfix in filters in the pipe protocol. It is recommended to
571 check whether the new behavior of used pipe filters is consistent
573 o Reimplementation of prefix sets and a slight change in the meaning
574 of some prefix set patterns.
576 Version 1.0.13 (2009-03-14)
577 o A lot of bugfixes in BGP, OSPF and core
578 o A new syntax for BGP masks
580 Version 1.0.12 (2008-11-12)
581 o new BGP features: BGP MD5, ASN32, BGP route reflector
586 Version 1.0.9 (2004-07-15)
587 o Minor bugfix in RIP
588 o A lot of OSPF code rewritten, OSPF supports multiple areas,
589 virtual links, MD5 authentication. It is fully compatible
592 Version 1.0.8 (2004-06-07)
593 o A lot of bug fixes in RIP, OSPF and BGP (thanx to Andreas Steinmetz)
594 o FreeBSD and NetBSD port introduced
595 o Complete code clean up
597 Version 1.0.7 (2003-08-20)
600 Version 1.0.6 (2003-04-06)
602 o No more byte order problems in RIP authentication. Thanks to
603 Eric Leblond <eleblond@init-sys.com> for a patch.
604 o Fixed interoperability problems with Cisco and Zebra when talking
606 o Handle more primary addresses with different scopes gracefully.
608 o Comparison of prefixes in filters doesn't ignore their lengts.
609 o As usually, OSPF bug fixes.
610 o Documentation building tools now work with recent linuxdoc-tools.
612 Version 1.0.5 (2001-06-09)
614 o Minor cleanups in the libraries.
615 o Removed a couple of warnings when compiling with newer glibc.
618 Version 1.0.4 (2000-09-04)
620 o Fixed a serious bug in 1.0.3.
622 Version 1.0.3 (2000-09-03)
624 o OSPF works better on NBMA networks. Some configuration tags added.
626 Version 1.0.2 (2000-08-24)
628 o Minor bug fixes to OSPF.
630 Version 1.0.1 (2000-06-22)
632 o Updated documentation and fixed a couple of bugs.
634 Version 1.0.0 (2000-06-09)
636 o First stable release.
638 Version 0.0.0 (2000-05-13)
640 o First public development release.