]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
7 years agoMain: Improve BIRD help messages
Pavel Tvrdik [Thu, 8 Sep 2016 14:27:40 +0000 (16:27 +0200)] 
Main: Improve BIRD help messages

7 years agoAdd stdlib.h to client/commands.c
Pavel Tvrdik [Wed, 7 Sep 2016 12:58:51 +0000 (14:58 +0200)] 
Add stdlib.h to client/commands.c

7 years agoBFD: Fix invalid read from pollfd array
Pavel Tvrdik [Thu, 8 Sep 2016 11:45:36 +0000 (13:45 +0200)] 
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 to
use loop->poll_fd.used instead of loop->sock_num to find the last field.

7 years agort-table: Fix kernel protocol export filter memory bug
Pavel Tvrdik [Tue, 6 Sep 2016 15:08:45 +0000 (17:08 +0200)] 
rt-table: Fix kernel protocol export filter memory bug

Kernel protocol calls rt_export_merged(), which used @rte_update_pool for
temporary allocations, supposing it is called from other functions from
rt-table.c that handles locking and flushing of the linpool. Therefore,
linpool was not flushed properly and memory leaked.

Add linpool argument to rt_export_merged() and use @krt_filter_lp when
called from kernel protocol.

Thanks to Justin Cattle and Alexander Frolkin for the bugreport.

(Commit squashed and updated by Ondrej Zajicek)

7 years agoFilter: Prefer xmalloc/xfree to malloc/free
Pavel Tvrdik [Tue, 6 Sep 2016 15:18:15 +0000 (17:18 +0200)] 
Filter: Prefer xmalloc/xfree to malloc/free

7 years agoKRT: Add kernel metric protocol option
Ondrej Zajicek (work) [Thu, 15 Sep 2016 12:59:06 +0000 (14:59 +0200)] 
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 avoid
overwriting routes from other sources (e.g. kernel device routes).

Although kernel route metric could already be set as a route attribute by
filters, that is not consistent with the way how Linux kernel handles
route metric - not just a route attribute, but a part of a route key.

7 years agoKRT: Support for IPv6 ECMP
Ondrej Zajicek (work) [Wed, 14 Sep 2016 09:40:15 +0000 (11:40 +0200)] 
KRT: Support for IPv6 ECMP

Linux represents IPv6 ECMP routes as a sequence of unipath routes with
the same prefix. We have to translate between our representation (one
route with multipath next hop) and the Linux representation in both
directions.

Proper learning of alien IPv6 ECMP routes still not supported.

Thanks to Mikhail Sennikovskii for the original patch.

7 years agoNest: Keep multipath next hops sorted
Ondrej Zajicek (work) [Tue, 30 Aug 2016 15:17:27 +0000 (17:17 +0200)] 
Nest: Keep multipath next hops sorted

7 years agoKRT: Fix trivial error
Ondrej Zajicek (work) [Wed, 31 Aug 2016 12:02:41 +0000 (14:02 +0200)] 
KRT: Fix trivial error

7 years agoKRT: Forbid path merging on BSD
Ondrej Zajicek (work) [Tue, 30 Aug 2016 10:43:46 +0000 (12:43 +0200)] 
KRT: Forbid path merging on BSD

We support ECMP routes only on Linux. Exported routes are checked in
krt_capable(), but a route generated during path merging avoids this
check.

7 years agoMerge remote-tracking branch 'origin/misc-fixes'
Ondrej Zajicek (work) [Tue, 23 Aug 2016 15:35:26 +0000 (17:35 +0200)] 
Merge remote-tracking branch 'origin/misc-fixes'

7 years agoMinor README update
Ondrej Zajicek (work) [Tue, 23 Aug 2016 15:33:00 +0000 (17:33 +0200)] 
Minor README update

7 years agoWhitespace fixes
Pavel Tvrdik [Tue, 16 Aug 2016 11:02:32 +0000 (13:02 +0200)] 
Whitespace fixes

7 years agoAdd link to INSTALL in README file
Pavel Tvrdik [Tue, 16 Aug 2016 08:42:12 +0000 (10:42 +0200)] 
Add link to INSTALL in README file

7 years agoRewrote README file
Pavel Tvrdik [Tue, 16 Aug 2016 08:15:58 +0000 (10:15 +0200)] 
Rewrote README file

* Made structure with headlines,
* reordered,
* kicked out 'What is missing' part,
* Updated content by home page site and user docs

