summaryrefslogtreecommitdiff
path: root/sysdep
AgeCommit message (Collapse)Author
2017-03-29Netlink: Change default kernel metric to 32Ondrej Zajicek (work)
This avoids collisions with non-BIRD routes in kernel tables.
2017-03-29Netlink: Better handling of an error caseOndrej Zajicek (work)
2017-03-28Netlink: Fix device route deleteOndrej Zajicek (work)
2017-03-28Netlink: Fix bug in RTA_PRIORITY handlingOndrej Zajicek (work)
2017-02-22Merge branch 'int-new' into nexthop-mergedJan Moskyto Matejka
2017-02-20Several minor fixesOndrej Zajicek (work)
2017-02-08Merge branch 'master' into int-newOndrej Zajicek (work)
2017-01-17Fix IP_HDRINCL usage on FreeBSD 11Ondrej Zajicek (work)
FreeBSD 11 changed endianity of ip_len field from host order to network order. Also DragonFly BSD allegedly expects network order here. Thanks to Olivier Cochard-Labbé for the patch.
2016-12-22Netlink: MPLS routes in kernelJan Moskyto Matejka
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-22Removing (struct rta)->cast. Never used.Jan Moskyto Matejka
2016-12-22Merged multipath and single-path data structures.Jan Moskyto Matejka
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-21NEWS and version updatev1.6.3Ondrej Zajicek (work)
2016-12-20Netlink: fix occasional netlink hangs on busy machinesJan Moskyto Matejka
2016-12-07NEWS and version updateOndrej Zajicek (work)
2016-12-07Merge branch 'int-new-rpki-squashed' (early part) into int-newJan Moskyto Matejka
2016-12-07BGP redesignOndrej Zajicek (work)
Integrated and extensible BGP with generalized AFI handling, support for IPv4+IPv6 AFI and unicast+multicast SAFI.
2016-12-07LibSSH may be switched off together with RPKIJan Moskyto Matejka
2016-12-07SSH: Commented quirk based on undocumented behavior of LibSSHJan Moskyto Matejka
2016-12-07RPKI protocol with one cache server per protocolPavel Tvrdík
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-11-09 Unit Testing for BIRDOndrej Zajicek (work)
- 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-08Merge branch 'master' into int-newOndrej Zajicek (work)
2016-11-08Minor code cleanupsOndrej Zajicek (work)
2016-11-08Merge tag 'v1.6.2' into int-newOndrej Zajicek (work)
2016-11-01BSD: Fix build on OpenBSD broken by previous commitOndrej Zajicek (work)
2016-11-01Build: switch on -Wextra, get rid of most of the warningsJan Moskyto Matejka
There are several unresolved -Wmissing-field-initializers on older versions of GCC than 5.1, all of them false positive.
2016-11-01Log: Fix broken syslog nameOndrej Zajicek (work)
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-09-29NEWS and version updatev1.6.2Ondrej Zajicek (work)
2016-09-29Kernel socket missing err_hook fixJan Moskyto Matejka
Thanks to Tim Weippert for bugreport.
2016-09-22NEWS and version updatev1.6.1Ondrej Zajicek (work)
2016-09-19KRT: Add krt_scope attributeOndrej Zajicek (work)
Add a new route attribute, krt_scope, to expose the Linux kernel route scope. Constants from /etc/iproute2/rt_scopes (prefixed by "ips_") are expected to be used with the attribute. Both import and export are supported. Also, the patch fixes device route export to the kernel, by setting link scope automatically.
2016-09-15Main: Improve BIRD help messagesPavel Tvrdik
2016-09-15rt-table: Fix kernel protocol export filter memory bugPavel Tvrdik
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-15KRT: Add kernel metric protocol optionOndrej Zajicek (work)
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.
2016-09-14KRT: Support for IPv6 ECMPOndrej Zajicek (work)
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.
2016-08-31KRT: Fix trivial errorOndrej Zajicek (work)
2016-08-30KRT: Forbid path merging on BSDOndrej Zajicek (work)
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-16whitespace fixesOndřej Surý
2016-07-20Netlink: Fix build with older headers missing IFA_FLAGSOndrej Zajicek (work)
2016-07-20Netlink: Ignore tentative addressesOndrej Zajicek (work)
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
2016-07-11Log: Fix error handling of debug file openOndrej Zajicek (work)
Logging is not yet initialized, we have to use fprintf() here. Thanks to Pavel Tvrdik for noticing and debugging it.
2016-06-27cppcheck: fix va_end() functionsPavel Tvrdík
2016-06-08Fix declaration of shared global variables async_*Pavel Tvrdik
In a header file write it with extern keyword. And in one of the *.c file declare it without extern keyword.
2016-05-30Unix IO: Tried to fix strange behavior after POLLHUP or POLLERR.Jan Moskyto Matejka
2016-05-24After-master-merge simple fixes.Jan Moskyto Matejka
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-17BSD: Fix setkey in int-new branchOndrej Zajicek (work)
2016-05-17IO: Minor changes in socket AF handingOndrej Zajicek (work)
AF can be specified implicitly by saddr or daddr, flags SKF_V4ONLY and SKF_V6ONLY are to be removed.
2016-05-12Merge remote-tracking branch 'origin/master' into int-newOndrej Zajicek (work)
2016-05-12Miscellaneous minor fixesOndrej Zajicek (work)
2016-05-12Prog Doc: Complete several missing parametersPavel Tvrdik
2016-05-10netlink: update struct msghdrStijn Tintel
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>