Maria Matejka
87fcb810af
Merge commit '06301a991d80597a2a0a9e449d0cdf4bc1eda6d1' into mq-merge-step-1
2024-01-28 14:54:05 +01:00
Maria Matejka
bd56a41b3a
Merge commit '5973031460372a4d695c44a9f398d516b0e5bac1' into mq-merge-step-1
2024-01-28 14:45:04 +01:00
Maria Matejka
8d2ec536d9
Merge commit 'v2.13.1-183-g2b05844c' into thread-next
2024-01-28 14:28:17 +01:00
Maria Matejka
2b05844cfb
Merge commit 'v2.13.1-139-gc9d1ebbd' into mq-merge-step-2
2024-01-28 14:28:09 +01:00
Maria Matejka
c9d1ebbd42
Merge commit 'ba01a6f2e66d03eb5d9426fdf4973f30e09c5710' into mq-merge-step-1
2024-01-28 14:28:07 +01:00
Maria Matejka
ea0f2c6194
Fixed attributes normalization with underlays in place
2024-01-28 13:16:25 +01:00
Maria Matejka
f9d3112d01
Interfaces: fixed locking when address is deleted implicitly
2024-01-27 19:01:34 +01:00
Maria Matejka
57b5eb5cbd
Merge commit 'v2.13.1-162-g5bf25678' into thread-next
2024-01-27 19:01:06 +01:00
Ondrej Zajicek
f40e2bc270
Nest: Fix bug in recursive routes with MPLS-labeled nexthops
...
When a recursive route with MPLS-labeled nexthop was exported to kernel
and read back, the nexthop_same() failed due to different labels_orig
field and kernel protocol reinstalled it unnecessarily.
For comparing hext hops, route cache has to distinguish ones with
different labels_orig, but KRT has to ignore that, so we need two
nexthop compare functions.
Thanks to Marcel Menzel for the bugreport.
2024-01-27 17:38:06 +01:00
Maria Matejka
5bf2567853
Merge commit 'v2.13.1-125-g90b9e871' into mq-merge-step-2
2024-01-26 23:29:17 +01:00
Maria Matejka
90b9e871b9
Merge commit 'be09b030ed40c76ee0727dd3980df77094fdc907' into mq-merge-step-1
2024-01-26 23:29:14 +01:00
Maria Matejka
8fb1f098d1
Fixes for CLang
2024-01-26 14:50:56 +01:00
Maria Matejka
25e20485ae
Fixed route table attribute caching
2024-01-26 14:42:55 +01:00
Maria Matejka
365ea12ea1
MPLS Subsystem Proper Locking
...
Added also some debug lines if debug is on.
2024-01-26 14:42:44 +01:00
Maria Matejka
e711a991d4
MPLS: FEC Map moved from protocol to MPLS channel
2024-01-08 13:03:25 +01:00
Maria Matejka
34d040a034
MPLS: Domain list locked by The BIRD Lock
2024-01-08 13:03:25 +01:00
Maria Matejka
9815353c5e
MPLS: Putting internal objects aside
2024-01-08 13:03:25 +01:00
Maria Matejka
f0da632b3c
Channels now can have external obstacles temporarily blocking their shutdown
2024-01-08 13:03:25 +01:00
Maria Matejka
e4e90c6f4d
Channel: Replacing refeed status trie by bitmap
...
This fixes a bug with reloading non-IP channels.
2024-01-08 12:02:25 +01:00
Maria Matejka
548dbb2252
Replacing table FIB by netindex and simple pointer block
...
Using the netindex data structure to simplify route storage inside route
tables. This should also help with future unlocking of route import.
2024-01-08 09:34:32 +01:00
Maria Matejka
3b31138854
Dropped forgotten pieces of orphaned internal API
2024-01-08 09:23:35 +01:00
Ondrej Zajicek
7d2c7d59a3
Nest: Fix memory alignment in attribute cache
...
In attribute cache, adata structures were stored densely in one memory
block, without regard to alignment. Let's force at least u32 alignment.
2023-12-13 17:46:16 +01:00
Maria Matejka
25906bc5e9
Merge commit 'ef814fb2d6415206fce280c37466ea889291b043' into HEAD
2023-12-08 12:13:58 +01:00
Maria Matejka
8cf1be6f67
Merge commit 'bb094fb6'
2023-12-08 12:09:30 +01:00
Maria Matejka
ef814fb2d6
Merge commit 'bb094fb6' into mq-aggregator-for-v3
2023-12-08 12:09:17 +01:00
Maria Matejka
bb094fb6c7
Refactoring also net_roa_check
...
Having 4 functions doing almost the same is more mess than three macros.
2023-12-08 12:08:28 +01:00
Maria Matejka
8c19f8a209
Merge commit 'db1eb46664d4c76d56dc55a63ce7abe853fc6862' into HEAD
2023-12-08 11:33:43 +01:00
Maria Matejka
db1eb46664
Merge commit '54ddf90f6370f06efc71c3ffd6e02d031a86866f' into mq-aggregator-for-v3
2023-12-08 09:08:38 +01:00
Maria Matejka
4aac1b259f
Merge commit '54ddf90f'
2023-12-08 08:30:30 +01:00
Maria Matejka
54ddf90f63
Conf: debug tables
...
For now just a dummy config but it is needed for forward
compatibility with v3.
2023-12-07 14:38:05 +01:00
Maria Matejka
9a91ea52db
Refactoring of net_route
2023-12-07 14:11:16 +01:00
Maria Matejka
3b48dc9bce
Table: Adding route refresh begin and end debug messages
2023-12-07 14:11:16 +01:00
Maria Matejka
1df615991c
Generalized the rte_src lockfree usecount algorithm
2023-12-04 10:39:32 +01:00
Maria Matejka
0bcbff42ca
Table: nicer route validation errors
2023-12-04 10:39:32 +01:00
Maria Matejka
5a916ed53f
Locking: Dropping DEFINE_DOMAIN ugly macro
2023-12-04 10:39:32 +01:00
Maria Matejka
080e580834
Route table objects use the new locked object macro stack
2023-11-20 12:09:31 +01:00
Maria Matejka
8558e666e0
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 17:38:31 +01:00
Maria Matejka
219dc0fdb5
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:53:34 +01:00
Maria Matejka
e6362b21dc
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:34:26 +01:00
Maria Matejka
c4c2148ab9
Merge commit 'a7a9df86' into mq-aggregator-for-v3
2023-11-09 16:34:20 +01:00
Maria Matejka
4f2212ccf2
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:34:04 +01:00
Maria Matejka
6067ad6c07
Merge commit '9b775859' into mq-aggregator-for-v3
2023-11-09 16:00:44 +01:00
Maria Matejka
8f2f612e2f
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:59:03 +01:00
Maria Matejka
926c3295d4
Merge commit 'b6385dec' into mq-aggregator-for-v3
2023-11-09 15:58:58 +01:00
Maria Matejka
3ccf890e58
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:58:41 +01:00
Maria Matejka
45ffbb4d76
Merge commit '81a20ca5' into mq-aggregator-for-v3
2023-11-09 15:50:39 +01:00
Maria Matejka
e61fc5272a
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:32 +01:00
Maria Matejka
4d6620a008
Merge commit '35726051' into mq-aggregator-for-v3
2023-11-09 15:50:28 +01:00
Maria Matejka
2193b1efe4
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:15 +01:00
Maria Matejka
c7cc1ccd2e
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:13 +01:00
Maria Matejka
360de8fb68
Merge commit 'fcf22586' into mq-aggregator-for-v3
2023-11-09 15:50:02 +01:00
Maria Matejka
8429b4bc38
Merge commit '8e9e013b' into mq-aggregator-for-v3
2023-11-09 15:35:18 +01:00
Maria Matejka
e203c5a6dd
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:35:11 +01:00
Maria Matejka
eae4177220
Merge commit '3397ca51' into mq-aggregator-for-v3
2023-11-09 15:35:08 +01:00
Maria Matejka
00e40a6b80
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:20:13 +01:00
Maria Matejka
b979c6ce6e
Merge commit 'bcff3ae7' into mq-aggregator-for-v3
2023-11-09 11:06:07 +01:00
Maria Matejka
e5c320d44a
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 11:04:57 +01:00
Maria Matejka
6270373954
Merge commit '9ca86ef6' into mq-aggregator-for-v3
2023-11-09 10:52:53 +01:00
Maria Matejka
30712a2bdf
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-08 21:51:46 +01:00
Ondrej Zajicek
a0b4835253
MPLS: Fix issue with recursive MPLS routes
...
Recursive MPLS routes used hostentry from the original route, which
triggered different table than MPLS table, and therefore were not
updated.
2023-11-07 16:06:15 +01:00
Maria Matejka
c6fba7d7e6
Merge branch 'thread-next' into HEAD
2023-11-02 14:43:15 +01:00
Katerina Kubecova
9680bf68e4
Automatic ROA reloads on channel import
...
This includes updating OSPF, Pipe and RIP to enable partial route reload
directly from the protocols' internal tables.
2023-11-02 14:37:27 +01:00
Maria Matejka
1c0bc707a0
Prefiltering routes by net and custom hook for partial reloads
2023-11-02 14:37:27 +01:00
Maria Matejka
2659aebd9b
Channel feeding request respects the subnet tries
2023-11-02 14:37:27 +01:00
Maria Matejka
898e268d0f
Channel feeding request has a done-hook
2023-11-02 14:37:27 +01:00
Maria Matejka
3611555883
Merge commit '333ddd4f' into mq-aggregator-for-v3
2023-11-02 12:01:22 +01:00
Maria Matejka
f730ecef4f
Dumping route sources along with protocols and routes
2023-11-01 18:25:40 +01:00
Maria Matejka
e85f4e890a
Nexthop dump fix for unreachables
2023-11-01 18:24:32 +01:00
Maria Matejka
f90f2ed680
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-01 18:08:49 +01:00
Maria Matejka
29e3a86ad1
Merge commit '21213be5' into mq-aggregator-for-v3
2023-11-01 17:49:12 +01:00
Maria Matejka
11faa7d36b
Merge branch 'mq-aggregator-for-v3' into HEAD
2023-11-01 10:58:44 +01:00
Maria Matejka
8917f16e4b
Merge branch 'mq-aggregator-for-v3' into HEAD
2023-11-01 10:58:31 +01:00
Maria Matejka
b958228953
Aggregator: Fixed bugs in filter usage
2023-11-01 10:57:43 +01:00
Igor Putovny
f42c118aa7
Basic route aggregation
...
Add a new protocol offering route aggregation.
User can specify list of route attributes in the configuration file and
run route aggregation on the export side of the pipe protocol. Routes are
sorted and for every group of equivalent routes new route is created and
exported to the routing table. It is also possible to specify filter
which will run for every route before aggregation.
Furthermore, it will be possible to set attributes of new routes
according to attributes of the aggregated routes.
This is a work in progress.
Original work by Igor Putovny, subsequent cleanups and finalization by
Maria Matejka.
This is a split-commit of the neighboring aggregator branch
with a bit improved lvalue handling, to have easier merge into v3.
2023-10-31 16:40:46 +01:00
Maria Matejka
b0797c2dcd
Merge commit 'de70474fed139f9acb4ed3f8e925d12de4edcdd0' into thread-next
2023-10-31 09:58:42 +01:00
Maria Matejka
de70474fed
Filter: adding explicit route type
...
This is a split-commit of the neighboring aggregator branch
with a bit improved lvalue handling, to have easier merge into v3.
2023-10-30 13:10:36 +01:00
Maria Matejka
ddf698ec99
Renamed nest/rt.h back to nest/route.h
...
Some [redacted] (yes, myself) had a really bad idea
to rename nest/route.h to nest/rt.h while refactoring
some data structures out of it.
This led to unnecessarily complex problems with
merging updates from v2. Reverting this change
to make my life a bit easier.
At least it needed only one find-sed command:
find -name '*.[chlY]' -type f -exec sed -i 's#nest/rt.h#nest/route.h#' '{}' +
2023-10-29 16:29:26 +01:00
Maria Matejka
c5f6dc8142
Merge commit '0a729b50' into thread-next
...
This merge was particularly difficult. I finally resorted to delete the
symbol scope active flag altogether and replace its usage by other
means.
Also I had to update custom route attribute registration to fit
both the scope updates in v2 and the data model in v3.
2023-10-29 15:42:46 +01:00
Maria Matejka
0ba22509a8
Merge commit '51f2e7af' into thread-next
...
Conflicts:
conf/cf-lex.l
conf/conf.h
conf/confbase.Y
filter/config.Y
nest/config.Y
nest/proto.c
nest/rt-table.c
proto/bgp/bgp.c
sysdep/unix/main.c
2023-10-27 18:29:31 +02:00
Ondrej Zajicek
a740054db5
Nest: Minor fixes in MPLS
2023-10-25 18:25:46 +02:00
Maria Matejka
da52d66177
Merge commit '58efa944' into thread-next
...
Conflicts:
conf/cf-lex.l
conf/conf.h
conf/confbase.Y
conf/gen_keywords.m4
conf/gen_parser.m4
filter/config.Y
nest/config.Y
proto/bgp/config.Y
proto/static/config.Y
Keywords and attributes are split to separate namespaces, to avoid
collisions between regular keyword use and attribute overlay.
2023-10-25 14:41:11 +02:00
Ondrej Zajicek
63f1c4d918
Use RTA_MAX_SIZE in rta_do_cow()
...
This allows to modify MPLS label stack in filters. Fixes a bug in
handling of 'gw_mpls' attribute.
2023-10-24 14:25:18 +02:00
Ondrej Zajicek
b5e9e5197b
MPLS: Fix issue with recursive MPLS routes
...
Recursive MPLS routes used hostentry from the original route, which
triggered different table than MPLS table, and therefore were not
updated.
2023-10-16 15:21:36 +02:00
Maria Matejka
fb4cf949d5
Merge commit '32427c9c' into thread-next
2023-10-13 13:49:09 +02:00
Maria Matejka
cdb95c2858
Merge commit 'f411a19b' into thread-next
2023-10-13 13:46:04 +02:00
Maria Matejka
407e736404
Merge commit '0dbcc927' into thread-next
2023-10-13 13:36:47 +02:00
Maria Matejka
e7acdf6428
Merge commit 'fc354788' into thread-next
2023-10-13 11:32:53 +02:00
Maria Matejka
21b75c472d
Merge commit 'e3c0eca9' into thread-next
2023-10-13 11:04:39 +02:00
Maria Matejka
b901cca2df
Protocol: better granularity of pool management
...
There are now 3 different pools with specific lifetime. All of these are
available since protocol start, anyway they get freed in different
moments.
First, pool_up gets freed immediately after announcing PS_STOP, to e.g.
stop all timers and events regularly updating the routing table when the
imports are already flushing.
Then, pool_inloop gets freed just before the protocol loop is finally
stopped, after all channels, imports and exports and other hooks are
cleaned up.
And finally, the pool itself is freed the last. Unless you explicitly
need the early free, use this pool.
2023-10-13 10:22:09 +02:00
Maria Matejka
767b7b22a0
Merge commit '5121101136cb80151a9361c63dc4822afeb44eef' into thread-next
2023-10-12 14:12:33 +02:00
Maria Matejka
afb9d5d450
Channel: using a separate pool for export data
2023-10-12 11:38:23 +02:00
Maria Matejka
b708dd367a
Merge commit '4972590e' into thread-next
2023-10-12 11:05:28 +02:00
Maria Matejka
65ced75e95
Merge branch 'mq-bmp-to-merge-to-v3' into thread-next
2023-10-11 22:06:18 +02:00
Ondrej Zajicek
ba01a6f2e6
MPLS: Handle compatibility with old configs
...
Old configs do not define MPLS domains and may use a static protocol
to define static MPLS routes.
When MPLS channel is the only channel of static protocol, handle it
as a main channel. Also, define implicit MPLS domain if needed and
none is defined.
2023-10-05 17:54:43 +02:00
Ondrej Zajicek
be09b030ed
MPLS: Update to support and use 64bit source id
2023-10-04 15:00:24 +02:00
Ondrej Zajicek
a7a9df8639
MPLS: Implement FEC map reconfiguration
...
This allows changing label policy or label range without restart.
2023-10-04 13:12:05 +02:00
Ondrej Zajicek
9b775859cd
MPLS: Handle label allocation failures
2023-10-04 13:12:05 +02:00
Ondrej Zajicek
b6385decb3
MPLS: Improve handling of static label allocations
...
Use mpls_new_label() / mpls_free_label() also for static labels, to keep
track of allocated labels and to enforce label ranges.
Static label allocations always use static label range, regardless of
configured label range.
2023-10-04 13:12:05 +02:00
Ondrej Zajicek
81a20ca5d8
Static: Add syntax for static MPLS labels
...
Instead of just using route attributes, static routes with
static MPLS labels can be defined just by e.g.:
route 10.1.1.0/24 mpls 100 via 10.1.2.1 mpls 200;
2023-10-04 13:12:05 +02:00
Ondrej Zajicek
3572605151
MPLS: Label range non-intersection check
2023-10-04 13:12:05 +02:00