- 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.
-
Ondřej Zajíček authored
Do not apply dynamic type check for second argument of AND/OR, as it is not evaluated immediately like regular argument would be. Thanks to Mikael for the bugreport.
-
- 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 17, 2019
-
-
Ondřej Zajíček authored
Use route id from net->routes to check export_map. Route received from sysdep KRT code does not have proper id.
-
Ondřej Zajíček authored
Initial parsing of test.conf must be done directly in filter_test main, while reconfiguration is handled as a regular test. Also fix several minor issues in test code.
-
- Dec 16, 2019
-
-
Ondřej Zajíček authored
Thanks to Nico Schottelius for the bugreport.
-
Ondřej Zajíček authored
The same information is stored in export_map of kernel protocol.
-
- Dec 12, 2019
-
-
Maria Matejka authored
-
- Dec 10, 2019
-
-
Ondřej Zajíček authored
Check the SYM_FLAG_SAME in new symbols. The old code checked that in old symbols (f2).
-
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.
-
- Dec 09, 2019
-
-
Ondřej Zajíček authored
-
- Dec 03, 2019
-
-
Ondřej Zajíček authored
Add some statistic counters to BGP consistent with BGP MIB (RFC 4273), including persistent 'FSM established transitions'.
-
- Nov 26, 2019
-
-
Add more Docker images with distributions (CentOS 8, Debian 10, Fedora 27-31, OpenSUSE 15.0 & 15.1, and Ubuntu 18.04 & 19.04). Fix some issues with older ones.
-
Ondřej Zajíček authored
Env templates were used for separate IPv4/IPv6 build, that is no longer needed.
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
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.
-
Ondřej Zajíček authored
Basic bitmap is obvious. Hierarchical bitmap is structure of several bitmaps, where higher levels are conjunctions of intervals on level below, allowing for efficient lookup of first unset bit.
-
Ondřej Zajíček authored
Continuation lines may use short form (with space instead of message number), but this should not be done when previous line is final. Thanks to Kenth Eriksson for the bugreport and analysis.
-
- Nov 18, 2019
-
-
Ondřej Zajíček authored
During NLRI parsing of IPv6 Flowspec, dst prefix was not properly extracted from NLRI, therefore a received flow was stored in a different position in flowspec routing table, and was not reachable by command 'show route <flow>'. Add proper prefix part accessors to flowspec code and use them from BGP NLRI parsing code. Thanks to Alex D. for the bugreport.
-
- Nov 12, 2019
-
-
Ondřej Zajíček authored
Accept RTA_VIA attribute in all cases. The old code always used RTA_GATEWAY for IPv4 / IPv6 and RTA_VIA for MPLS. The new code uses RTA_VIA in cases where AF of network and AF of nexthop differs.
-
- Nov 10, 2019
-
-
Ondřej Zajíček authored
This is optional check described in RFC 4271. Although this can be also done by filters, it is widely implemented option in BGP implementations. Thanks to Eugene Bogomazov for the original patch.
-
- Nov 05, 2019
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
We use constant promotion from IPv4 to Router-ID values, as they have same literals. Instead of ad-hoc code in filter instructions, add constant promotion code to parse-time typecheck code.
-
Ondřej Zajíček authored
-
Most expressions can be type-validated in parse time. It is not strong enough to eliminate runtime checks, but at least one gets errors immediately during reconfigure.
-
- Nov 04, 2019
-
-
Ondřej Zajíček authored
There is a pending draft to make them obsolete
-
- Nov 03, 2019
-
-
Ondřej Zajíček authored
We already had them defined on BGP level, but they are more general.
-
Ondřej Zajíček authored
For regular channels do not compare src in export table, as we want to keep here only the best (exported) route per network.
-
- Oct 26, 2019
-
-
Ondřej Zajíček authored
-
- Oct 25, 2019
-
-
Ondřej Zajíček authored
The route is changed by rte_make_tmp_attrs(), so we need to compare net->routes to the original one. Thanks to Kenth Eriksson for the bugreport.
-
- Oct 24, 2019
-
-
Ondřej Zajíček authored
Transitive extended communities should be removed on external sessions, the old code them in all cases. Thanks to Jean-Daniel Pauget for the original patch.
-
- Oct 22, 2019
-
-
Ondřej Zajíček authored
Names read from texfiles in /etc/iproute2/* are normalized by replacing non-alphanumeric chars with underscore. The patch fixes handling of uppercase letters, which were handled as non-alphanumberic. Thanks to Igor Gavrilov for the bugreport.
-
- Oct 19, 2019
-
-
(CHECK keyword added by commiter)
-
Ondřej Zajíček authored
The old code used just sizeof(struct sockaddr) bytes of IP address.
-