]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
4 months agoBFD: Fix crash related to reconfiguration and passwords oz-test2
Ondrej Zajicek [Thu, 27 Mar 2025 16:43:56 +0000 (17:43 +0100)] 
BFD: Fix crash related to reconfiguration and passwords

Any change in BFD iface configuration should trigger session
reconfiguration, as config is copied into the bfd_session structure
and not just accessed through the bfd_iface structure.

As bfd_session now contains a pointer to the password list allocated
from the configuration, forgetting to update the bfd_session causes
use-after-free.

Thanks to Lexi Winter for the bugreport.

4 months agoCI: Re-add bgp-rs-singletab
Ondrej Zajicek [Thu, 27 Mar 2025 16:41:35 +0000 (17:41 +0100)] 
CI: Re-add bgp-rs-singletab

(was accidentally removed by the previous commit)

4 months agoBabel: Add option 'next hop prefer' to control next hops of IPv4 routes
Ondrej Zajicek [Thu, 27 Mar 2025 01:50:35 +0000 (02:50 +0100)] 
Babel: Add option 'next hop prefer' to control next hops of IPv4 routes

By default, the Babel protocol will advertise IPv4 routes with an IPv6
next hop address only on interfaces which do not have an IPv4 address.

Add option 'next hop prefer' to control whether IPv4 routes should use
IPv4 or IPv6 next hop when both are available.

Based on the patch from Chris Webb, thanks!

4 months agoFilter: Add tests for 'case' expressions
Jana Babovakova [Tue, 25 Mar 2025 16:52:26 +0000 (17:52 +0100)] 
Filter: Add tests for 'case' expressions

4 months agoCI: Add bgp-rs-singletab
Ondrej Zajicek [Tue, 25 Mar 2025 15:29:51 +0000 (16:29 +0100)] 
CI: Add bgp-rs-singletab

(For some reason, it is not enabled in CI)

4 months agoDocs: new link local format added to BGP outline.
Jana Babovakova [Tue, 25 Mar 2025 10:34:27 +0000 (11:34 +0100)] 
Docs: new link local format added to BGP outline.

4 months agoBGP: Add option to specify format of link-local next hop
Ondrej Zajicek [Mon, 24 Mar 2025 16:09:25 +0000 (17:09 +0100)] 
BGP: Add option to specify format of link-local next hop

When a BGP session is established using link-local next hop addresses,
there is no global IPv6 address for next hop. Implementations differ on
how to encode such next hop. This leads to interoperability problems.

Add the option 'link local next hop format' to specify which format to
use when encoding such next hops.

Based on a patch from Andrey V. Elsukov and Georgy Kirichenko, submitted
by Aleksandr Stepanov, thanks!

4 months agoBGP: Fix missing case for decoding link-local next hops in VPN SAFI
Ondrej Zajicek [Mon, 24 Mar 2025 16:03:41 +0000 (17:03 +0100)] 
BGP: Fix missing case for decoding link-local next hops in VPN SAFI

4 months agoCI: Remove broken package builds
Ondrej Zajicek [Sat, 22 Mar 2025 01:04:02 +0000 (02:04 +0100)] 
CI: Remove broken package builds

Some package build tests were broken due to apkg changes,
disable them temporarily.

4 months agoDocs: Changed "&lt;", "&gt;" to "<",">" in <code>.
Jana Babovakova [Mon, 17 Mar 2025 14:56:45 +0000 (15:56 +0100)] 
Docs: Changed "&lt;", "&gt;" to "<",">" in <code>.

4 months agoDocs: Replaced "M>" with "m>" (maintainability).
Jana Babovakova [Mon, 17 Mar 2025 14:45:14 +0000 (15:45 +0100)] 
Docs: Replaced "M>" with "m>" (maintainability).

4 months agoDocs: Replaced "<M>num</M>" with "<M>number</M>".
Jana Babovakova [Mon, 17 Mar 2025 14:42:07 +0000 (15:42 +0100)] 
Docs: Replaced "<M>num</M>" with "<M>number</M>".

4 months agoDocs: Replaced "&lt;num&gt;" with &lt;number&gt;.
Jana Babovakova [Mon, 17 Mar 2025 14:39:19 +0000 (15:39 +0100)] 
Docs: Replaced "&lt;num&gt;" with &lt;number&gt;.

