- 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.
-
- 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.
-
- Oct 11, 2019
-
- Oct 10, 2019
-
-
Ondřej Zajíček authored
Change of some options requires route refresh, but when import table is active, channel reload is done from it instead of doing full route refresh. So in this case we request it internally.
-
Ondřej Zajíček authored
Thanks to Christoph for the bugreport.
-
Ondřej Zajíček authored
When non-MPLS recursive route resolves to MPLS underlying route, then it should get MPLS labels from the the underlying route.
-
Ondřej Zajíček authored
Underlying (IGP) route may lead to PtP link, in this case it does not need gateway. Which is different than direct route without gateway. When recursive (BGP) route uses PtP route, it should not use recursive next hop as immediate next hop, while for direct routes it should.
-
Ondřej Zajíček authored
Missing cleanup can lead to dangling pointer to old next hops.
-
- Oct 09, 2019
-
-
Ondřej Zajíček authored
-
Ondřej Zajíček authored
Use 'l' for s64/u64 instead of for long/ulong, as that is much more useful. Also make number() correct with regard to signed/unsigned typecasts.
-
-