Ondrej Zajicek (work)
025525266f
Timers: Replace old timers with microsecond timers
...
The old timer interface is still kept, but implemented by new timers. The
plan is to switch from the old inteface to the new interface, then clean
it up.
2017-12-07 13:49:27 +01:00
Ondrej Zajicek (work)
28a7d3943e
Timers: Integrate microsecond timers to the main loop
2017-12-07 13:46:53 +01:00
Ondrej Zajicek (work)
534215a18f
Timers: Split microsecond timers from BFD code to lib
2017-12-07 13:46:53 +01:00
Ondrej Zajicek (work)
abae1cc58b
KRT: Minor fix of last commit
2017-12-07 13:28:24 +01:00
Ondrej Zajicek (work)
153f02da3b
Nest: Maintain separate IPv4, IPv6 and LLv6 preferred addresses
...
Also redesign preferred address selection and update protocols to use
appropriate preferred address.
Based on a previous work by Jan Maria Matejka.
2017-12-07 13:06:01 +01:00
Ondrej Zajicek (work)
734e9fb8a9
Minor cleanups and fixes
2017-05-23 13:12:25 +02:00
Ondrej Zajicek (work)
5a9169e152
Merge branch 'master' into int-new
2017-05-18 14:28:03 +02:00
Ondrej Zajicek (work)
78e4dac993
Fix some forgotten warnings
2017-05-18 14:26:57 +02:00
Ondrej Zajicek (work)
d19617f06b
Merge remote-tracking branch 'origin/int-new' into int-new
2017-05-17 14:50:00 +02:00
Jan Moskyto Matejka
05d47bd53e
Linpool: default allocation size
2017-05-16 15:34:57 +02:00
Ondrej Zajicek (work)
1c5b4c5d5b
Merge branch 'master' into int-new
2017-05-16 14:56:01 +02:00
Ondrej Zajicek (work)
b845ea097c
Remove autoconf macros for time_t and alignment
...
Replaced by constant compile-time expressions. CPU_STRUCT_ALIGN is not
really correct, but is consistent with the old behavior.
2017-05-16 13:05:00 +02:00
Ondrej Zajicek (work)
e40542ef3a
Minor autoconf cleanup and documentation update
2017-05-16 12:59:22 +02:00
Ondrej Zajicek (work)
c253ec3a9c
Some more autoconf cleanups
...
Replace integer type width detection with C99 fixed-width types.
Also remove some unused or obsolete code.
Thanks to Ruben Kerkhof for the patchset.
2017-05-16 12:59:22 +02:00
Ondrej Zajicek (work)
fd1f355b7b
Merge branch 'master' into int-new
2017-05-09 17:37:38 +02:00
Ondrej Zajicek (work)
71652572e3
Minor autoconf cleanup and documentation update
2017-05-09 16:46:41 +02:00
Ondrej Zajicek (work)
525a88d879
Merge branch 'master' into int-new
2017-05-09 14:48:21 +02:00
Ondrej Zajicek (work)
5d6dc93043
Some more autoconf cleanups
...
Replace integer type width detection with C99 fixed-width types.
Also remove some unused or obsolete code.
Thanks to Ruben Kerkhof for the patchset.
2017-05-09 13:45:26 +02:00
Ondrej Zajicek (work)
95639d9577
Device: Fix option 'primary'
2017-05-03 12:56:17 +02:00
Ondrej Zajicek (work)
1d21306785
Minor fixes
2017-04-29 01:24:30 +02:00
Jan Moskyto Matejka
c609d03986
Merge branch 'int-new' into nexthop-merged
2017-02-22 11:58:04 +01:00
Ondrej Zajicek (work)
62e64905b7
Several minor fixes
2017-02-20 02:26:45 +01:00
Ondrej Zajicek (work)
c259669fa3
Merge branch 'master' into int-new
2017-02-08 14:34:48 +01:00
Jan Moskyto Matejka
d14f8c3c45
Netlink: MPLS routes in kernel
...
Anyway, Bird is now capable to insert both MPLS routes and MPLS encap
routes into kernel.
It was (among others) needed to define platform-specific AF_MPLS to 28
as this constant has been assigned in the linux kernel.
No support for BSD now, it may be added in the future.
2016-12-22 21:38:33 +01:00
Jan Moskyto Matejka
4e276a8920
Merged multipath and single-path data structures.
...
Dropped struct mpnh and mpnh_*()
Now struct nexthop exists, nexthop_*(), and also included struct nexthop
into struct rta.
Also converted RTD_DEVICE and RTD_ROUTER to RTD_UNICAST. If it is needed
to distinguish between these two cases, RTD_DEVICE is equivalent to
IPA_ZERO(a->nh.gw), RTD_ROUTER is then IPA_NONZERO(a->nh.gw).
From now on, we also explicitely want C99 compatible compiler. We assume
that this 20-year norm should be known almost everywhere.
2016-12-22 13:01:06 +01:00
Jan Moskyto Matejka
2c33da5070
Netlink: fix occasional netlink hangs on busy machines
2016-12-20 20:36:56 +01:00
Jan Moskyto Matejka
ad88b94bca
Merge branch 'int-new-rpki-squashed' (early part) into int-new
2016-12-07 15:30:46 +01:00
Ondrej Zajicek (work)
d15b0b0a1b
BGP redesign
...
Integrated and extensible BGP with generalized AFI handling,
support for IPv4+IPv6 AFI and unicast+multicast SAFI.
2016-12-07 14:20:52 +01:00
Jan Moskyto Matejka
af62c0f9f1
LibSSH may be switched off together with RPKI
2016-12-07 14:15:35 +01:00
Jan Moskyto Matejka
cdbe1defa4
SSH: Commented quirk based on undocumented behavior of LibSSH
2016-12-07 09:35:24 +01:00
Pavel Tvrdík
65d2a88dd2
RPKI protocol with one cache server per protocol
...
The RPKI protocol (RFC 6810) using the RTRLib
(http://rpki.realmv6.org/ ) that is integrated inside
the BIRD's code.
Implemeted transports are:
- unprotected transport over TCP
- secure transport over SSHv2
Example configuration of bird.conf:
...
roa4 table r4;
roa6 table r6;
protocol rpki {
debug all;
# Import both IPv4 and IPv6 ROAs
roa4 { table r4; };
roa6 { table r6; };
# Set cache server (validator) address,
# overwrite default port 323
remote "rpki-validator.realmv6.org" port 8282;
# Overwrite default time intervals
retry 10; # Default 600 seconds
refresh 60; # Default 3600 seconds
expire 600; # Default 7200 seconds
}
protocol rpki {
debug all;
# Import only IPv4 routes
roa4 { table r4; };
# Set cache server address to localhost,
# use default ports tcp => 323 or ssh => 22
remote 127.0.0.1;
# Use SSH transport instead of unprotected transport over TCP
ssh encryption {
bird private key "/home/birdgeek/.ssh/id_rsa";
remote public key "/home/birdgeek/.ssh/known_hosts";
user "birdgeek";
};
}
...
2016-12-07 09:35:24 +01:00
Ondrej Zajicek (work)
9b0a0ba9e6
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.
2016-11-09 16:36:34 +01:00
Ondrej Zajicek (work)
8860e991f6
Merge branch 'master' into int-new
2016-11-08 19:27:58 +01:00
Ondrej Zajicek (work)
c8cafc8ebb
Minor code cleanups
2016-11-08 17:46:29 +01:00
Ondrej Zajicek (work)
cc5b93f72d
Merge tag 'v1.6.2' into int-new
2016-11-08 17:04:29 +01:00
Jan Moskyto Matejka
3e236955c9
Build: switch on -Wextra, get rid of most of the warnings
...
There are several unresolved -Wmissing-field-initializers on older
versions of GCC than 5.1, all of them false positive.
2016-11-01 14:52:54 +01:00
Ondrej Zajicek (work)
17fe57d8dc
Log: Fix broken syslog name
...
BIRD passed string from configuration to openlog(), which kept it
internally. After reconfiguration the old string was freed, therefore
openlog had invalid copy.
Thanks to Chris Caputo for the original patch.
2016-11-01 11:37:49 +01:00
Jan Moskyto Matejka
ccd2a3eda2
Kernel socket missing err_hook fix
...
Thanks to Tim Weippert for bugreport.
2016-09-29 13:21:16 +02:00
Pavel Tvrdik
292f7858e6
Main: Improve BIRD help messages
2016-09-15 17:30:52 +02:00
Pavel Tvrdik
a290da25a1
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)
2016-09-15 15:57:51 +02:00
Ondrej Zajicek (work)
a1839f3c61
KRT: Fix trivial error
2016-08-31 14:02:41 +02:00
Ondrej Zajicek (work)
f9f2e280ea
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.
2016-08-30 12:43:46 +02:00
Ondřej Surý
33d22f0e9e
whitespace fixes
2016-08-16 09:24:12 +02:00
Ondrej Zajicek (work)
f0b822a831
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.
2016-07-11 20:22:55 +02:00
Pavel Tvrdík
8f01879c56
cppcheck: fix va_end() functions
2016-06-27 15:07:50 +02:00
Pavel Tvrdik
18c53c4567
Fix declaration of shared global variables async_*
...
In a header file write it with extern keyword. And in one of the *.c
file declare it without extern keyword.
2016-06-08 17:37:16 +02:00
Jan Moskyto Matejka
9dbcb11cb5
Unix IO: Tried to fix strange behavior after POLLHUP or POLLERR.
2016-05-30 14:28:22 +02:00
Jan Moskyto Matejka
925aa14912
After-master-merge simple fixes.
...
BSD lib/setkey.h and lib/sysio.h #include fixes.
OpenBSD's flex needs -o param without space.
V6ONLY for SK_IP fix.
2016-05-24 12:12:14 +02:00
Ondrej Zajicek (work)
08b3a24da5
IO: Minor changes in socket AF handing
...
AF can be specified implicitly by saddr or daddr, flags SKF_V4ONLY and
SKF_V6ONLY are to be removed.
2016-05-17 15:21:49 +02:00
Ondrej Zajicek (work)
af678af0d5
Merge remote-tracking branch 'origin/master' into int-new
2016-05-12 18:03:23 +02:00