4 months agol3vpn.c: set proper flag when setting EA_BGP_EXT_COMMUNITY fixup-l3vpn
Katerina Kubecova [Fri, 21 Mar 2025 13:17:47 +0000 (14:17 +0100)] 
l3vpn.c: set proper flag when setting EA_BGP_EXT_COMMUNITY

4 months agoASPA: added official tests
Maria Matejka [Tue, 18 Mar 2025 04:34:46 +0000 (05:34 +0100)] 
ASPA: added official tests

from Sriram Kotikalapudi's presentation for IETF 122.

4 months agoLog: Fix handling of L_BUG messages
Ondrej Zajicek [Fri, 14 Mar 2025 15:49:36 +0000 (16:49 +0100)] 
Log: Fix handling of L_BUG messages

Due to an off-by-one error, L_BUG messages (e.g. from ASSERT()) were
handled as L_DBG messages and therefore ignored by our CI.

4 months agoDoc: Replace <m/num/ with <m/number/
Ondrej Zajicek [Sun, 9 Mar 2025 21:58:31 +0000 (22:58 +0100)] 
Doc: Replace <m/num/ with <m/number/

Both variants were used inconsistently, the second one is more frequent
and more expressive.

4 months agoDoc: Add BGP reconfiguration section
Jana Babovakova [Wed, 5 Mar 2025 14:10:02 +0000 (15:10 +0100)] 
Doc: Add BGP reconfiguration section

Some changes by committer.

4 months agoDoc: Minor fixes in BGP options
Jana Babovakova [Wed, 5 Mar 2025 14:08:03 +0000 (15:08 +0100)] 
Doc: Minor fixes in BGP options

4 months agoDoc: Add BGP protocol outline
Jana Babovakova [Wed, 5 Mar 2025 14:05:43 +0000 (15:05 +0100)] 
Doc: Add BGP protocol outline

4 months agoBGP: Fix reconfiguration of hostname option
Ondrej Zajicek [Thu, 6 Mar 2025 15:09:36 +0000 (16:09 +0100)] 
BGP: Fix reconfiguration of hostname option

The old code did not properly compare and update hostname strings,
causing BGP restarts during reconfigurations.

4 months agoNest: Fix locking of tables by channels
Ondrej Zajicek [Thu, 6 Mar 2025 02:43:15 +0000 (03:43 +0100)] 
Nest: Fix locking of tables by channels

Channels that are down keep ptr on routing tables but do not keep them
locked. It is safe because the existence of tables depend on being
configured. But when a table is removed during reconfiguration, the
channel kept a dangling pointer since it fell down until it was removed.
This could be triggered by 'show protocols all' and other similar.

Change locking so that a channel kept a table locked for its whole
existence. The same change is already in BIRD 3.

Note that this is somewhat conceptually problematic as downed channels
do not keep resources. Also, other objects in specialized channels
(igp_table, base_table in bgp_channel, mpls_domain / mpls_range in
mpls_channel) are still locked only when channel is active, but for
them it is easier to keep track that they are not accessed when
they are deconfigured.

5 months agoCI: Add hostname test to CI
Ondrej Zajicek [Tue, 25 Feb 2025 15:52:00 +0000 (16:52 +0100)] 
CI: Add hostname test to CI

5 months agoAdd option hostname for each protocol
Jana Babovakova [Wed, 12 Feb 2025 16:06:39 +0000 (17:06 +0100)] 
Add option hostname for each protocol

5 months agoInstall comment updated by Maria
Jana Babovakova [Tue, 11 Feb 2025 11:01:59 +0000 (12:01 +0100)] 
Install comment updated by Maria

5 months agoUpdated router id docs to 4-byte integer.
Jana Babovakova [Mon, 24 Feb 2025 13:39:29 +0000 (14:39 +0100)] 
Updated router id docs to 4-byte integer.

5 months agolib: Unify alignment of allocators
Ondrej Zajicek [Thu, 9 Jan 2025 15:44:51 +0000 (16:44 +0100)] 
lib: Unify alignment of allocators

Different internal allocators (memory blocks, linpools, and slabs) used
different way to compute alignment. Unify it to use alignment based on
standard max_align_t type.

On x86_64, this does not change alignment of memory blocks and linpools
(both old and new is 16), but it increases alignment of slabs from 8 to
16.

