0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 17:51:53 +00:00
Commit Graph

721 Commits

Author SHA1 Message Date
Maria Matejka
14bc1fc4c1 Merge commit '1002c35b' into thread-merge-2.16 2024-11-29 10:25:59 +01:00
Maria Matejka
baf963973d Merge commit '80ca0ed2' into thread-merge-2.16
Fixed a nasty merge conflict with bgp_origin serving double duty
as both an attribute and enum name.
2024-11-29 10:20:08 +01:00
Maria Matejka
52a11170fe Merge commit '39e75b87' into thread-merge-2.16 2024-11-28 12:43:43 +01:00
Maria Matejka
029e6c7e1e Merge commit 'a5b4c21d' into thread-merge-2.16 2024-11-28 09:08:32 +01:00
Maria Matejka
b8f7200ee9 Merge commit 'bc10975a' into thread-merge-2.16 2024-11-28 08:56:27 +01:00
Maria Matejka
1dd21f6024 Netlink: Fixed handling of undefined bitfields in filters
The default value is obviously false everywhere so we just return zero
if nothing is found, instead of undef.
2024-11-25 17:14:32 +01:00
Maria Matejka
7491cdbd1d Filter: multi-command case branches now need braces.
Removing an exception from the otherwise quite systematic syntax.
Closes #111.
2024-11-25 17:06:24 +01:00
Katerina Kubecova
330c71bd0a More attribute types: pointers, strings, btime
For the upcoming rework of protocol state information propagation,
we need some more eattr types to be defined.

These types are probably not defined completely and before using
them for route attributes, you should check that they don't lack
some crucial methods.
2024-11-09 09:55:40 +01:00
Ondrej Zajicek
1002c35bf9 Filter: Replace T_ENUM_NETTYPE with T_ENUM_NET_TYPE
To be consistent with other enum type names.
2024-10-18 16:49:19 +02:00
Ondrej Zajicek
80ca0ed279 Filter: Add enum types to filter grammar
Enum types existed on semantic level, but not on syntactic level,
so they could not be used in filter code.

Generate filter grammar for enum types based on CF_ENUM() declarations.

Thanks to lbz for the bugreport.
2024-10-18 16:39:42 +02:00
Ondrej Zajicek
39e75b879b Filter: Fixes and improvements related to case/sets
Unify grammar for set_atom and switch_atom to avoid inconsistencies
between them. Fix errors in documentation related to case statement
and set type. Change 'vpnrd' to 'rd' to be consistent with the filter
language.

Thanks to Mikhail Mayorov for bugreport.
2024-10-08 19:44:17 +02:00
Maria Matejka
aa11e82174 Filter unit test uncertainty hack 2024-06-26 18:30:17 +02:00
Maria Matejka
83045e9a1f Configuration obstacles made a separate, explicit structure
With this, one can walk the obstacle list in a debugger and
easier see which specific object is holding the reference.
2024-06-14 23:16:07 +02:00
Maria Matejka
c4fbc5592d Filter global values are not used directly from config 2024-06-14 23:16:07 +02:00
Maria Matejka
499d5e6fb3 ROA tables have now an auxiliary table
There is an IP table for every ROA table, holding special records
combining all known ROAs for every top-prefix.