7 years agoAdd .gitignore to ignore generated files
Ondřej Surý [Tue, 16 Aug 2016 07:25:50 +0000 (09:25 +0200)] 
Add .gitignore to ignore generated files

7 years agowhitespace fixes
Ondřej Surý [Tue, 16 Aug 2016 07:24:12 +0000 (09:24 +0200)] 
whitespace fixes

7 years agoInclude <stdint.h> in cf-lex.l to avoid UINTx_MAX redefinition
Ondřej Surý [Tue, 16 Aug 2016 07:23:55 +0000 (09:23 +0200)] 
Include <stdint.h> in cf-lex.l to avoid UINTx_MAX redefinition

7 years agoAdds mailing list address at the top of README file
Pavel Tvrdik [Mon, 15 Aug 2016 14:16:36 +0000 (16:16 +0200)] 
Adds mailing list address at the top of README file

7 years agoBabel: Immediately update hello interval on interface reconfigure
Ondrej Zajicek (work) [Wed, 20 Jul 2016 13:55:45 +0000 (15:55 +0200)] 
Babel: Immediately update hello interval on interface reconfigure

An interface reconfiguration may change both the hello and update
intervals. An update interval change is immediately put into effect,
while a hello interval change is not. This also updates the hello
interval immediately (if the new interval is shorter than the old one),
and sends a hello to notify peers of the change.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoNetlink: Fix build with older headers missing IFA_FLAGS
Ondrej Zajicek (work) [Wed, 20 Jul 2016 13:31:25 +0000 (15:31 +0200)] 
Netlink: Fix build with older headers missing IFA_FLAGS

7 years agoNetlink: Ignore tentative addresses
Ondrej Zajicek (work) [Wed, 20 Jul 2016 13:06:57 +0000 (15:06 +0200)] 
Netlink: Ignore tentative addresses

Ignore tentative IPv6 addresses and wait until finish of Duplicate
Address Detection (We got notification when an address is no longer
tentative) to avoid problems when protocols try to use interfaces
with tentative link-local addresses.

Based on patch from Jan Moskyto Matejka

7 years agoDoc: Fix password ID option description
Ondrej Zajicek (work) [Tue, 19 Jul 2016 13:40:57 +0000 (15:40 +0200)] 
Doc: Fix password ID option description

Thanks to Alexander Velkov for noticing it

7 years agoBabel: Do not maintain feasibility distance for our own routes
Ondrej Zajicek (work) [Tue, 19 Jul 2016 12:38:36 +0000 (14:38 +0200)] 
Babel: Do not maintain feasibility distance for our own routes

We do not need to maintain feasibility distances for our own router
ID (we ignore the updates anyway). Not doing so makes the routes be
garbage collected sooner when export filters change.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Do not keep an infeasible route as selected
Ondrej Zajicek (work) [Tue, 19 Jul 2016 12:28:53 +0000 (14:28 +0200)] 
Babel: Do not keep an infeasible route as selected

When a route becomes infeasible it should not be kept as selected; this
is forbidden by section 3.6 of the RFC and prevents subsequent updates
from the same router ID from replacing it.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Send wildcard retractions on shutdown and startup
Ondrej Zajicek (work) [Tue, 19 Jul 2016 12:23:41 +0000 (14:23 +0200)] 
Babel: Send wildcard retractions on shutdown and startup

This makes BIRD send a wildcard retraction on all interfaces before
shutting down and right after starting up. This helps ensure that
neighbours will discard the announced routes as soon as possible,
rather than only after the normal timeout procedures.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Rework handling of retractions
Ondrej Zajicek (work) [Tue, 19 Jul 2016 11:33:02 +0000 (13:33 +0200)] 
Babel: Rework handling of retractions

An update with wildcard AE and infinite metric should be treated as a
global retraction of all prefixes announced by that neighbour, per
section 4.4.9 of the RFC. In addition, router ID and seqno in retraction
updates should be ignored. This reworks the handling of retractions and
adjusts the parser to handle all this correctly.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Documentation updates
Ondrej Zajicek (work) [Tue, 19 Jul 2016 10:16:51 +0000 (12:16 +0200)] 
Babel: Documentation updates

This updates the documentation to correctly mention Babel when protocols
are listed, and adds examples and route attribute documentation to the
Babel section of the docs.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoBabel: Make sure intervals do not overflow
Ondrej Zajicek (work) [Tue, 19 Jul 2016 09:57:20 +0000 (11:57 +0200)] 
Babel: Make sure intervals do not overflow

