- Apr 19, 2021
-
-
Maria Matejka authored
This fixes an internal table cleanup bug introduced in ff397df7.
-
- Mar 30, 2021
-
-
Maria Matejka authored
This saves some bytes of memory for complex ea's.
-
Maria Matejka authored
This also fixes memory leaks from import/export tables being never cleaned up and freed.
-
Maria Matejka authored
-
- 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
-
-
This is an implementation of draft-walton-bgp-hostname-capability-02. It is implemented since quite some time for FRR and in datacenter, this gives a nice output to avoid using IP addresses. It is disabled by default. The hostname is retrieved from uname(2) and can be overriden with "hostname" option. The domain name is never set nor displayed. Minor changes by committer.
-
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 29, 2020
-
-
(Minor syntactic changes by committer)
-
- 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
Also fixes some more failed asserts due to add_tail().
-
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.
-
Ondřej Zajíček authored
-
- Nov 15, 2020
-
-
Ondřej Zajíček authored
Logging as a result of triggered receive limit in import table code accesset rte->net, which was not filed yet. Thanks to Pier Carlo Chiodi for the bugreport.
-
- Nov 12, 2020
-
-
Ondřej Zajíček authored
Merge multiple BFD option blocks in BGP configs instead of using the last one. That is necessary for proper handling of templates when BFD options are used both in a BGP template and in a BGP protocol derived from that template.
-
- Nov 08, 2020
-
-
Ondřej Zajíček authored
BFD session options are configured per interface in BFD protocol. This patch allows to specify them also per-request in protocols requesting sessions (currently limited to BGP).
-
- Jul 16, 2020
-
-
Ondřej Zajíček authored
Put new non-best routes to the end of list instead of the second position. Put updated routes to their old position. Position is changed just by best route selection.
-
- 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.
-
- May 19, 2020
-
-
Ondřej Zajíček authored
There is nothing in RFCs specifying that id 0 is not allowed. Some implementations does not support it, while some other use key id 0 by default. We allow it but start with key id 1 by default. Thanks to Kenth Eriksson for the bugreport.
-
- May 18, 2020
-
-
Ondřej Zajíček authored
Implement regex-like '+' operator in BGP path masks to match previous path mask item multiple times. This is useful as ASNs may appear multiple times in paths due to path prepending for traffic engineering purposes.
-
- May 11, 2020
-
-
Ondřej Zajíček authored
Resolve neighbors using longest prefix match. Although interface ranges should not generally collide, it may happen for unnumbered links. Thanks to Kenth Eriksson for the bugreport.
-
- May 01, 2020
-
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
Maria Matejka authored
-
- Apr 15, 2020
-
-
The bug generated invalid AGGREGATOR attribute during translation of 32bit ASN to 16bit-only BGP peer. The patch fixes that.
-
- Apr 09, 2020
-
-
Maria Matejka authored
This is merely a const propagation. There was no problem in there.
-
- Mar 26, 2020
-
-
Ondřej Zajíček authored
Use separate IPv4 and IPv6 implementation of prefix sets. Just this change makes IPv4 prefix sets 60% smaller and 50% faster.
-
- Feb 21, 2020
-
-
Ondřej Zajíček authored
-
- Feb 04, 2020
-
-
Maria Matejka authored
Thanks to Robert Scheck <bird@robert-scheck.de> who reported it and Toke Høiland-Jørgensen <toke@toke.dk> who suggested this patch.
-
- Jan 07, 2020
-
-
Ondřej Zajíček authored
The old code stored route verdicts and temporary routes directly in rtable. The new code do not store received routes (it immediately compares them with exported routes and resolves conflicts) and uses internal bitmap to keep track of which routes were received and which needs to be reinstalled. By not putting 'invalid' temporary routes to rtable, we keep rtable in consistent state, therefore scan no longer needs to be atomic operation and could be splitted to multiple events.
-
- Dec 19, 2019
-
-
Ondřej Zajíček authored
This info is now stored in an internal bmap. Unfortunately, net.flags is still needed for temporary kernel data.
-
- Dec 16, 2019
-
-
Ondřej Zajíček authored
The same information is stored in export_map of kernel protocol.
-
- 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.
-