5 months agoUpdate obsolete RFC 5575 to newer RFCs 8955 / 8956
Ondrej Zajicek [Tue, 4 Feb 2025 15:07:09 +0000 (16:07 +0100)] 
Update obsolete RFC 5575 to newer RFCs 8955 / 8956

5 months agoUpdate the obsoleted RFC 5575 by newer RFCs 8955 (ipv4) and 8956 (ipv6)
David Petera [Fri, 10 Jan 2025 12:22:47 +0000 (13:22 +0100)] 
Update the obsoleted RFC 5575 by newer RFCs 8955 (ipv4) and 8956 (ipv6)

5 months agoFix the flow6 label description and example
David Petera [Fri, 10 Jan 2025 12:16:34 +0000 (13:16 +0100)] 
Fix the flow6 label description and example

5 months agoFix error in example of direct protocol
David Petera [Thu, 30 Jan 2025 13:24:34 +0000 (14:24 +0100)] 
Fix error in example of direct protocol

6 months agoFix typo in docs
David Petera [Thu, 16 Jan 2025 10:15:26 +0000 (11:15 +0100)] 
Fix typo in docs

6 months agoDebian: Depend on libssh's default flavor pkg-v2
Jakub Ružička [Mon, 16 Dec 2024 13:33:26 +0000 (14:33 +0100)] 
Debian: Depend on libssh's default flavor

This mirrors Debian bird2 change, gcrypt flavor is deprecated.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1074257

6 months agoDebian: Update Standards-Version to latest 4.7.0
Jakub Ružička [Mon, 16 Dec 2024 13:28:59 +0000 (14:28 +0100)] 
Debian: Update Standards-Version to latest 4.7.0

6 months agoDebian: Reformat with wrap-and-sort -bast
Jakub Ružička [Mon, 16 Dec 2024 13:28:12 +0000 (14:28 +0100)] 
Debian: Reformat with wrap-and-sort -bast

6 months agoDebian: Add BuildDepends: ca-certificates
Jakub Ružička [Wed, 4 Dec 2024 18:24:38 +0000 (19:24 +0100)] 
Debian: Add BuildDepends: ca-certificates

This should reportedly fix test issues on ARM.

6 months agoDebian: Add Rules-Requires-Root: no to d/control
Jakub Ružička [Tue, 10 Oct 2023 11:04:08 +0000 (13:04 +0200)] 
Debian: Add Rules-Requires-Root: no to d/control

6 months agoStatic: fixed ASPA reconfiguration mq-fix-static-aspa
Maria Matejka [Thu, 26 Dec 2024 10:34:02 +0000 (11:34 +0100)] 
Static: fixed ASPA reconfiguration

Due to an oversight, the provider lists weren't compared on reconfiguration.

Reported-By: Ralph Covelli <rcovelli@he.net>
6 months agoCI: Cleanup tests for single protocol builds
Ondrej Zajicek [Wed, 8 Jan 2025 23:49:19 +0000 (00:49 +0100)] 
CI: Cleanup tests for single protocol builds

BFD and MRT can be built independently, only BMP requires BGP.

6 months agoBMP: Cleanup keyword declarations
Ondrej Zajicek [Wed, 8 Jan 2025 23:46:37 +0000 (00:46 +0100)] 
BMP: Cleanup keyword declarations

6 months agoBFD: Fix missing keyword declarations
Ondrej Zajicek [Wed, 8 Jan 2025 23:30:37 +0000 (00:30 +0100)] 
BFD: Fix missing keyword declarations

Some keywords were missing for BFD-only build.

7 months agoCI: test building single protocols
Maria Matejka [Tue, 3 Dec 2024 16:27:09 +0000 (17:27 +0100)] 
CI: test building single protocols

Several users build BIRD with excluded support for protocols they don't
need. Testing single-protocol builds; the assumption is that if single
protocols and all protocols are buildable, then possibly any reasonable
combination is buildable as well.

Minor change by committer.

7 months agoFixed several tests which needed static protocol
Maria Matejka [Tue, 3 Dec 2024 19:08:30 +0000 (20:08 +0100)] 
Fixed several tests which needed static protocol

Now they need device protocol which is always built.

7 months agoDisabling filter test unless needed protocols are configured
Maria Matejka [Tue, 3 Dec 2024 19:08:23 +0000 (20:08 +0100)] 
Disabling filter test unless needed protocols are configured