Intervals are carried as 16-bit centisecond values, but kept internally
in 16-bit second values, which causes a potential for overflow. This adds
some checks to make sure this does not happen.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
7 years agoPrepare for longer interface names - clean up of the code.
Ondrej Filip [Sun, 17 Jul 2016 12:54:52 +0000 (14:54 +0200)] 
Prepare for longer interface names - clean up of the code.

7 years agoBGP: Fix extended messages
Ondrej Zajicek (work) [Mon, 11 Jul 2016 18:41:32 +0000 (20:41 +0200)] 
BGP: Fix extended messages

Change attribute length limit to handle extended (64 kB) messages.

Do not mix updates and withdraws (RFC 7606).

7 years agoLog: Fix error handling of debug file open
Ondrej Zajicek (work) [Mon, 11 Jul 2016 18:22:55 +0000 (20:22 +0200)] 
Log: Fix error handling of debug file open

Logging is not yet initialized, we have to use fprintf() here.

Thanks to Pavel Tvrdik for noticing and debugging it.

7 years agoFilter: Fixes reconfiguration with last_nonaggregated operator
Ondrej Zajicek (work) [Fri, 1 Jul 2016 09:03:13 +0000 (11:03 +0200)] 
Filter: Fixes reconfiguration with last_nonaggregated operator

7 years agoBGP: Skip empty path segments in received AS_PATH
Ondrej Zajicek (work) [Wed, 29 Jun 2016 12:11:03 +0000 (14:11 +0200)] 
BGP: Skip empty path segments in received AS_PATH

Although RFC 4271 does not forbid empty path segments, they are useless
and some implementations consider them invalid. It is clarified in RFC 7606,
specifying that AS_PATH with empty segment is considered malformed.

7 years agocppcheck: fix va_end() functions
Pavel Tvrdík [Tue, 29 Mar 2016 08:37:31 +0000 (10:37 +0200)] 
cppcheck: fix va_end() functions

7 years agoFilters: Fixes pm_same() w.r.t. ASN ranges and ASN expressions
Ondrej Zajicek (work) [Wed, 8 Jun 2016 22:30:41 +0000 (00:30 +0200)] 
Filters: Fixes pm_same() w.r.t. ASN ranges and ASN expressions

This is necessary for proper detection of filter changes during
reconfigurations.

7 years agoAdd AS# ranges to bgpmask.
Ondrej Filip [Wed, 8 Jun 2016 14:22:44 +0000 (16:22 +0200)] 
Add AS# ranges to bgpmask.

7 years agoSmall typo in documentation example, submitted by Felix Eckhofer.
Ondrej Filip [Sat, 4 Jun 2016 10:38:06 +0000 (12:38 +0200)] 
Small typo in documentation example, submitted by Felix Eckhofer.

7 years agoUnix IO: Tried to fix strange behavior after POLLHUP or POLLERR.
Jan Moskyto Matejka [Mon, 30 May 2016 12:28:22 +0000 (14:28 +0200)] 
Unix IO: Tried to fix strange behavior after POLLHUP or POLLERR.

7 years agoWe don't need bvsnprintf() in BIRD client
Ondrej Zajicek (work) [Thu, 12 May 2016 19:29:04 +0000 (21:29 +0200)] 
We don't need bvsnprintf() in BIRD client

7 years agoProg Doc: Complete several missing parameters
Pavel Tvrdik [Thu, 12 May 2016 13:49:44 +0000 (15:49 +0200)] 
Prog Doc: Complete several missing parameters

7 years agoUser Doc: Fix several typing error
Pavel Tvrdik [Thu, 12 May 2016 11:37:23 +0000 (13:37 +0200)] 
User Doc: Fix several typing error

8 years agonetlink: update struct msghdr
Stijn Tintel [Tue, 10 May 2016 13:45:35 +0000 (16:45 +0300)] 
netlink: update struct msghdr

The netlink code assumes an order for the members of struct msghdr.
This breaks recvmsg and sendmsg with musl libc on mips64. Fix this by
using designated initializers instead.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
8 years agoInitialize variable ifr in sk_setup()
Pavel Tvrdik [Tue, 3 May 2016 07:32:49 +0000 (09:32 +0200)] 
Initialize variable ifr in sk_setup()

