0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-19 20:05:21 +00:00
Commit Graph

1895 Commits

Author SHA1 Message Date
Maria Matejka
5098430748 Merge branch 'mq-aggregator-for-v3' into thread-next 2023-11-09 16:00:32 +01:00
Maria Matejka
29ffc62b76 Merge commit 'e915f99e' into mq-aggregator-for-v3 2023-11-09 16:00:09 +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
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
515df18da7 Merge branch 'mq-aggregator-for-v3' into thread-next 2023-11-08 22:24:33 +01:00
Maria Matejka
4c07f33261 Merge commit '9d456d53' into mq-aggregator-for-v3 2023-11-08 22:14:58 +01:00
Maria Matejka
49ee823f82 Merge branch 'mq-aggregator-for-v3' into thread-next 2023-11-08 22:14:19 +01:00
Maria Matejka
cac866d5eb Merge commit '15c86ed0' into mq-aggregator-for-v3 2023-11-08 21:56:58 +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
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
d8463ca7d9 Merge branch 'mq-aggregator-for-v3' into thread-next 2023-11-01 17:48:00 +01:00
Maria Matejka
dd0f3940d3 Merge commit '8ad9c4bb' into mq-aggregator-for-v3 2023-11-01 17:46:52 +01:00
Maria Matejka
f32e53d7b1 Merge branch 'mq-aggregator-for-v3' into thread-next 2023-11-01 17:44:37 +01:00
Maria Matejka
5f166f6782 Aggregator: fixed route source unlocking on shutdown and withdraw 2023-11-01 17:25:29 +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
Maria Matejka
c103b51fca Aggregator: Expressed most of the attribute logic in filter language 2023-11-01 10:15:16 +01:00
Maria Matejka
e8dcc62ecd Merge commit 'ba91f4c831f057b81104d1453f99b012c01f9c9e' into thread-next 2023-10-31 16:54:58 +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
ba91f4c831 Filters: allowing to return any number of values 2023-10-31 16:40:46 +01:00
Maria Matejka
fc3f07fdc3 Merge commit '407eb388b7082b52921e93476c8ff1a98fe3b873' into thread-next 2023-10-31 10:28:01 +01:00
Maria Matejka
407eb388b7 Filter: predefined variables for specific blocks
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:37 +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
737807c118 Merge commit 'bb8e2824' into thread-next 2023-10-29 00:56:06 +02:00
Maria Matejka
1a49a4aea8 Merge commit 'fc9d471b' into thread-next
Conflicts:
	conf/cf-lex.l
	conf/conf.h
	filter/config.Y
	filter/data.c
	filter/data.h
2023-10-28 23:42:21 +02: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
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
Maria Matejka
6c85016dd4 Merge commit 'aa70e14c' into thread-next 2023-10-24 09:34:06 +02:00
Maria Matejka
7efa3bac4f Merge commit 'cce48c6c' into thread-next 2023-10-13 14:02:21 +02:00
Maria Matejka
cdb95c2858 Merge commit 'f411a19b' into thread-next 2023-10-13 13:46:04 +02:00
Maria Matejka
e7acdf6428 Merge commit 'fc354788' into thread-next 2023-10-13 11:32:53 +02:00
Maria Matejka
dabf2f5625 RIP: actually remove the interface structures on shutdown
This avoids a spurious route update fail when protocol shutdown collides
with an incoming RIP packet.
2023-10-13 11:23:29 +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
3cfa9ac253 Merge commit 'e2f08c382a2adbbbd94c5cd7d996ce9175e0fb9c' into HEAD 2023-10-12 11:38:16 +02:00
Maria Matejka
b708dd367a Merge commit '4972590e' into thread-next 2023-10-12 11:05:28 +02:00
Maria Matejka
e2f08c382a BGP/BMP: fixed build with no bmp at all 2023-10-12 10:57:55 +02:00
Maria Matejka
4972590ea5 BGP: dropped bgp_fix_attr_flags() (useless remnant from previous versions) 2023-10-12 09:29:09 +02:00
Maria Matejka
2cbf7c48ad Merge commit 'b20b6a9ad204f2648ed3d62720435bb21dfb947c' into thread-next 2023-10-11 22:26:41 +02:00
Maria Matejka
b20b6a9ad2 BGP/BMP: Moved temporary allocation checks to the freeing functions 2023-10-11 22:23:34 +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
e915f99e1c L3VPN: Fix bug in reconfiguration
Fields import_target / export_target link to config structures, must be
updated during reconfiguration.
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