- 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.
-
- 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.
-
- 31 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.
-
- 15 Nov, 2016 1 commit
-
-
Ondřej Zajíček authored
Commit 3c09af41... changed behavior of int_set_add() from prepend to append, which makes more sense for community list, but prepend must be used for cluster list. Add int_set_prepend() and use it in cluster list handling code.
-
- 02 Nov, 2016 3 commits
-
-
Ondřej Zajíček authored
Based on former commit from Pavel Tvrdik
-
Pavel Tvrdík authored
-
Ondřej Zajíček authored
Add generic interface for generating and verifying MACs (message authentication codes). Replace multiple HMAC implementation with a generic one.
-
- 01 Nov, 2016 1 commit
-
-
Jan Moskyto Matejka authored
There are several unresolved -Wmissing-field-initializers on older versions of GCC than 5.1, all of them false positive.
-
- 13 Oct, 2016 1 commit
-
-
Pavel Tvrdik authored
The add() function used to prepend a new community to clist, but after this fix the add() function appends new community.
-
- 12 Oct, 2016 3 commits
-
-
Jan Moskyto Matejka authored
Some memory was being allocated from bad linpool, not from the given one as they should. Thanks to Madhu and Justin Cattle for reporting this.
-
Pavel Tvrdik authored
Thanks to Micah Anderson for bug report and Ondrej Zajicek for the idea!
-
Pavel Tvrdik authored
-
- 04 Oct, 2016 1 commit
-
-
Ondřej Zajíček authored
-
- 03 Oct, 2016 1 commit
-
-
Ondřej Zajíček authored
Add support for large communities (draft-ietf-idr-large-community), 96bit alternative to RFC 1997 communities. Thanks to Matt Griswold for the original patch.
-
- 15 Sep, 2016 1 commit
-
-
Pavel Tvrdik authored
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)
-
- 14 Sep, 2016 1 commit
-
-
Ondřej Zajíček authored
-
- 16 Aug, 2016 1 commit
-
-
Pavel Tvrdik authored
-
- 19 Jul, 2016 1 commit
-
-
Ondřej Zajíček authored
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>
-
- 17 Jul, 2016 1 commit
-
-
Ondřej Filip authored
-
- 08 Jun, 2016 1 commit
-
-
Ondřej Filip authored
-
- 12 May, 2016 1 commit
-
-
Pavel Tvrdik authored
-
- 28 Apr, 2016 1 commit
-
-
Ondřej Zajíček authored
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.
-
- 08 Apr, 2016 1 commit
-
-
Ondřej Zajíček authored
When enabled, direct protocol generates routes only if the underlying link state is up.
-
- 07 Apr, 2016 1 commit
-
-
Ondřej Zajíček authored
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.
-
- 06 Apr, 2016 1 commit
-
-
Ondřej Zajíček authored
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.
-
- 17 Mar, 2016 1 commit
-
-
Pavel Tvrdík authored
-
- 16 Feb, 2016 1 commit
-
-
Ondřej Zajíček authored
-
- 09 Nov, 2015 2 commits
-
-
Ondřej Zajíček authored
When a table is removed during reconfiguration, a reference was not cleared in the old configuration, which breaks undo.
-
Ondřej Zajíček authored
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.
-
- 17 Oct, 2015 1 commit
-
-
Ondřej Zajíček authored
-
- 05 Oct, 2015 1 commit
-
-
Ondřej Zajíček authored
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.
-
- 28 Jul, 2015 1 commit
-
-
Ondřej Zajíček authored
-
- 24 Jul, 2015 1 commit
-
-
Ondřej Zajíček authored
-
- 18 Jul, 2015 2 commits
-
-
Ondřej Zajíček authored
Thanks to Peter Hudec for noticing the problem.
-
Ondřej Zajíček authored
Thanks to Andrew (seti.kr.ua) for the bug report.
-
- 08 Jun, 2015 1 commit
-
-
Ondřej Zajíček authored
Kernel option 'merge paths' allows to merge routes exported to kernel protocol (currently BGP and static routes) to multipath routes.
-