7 months agoNest: Fix handling of 64-bit rte_src.private_id
Ondrej Zajicek [Tue, 17 Dec 2024 08:00:42 +0000 (09:00 +0100)] 
Nest: Fix handling of 64-bit rte_src.private_id

The commit 21213be523baa7f2cbf0feaa617f265c55e9b17a expanded private_id
in route source to u64, but forgot to modify function arguments, so it
was still cropped at 32-bit, which may cause some collisions for L3VPN.
This patch fixes that.

7 months agoDoc: Fix protocol outline in RPKI
Ondrej Zajicek [Mon, 16 Dec 2024 18:29:27 +0000 (19:29 +0100)] 
Doc: Fix protocol outline in RPKI

Protocol outlines should not contain specific values.

Also fix some space intendation in code sections.

7 months agoLib: Ensure that all net_addr structures have the same alignment
Ondrej Zajicek [Mon, 16 Dec 2024 17:56:30 +0000 (18:56 +0100)] 
Lib: Ensure that all net_addr structures have the same alignment

Also weaken the explicit alignment of net_addr to be u32, as VPN
is already u32-aligned.

7 months agoLib: Data type for VPN route distinguishers
Ondrej Zajicek [Mon, 16 Dec 2024 17:27:42 +0000 (18:27 +0100)] 
Lib: Data type for VPN route distinguishers

Use a distinct data structure for VPN route distinguishers instead
of just u64.

7 months agoNetlink: Handle onlink flag on BSD-Netlink
Ondrej Zajicek [Thu, 12 Dec 2024 03:04:07 +0000 (04:04 +0100)] 
Netlink: Handle onlink flag on BSD-Netlink

On BSD, the onlink flag is not tracked or reported by kernel. We are
using an heuristic that assigns the onlink flag to routes scanned from
the kernel. We should use the same heuristic even in BSD-Netlink
case, as the onlink flag is not reported here too.

Thanks to Björn König for the original patch.

7 months agoBuild: Fix newlines in build of proto-build.c
Ondrej Zajicek [Tue, 10 Dec 2024 13:58:05 +0000 (14:58 +0100)] 
Build: Fix newlines in build of proto-build.c

Add newlines to the body of proto-build.c . Use printf instead of echo
for portable handling of backslash sequences.

Thanks to CCX for the change.

7 months agoBabel: fix seqno wrapping on seqno request
Fabian Bläse [Tue, 10 Dec 2024 01:14:06 +0000 (02:14 +0100)] 
Babel: fix seqno wrapping on seqno request

The Babel seqno wraps around when reaching its maximum value (UINT16_MAX).
When comparing seqnos, this has to be taken into account. Therefore,
plain number comparisons do not work.

7 months agoBGP: Graceful restart timer overrides
Ondrej Zajicek [Fri, 6 Dec 2024 03:06:16 +0000 (04:06 +0100)] 
BGP: Graceful restart timer overrides

Implement several options (min/max graceful restart time, min/max long
lived stale time) to override graceful restart and long-lived graceful
restart timer values, as suggested by RFC 9494.

7 months agoBGP: Update LLGR draft references to RFC 9494
Ondrej Zajicek [Thu, 5 Dec 2024 15:35:01 +0000 (16:35 +0100)] 
BGP: Update LLGR draft references to RFC 9494

7 months agoCI: Fix filter tests for ASPA
Ondrej Zajicek [Tue, 3 Dec 2024 16:23:09 +0000 (17:23 +0100)] 
CI: Fix filter tests for ASPA

(broken by previous change)

7 months agoStatic: Fix ASPA static route argument
Ondrej Zajicek [Tue, 3 Dec 2024 16:05:23 +0000 (17:05 +0100)] 
Static: Fix ASPA static route argument

It seems that it should be 'providers' instead of 'provider'.

It matches keyword declaration and documentation. Mismatch beween keyword
declaration also breaks static-only builds.

7 months agoNEWS and version update v2.16
Ondrej Zajicek [Tue, 3 Dec 2024 03:59:56 +0000 (04:59 +0100)] 
NEWS and version update

7 months agoDocumentation: Updating roadmap as of end of 2024
Maria Matejka [Tue, 3 Dec 2024 11:29:30 +0000 (12:29 +0100)] 
Documentation: Updating roadmap as of end of 2024

