- 12 Sep, 2017 2 commits
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Actually much simpler than expected.
-
- 06 Sep, 2017 1 commit
-
-
Ondřej Zajíček authored
Add basic VRF (virtual routing and forwarding) support. Protocols can be associated with VRFs, such protocols will be restricted to interfaces assigned to the VRF (as reported by Linux kernel) and will use sockets bound to the VRF. E.g., different multihop BGP instances can use diffent kernel routing tables to handle BGP TCP connections. The VRF support is preliminary, currently there are several limitations: - Recent Linux kernels (4.11) do not handle correctly sockets bound to interaces that are part of VRF, so most protocols other than multihop BGP do not work. This will be fixed by future kernel versions. - Neighbor cache ignores VRFs. Breaks config with the same prefix on local interfaces in different VRFs. Not much problem as single hop protocols do not work anyways. - Olock code ignores VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. - Incoming BGP connections are not dispatched according to VRFs. Breaks config with multiple BGP peers with the same IP address in different VRFs. Perhaps we would need some kernel API to read VRF of incoming connection? Or probably use multiple listening sockets in int-new branch. - We should handle master VRF interface up/down events and perhaps disable associated protocols when VRF goes down. Or at least disable associated interfaces. - Also we should check if the master iface is really VRF iface and not some other kind of master iface. - BFD session request dispatch should be aware of VRFs. - Perhaps kernel protocol should read default kernel table ID from VRF iface so it is not necessary to configure it. - Perhaps we should have per-VRF default table.
-
- 05 Sep, 2017 1 commit
-
-
Ondřej Zajíček authored
Starting from Linux 4.11, IPv6 ECMP routes are now notified using RTA_MULTIPATH, like IPv4 ones. The patch adds support for RTA_MULTIPATH parsing for IPv6 routes. This also enables to parse ECMP alien routes correctly. Thanks to Vincent Bernat for the original patch.
-
- 04 Sep, 2017 3 commits
-
-
Ondřej Zajíček authored
Incorrect structure alignment breaks kernel routing table updates on FreeBSD/ARM (and perhaps other platforms). Thanks to Eugene Sevastyanov for the original patch.
-
Michal 'vorner' Vaner authored
-
Michal 'vorner' Vaner authored
Add configuration and docker definitions for tests and builds in Gitlab CI platform. Some of them currently fail, which is a known problem.
-
- 30 Aug, 2017 4 commits
-
-
Ondřej Zajíček authored
-
Michal 'vorner' Vaner authored
-
Michal 'vorner' Vaner authored
Keep a cache of all the relevant prefixes we send out. When a prefix appears, insert it into the cache. If it dies, keep it there for a while, marked as dead. Send out the dead prefixes with zero lifetime.
-
Michal 'vorner' Vaner authored
Put the prefix option preparation into a separate function. We're going to reuse that bit of code.
-
- 22 Aug, 2017 1 commit
-
-
Ondřej Zajíček authored
-
- 10 Aug, 2017 2 commits
-
-
Michal 'vorner' Vaner authored
non-primary is ugly, just omit it (and use primary in the other case).
-
Michal 'vorner' Vaner authored
A non-primary address isn't necessarily secondary, that's an independent flag.
-
- 09 Aug, 2017 5 commits
-
-
Michal 'vorner' Vaner authored
-
Michal 'vorner' Vaner authored
A TODO file last updated 5 years ago is useless.
-
Ondřej Zajíček authored
-
Michal 'vorner' Vaner authored
Adapt the naming conventions to be a bit closer to the other protocols. proto_radv -> radv_proto struct radv_proto *ra -> struct radv_proto *p struct proto *p -> struct proto *P
-
Michal 'vorner' Vaner authored
-
- 19 Jun, 2017 1 commit
-
-
Ondřej Zajíček authored
Thanks to Lennert Buytenhek <buytenh@wantstofly.org> for the patch.
-
- 31 May, 2017 1 commit
-
-
Ondřej Zajíček authored
-
- 30 May, 2017 1 commit
-
-
Ondřej Zajíček authored
-
- 25 May, 2017 1 commit
-
-
Ondřej Zajíček authored
The old hash table had fixed size, which makes it slow for config files with large number of symbols and symbol lookups. The new one is growing according to needs.
-
- 23 May, 2017 1 commit
-
-
Ondřej Zajíček authored
Function isspace() expects to get *unsigned* chars (encoded as ints), not that it matters for plain ASCII.
-
- 18 May, 2017 1 commit
-
-
Ondřej Zajíček authored
-
- 17 May, 2017 4 commits
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Simplify BIRD client library checks, add proper devel header checks and prefer dependency on just tinfo than full ncurses.
-
- 16 May, 2017 4 commits
-
-
Ondřej Zajíček authored
Replaced by constant compile-time expressions. CPU_STRUCT_ALIGN is not really correct, but is consistent with the old behavior.
-
Ondřej Zajíček authored
Make indentation and quotation consistent in configure macros. Also remove --with-sysinclude option, which was broken for 7 years and nobody complained. Thanks to Ruben Kerkhof for source patches.
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Replace integer type width detection with C99 fixed-width types. Also remove some unused or obsolete code. Thanks to Ruben Kerkhof for the patchset.
-
- 14 Mar, 2017 3 commits
-
-
Ondřej Zajíček authored
The patch allows to use autoreconf, replaces some long obsolete constructs and does some other minor cleanups. Also, the file configure.in is renamed to configure.ac, as the old name has been deprecated for a long time. Thanks to Ruben Kerkhof for the patchset.
-
Ondřej Zajíček authored
This may be useful if multple interfaces share the same network range. Thanks to Fritz Grimpen for the original patch.
-
Ondřej Zajíček authored
When a BGP session with ADD_PATH is restarted and the neighbor do not announce ADD_PATH capability during reconnect, the accept_ra_types is still set to RA_ANY. Thanks to Lennert Buytenhek for the bugreport
-
- 23 Feb, 2017 1 commit
-
-
Ondřej Zajíček authored
Adds option 'allow bgp_local_pref' to override the usual restriction of LOCAL_PREF on eBGP sessions. Thanks to Lennert Buytenhek for the patch.
-
- 19 Feb, 2017 2 commits
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Thanks to Steve Leung for the bugreport.
-
- 17 Feb, 2017 1 commit
-
-
Ondřej Zajíček authored
During reconfiguration, old and new filter expressions in static routes are compared using i_same() function. When filter expressions contain function calls, it is necessary that old filter expressions are the second argument in i_same(), as it is internally modified by i_same(). Otherwise pointers to old (and freed) data appear in the config structure. Thanks to Lennert Buytenhek for tracking and reporting the bug.
-