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

5214 Commits

Author SHA1 Message Date
Maria Matejka
2e1ff4b230 Merge commit '294d363d' into thread-merge-2.16 2024-11-29 10:26:52 +01:00
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
e0b1826b7c Merge commit '072821e5' into thread-merge-2.16 2024-11-28 12:44:04 +01:00
Maria Matejka
2b1e4b0724 Merge commit 'a70ecade' into thread-merge-2.16 2024-11-28 12:43:52 +01:00
Maria Matejka
52a11170fe Merge commit '39e75b87' into thread-merge-2.16 2024-11-28 12:43:43 +01:00
Maria Matejka
ce199382ea Merge commit '163ab313' into thread-merge-2.16 2024-11-28 12:23:27 +01:00
Maria Matejka
c0dfd4dc3b Merge commit '8dc2a36a' into thread-merge-2.16 2024-11-28 12:23:14 +01:00
Maria Matejka
44efc912d5 Merge commit '5daec239' into thread-merge-2.16 2024-11-28 12:19:27 +01:00
Maria Matejka
b4bd406795 Merge commit 'acbdc29d' into thread-merge-2.16 2024-11-28 12:18:44 +01:00
Maria Matejka
ac30445f4f Merge commit 'c9836207' into thread-merge-2.16 2024-11-28 12:08:52 +01:00
Maria Matejka
3bbe0ec251 Merge commit 'df22b314' into thread-merge-2.16 2024-11-28 12:08:43 +01:00
Maria Matejka
eba3a26537 Merge commit '08ff0af8' into thread-merge-2.16 2024-11-28 12:07:30 +01:00
Maria Matejka
281e41026e Merge commit 'f3b6661d' into thread-merge-2.16 2024-11-28 12:00:45 +01:00
Maria Matejka
1ce352ebf5 Merge commit 'a95fff37' into thread-merge-2.16 2024-11-28 10:57:37 +01:00
Maria Matejka
ac0cdf3ad4 Merge commit '09f50f37' into thread-merge-2.16 2024-11-28 10:02:07 +01:00
Maria Matejka
e6242ef948 Merge commit '8a40bccf' into thread-merge-2.16 2024-11-28 09:36:33 +01:00
Maria Matejka
cbd986cd35 Merge commit '00b139bd' into thread-merge-2.16 2024-11-28 09:28:34 +01:00
Maria Matejka
029e6c7e1e Merge commit 'a5b4c21d' into thread-merge-2.16 2024-11-28 09:08:32 +01:00
Maria Matejka
2af438a9bf Merge commit '2d6fb31c' into thread-merge-2.16 2024-11-28 09:07:23 +01:00
Maria Matejka
ce2ecbdcb6 Merge commit 'e29f134a' into thread-merge-2.16 2024-11-28 09:04:31 +01:00
Maria Matejka
402d07bccd Merge commit '280daed5' into thread-merge-2.16 2024-11-28 09:02:59 +01:00
Maria Matejka
b8f7200ee9 Merge commit 'bc10975a' into thread-merge-2.16 2024-11-28 08:56:27 +01:00
Maria Matejka
d73d861f0c Merge commit '08571b20' into thread-merge-2.16 2024-11-28 08:22:06 +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
99fa1f01a4 rt-show.c: fixed OBSREF_SET after cf_error(), changed message when 'show route export' called on static protocol 2024-11-25 17:06:24 +01:00
Maria Matejka
3f4332f0bd Protocol restart timer reworked.
The restart timer was racy and didn't allow for immediate restarts
from limits. Now the protocols stores the last restart time and in case
of too frequent autorestarts caused by exceeded limits, the protocol
gets disabled with an error message.

Also now there is a configuration knob for this.
2024-11-25 17:06:24 +01:00
Maria Matejka
53431ff679 Hash test spurious fail fixed
There was a race condition in the test itself,
causing the test reader access data after free.
2024-11-25 09:44:00 +01:00
Maria Matejka
2956faf5a6 Protocol and BGP state information cleanup and fixes
There were some nasty problems with deferred protocol state updates and
race conditions on BGP startup, shutdown, and also with referencing the
cached states.

