Netlink: MPLS routes in kernel
Anyway, Bird is now capable to insert both MPLS routes and MPLS encaproutes into kernel.
It was (among others) needed to define platform-specific AF_MPLS to 28as this constant has been assigned in the linux kernel.
No support for BSD now, it may be added in the future.
Static: Protocol rework wrt. struct nexthop changes; MPLS label support
MPLS: added net_addr_mpls variant of net_addr
Nexthop: Support for label stack in nest
Removing (struct rta)->cast. Never used.
Merged multipath and single-path data structures.
Dropped struct mpnh and mpnh_*()Now struct nexthop exists, nexthop_*(), and also included struct nexthopinto struct rta.
Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is neededto distinguish between these two cases, RTD_DEVICE is equivalent to...
Doc: Example simple config
Tests: Fix build
Client: No need for birdlib functions
Basic flow specification support (RFC 5575)
Add flow4/flow6 network and rt-table type and operations, config grammarand static protocol support.
Squashed flowspec branch from Pavel Tvrdik.
RPKI: fixed some of the extended warnings
Merge branch 'int-new-rpki-squashed' (early part) into int-new
BGP redesign
Integrated and extensible BGP with generalized AFI handling,support for IPv4+IPv6 AFI and unicast+multicast SAFI.
LibSSH may be switched off together with RPKI
SSH: Commented quirk based on undocumented behavior of LibSSH
Make: upgrade Babel makefiles
filter/test.conf: add ROA check and operator tests
Add `.maxlen' operator to all ROA prefixes in filters
Example: bird> eval (1.2.0.0/16 max 20 as 1234).maxlen 20
Todo: Should be described in user docs
Add `.asn' operator to all ROA prefixes in filters
Example: bird> eval (1.2.0.0/16 max 20 as 1234).asn 1234
Check table type at `show route for ...'
RPKI protocol with one cache server per protocol
The RPKI protocol (RFC 6810) using the RTRLib(http://rpki.realmv6.org/) that is integrated insidethe BIRD's code.
Implemeted transports are: - unprotected transport over TCP - secure transport over SSHv2...
Client: Includes stdlib.h for malloc()
filter/test.conf: Minor changes in order of calls
nest/a-path.c: Fix description of BS constant (block size)
conf/conf.h: Fix a description of a variable in a structure
conf/conf.c: Revert some includes removing
Remove filter/test_bgp_filtering.conf file
It was an example filtering configuration from BIRD's wiki.
Merge test6.conf IPv6 tests into test.conf
filter/test.conf: Extend tests
filter/test.conf: Reorder tests
Tests are sorted from trivial tests to more complex tests
filter/test.conf: Replace print func with assert and format
Birdtest: Add function format in grammar for stringify expression
Add lp_strdup function for string duplication on linpool
Birdtest: Remove bt_assert command from term
The bt_assert function does not return any value, so it was useless tohave a option in term definition.
Lexer: Add a quotation mark back while parsing quotes
Thanks to Ondrej Zajicek for code.
Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0
Birdtest: Put hard new lines for strict line width
This patch ensures width of output lines from testing framework (notdebug output). So output piped lined into file that has default width 80cols is now correctly wrapped.
birdtest: Fix no-forked mode in trie_test
Filter: Add long community tests
Based on Pavel Tvrdik's int-test-lc branch.
Unit Testing for BIRD
- Unit Testing Framework (BirdTest) - Integration of BirdTest into the BIRD build system - Tests for several BIRD modules
Based on squashed Pavel Tvrdik's int-test branch, updated for current int-new branch.
Merge branch 'master' into int-new
Minor code cleanups
Merge tag 'v1.6.2' into int-new
Add missing extern
BFD: Authentication
Implement BFD authentication (part of RFC 5880). Supports plaintextpasswords and cryptographic MD5 / SHA-1 authentication.
Based on former commit from Pavel Tvrdik
OSPF: Use message authentication interface
RIP: Use message authentication interface
DOC: Password algorithm option
Nest: Add support for MAC algorithms in grammar
Add generic message authentication interface
Add generic interface for generating and verifying MACs (messageauthentication codes). Replace multiple HMAC implementation witha generic one.
BSD: Fix build on OpenBSD broken by previous commit
Build: switch on -Wextra, get rid of most of the warnings
There are several unresolved -Wmissing-field-initializers on olderversions of GCC than 5.1, all of them false positive.
Log: Fix broken syslog name
BIRD passed string from configuration to openlog(), which kept itinternally. After reconfiguration the old string was freed, thereforeopenlog had invalid copy.
Thanks to Chris Caputo for the original patch.
IANA assigned a different number to large BGP communities - changed.
Filter: Minor formatting changes in test.conf
Clist: The add() function will append a new value
The add() function used to prepend a new community to clist, but afterthis fix the add() function appends new community.
Filter: Expand testing of large community sets
Fixed memory bloating on kernel merge paths together with export filter.
Some memory was being allocated from bad linpool, not from the given oneas they should.
Thanks to Madhu and Justin Cattle for reporting this.
Doc: Change debug to { flag1|flag2|flag3 [, ...] } style
Thanks to Micah Anderson for bug report and Ondrej Zajicek for the idea!
Nest: Remove trailing whitespaces
Doc: Fix deprecated unescaped braces in perl script
This commit should fix warning `make docs'
./sgml2html bird.sgml Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\\nameurl{ <-- HERE (.*)}{(.*)}/ at fmt_latex2e.pl line 287.
Tree/Trie: Check the end of buffer
We set buffer->pos to buffer->end in function buffer_print() whenbvsnprintf() failed, so there would be uninitialized memory betweenthe old buffer->pos and the current buffer->pos.
Doc: Add tag for links to RFCs
Doc: Fix inline <htmlurl></htmlurl>
Don't make space before or after link name.
Doc: Do not use symlinks for files
Doc: Generate one-sided version
This removes jumping offset for odd and even pages for binding book.
Doc: Use [table t] or [table name]
Doc: Fix unnecessary special chars
Doc: Enable break lines in <tag></tag>
Doc: Daemon command-line options alphabet order
Doc: Add command-line options --version, --help
Doc: Add labels to all chapters and options
Doc: Generate clickable PDF
Doc: Fix whitespaces
Filter: fix missing separator
Nest: Fix signedness of large communities
Doc: Documentation for large communities
Filter: large community sets
Add support for lc sets to filter code. Grammar of (small) community setshas to be updated to avoid parser collisions.
BGP: Support for large communities
Add support for large communities (draft-ietf-idr-large-community),96bit alternative to RFC 1997 communities.
Thanks to Matt Griswold for the original patch.
NEWS and version update
Docs: fix BFD label
BFD headline will appear in Table of Contents again.
Kernel socket missing err_hook fix
Thanks to Tim Weippert for bugreport.
Add !~ operator to filter grammar
Remove cvsignore
We have gitignore
KRT: Add krt_scope attribute
Add a new route attribute, krt_scope, to expose the Linux kernel routescope. Constants from /etc/iproute2/rt_scopes (prefixed by "ips_") areexpected to be used with the attribute. Both import and export aresupported.
Also, the patch fixes device route export to the kernel, by setting link...
Main: Improve BIRD help messages
Add stdlib.h to client/commands.c
BFD: Fix invalid read from pollfd array
It is possible that sockets_add() are called between sockets_prepare()and sockets_fire() during poll loop in birdloop_main(), so we need touse loop->poll_fd.used instead of loop->sock_num to find the last field.
rt-table: Fix kernel protocol export filter memory bug
Kernel protocol calls rt_export_merged(), which used @rte_update_pool fortemporary allocations, supposing it is called from other functions fromrt-table.c that handles locking and flushing of the linpool. Therefore,...
Filter: Prefer xmalloc/xfree to malloc/free
KRT: Add kernel metric protocol option
Kernel routes with different metrics do not clash with each other,therefore using dedicated metric value is a reliable way to avoidoverwriting routes from other sources (e.g. kernel device routes).
Although kernel route metric could already be set as a route attribute by...
KRT: Support for IPv6 ECMP
Linux represents IPv6 ECMP routes as a sequence of unipath routes withthe same prefix. We have to translate between our representation (oneroute with multipath next hop) and the Linux representation in bothdirections.
Proper learning of alien IPv6 ECMP routes still not supported....
Nest: Keep multipath next hops sorted
KRT: Fix trivial error
KRT: Forbid path merging on BSD
We support ECMP routes only on Linux. Exported routes are checked inkrt_capable(), but a route generated during path merging avoids thischeck.
Merge remote-tracking branch 'origin/misc-fixes'
Minor README update
Whitespace fixes
Add link to INSTALL in README file