==00:00:00:02.831 2468== Syscall param socketcall.setsockopt(optval) points to uninitialised byte(s)
==00:00:00:02.831 2468==    at 0x513BDEA: setsockopt (in /usr/lib/libc-2.23.so)
==00:00:00:02.831 2468==    by 0x45C7AF: sk_setup (io.c:1216)
==00:00:00:02.831 2468==    by 0x45CDFF: sk_open (io.c:1417)
==00:00:00:02.831 2468==    by 0x44B562: rip_open_socket (packets.c:740)
==00:00:00:02.831 2468==    by 0x4481A7: rip_iface_locked (rip.c:616)
==00:00:00:02.831 2468==    by 0x4133E4: olock_run_event (locks.c:177)
==00:00:00:02.831 2468==    by 0x45A6DE: ev_run (event.c:85)
==00:00:00:02.831 2468==    by 0x45A7AD: ev_run_list (event.c:142)
==00:00:00:02.831 2468==    by 0x45E0FC: io_loop (io.c:2066)
==00:00:00:02.831 2468==    by 0x463B56: main (main.c:845)
==00:00:00:02.831 2468==  Address 0xffefffd24 is on thread 1's stack
==00:00:00:02.831 2468==  in frame #1, created by sk_setup (io.c:1188)
==00:00:00:02.831 2468==  Uninitialised value was created by a stack allocation
==00:00:00:02.831 2468==    at 0x45C6BB: sk_setup (io.c:1188)

8 years agoDoc: Minor fix v1.6.0
Ondrej Zajicek (work) [Fri, 29 Apr 2016 11:25:46 +0000 (13:25 +0200)] 
Doc: Minor fix

8 years agoNEWS and version update
Ondrej Zajicek (work) [Fri, 29 Apr 2016 11:07:21 +0000 (13:07 +0200)] 
NEWS and version update

8 years agoAdd the Babel routing protocol (RFC 6126)
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.

8 years agoBSD: Add the IPsec SA/SP database entries control
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.

8 years agoDocumentation update
Ondrej Zajicek (work) [Sun, 10 Apr 2016 22:41:10 +0000 (00:41 +0200)] 
Documentation update

8 years agoDirect: Implement check link for direct protocol
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.

8 years agoMain: Add local option
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.

8 years agoNest: Reset export route counter during graceful restart
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.

8 years agoIO: Avoid multiple event cycles in one loop cycle.
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.

8 years agoIO: Replace RX priority heuristic with explicit mark
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.

8 years agoKRT: Fix route learn scan when route changed
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.

8 years agoIO/Poll: fix mistaken variable merge
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.

8 years agoBirdlib: Modify lists to avoid problems with pointer aliasing rules
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)

8 years agoBirdlib: Do cleanups after remove/free
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().

8 years agoOSPF: Fix bogus LSA ID collisions between received and originated LSAs
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.

8 years agoMinor changes in documentation
Ondrej Zajicek (work) [Wed, 9 Mar 2016 16:51:50 +0000 (17:51 +0100)] 
Minor changes in documentation

8 years agoOSPF: Fix reading from freed memory
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.

8 years agoMerge remote-tracking branch 'origin/poll'
Jan Moskyto Matejka [Tue, 22 Mar 2016 12:23:55 +0000 (13:23 +0100)] 
Merge remote-tracking branch 'origin/poll'

8 years agoUnix: Substituted select -> poll also in congestion checker
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().

8 years agoRIP: fix typo in configuration at rx length opt
Pavel Tvrdík [Tue, 15 Mar 2016 13:55:40 +0000 (14:55 +0100)] 
RIP: fix typo in configuration at rx length opt

8 years agoBGP: Add documentaion for extended messages
Pavel Tvrdík [Tue, 15 Mar 2016 09:29:32 +0000 (10:29 +0100)] 
BGP: Add documentaion for extended messages

8 years agoPoll: Prevent the improbable case of EAGAIN after POLLIN
Jan Moskyto Matejka [Tue, 15 Mar 2016 13:57:49 +0000 (14:57 +0100)] 
Poll: Prevent the improbable case of EAGAIN after POLLIN

8 years agoUnix: Rework of select-loop to poll-loop
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.

8 years agoMerge branch 'master' of gitlab.labs.nic.cz:labs/bird
Jan Moskyto Matejka [Thu, 25 Feb 2016 17:25:53 +0000 (18:25 +0100)] 
Merge branch 'master' of gitlab.labs.nic.cz:labs/bird

8 years agoOSPF: Multicast ability is irrelevant for stub interfaces
Ondrej Zajicek (work) [Thu, 25 Feb 2016 17:16:59 +0000 (18:16 +0100)] 
OSPF: Multicast ability is irrelevant for stub interfaces

