]>
git.ipfire.org Git - thirdparty/bird.git/log
Pavel Tvrdik [Mon, 2 May 2016 13:35:13 +0000 (15:35 +0200)]
MRTDump: check return value at writing dump into file
Pavel Tvrdik [Mon, 2 May 2016 12:03:55 +0000 (14:03 +0200)]
Merge branch 'master' into mrtdump
Pavel Tvrdik [Mon, 2 May 2016 12:00:21 +0000 (14:00 +0200)]
Merge branch 'master' into mrtdump
Pavel Tvrdik [Mon, 2 May 2016 11:54:29 +0000 (13:54 +0200)]
Copy hash functions md5 and sha* from master branch
Ondrej Zajicek (work) [Fri, 29 Apr 2016 11:25:46 +0000 (13:25 +0200)]
Doc: Minor fix
Ondrej Zajicek (work) [Fri, 29 Apr 2016 11:07:21 +0000 (13:07 +0200)]
NEWS and version update
Ondrej Zajicek (work) [Thu, 28 Apr 2016 16:01:40 +0000 (18:01 +0200)]
Add the Babel routing protocol (RFC 6126)
This patch implements the IPv6 subset of the Babel routing protocol.
Based on the patch from Toke Hoiland-Jorgensen, with some heavy
modifications and bugfixes.
Thanks to Toke Hoiland-Jorgensen for the original patch.
Pavel Tvrdik [Wed, 27 Apr 2016 08:12:26 +0000 (10:12 +0200)]
MRT Dump: Fix bug with longer filename formats
Length of filename format is based on PATH_MAX. Better treating with
filename format buffer size overflow, no segmentation fault.
Ondrej Zajicek (work) [Wed, 13 Apr 2016 12:30:28 +0000 (14:30 +0200)]
BSD: Add the IPsec SA/SP database entries control
Add code for manipulation with TCP-MD5 keys in the IPsec SA/SP database
at FreeBSD systems. Now, BGP MD5 authentication (RFC 2385) keys are
handled automatically on both Linux and FreeBSD.
Based on patches from Pavel Tvrdik.
Ondrej Zajicek (work) [Sun, 10 Apr 2016 22:41:10 +0000 (00:41 +0200)]
Documentation update
Ondrej Zajicek (work) [Fri, 8 Apr 2016 13:10:57 +0000 (15:10 +0200)]
Direct: Implement check link for direct protocol
When enabled, direct protocol generates routes only if the underlying
link state is up.
Ondrej Zajicek (work) [Thu, 7 Apr 2016 10:20:45 +0000 (12:20 +0200)]
Main: Add local option
Add option that changes default paths for config file and control socket
to the current working directory.
Ondrej Zajicek (work) [Wed, 6 Apr 2016 23:10:24 +0000 (01:10 +0200)]
Nest: Reset export route counter during graceful restart
Counter exp_routes is increased during initial route feed after GR
recovery, so it has to start with zero, otherwise BIRD will end with
double value in exp_routes.
Ondrej Zajicek (work) [Wed, 6 Apr 2016 09:57:28 +0000 (11:57 +0200)]
IO: Avoid multiple event cycles in one loop cycle.
Event cycle may took too much time and trigger next timer events, so
avoid cycling between timer and event cycles inside the loop cycle.
Ondrej Zajicek (work) [Wed, 6 Apr 2016 09:49:34 +0000 (11:49 +0200)]
IO: Replace RX priority heuristic with explicit mark
In BIRD, RX has lower priority than TX with the exception of RX from
control socket. The patch replaces heuristic based on socket type with
explicit mark and uses it for both control socket and BGP session waiting
to be established.
This should avoid an issue when during heavy load, outgoing connection
could connect (TX event), send open, but then failed to receive OPEN /
establish in time, not sending notifications between and therefore
got hold timer expired error from the neighbor immediately after it
finally established the connection.
Ondrej Zajicek (work) [Wed, 23 Mar 2016 17:25:15 +0000 (18:25 +0100)]
KRT: Fix route learn scan when route changed
When a kernel route changed, function krt_learn_scan() noticed that and
replaced the route in internal kernel FIB, but after that, function
krt_learn_prune() failed to propagate the new route to the nest, because
it confused the new route with the (removed) old best route and decided
that the best route did not changed.
Wow, the original code (and the bug) is almost 17 years old.
Jan Moskyto Matejka [Wed, 30 Mar 2016 14:21:32 +0000 (16:21 +0200)]
IO/Poll: fix mistaken variable merge
The events variable is used in the short loop decision. The reasons are
not much clear, keeping this to keep the former behaviour.
Jan Moskyto Matejka [Wed, 23 Mar 2016 00:45:37 +0000 (01:45 +0100)]
Birdlib: Modify lists to avoid problems with pointer aliasing rules
The old linked list implementation used some wild typecasts and required
GCC option -fno-strict-aliasing to work properly. This patch fixes that.
However, we still keep the option due to other potential problems.
(Commited by Ondrej Santiago Zajicek)
Ondrej Zajicek (work) [Tue, 22 Mar 2016 12:35:40 +0000 (13:35 +0100)]
Birdlib: Do cleanups after remove/free
To avoid byzantine behavior in case of some errors, linked lists are
cleared after rem_node() and resource headers are cleared after rfree().
Ondrej Zajicek (work) [Tue, 22 Mar 2016 11:51:31 +0000 (12:51 +0100)]
OSPF: Fix bogus LSA ID collisions between received and originated LSAs
After restart, LSAs locally originated by the previous instance are
received from neighbors. They are installed to LSA db and flushed. If
export of a route triggers origination of a new external LSA before flush
of the received one is complete, the check in ospf_originate_lsa() causes
origination to fail (because en->nf is NULL for the old LSA and non-NULL
for the new LSA). The patch fixes this by updating the en->nf for LSAs
being flushed (as is already done for empty ones). Generally, en->nf
field deserves some better description in the code.
Thanks to Jigar Mehta for analyzing the problem.
Ondrej Zajicek (work) [Wed, 9 Mar 2016 16:51:50 +0000 (17:51 +0100)]
Minor changes in documentation
Ondrej Zajicek (work) [Wed, 9 Mar 2016 16:37:44 +0000 (17:37 +0100)]
OSPF: Fix reading from freed memory
Thanks to Pavel Tvrdik for noticing it.
Jan Moskyto Matejka [Tue, 22 Mar 2016 12:23:55 +0000 (13:23 +0100)]
Merge remote-tracking branch 'origin/poll'
Jan Moskyto Matejka [Fri, 18 Mar 2016 10:44:28 +0000 (11:44 +0100)]
Unix: Substituted select -> poll also in congestion checker
It does strange things when even one fd larger than FD_SETSIZE is
passed to select().
Pavel Tvrdík [Tue, 15 Mar 2016 13:55:40 +0000 (14:55 +0100)]
RIP: fix typo in configuration at rx length opt
Pavel Tvrdík [Tue, 15 Mar 2016 09:29:32 +0000 (10:29 +0100)]
BGP: Add documentaion for extended messages
Jan Moskyto Matejka [Tue, 15 Mar 2016 13:57:49 +0000 (14:57 +0100)]
Poll: Prevent the improbable case of EAGAIN after POLLIN
Jan Moskyto Matejka [Wed, 9 Mar 2016 11:12:02 +0000 (12:12 +0100)]
Unix: Rework of select-loop to poll-loop
This should lift the limit of FD_SETSIZE and allow more than 1024 fd's.
FD_SETSIZE limit doesn't matter now when creating new sockets.
Jan Moskyto Matejka [Thu, 25 Feb 2016 17:25:53 +0000 (18:25 +0100)]
Merge branch 'master' of gitlab.labs.nic.cz:labs/bird
Ondrej Zajicek (work) [Thu, 25 Feb 2016 17:16:59 +0000 (18:16 +0100)]
OSPF: Multicast ability is irrelevant for stub interfaces
Jan Moskyto Matejka [Wed, 20 Jan 2016 14:23:17 +0000 (15:23 +0100)]
All the current pthread implementations are OK and working with us.
No more need to disable pthread for specific BSD's.
Ondrej Zajicek (work) [Tue, 16 Feb 2016 16:33:58 +0000 (17:33 +0100)]
Filter: Implement last_nonaggregated operator on bgp_path
Ondrej Zajicek (work) [Thu, 11 Feb 2016 20:53:55 +0000 (21:53 +0100)]
Unix: Fix bug in syslog name handling
Pointer to current_log_name has to be changed even if the name is the
same, because the old one will be invalid/freed after reconfiguration.
Ondrej Zajicek (work) [Thu, 11 Feb 2016 15:38:28 +0000 (16:38 +0100)]
BGP: Fix bug in incoming connection handling
When a BGP session was established by an outgoing connection with
Graceful Restart behavior negotiated, a pending incoming connection in
OpenSent state, and another incoming connection was received, then the
outgoing connection (and whole BGP session) was closed, but the old
incoming connection was just overwritten by the new one. That later
caused a crash when the hold timer from the old connection fired.
Pavel Tvrdík [Tue, 5 Jan 2016 18:48:35 +0000 (19:48 +0100)]
MRT Table Dump: draft-petrie-grow-mrt-add-paths
Add support for MRT Table Dump draft-petrie-grow-mrt-add-paths
Pavel Tvrdík [Tue, 5 Jan 2016 16:53:58 +0000 (17:53 +0100)]
MRT Dump: Support for draft-petrie-grow-mrt-add-paths
Thanks to Colin Petrie for patch.
Pavel Tvrdík [Tue, 5 Jan 2016 17:05:06 +0000 (18:05 +0100)]
MRT Table Dump: Fix size of AS_PATH in BGP Attributes
All AS numbers in the AS_PATH attribute in RIB Entries MUST be encoded as 4-byte AS numbers.
-- RFC 6396
Thanks to Colin Petrie for noticing us about this bug in BIRD!
Ondrej Zajicek (work) [Wed, 25 Nov 2015 14:52:58 +0000 (15:52 +0100)]
BGP: Update capability number from IANA for extended messages
Pavel Tvrdík [Fri, 13 Nov 2015 15:08:28 +0000 (16:08 +0100)]
MD5: Mormalize naming style
Ondrej Zajicek (work) [Tue, 24 Nov 2015 14:21:11 +0000 (15:21 +0100)]
Merge branch 'master' into rip-new
Jan Moskyto Matejka [Tue, 10 Nov 2015 13:59:41 +0000 (14:59 +0100)]
Netlink: attribute validation before parsing
Wanted netlink attributes are defined in a table, specifying
their size and neediness. Removing the long conditions that did the
validation before.
Also parsing IPv4 and IPv6 versions regardless on the IPV6 macro.
Ondrej Zajicek (work) [Tue, 24 Nov 2015 12:52:26 +0000 (13:52 +0100)]
Some consts for function arguments
Patch from Pavel Tvrdik
Ondrej Zajicek (work) [Tue, 24 Nov 2015 12:47:28 +0000 (13:47 +0100)]
Minor changes to SHA hash functions
Ondrej Zajicek (work) [Mon, 23 Nov 2015 10:32:18 +0000 (11:32 +0100)]
Merge commit 'origin/crypto-hash^'
Ondrej Zajicek (work) [Mon, 23 Nov 2015 10:13:40 +0000 (11:13 +0100)]
Nest: Fix bug in device proto
If an interface address notification is received during device protocol
shutdown/restart, BIRD crashed.
Thanks to Wei Huang for the bugreport.
Pavel Tvrdík [Fri, 13 Nov 2015 15:14:36 +0000 (16:14 +0100)]
Add SHA-384/512 and HMAC-SHA-384/512 crypto hash
Pavel Tvrdík [Fri, 13 Nov 2015 15:13:15 +0000 (16:13 +0100)]
Add SHA-224/256 and HMAC-SHA-224/256 crypto hash
Pavel Tvrdík [Fri, 13 Nov 2015 15:11:51 +0000 (16:11 +0100)]
Add SHA1 and SHA1-HMAC crypto hash
Pavel Tvrdík [Fri, 13 Nov 2015 15:10:33 +0000 (16:10 +0100)]
Add get_u64() and put_u64() into lib/unaligned.h
Pavel Tvrdík [Mon, 9 Nov 2015 08:14:26 +0000 (09:14 +0100)]
Fix compiling with --enable-debug option
Jan Moskyto Matejka [Tue, 3 Nov 2015 13:42:41 +0000 (14:42 +0100)]
Netlink: Allow more than 256 routing tables.
Since 2.6.19, the netlink API defines RTA_TABLE routing attribute to
allow 32-bit routing table IDs. Using this attribute to index routing
tables at Linux, instead of 8-bit rtm_table field.
Ondrej Zajicek (work) [Mon, 9 Nov 2015 00:01:12 +0000 (01:01 +0100)]
Nest: Fixes bug in missing cleanup during table removal
When a table is removed during reconfiguration, a reference was not
cleared in the old configuration, which breaks undo.
Ondrej Zajicek (work) [Sun, 8 Nov 2015 23:42:02 +0000 (00:42 +0100)]
Conf: Fixes bug in symbol lookup during reconfiguration
Symbol lookup by cf_find_symbol() not only did the lookup but also added
new void symbols allocated from cfg_mem linpool, which gets broken when
lookups are done outside of config parsing, which may lead to crashes
during reconfiguration.
The patch separates lookup-only cf_find_symbol() and config-modifying
cf_get_symbol(), while the later is called only during parsing. Also
new_config and cfg_mem global variables are NULLed outside of parsing.
Ondrej Zajicek (work) [Tue, 3 Nov 2015 10:27:27 +0000 (11:27 +0100)]
IO: Fix the previous bugfix
I should check it after making some trivial changes. The original patch
from Alexander has it right.
Ondrej Zajicek (work) [Tue, 3 Nov 2015 10:08:57 +0000 (11:08 +0100)]
IO: Handle fd values too big for select()
If the number of sockets is too much for select(), we should at least
handle it with proper error messages and reject new sockets instead of
breaking the event loop.
Thanks to Alexander V. Chernikov for the patch.
Ondrej Zajicek (work) [Sat, 17 Oct 2015 12:44:34 +0000 (14:44 +0200)]
Merge branch 'master' into rip-new
Ondrej Zajicek (work) [Sat, 17 Oct 2015 12:36:53 +0000 (14:36 +0200)]
Minor changes
Ondrej Zajicek (work) [Mon, 5 Oct 2015 10:14:50 +0000 (12:14 +0200)]
Major RIP redesign
The new RIP implementation fixes plenty of old bugs and also adds support
for many new features: ECMP support, link state support, BFD support,
configurable split horizon and more. Most options are now per-interface.
Ondrej Zajicek [Wed, 19 Aug 2015 09:16:23 +0000 (11:16 +0200)]
OSPF: Fixes some issues with link detection
Thanks to Bernardo Figueiredo and Israel G. Lugo for the bugreport.
Pavel Tvrdík [Mon, 3 Aug 2015 11:06:55 +0000 (13:06 +0200)]
MRT Table Dump: Bugfix creating filename from fmt
- At *BSD systems a command 'date +%f' returns only 'f' without percent
- Small fixes for *BSD systems
Pavel Tvrdík [Mon, 3 Aug 2015 11:03:40 +0000 (13:03 +0200)]
MRT Table Dump: Bugfix buffer memory reallocation
Pavel Tvrdík [Wed, 29 Jul 2015 07:04:22 +0000 (09:04 +0200)]
Birdtest: Fix non-debug compilation of IP tests
Pavel Tvrdík [Tue, 28 Jul 2015 16:18:00 +0000 (18:18 +0200)]
MRT Table Dump: Skip empty RIB Tables
Pavel Tvrdík [Tue, 28 Jul 2015 15:31:44 +0000 (17:31 +0200)]
Merge branch 'master' into mrtdump
Pavel Tvrdík [Tue, 26 May 2015 10:40:40 +0000 (12:40 +0200)]
Integrate MRT Table Dump (RFC 6396) into BIRD
Asynchronous periodic mrt table dumps of routes configuration in bird.conf:
mrtdump routes {
[ filename "<format>"; ]
[ table <name>|"<wildcard name>"; ]
[ period <num>; ]
[ filter <filter>|where <condition>; ]
}
Synchronous mrt table dumps of routes in BIRD client:
mrtdump routes [table <name>|"<wildcard name>"] [to "<filename format>"] [filter <filter>|where <condition>]
Ondrej Zajicek [Tue, 28 Jul 2015 13:08:21 +0000 (15:08 +0200)]
Nest: Fixes one of previous commit
Pavel Tvrdík [Tue, 19 May 2015 08:47:14 +0000 (10:47 +0200)]
Add core support for MRT Table Dump (RFC 6396)
Ondrej Zajicek [Tue, 28 Jul 2015 10:56:51 +0000 (12:56 +0200)]
Minor update to test commits
Ondrej Zajicek [Tue, 28 Jul 2015 10:35:12 +0000 (12:35 +0200)]
Netlink: Fixes uninitialized variable
Thanks to Pavel Tvrdik for the bugfix
Ondrej Zajicek [Fri, 24 Jul 2015 16:02:07 +0000 (18:02 +0200)]
Static: Support for BFD controlled static routes
Ondrej Zajicek [Mon, 20 Jul 2015 09:12:02 +0000 (11:12 +0200)]
Static: Allows to specify attributes for static routes
The patch adds suport for specifying route attributes together with
static routes, e.g.:
route 10.1.1.0/24 via 10.0.0.1 { krt_advmss = 1200; ospf_metric1 = 100; };
Ondrej Zajicek [Sun, 19 Jul 2015 09:39:24 +0000 (11:39 +0200)]
BFD: Fixes crash after socket error
Thanks to Thomas King for the bugreport.
Ondrej Zajicek [Sat, 18 Jul 2015 21:15:04 +0000 (23:15 +0200)]
Simplify build messages
Thanks to Christian Tacke for the original patch.
Ondrej Zajicek [Sat, 18 Jul 2015 17:30:35 +0000 (19:30 +0200)]
Nest: Fixes symbols in router id
Thanks to Peter Hudec for noticing the problem.
Ondrej Zajicek [Sat, 18 Jul 2015 17:05:11 +0000 (19:05 +0200)]
Documentation update
Ondrej Zajicek [Sat, 18 Jul 2015 11:38:21 +0000 (13:38 +0200)]
BGP: Extended messages support
Implements draft-ietf-idr-bgp-extended-messages-10, for now
undocumented and with temporary private capability number.
Ondrej Zajicek [Sat, 18 Jul 2015 11:05:05 +0000 (13:05 +0200)]
Direct: Fixes behavior for the same routes on different interfaces
Thanks to Andrew (seti.kr.ua) for the bug report.
Pavel Tvrdík [Tue, 16 Jun 2015 13:13:53 +0000 (15:13 +0200)]
SHA256: Remove 32-bit move at the 32-bit number
Ondrej Zajicek [Mon, 8 Jun 2015 00:20:43 +0000 (02:20 +0200)]
BGP multipath support
Kernel option 'merge paths' allows to merge routes exported to kernel
protocol (currently BGP and static routes) to multipath routes.
Ondrej Zajicek [Thu, 4 Jun 2015 09:35:26 +0000 (11:35 +0200)]
Fixes subtle bug in temporary attribute handling
In some cases, export filter accessed attributes of a different route.
Ondrej Zajicek [Wed, 3 Jun 2015 09:58:46 +0000 (11:58 +0200)]
KRT: Fixes some minor bugs in kernel protocol
Ondrej Zajicek [Sun, 31 May 2015 21:25:33 +0000 (23:25 +0200)]
Moving of mulipath merging code from OSPF to nest
Ondrej Zajicek [Sun, 31 May 2015 09:29:53 +0000 (11:29 +0200)]
Fixes bug in pipe feeding when filtered routes are kept in table
Pavel Tvrdík [Tue, 19 May 2015 06:53:34 +0000 (08:53 +0200)]
unsigned [int] -> uint
Pavel Tvrdík [Tue, 19 May 2015 06:14:04 +0000 (08:14 +0200)]
unsgined char -> byte
Ondrej Filip [Mon, 1 Jun 2015 08:41:17 +0000 (10:41 +0200)]
Typo fix by Hans van Kranenburg
Ondrej Zajicek [Fri, 22 May 2015 09:12:48 +0000 (11:12 +0200)]
Fixes unnamed protocols from templates
Pavel Tvrdík [Tue, 19 May 2015 08:52:22 +0000 (10:52 +0200)]
SHA256: Remove typedef for sha_transform_fn
Pavel Tvrdík [Tue, 19 May 2015 07:57:10 +0000 (09:57 +0200)]
MD5, SHA1/256/512 libraries: fixing code style
Pavel Tvrdík [Tue, 19 May 2015 06:53:34 +0000 (08:53 +0200)]
unsigned [int] -> uint
Pavel Tvrdík [Tue, 19 May 2015 06:14:04 +0000 (08:14 +0200)]
unsgined char -> byte
Pavel Tvrdík [Tue, 19 May 2015 06:00:10 +0000 (08:00 +0200)]
Merge branch 'master' into birdtest
Ondrej Zajicek [Sat, 16 May 2015 22:54:33 +0000 (00:54 +0200)]
Simplify flushing process
Related to changes from previous patch.
Ondrej Zajicek [Sat, 16 May 2015 18:17:59 +0000 (20:17 +0200)]
Fix minor issue in pipe route propagation
In some circumstances during reconfiguration, routes propagated by pipes
to other tables may hang there even after the primary routes are removed.
There is already a workaround for this issue in the code which removes
these stale routes by flush process when source protocols are shut down.
This patch is a cleaner fix and allows to simplify the flush process
Ondrej Zajicek [Wed, 13 May 2015 11:19:26 +0000 (13:19 +0200)]
Fix in the last commit
Pavel Tvrdík [Wed, 13 May 2015 09:41:03 +0000 (11:41 +0200)]
Merge branch 'master' into birdtest
Pavel Tvrdík [Wed, 13 May 2015 09:26:37 +0000 (11:26 +0200)]
MD5: fixing indentation and code style
Pavel Tvrdík [Wed, 13 May 2015 09:15:10 +0000 (11:15 +0200)]
SHA1: Remove duplicated tests
Pavel Tvrdík [Wed, 13 May 2015 09:14:11 +0000 (11:14 +0200)]
Add HMAC-MD5 library and tests
Pavel Tvrdík [Wed, 13 May 2015 08:55:02 +0000 (10:55 +0200)]
MD5: change interface of md5_final()
originally:
void md5_final(unsigned char digest[16], struct md5_context *ctx);
newly:
byte * md5_final(md5_context *ctx);