Maria Matejka
93c5a314da
Dropping the RTS_DUMMY temporary route storage.
...
Kernel route sync is done by other ways now and this code is not used
currently.
2020-04-30 16:14:26 +02:00
Maria Matejka
adebcd5e0a
Babel: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
083e0dbb36
OSPF: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
0bb56d9b1b
RIP: Convert the rte-local attributes to extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
7c3a91cfab
Allow a generic pointer in route extended attributes
2020-04-30 16:14:26 +02:00
Maria Matejka
6942e20d97
BGP: Moved the suppressed and stale flags to pflags
2020-04-30 16:14:26 +02:00
Maria Matejka
1fd32f9562
Preference moved to RTA and set explicitly in protocols
2020-04-30 16:14:26 +02:00
Maria Matejka
86dbe0980c
Route import API redefinition.
...
Hidden rte_get_temp() into rte_update().
Split rte_update() / rte_withdraw().
2020-04-30 16:14:25 +02:00
Maria Matejka
0227ccd159
Uninitialized list nodes fixes
2020-04-28 16:25:14 +02:00
Maria Matejka
684caacd4f
Nest: Added const to ea_show just to declare that this shouldn't really change anything
2020-04-28 16:25:14 +02:00
Maria Matejka
aaf2ae5613
Nest: Several assumptions to tame the static analyzer
2020-04-28 16:25:14 +02:00
Maria Matejka
2efc73a9a0
Nest: Assumption in rt-show for not-so-intuitive invariant.
2020-04-28 16:25:14 +02:00
Nasato Goto
a6548d5b5b
BGP: Fix handling of 16bit-only ASN translation
...
The bug generated invalid AGGREGATOR attribute during translation of
32bit ASN to 16bit-only BGP peer. The patch fixes that.
2020-04-15 03:46:53 +02:00
Maria Matejka
fd9f0c0640
Configuration strings are constant.
...
This is merely a const propagation. There was no problem in there.
2020-04-09 15:37:14 +02:00
Ondrej Zajicek (work)
2755002890
Filter: Optimize IPv4 prefix sets
...
Use separate IPv4 and IPv6 implementation of prefix sets. Just this
change makes IPv4 prefix sets 60% smaller and 50% faster.
2020-03-26 03:57:48 +01:00
Ondrej Zajicek (work)
22c3cf955d
RIP: Demand circuit support (RFC 2091)
2020-02-21 02:35:50 +01:00
Maria Matejka
4bbc10614f
Added missing extern
...
Thanks to Robert Scheck <bird@robert-scheck.de> who reported it
and Toke Høiland-Jørgensen <toke@toke.dk> who suggested this patch.
2020-02-04 10:11:16 +01:00
Ondrej Zajicek (work)
7d767c5a3d
KRT: Improve syncer code to avoid using temporary data in rtable
...
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.
2020-01-07 18:35:03 +01:00
Ondrej Zajicek (work)
cc75b3e1dc
KRT: Remove KRF_SYNC_ERROR flag
...
This info is now stored in an internal bmap. Unfortunately, net.flags
is still needed for temporary kernel data.
2019-12-19 16:34:35 +01:00
Ondrej Zajicek (work)
c132acae36
KRT: Remove KRF_INSTALLED flag
...
The same information is stored in export_map of kernel protocol.
2019-12-16 02:42:24 +01:00
Ondrej Zajicek (work)
4ab54f1aef
Nest: Fix bitmap cleanup
...
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.
2019-12-10 18:18:02 +01:00
Ondrej Zajicek (work)
5ea39eaa96
Nest: Use bitmaps to keep track of exported routes
...
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-26 18:39:25 +01:00
Ondrej Zajicek (work)
d033e6327d
CLI: Fix continuation lines after final one
...
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-26 16:43:09 +01:00
Ondrej Zajicek (work)
a52476c9be
BGP: Add option to reject AS_SETs
...
There is a pending draft to make them obsolete
2019-11-04 22:09:35 +01:00
Ondrej Zajicek (work)
0edf0c8cd9
Support for address family constants
...
We already had them defined on BGP level, but they are more general.
2019-11-03 22:25:44 +01:00
Ondrej Zajicek (work)
08c4c9a30b
Nest: Fix bug in export table
...
For regular channels do not compare src in export table, as we want to
keep here only the best (exported) route per network.
2019-11-03 20:25:42 +01:00
Ondrej Zajicek (work)
498d8145c0
Nest: Fix primary flag in show route
...
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-25 13:28:51 +02:00
Fabrice Fontaine
f9eb9b4cab
Nest: Fix build without protocols
...
(CHECK keyword added by commiter)
2019-10-19 12:50:27 +02:00
Ondrej Zajicek (work)
843b10c8b0
Nest: Handle non-MPLS on MPLS case in recursive route update
...
When non-MPLS recursive route resolves to MPLS underlying route,
then it should get MPLS labels from the the underlying route.
2019-10-10 15:25:36 +02:00
Ondrej Zajicek (work)
9eace84342
Nest: Handle PtP links in recursive route update
...
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-10 15:06:32 +02:00
Ondrej Zajicek (work)
cb2b6e0494
Nest: Fix recursive route update
...
Missing cleanup can lead to dangling pointer to old next hops.
2019-10-10 14:01:16 +02:00
Ondrej Zajicek (work)
09ee846d92
BGP: AIGP metric support (RFC 7311)
2019-10-09 17:53:23 +02:00
Ondrej Zajicek (work)
ca2dacfcee
Nest: Fix bug in export table
...
Exported route may be in modified state, we need to get cached one for
rte_same() and rta_clone() to work properly.
2019-09-24 17:17:37 +02:00
Maria Matejka
32a254050d
Channel refeed with import table splitting between routes for one prefix
2019-08-27 19:14:15 +02:00
Ondrej Zajicek (work)
a297a4f044
Nest: Fix crash in route reload when some channels are not up.
...
Only channels that are up can be reloaded.
2019-08-14 06:02:33 +02:00
Ondrej Zajicek (work)
b7d7599ce3
BGP: implement Adj-RIB-Out
...
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'.
2019-08-14 06:02:33 +02:00
Ondrej Zajicek (work)
9f3e098320
Filter: Allow to use set constants / expressions in path masks
...
Allow to not only use set literals in path masks, but also existing
set constants or set expressions.
2019-08-06 18:54:19 +02:00
Ondrej Zajicek (work)
ef113c6f72
Filter: Allow to use sets in path masks
2019-08-06 16:58:13 +02:00
Ondrej Zajicek (work)
e2b530aa72
BGP: Improve reconfiguration
...
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.
2019-08-06 15:29:06 +02:00
Maria Matejka
2de1e2062e
Conf: Fixed symbol redefinition
2019-07-30 14:28:40 +02:00
Ondrej Zajicek (work)
cec40a7467
Merge remote-tracking branch 'origin/mq-filter-stack'
2019-07-24 15:38:32 +02:00
Ondrej Zajicek (work)
18f70a6229
Nest: VRF of protocol can be explicitly specified as 'default'
...
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.
2019-07-24 15:08:03 +02:00
Ondrej Zajicek (work)
cf7ff99513
BFD: Support for VRFs
...
Allow multiple BFD instances in separate VRFs, dispatch BFD requests
according to VRFs.
Thanks to Alexander Zubkov for notice and patches.
2019-07-17 16:20:35 +02:00
Maria Matejka
b2a4feeb4c
Merge branch 'master' into mq-filter-stack
2019-07-10 11:27:08 +02:00
Maria Matejka
05e3933c06
Nest: Uninitialized variable fix
...
Thanks to Vincent Bernat for reporting this.
2019-07-08 13:05:14 +02:00
Maria Matejka
eac9250fd5
Merge branch 'master' into mq-filter-stack
2019-07-03 11:12:25 +02:00
Maria Matejka
84ac62d396
Filter: CLI command to dump all the linearized filters
2019-07-03 08:27:56 +02:00
Maria Matejka
3265c9169d
Removed obsolete comment at as_path_cut()
2019-07-03 00:04:24 +02:00
Maria Matejka
78976974e7
Dynamic attributes definition split whether it is bitmask or not.
2019-07-03 00:00:11 +02:00
Ondrej Zajicek (work)
59d3a3611f
Netlink: Handle alien routes with unsorted nexthops
...
Nest requires that nexthops are sorted, the kernel protocol have to
ensure that for alien routes.
2019-07-02 18:23:06 +02:00