8 years agoAll the current pthread implementations are OK and working with us.
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.

8 years agoFilter: Implement last_nonaggregated operator on bgp_path
Ondrej Zajicek (work) [Tue, 16 Feb 2016 16:33:58 +0000 (17:33 +0100)] 
Filter: Implement last_nonaggregated operator on bgp_path

8 years agoUnix: Fix bug in syslog name handling
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.

8 years agoBGP: Fix bug in incoming connection handling
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.

8 years agoBGP: Update capability number from IANA for extended messages
Ondrej Zajicek (work) [Wed, 25 Nov 2015 14:52:58 +0000 (15:52 +0100)] 
BGP: Update capability number from IANA for extended messages

8 years agoMD5: Mormalize naming style
Pavel Tvrdík [Fri, 13 Nov 2015 15:08:28 +0000 (16:08 +0100)] 
MD5: Mormalize naming style

8 years agoMerge branch 'master' into rip-new
Ondrej Zajicek (work) [Tue, 24 Nov 2015 14:21:11 +0000 (15:21 +0100)] 
Merge branch 'master' into rip-new

8 years agoNetlink: attribute validation before parsing
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.

8 years agoSome consts for function arguments
Ondrej Zajicek (work) [Tue, 24 Nov 2015 12:52:26 +0000 (13:52 +0100)] 
Some consts for function arguments

Patch from Pavel Tvrdik

8 years agoMinor changes to SHA hash functions
Ondrej Zajicek (work) [Tue, 24 Nov 2015 12:47:28 +0000 (13:47 +0100)] 
Minor changes to SHA hash functions

8 years agoMerge commit 'origin/crypto-hash^'
Ondrej Zajicek (work) [Mon, 23 Nov 2015 10:32:18 +0000 (11:32 +0100)] 
Merge commit 'origin/crypto-hash^'

8 years agoNest: Fix bug in device proto
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.

8 years agoAdd SHA-384/512 and HMAC-SHA-384/512 crypto hash
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

8 years agoAdd SHA-224/256 and HMAC-SHA-224/256 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

8 years agoAdd SHA1 and SHA1-HMAC crypto hash
Pavel Tvrdík [Fri, 13 Nov 2015 15:11:51 +0000 (16:11 +0100)] 
Add SHA1 and SHA1-HMAC crypto hash

8 years agoAdd get_u64() and put_u64() into lib/unaligned.h
Pavel Tvrdík [Fri, 13 Nov 2015 15:10:33 +0000 (16:10 +0100)] 
Add get_u64() and put_u64() into lib/unaligned.h

8 years agoFix compiling with --enable-debug option
Pavel Tvrdík [Mon, 9 Nov 2015 08:14:26 +0000 (09:14 +0100)] 
Fix compiling with --enable-debug option

8 years agoNetlink: Allow more than 256 routing tables.
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.

8 years agoNest: Fixes bug in missing cleanup during table removal
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.

8 years agoConf: Fixes bug in symbol lookup during reconfiguration
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.

8 years agoIO: Fix the previous bugfix
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.

8 years agoIO: Handle fd values too big for select()
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.

8 years agoMerge branch 'master' into rip-new
Ondrej Zajicek (work) [Sat, 17 Oct 2015 12:44:34 +0000 (14:44 +0200)] 
Merge branch 'master' into rip-new

8 years agoMinor changes
Ondrej Zajicek (work) [Sat, 17 Oct 2015 12:36:53 +0000 (14:36 +0200)] 
Minor changes

8 years agoMajor RIP redesign
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.

8 years agoOSPF: Fixes some issues with link detection
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.

8 years agoNest: Fixes one of previous commit
Ondrej Zajicek [Tue, 28 Jul 2015 13:08:21 +0000 (15:08 +0200)] 
Nest: Fixes one of previous commit

8 years agoMinor update to test commits
Ondrej Zajicek [Tue, 28 Jul 2015 10:56:51 +0000 (12:56 +0200)] 
Minor update to test commits

8 years agoNetlink: Fixes uninitialized variable
Ondrej Zajicek [Tue, 28 Jul 2015 10:35:12 +0000 (12:35 +0200)] 
Netlink: Fixes uninitialized variable

Thanks to Pavel Tvrdik for the bugfix

8 years agoStatic: Support for BFD controlled static routes
Ondrej Zajicek [Fri, 24 Jul 2015 16:02:07 +0000 (18:02 +0200)] 
Static: Support for BFD controlled static routes

8 years agoStatic: Allows to specify attributes for 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; };