7 months agoCLI: Dumping forces new file creation instead of truncating.
Maria Matejka [Tue, 3 Dec 2024 09:57:10 +0000 (10:57 +0100)] 
CLI: Dumping forces new file creation instead of truncating.

7 months agoCLI: show memory also displays cold pages
Maria Matejka [Fri, 15 Nov 2024 07:20:17 +0000 (08:20 +0100)] 
CLI: show memory also displays cold pages

Minor changes by committer.

7 months agoRPKI: Fix several errors in handling of Error PDU
Ondrej Zajicek [Tue, 3 Dec 2024 00:19:44 +0000 (01:19 +0100)] 
RPKI: Fix several errors in handling of Error PDU

Fix several errors including:
 - Unaligned memory access to 'Length of Error Text' field
 - No validation of 'Length of Encapsulated PDU' field
 - No validation of 'Error Code' field
 - No validation of characters in diagnostic message

7 months agoRPKI: Increase max PDU length to 64k
Ondrej Zajicek [Mon, 2 Dec 2024 05:38:59 +0000 (06:38 +0100)] 
RPKI: Increase max PDU length to 64k

APSA records can be arbitrarily large, let's use 64k as
a reasonable limit.

7 months agoSlab: Write out all block pointers when asked for dump
Maria Matejka [Fri, 15 Nov 2024 18:05:26 +0000 (19:05 +0100)] 
Slab: Write out all block pointers when asked for dump

7 months agoLinpool: Write out all block pointers when asked for dump
Maria Matejka [Fri, 15 Nov 2024 17:35:30 +0000 (18:35 +0100)] 
Linpool: Write out all block pointers when asked for dump

7 months agoCLI: Dumping internal data structures to files, not to debug output
Maria Matejka [Thu, 14 Nov 2024 19:43:35 +0000 (20:43 +0100)] 
CLI: Dumping internal data structures to files, not to debug output

All the 'dump something' CLI commands now have a new mandatory
argument -- name of the file where to dump the data. This allows
for more flexible dumping even for production deployments where
the debug output is by default off.

