summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-11-26Nest: Use bitmaps to keep track of exported routesOndrej Zajicek (work)
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.
2019-11-26Lib: Basic and hierarchical bitmapsOndrej Zajicek (work)
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.
2019-11-26CLI: Fix continuation lines after final oneOndrej Zajicek (work)
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.
2019-11-18BGP: Fix processing of IPv6 FlowspecOndrej Zajicek (work)
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.
2019-11-12Netlink: Handle IPv4 routes with IPv6 nexthopsOndrej Zajicek
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.
2019-11-10BGP: Add option to enforce first AS in AS_PATHOndrej Zajicek (work)
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.
2019-11-05Doc: Minor fixOndrej Zajicek (work)
2019-11-05Doc: Add documentation for BGP option 'allow as sets'Ondrej Zajicek (work)
2019-11-05Filter: Add type info for more instructionsOndrej Zajicek (work)
2019-11-05Filter: Improve typecheck error messagesOndrej Zajicek (work)
2019-11-05Filter: Better constant promotionOndrej Zajicek (work)
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.
2019-11-05Filter: Improved parse-time typechecksOndrej Zajicek (work)
2019-11-05Filter: Parse-time typechecksOndrej Zajicek
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.
2019-11-04BGP: Add option to reject AS_SETsOndrej Zajicek (work)
There is a pending draft to make them obsolete
2019-11-03Support for address family constantsOndrej Zajicek (work)
We already had them defined on BGP level, but they are more general.
2019-11-03Nest: Fix bug in export tableOndrej Zajicek (work)
For regular channels do not compare src in export table, as we want to keep here only the best (exported) route per network.
2019-10-26BGP: RFC 8654 got releasedOndrej Zajicek (work)
2019-10-25Nest: Fix primary flag in show routeOndrej Zajicek (work)
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.
2019-10-24BGP: Fix handling of transitive extended communitiesOndrej Zajicek (work)
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.
2019-10-22Accept uppercase letters in iproute2 namesOndrej Zajicek
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.
2019-10-19Nest: Fix build without protocolsFabrice Fontaine
(CHECK keyword added by commiter)
2019-10-19RPKI: Fix handling of IPv6 cache addressesOndrej Zajicek (work)
The old code used just sizeof(struct sockaddr) bytes of IP address.
2019-10-11NEWS and version updatev2.0.7Ondrej Zajicek (work)
2019-10-10BGP: Fix reconfiguration with import tableOndrej Zajicek (work)
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.
2019-10-10Doc: Minor documentation fixesOndrej Zajicek (work)
Thanks to Christoph for the bugreport.
2019-10-10Nest: Handle non-MPLS on MPLS case in recursive route updateOndrej Zajicek (work)
When non-MPLS recursive route resolves to MPLS underlying route, then it should get MPLS labels from the the underlying route.
2019-10-10Nest: Handle PtP links in recursive route updateOndrej Zajicek (work)
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.
2019-10-10Nest: Fix recursive route updateOndrej Zajicek (work)
Missing cleanup can lead to dangling pointer to old next hops.
2019-10-09BGP: AIGP metric support (RFC 7311)Ondrej Zajicek (work)
2019-10-09Lib: Support for 64-bit numbers in bvsnprintf()Ondrej Zajicek (work)
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.
2019-10-09Build: Pass -g to cc called as linker to explicitly keep debug infoMaria Matejka
2019-10-09Testing measures timesMaria Matejka
2019-10-09LTO: debug info also kept with the final binaryMaria Matejka
2019-10-09Perf: allow testing with cached route attributes.Maria Matejka
2019-10-08Doc: Fix duplicated linesOndrej Zajicek
Thanks to elados93 for the patch.
2019-10-04Testing: Don't call vsnprintf with NULL formatMaria Matejka
2019-10-04Fixed undefined behavior on signals.Maria Matejka
The C11 specification allows only sig_atomic_t and _Atomic variable access. All other accesses to global variables are undefined behavior. Using int was probably OK on x86 and x86_64; yet there were some reports from other architectures (especially some MIPS) that in rare cases, after issuing SIGHUP, BIRD did strange things.
2019-09-30BFD: Fix reconfiguration of neighborsOndrej Zajicek (work)
The bfd_reconfigure_neighbors() returned after first reconfigured neighbor instead of continuing with the next one. Thanks to Winston Chen for the bugreport and a patch.
2019-09-24Nest: Fix bug in export tableOndrej Zajicek (work)
Exported route may be in modified state, we need to get cached one for rte_same() and rta_clone() to work properly.
2019-09-24Filter: Fix eval commandOndrej Zajicek (work)
2019-09-23Nest: Fix help for 'graceful restart' commandOndrej Zajicek (work)
Multi-worded commands are not automatically added to top-level help output. Thanks to Christoph for the bugreport.
2019-09-23Filters: Function body comparison result now used.Maria Matejka
Function bodies were compared in post-parse time, yet the result was not used and the functions were incorrectly considered the same as before. Now the result is used to reload affected protocols.
2019-09-17BGP: Fix setup with multiple dynamic BGP rangesOndrej Zajicek (work)
Based on a patch from Liam Nattrass, thanks.
2019-09-10NEWS and version updatev2.0.6Ondrej Zajicek (work)
2019-09-10Doc: Update BGP mask documentationOndrej Zajicek (work)
2019-09-10Filter: Fix crash with 'where' filters and function callsOndrej Zajicek (work)
The old 'where' code computed size value incorrectly, which leads to invalid instruction lines and filter errors or crashes.
2019-09-09BGP: Fix handling of bgp_aggregator atttributeOndrej Zajicek (work)
The attribute should not be modifiable by filters as we do not support its type.
2019-09-09BGP: Fix bugs in handling of shutdown messagesOndrej Zajicek (work)
There is an improper check for valid message size, which may lead to stack overflow and buffer leaks to log when a large message is received. Thanks to Daniel McCarney for bugreport and analysis.
2019-08-29OSPF: Fix 'show ospf lsadb' cmd without proto argOndrej Zajicek (work)
It crashed when used without protocol argument. Thanks to Alexander for the bugreport.
2019-08-27Channel refeed with import table splitting between routes for one prefixMaria Matejka