Now it looks fixed.
2024-11-24 22:51:08 +01:00
Maria Matejka
e654efd354 Debug option for ea_free 2024-11-24 22:49:39 +01:00
Maria Matejka
6ba06dc4df Deferred call may need to be returned for future cleanups 2024-11-24 22:49:35 +01:00
Katerina Kubecova
77dee46e98 BMP: updated to v3 API 2024-11-21 10:29:10 +01:00
Maria Matejka
d2ad795c1e BGP: protocol specific state information cleanup 2024-11-21 09:21:29 +01:00
Maria Matejka
74800729c0 Proto: The active flag converted to actual fifth protocol state
What was PS_DOWN before, is now PS_DOWN and PS_FLUSH.
2024-11-18 22:21:12 +01:00
Katerina Kubecova
7889f0c25b Neighbor locking: forgotten neighbors to unlink are actually a bug.
These may cause runaway pointers.
2024-11-18 10:09:36 +01:00
Katerina Kubecova
ca5ed6997c nest/cli: fixup - empty printing in birdc does not freeze 2024-11-15 10:04:51 +01:00
Katerina Kubecova
dc69284f61 MRT: buildable and running again for BIRD 3
Tests for MRT are scarce and not automated for now, so it may behave
weirdly in corner cases.
2024-11-14 11:41:37 +01:00
Maria Matejka
eb6918e4db Neighbor cache: fixed neighbor referencing 2024-11-14 11:41:37 +01:00
Maria Matejka
03f51079c1 Defer: fixup missing include guards 2024-11-14 11:41:37 +01:00
Katerina Kubecova
c0319183a5 BGP: exporting protocol-specific state information 2024-11-14 11:41:37 +01:00
Maria Matejka
fa75007156 BGP: Start state is now using extended state 2024-11-14 11:41:37 +01:00
Katerina Kubecova
b97d924e52 Proto: adding lockless state table and journal
To allow reading of protocol states from other protocols or completely
different routines, we have to export these states to data structures
not requiring to lock the protocol loops.

On one hand, this doesn't give the reader the actual state "right now",
on the other hand, getting that is impossible in a properly
multithreaded environment and you will always get the information with
some (little but noteworthy) delay.

This implementation handles only the basic state information of the
protocols, common for all the protocols. Adding protocol-specific state
information should be done by implementing the protocol hook init_state().

Channel information is stored but not announced, as we don't need the
announcements for now.
2024-11-14 11:41:37 +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
294d363da0 Filter: Remove T_ENUM_RTC
It is not used for a long time.
2024-10-18 16:53:12 +02: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
Eric Long
072821e55e Flowspec: Fix IPv6 prefix when offset is not multiple of 8
Current implementation handles flowspec prefix length and offset only
in bytes, but RFC 8956 (Dissemination of Flow Specification Rules for
IPv6) Section 3.1 [1] and example in Section 3.8.2 [2] states the
pattern should begin right after offset *bits*.

For example, pattern "::1:1234:5678:9800:0/60-104" is currently
serialized as "02 68 3c 01 12 34 56 78 98", but it should shift its
pattern 4 more bits to the left: "02 68 3c 11 23 45 67 89 80".

This patch implements shifting left/right for IPv6 type and use it to
correct the behaviour. Test data are replaced with the correct ones.

Minor changes and test vectors done by committer.

[1]: https://www.rfc-editor.org/rfc/rfc8956.html#section-3.1
[2]: https://www.rfc-editor.org/rfc/rfc8956.html#section-3.8.2
2024-10-16 21:32:36 +02:00
Ondrej Zajicek
6f9ccfae9e Flowspec: Test improvements
Simplify Flowspec initialization macros.

Add examples from RFC 8955 4.3 and RFC 8956 3.8 to format tests.
2024-10-16 04:04:46 +02:00
Ondrej Zajicek
a70ecadefe Doc: Minor fixes 2024-10-15 17:19:42 +02:00