Also the dump commands are now restricted (they weren't before)
to assure that only the appropriate users can run these time consuming
commands.

7 months agoLogging: exposing vlog() to log va_lists
Maria Matejka [Thu, 14 Nov 2024 20:20:49 +0000 (21:20 +0100)] 
Logging: exposing vlog() to log va_lists

7 months agoCLI: adding cli_vprintf()
Maria Matejka [Thu, 14 Nov 2024 19:46:45 +0000 (20:46 +0100)] 
CLI: adding cli_vprintf()

7 months agoMRT: instead of crashing, ignore non-BGP attributes
Maria Matejka [Thu, 14 Nov 2024 21:15:56 +0000 (22:15 +0100)] 
MRT: instead of crashing, ignore non-BGP attributes

7 months agoPrintf: impossible buffer overflow fix
Maria Matejka [Thu, 14 Nov 2024 22:34:28 +0000 (23:34 +0100)] 
Printf: impossible buffer overflow fix

When printing near the end of the buffer, there was an overflow in two cases:

(1) %c and size is zero
(2) %1N, %1I, %1I4, %1I6 (auto-fill field_width for Net or IP), size is
    more than actual length of the net/ip but less than the auto-filled
    field width.

Manual code examination showed that nothing could have ever triggered
this behavior. All older versions of BIRD, including BIRD 3 development
versions, are totally safe. This exact overflow has been found while
implementing a new feature in later commits.

7 months agoBMP: Refactor route monitor message serialization
Ondrej Zajicek [Sun, 1 Dec 2024 23:00:36 +0000 (00:00 +0100)] 
BMP: Refactor route monitor message serialization

Instead of several levels of functions, just have two functions
(one for routes, the other for end-of-rib), this allows to create
messages in a simple linear fashion.

Also reduce three duplicite functions to construct BGP header for
BMP messages to just one.

7 months agoBMP: Refactor computation of message length
Ondrej Zajicek [Sun, 1 Dec 2024 21:54:11 +0000 (22:54 +0100)] 
BMP: Refactor computation of message length

Fill message length after the message is created instead of computing
it beforehand. Also rename some functions to fit common pattern.

7 months agoBMP: Refactor per-peer header arguments
Ondrej Zajicek [Sun, 1 Dec 2024 19:56:53 +0000 (20:56 +0100)] 
BMP: Refactor per-peer header arguments

Put all arguments for per-peer header into one structure instead of
passing them around as a lump of arguments. Also simplify code for
peer flags.

7 months agoBMP: simplified update queuing and better memory performance
Maria Matejka [Tue, 17 Sep 2024 14:27:54 +0000 (16:27 +0200)] 
BMP: simplified update queuing and better memory performance

This commit is quite a substantial rework of the underlying layers in
BMP TX:

- several unnecessary layers of indirection dropped, including most of
  the original BMP's buffer machinery
- all messages are now written directly into one protocol's buffer
  allocated for the whole time big enough to fit every possible message
- output blocks are allocated by pages and immediately returned when
  used, improving the overall memory footprint
- no intermediary allocation is done from the heap altogether
- there is a documented and configurable limit on the TX queue size

8 months agoFormatting numbers with order prefixes
Maria Matejka [Thu, 28 Nov 2024 22:08:50 +0000 (23:08 +0100)] 
Formatting numbers with order prefixes

Unit tests by Ondrej Zajicek.

8 months agoBMP: drop an unused mempool
Maria Matejka [Tue, 17 Sep 2024 13:59:07 +0000 (15:59 +0200)] 
BMP: drop an unused mempool

8 months agoRPKI: refactored pdu to host byte order conversion
Maria Matejka [Thu, 28 Nov 2024 13:10:40 +0000 (14:10 +0100)] 
RPKI: refactored pdu to host byte order conversion

We shouldn't convert bytes 2 and 3 of the PDU blindly, there are several
cases where these are used by bytes. Instead, the conversion is done
only where needed.

This fixes misinterpretation bug of ASPA PDU flags on little endian
architectures.

8 months agoString tests: fixed too strict strcmp checks
Maria Matejka [Wed, 27 Nov 2024 11:01:58 +0000 (12:01 +0100)] 
String tests: fixed too strict strcmp checks

The strcmp function is not guaranteed to return -1 or +1
but any negative or positive value if the input strings
are different. Fixed the false assumption which triggered
a build bug on emulated arm64.

8 months agoFixed crash if logging happened in unit tests
Ondrej Zajicek [Wed, 27 Nov 2024 03:15:16 +0000 (04:15 +0100)] 
Fixed crash if logging happened in unit tests

The patch initializes logging in unit tests. Previously, unit tests did
not initialize logging and other subsystems, just resources. But
resource_init() could under certain circumstances trigger logging and
cause crash.

The bug was Found by Jakub Ruzicka, dissected by David Petera and Maria
Matejka, disguised as failing build for Debian arm64 in pbuilder
emulation which did not like disabling THP.

Fixes #42.

8 months agoASPA: Unified the ASPA_INVALID into one result
Maria Matejka [Tue, 26 Nov 2024 19:32:53 +0000 (20:32 +0100)] 
ASPA: Unified the ASPA_INVALID into one result

The _EMPTY and _CONFED variants are easy to spot bare-eyed from the AS path.

8 months agoRPKI: Polishing of ASPA syntax and documentation
Maria Matejka [Tue, 26 Nov 2024 15:36:13 +0000 (16:36 +0100)] 
RPKI: Polishing of ASPA syntax and documentation

8 months agoRPKI: Fix PDU length check
Ondrej Zajicek [Tue, 26 Nov 2024 16:46:27 +0000 (17:46 +0100)] 
RPKI: Fix PDU length check

The END_OF_DATA PDU was extended in version 1, so it has different length
in different versions. We should do the PDU length check according to its
version.

8 months agoRPKI: added documentation and RTR version config options
Maria Matejka [Mon, 25 Nov 2024 08:35:33 +0000 (09:35 +0100)] 
RPKI: added documentation and RTR version config options

8 months agoRPKI: protocol version 2, loading ASPA
Katerina Kubecova [Fri, 8 Nov 2024 14:26:37 +0000 (15:26 +0100)] 
RPKI: protocol version 2, loading ASPA

Implemented draft-ietf-sidrops-8210bis-16, interoperable with StayRTR
development branches.

8 months agoASPA: Automatic channel reload
Katerina Kubecova [Wed, 8 Nov 2023 12:46:42 +0000 (13:46 +0100)] 
ASPA: Automatic channel reload

8 months agoLib: Optimized printing of numbers
Ondrej Zajicek [Fri, 8 Nov 2024 17:54:13 +0000 (18:54 +0100)] 
Lib: Optimized printing of numbers

One simple trick makes printing of numbers ~4x faster.

8 months agoLib: Optimized printing of IP addresses
Ondrej Zajicek [Fri, 8 Nov 2024 17:51:54 +0000 (18:51 +0100)] 
Lib: Optimized printing of IP addresses

Makes printing network prefixes ~15x faster.

8 months agoCLI: Add timeformat command
Piotr Wydrych [Tue, 5 Nov 2024 17:53:22 +0000 (18:53 +0100)] 
CLI: Add timeformat command

Adds ability to override time format of show commands for current CLI session
so that it does not depend on configuration and may ease parsing when CLI is
called from tools.

Minor changes by committer.

8 months agoNest: Cleanup timeformat grammar
Ondrej Zajicek [Tue, 5 Nov 2024 16:35:20 +0000 (17:35 +0100)] 
Nest: Cleanup timeformat grammar

8 months agoASPA: fixed the check algorithm to actually do what is in the RFC
Maria Matejka [Wed, 6 Nov 2024 11:12:37 +0000 (12:12 +0100)] 
ASPA: fixed the check algorithm to actually do what is in the RFC

The original algorithm assumed principles not consistent with the RFC
and could have lead to false invalids.

Also added filter tests showing also how the ASPA literals are used in
the static protocol.

8 months agoBGP: Add RFC 9687 to list of supported RFCs
Ondrej Zajicek [Thu, 7 Nov 2024 14:03:01 +0000 (15:03 +0100)] 
BGP: Add RFC 9687 to list of supported RFCs

8 months agoBGP: SendHoldTimer became an RFC, updating docs
Maria Matejka [Wed, 6 Nov 2024 12:05:32 +0000 (13:05 +0100)] 
BGP: SendHoldTimer became an RFC, updating docs

9 months agoFilter: Remove T_ENUM_RTC
Ondrej Zajicek [Fri, 18 Oct 2024 14:53:12 +0000 (16:53 +0200)] 
Filter: Remove T_ENUM_RTC

It is not used for a long time.

9 months agoFilter: Replace T_ENUM_NETTYPE with T_ENUM_NET_TYPE
Ondrej Zajicek [Fri, 18 Oct 2024 14:49:19 +0000 (16:49 +0200)] 
Filter: Replace T_ENUM_NETTYPE with T_ENUM_NET_TYPE

To be consistent with other enum type names.

9 months agoFilter: Add enum types to filter grammar
Ondrej Zajicek [Fri, 18 Oct 2024 14:39:42 +0000 (16:39 +0200)] 
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.

9 months agoFlowspec: Fix IPv6 prefix when offset is not multiple of 8
Eric Long [Wed, 16 Oct 2024 19:32:36 +0000 (21:32 +0200)] 
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

9 months agoFlowspec: Test improvements
Ondrej Zajicek [Wed, 16 Oct 2024 02:04:46 +0000 (04:04 +0200)] 
Flowspec: Test improvements

Simplify Flowspec initialization macros.

Add examples from RFC 8955 4.3 and RFC 8956 3.8 to format tests.

9 months agoDoc: Minor fixes
Ondrej Zajicek [Tue, 15 Oct 2024 15:19:42 +0000 (17:19 +0200)] 
Doc: Minor fixes

9 months agoDoc: Fix code blocks
Ondrej Zajicek [Tue, 15 Oct 2024 15:14:57 +0000 (17:14 +0200)] 
Doc: Fix code blocks

Code blocks should not be indented, as the indendation is passed
to the output,

9 months agoDoc: Improve readability of the operator documentation
Johannes Erwerle [Tue, 15 Oct 2024 14:56:48 +0000 (16:56 +0200)] 
Doc: Improve readability of the operator documentation

Minor changes by committer.

9 months agoFix typo in documentation
Ondrej Zajicek [Wed, 9 Oct 2024 16:00:16 +0000 (18:00 +0200)] 
Fix typo in documentation

9 months agoFilter: Fixes and improvements related to case/sets
Ondrej Zajicek [Tue, 8 Oct 2024 17:34:51 +0000 (19:34 +0200)] 
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.