- Mar 30, 2021
-
-
Maria Matejka authored
This also fixes memory leaks from import/export tables being never cleaned up and freed.
-
- Mar 17, 2021
-
-
Ondřej Zajíček authored
-
- Mar 16, 2021
-
-
Ondřej Zajíček authored
Pipe channels are kind-of implicit, so setting protocol debug flags should also set pipe debug flags.
-
- Mar 12, 2021
-
-
Ondřej Zajíček authored
In general, events are code handling some some condition, which is scheduled when such condition happened and executed independently from I/O loop. Work-events are a subgroup of events that are scheduled repeatedly until some (often significant) work is done (e.g. feeding routes to protocol). All scheduled events are executed during each I/O loop iteration. Separate work-events from regular events to a separate queue and rate limit their execution to a fixed number per I/O loop iteration. That should prevent excess latency when many work-events are scheduled at one time (e.g. simultaneous reload of many BGP sessions).
-
- Mar 09, 2021
-
-
Ondřej Zajíček authored
-
- Feb 12, 2021
-
-
Ondřej Zajíček authored
Also, no automatic reload for BGP channels without import/export table.
-
- Feb 10, 2021
-
-
Ondřej Zajíček authored
If there are roa_check() calls in channel filters, then the channel subscribes to ROA table notifications, which are sent when ROA tables are updated (subject to settle time) and trigger channel reload or refeed.
-
- Feb 07, 2021
-
-
Ondřej Zajíček authored
Add macros for recursive filter iteration that allows to examine all instructions reachable from a filter.
-
- Jan 06, 2021
-
-
Ondřej Zajíček authored
No longer needed after redesign of export handling.
-
- Dec 07, 2020
-
-
Ondřej Zajíček authored
The patch add support for per-channel debug flags, currently just 'states', 'routes', and 'filters'. Flag 'states' is used for channel state changes, remaining two for routes passed through the channel. The per-protocol debug flags 'routes'/'filters' still enable reporting of routes for all channels, to keep existing behavior. The patch causes minor changes in some log messages.
-
- Nov 24, 2020
-
-
Ondřej Zajíček authored
When config structures are copied due to template application, we need to reset list node structure before calling add_tail(). Thanks to Mikael Magnusson for patches.
-
- Jun 28, 2020
-
-
Ondřej Zajíček authored
Most commands like 'show ospf neighbors' fail when protocol is not specified and there are multiple instances of given protocol type. This is annoying in BIRD 2, as many protocols have IPv4 and IPv6 instances. The patch changes that by showing output from all protocol instances of appropriate type. Note that the patch also removes terminating cli_msg() call from these commands and moves it to the common iterating code.
-
- Apr 09, 2020
-
-
Maria Matejka authored
This is merely a const propagation. There was no problem in there.
-
- Dec 10, 2019
-
-
Ondřej Zajíček authored
Channel currently does not have independent pool and uses protocol pool, which is freed when protocol changes state to down, while channel is still in flushing. Move some some cleanup code to channel_do_flush() so it is done before freeing of protocol pool.
-
- Nov 26, 2019
-
-
Ondřej Zajíček authored
Use a hierarchical bitmap in a routing table to assign ids to routes, and then use bitmaps (indexed by route id) in channels to keep track whether routes were exported. This avoids unreliable and inefficient re-evaluation of filters for old routes in order to determine whether they were exported.
-
- Aug 14, 2019
-
-
Ondřej Zajíček authored
Only channels that are up can be reloaded.
-
Ondřej Zajíček authored
The patch implements optional internal export table to a channel and hooks it to BGP so it can be used as Adj-RIB-Out. When enabled, all exported (post-filtered) routes are stored there. An export table can be examined using e.g. 'show route export table bgp1.ipv4'.
-
- Aug 06, 2019
-
-
Ondřej Zajíček authored
Several BGP channel options (including 'next hop self') could be reconfigured without session reset, with just route refeed/refresh. The patch improves reconfiguration code to do it that way.
-
- Jul 24, 2019
-
-
Ondřej Zajíček authored
Protocol can have specified VRF, in such case it is restricted to a set of ifaces associated with the VRF, otherwise it can use all interfaces. The patch allows to specify VRF as 'default', in which case it is restricted to a set of iface not associated with any VRF.
-
- Jun 30, 2019
-
-
Ondřej Zajíček authored
When 'graceful down' command is entered, protocols are shut down with regard to graceful restart. Namely Kernel protocol does not remove routes and BGP protocol does not send notification, just closes the connection.
-
- Apr 30, 2019
-
-
Ondřej Zajíček authored
Support for dynamically spawning BGP protocols for incoming connections. Use 'neighbor range' to specify range of valid neighbor addresses, then incoming connections from these addresses spawn new BGP instances.
-
- Feb 20, 2019
-
-
Maria Matejka authored
... and consted some declarations.
-
- Feb 05, 2019
-
-
Ondřej Zajíček authored
Thanks to Michal Nowak for reporting the issue.
-
- Feb 02, 2019
-
-
Ondřej Zajíček authored
-
- Dec 18, 2018
-
-
Maria Matějka authored
This protocol is highly experimental and nobody should use it in production. Anyway it may help you getting some insight into what eats so much time in filter processing.
-
- Dec 16, 2018
-
-
Ondřej Zajíček authored
The patch d506263d... blocked adding channel during reconfiguration, that broke protocols which use the same functiona also during init. This patch fixes that.
-
- Dec 12, 2018
-
-
Ondřej Zajíček authored
The patch implements optional internal import table to a channel and hooks it to BGP so it can be used as Adj-RIB-In. When enabled, all received (pre-filtered) routes are stored there and import filters can be re-evaluated without explicit route refresh. An import table can be examined using e.g. 'show route import table bgp1.ipv4'.
-
- Dec 11, 2018
-
-
Ondřej Zajíček authored
When a new channel is found during reconfiguration, do force restart of the protocol, like with any other un-reconfigurable change. The old behavior was that the new channel was added but remained in down state, even if the protocol was up, so a manual protocol restart was often necessary. In the future this should be improved such that a reconfigurable channel addition (e.g. direct) is accepted and channel is started, while an un-reconfigurable addition forces protocol restart.
-
- Nov 20, 2018
-
-
Ondřej Zajíček authored
The new MRT protocol is responsible for periodic RIB table dumps in the MRT format (RFC 6396). Also the existing code for BGP4MP MRT dumps is refactored and splitted between BGP to MRT protocols, will be more integrated into MRT in the future. Example: protocol mrt { table "*"; filename "%N_%F_%T.mrt"; period 60; } It is partially based on the old MRT code from Pavel Tvrdik.
-
- Oct 01, 2018
-
-
Ondřej Zajíček authored
-
- Jul 03, 2018
-
-
Ondřej Zajíček authored
If export filter is changed during reconfiguration and a route disappears between reconfiguration and refeed (e.g., if the route is a static route also removed during the reconfiguration), the route is not withdrawn. The patch fixes that by adding tx reconfiguration timestamp.
-
- May 29, 2018
-
-
Jan Maria Matejka authored
This supersedes the EAP_* constants.
-
- Jan 10, 2018
-
-
Ondřej Zajíček authored
-
- Jan 09, 2018
-
-
Ondřej Zajíček authored
Multiple definitions of same channels are forbidden, but inherited channel can be redefined. In such case channel options are merged.
-
Ondřej Zajíček authored
Function filter_same() must be called with arguments in proper order, otherwise it breaks the new filter, causing crash during route processing.
-
- Dec 08, 2017
-
-
Ondřej Zajíček authored
-
- Dec 07, 2017
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-