The ROA digestor is now an IP digestor, running over the auxiliary
table.
2024-06-12 09:23:50 +02:00
Maria Matejka
602595fe10 Attributes: cleanup
Dropping EAF_TYPE__MAX and adding a check for forgotten
ea class registration
2024-06-12 09:23:50 +02:00
Ondrej Zajicek
a5b4c21d81 Filter: Silence some warnings in clang 2024-05-30 02:40:55 +02:00
Ondrej Zajicek
07757b8a0c Filter: Initialize route attribute flags properly
Move 'flags' field back to ea_class, so filtering code can use it to
initialize route attribute flags when set by filters.
2024-04-01 02:53:25 +02:00
Ondrej Zajicek
1beafe3eea Fix merge commit c195c7a0d5 2024-03-28 17:55:43 +01:00
Ondrej Zajicek
c195c7a0d5 Merge commit '224a152c53f304881f8616a1c9255b467062a069' into thread-next 2024-03-28 16:22:23 +01:00
Maria Matejka
bc10975adb ASPA: checks done in filters; no autoreload yet 2024-03-25 14:15:30 +01:00
Ondrej Zajicek
114be2af28 Filter: Add route attribute gw_mpls_stack
Add route attribute gw_mpls_stack to make MPLS stack of route nexthop
accessible from filters. Its type is T_CLIST, which is really not correct
(as it is a list, while T_CLIST is a set). Therefore, we keep this
attribute *undocumented* and it will be *changed* without further notice.

Based on a patch from Trisha Biswas <tbiswas@fastly.com>, thanks!
2024-03-05 16:47:08 +01:00
Ondrej Zajicek
224a152c53 Filter: Add support for string route attribute 2024-02-14 14:29:19 +01:00
Maria Matejka
a0041dd236 Merge commit '472be46f7ab211f38e7662543f1436df30dca753' into thread-next 2024-01-28 23:09:54 +01:00
Maria Matejka
4628a117d9 Merge commit 'v2.13.1-186-g761649e6' into thread-next 2024-01-28 14:38:43 +01:00
Maria Matejka
761649e66b Merge commit 'v2.13.1-141-g4f806813' into mq-merge-step-2 2024-01-28 14:29:16 +01:00
Maria Matejka
772922b37b Merge commit 'v2.13.1-180-g9d8b8959' into thread-next 2024-01-28 14:27:50 +01:00
Maria Matejka
9d8b8959af Merge commit 'v2.13.1-137-g31e60fd4' into mq-merge-step-2 2024-01-28 14:24:55 +01:00
Maria Matejka
b88b724e86 Merge commit 'v2.13.1-171-g92832b2f' into thread-next 2024-01-28 14:20:29 +01:00
Maria Matejka
92832b2f6b Merge commit 'v2.13.1-131-g21c3a54d' into mq-merge-step-2 2024-01-28 14:20:22 +01:00
Maria Matejka
8fb1f098d1 Fixes for CLang 2024-01-26 14:50:56 +01:00
Katerina Kubecova
472be46f7a Filter: Tests for net_addr
Minor changes by committer.
2024-01-22 07:08:11 +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
3611555883 Merge commit '333ddd4f' into mq-aggregator-for-v3 2023-11-02 12:01:22 +01:00
Maria Matejka
8917f16e4b Merge branch 'mq-aggregator-for-v3' into HEAD 2023-11-01 10:58:31 +01:00
Maria Matejka
e8dcc62ecd Merge commit 'ba91f4c831f057b81104d1453f99b012c01f9c9e' into thread-next 2023-10-31 16:54:58 +01:00
Maria Matejka
9ebd380593 Merge commit 'df5a08e7c717ff421a52b4144d741f0a9749159f' into thread-next 2023-10-31 16:48:48 +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
df5a08e7c7 Filter: value hashing
Added a code for computing hash of filter values.

This is a split-commit of the neighboring aggregator branch
with improved lvalue and attribute handling.
2023-10-31 16:40:44 +01:00
Maria Matejka
fc3f07fdc3 Merge commit '407eb388b7082b52921e93476c8ff1a98fe3b873' into thread-next 2023-10-31 10:28:01 +01:00
Maria Matejka
d18a68cef7 Merge commit 'f0187d713c36e841fe8bab350e84f5257a74981a' into thread-next 2023-10-31 10:20:22 +01:00
Maria Matejka
b0797c2dcd Merge commit 'de70474fed139f9acb4ed3f8e925d12de4edcdd0' into thread-next 2023-10-31 09:58:42 +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
f0187d713c Filter: adding explicit route-block 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
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
737807c118 Merge commit 'bb8e2824' into thread-next 2023-10-29 00:56:06 +02:00