0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-23 02:01:55 +00:00
Commit Graph

4185 Commits

Author SHA1 Message Date
Katerina Kubecova
10afb161bd second socket does not work 2023-11-24 13:57:27 +01:00
Maria Matejka
af8a604b43 fixup! fixup! fixup! fixup! various fices 2023-11-23 10:00:33 +01:00
Katerina Kubecova
6ba81eb8b8 fixup! fixup! fixup! various fices 2023-11-23 09:57:36 +01:00
Katerina Kubecova
d54ef3e310 fixup! fixup! various fices 2023-11-23 09:56:35 +01:00
Katerina Kubecova
6ab2f0fa54 fixup! various fices 2023-11-23 09:51:48 +01:00
Maria Matejka
1fb14f5769 various fices 2023-11-23 09:23:46 +01:00
Katerina Kubecova
52921062b8 cbor.c: primitive tools for writing cbor 2023-11-23 08:52:51 +01:00
Katerina Kubecova
cebae02023 fixup! split show_protocols_all to submodules, show memory and status updates 2023-11-16 16:40:33 +01:00
Katerina Kubecova
6d73b93be8 split show_protocols_all to submodules, show memory and status updates 2023-11-16 15:40:56 +01:00
Katerina Kubecova
d2ca67127d added yang & json show_protocols and show_protocols_all 2023-11-16 12:56:14 +01:00
Maria Matejka
ce6fa363b2 YANG: CBOR -> JSON basic converter 2023-11-15 13:56:37 +01:00
Maria Matejka
fe52f98a92 YANG: JSON -> CBOR always checks the deps and venv 2023-11-15 12:34:16 +01:00
Maria Matejka
815b1d4036 YANG: basic convertor JSON -> CBOR 2023-11-15 12:31:42 +01:00
Maria Matejka
1b9939b936 YANG: just some auxiliary files 2023-11-15 11:17:55 +01:00
Soha Jin
31aa62ae6d OSPF: On physical PtP links, skip next-hop resolving
Signed-off-by: Soha Jin <soha@jin.sh>
Co-developed-by: Wende Tan <twd2.me@gmail.com>
2023-11-09 14:33:25 +01:00
Ondrej Zajicek
a740054db5 Nest: Minor fixes in MPLS 2023-10-25 18:25:46 +02:00
Michal Rada
06301a991d Doc: prefix match prefix pattern definition typo (in sets of prefixes definition) 2023-10-24 18:02:40 +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
Maria Matejka
108c4cfaf3 Autoconf: minor reduction of redundancy
Joined BIRD_CHECK_GCC_OPTION and BIRD_ADD_GCC_OPTION.
2023-10-24 12:45:08 +02:00
Ondrej Zajicek
c9b7b03211 CI: Update for new netlab worker
- Change tag from 'birdlab' to 'netlab'
 - Change path of gitlab-runner home dir
 - Use stayrtr from Debian
2023-10-18 03:37:59 +02:00
Ondrej Zajicek
5973031460 CI: Add MPLS tests 2023-10-16 15:34:01 +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
Ondrej Zajicek
0e1fbaa5b2 NEWS and version update 2023-10-06 18:53:25 +02:00
Ondrej Zajicek
23f94b1368 Doc: Minor fixes 2023-10-06 18:52:02 +02:00
Ondrej Zajicek
c5c3a22bcc Conf: Bytestrings with hex: should use the same general format as ones without.
Either hex:01234567, or hex:01:23:45:67. No confusing formats like
hex:0123:4567🆎cdef, which looks like there is an implicit zero byte.
2023-10-06 04:59:47 +02:00
Pavel Šorejs
e83beb70bd KRT: Allow to learn routes with RTPROT_KERNEL
The Kernel protocol, even with the option 'learn' enabled, ignores
direct routes created by the OS kernel (on Linux these are routes
with rtm_protocol == RTPROT_KERNEL).

Implement optional behavior where both OS kernel and third-party routes
are learned, it can be enabled by 'learn all' option.

Minor changes by committer.
2023-10-06 04:55:56 +02:00
Ondrej Zajicek
57aa077227 BGP: Improve custom BGP attributes
- Implement EA_GET for custom BGP attributes
 - Forbid EA_SET on existing opaque attributes
 - Forbid redefining existing attributes
 - Document possible compatibility problems
2023-10-05 21:54:25 +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
de09fda5dc Filter: Fix scope handling in for loops
Changes in scope implementation broke scope handling in for loops.
The term in for loops is supposed to be parsed in the parent scope.
2023-10-05 14:26:22 +02:00
Ondrej Zajicek
abae806efd Conf: Fix 'show symbols'
Seems like the root scope was not marked as active.
2023-10-04 20:16:13 +02:00
Ondrej Zajicek
ab47c2ae46 BGP: Custom attribute definitions should use cfg_alloc(), not malloc()
Otherwise we would get memory leaks.
2023-10-04 20:16:13 +02:00
Maria Matejka
d41b06238d Filter: explicitly forbidden for-loop with pre-defined variable 2023-10-04 19:57:55 +02:00
Ondrej Zajicek
6a242b3ec6 IO: Fix race condition in event processing
When regular event was added from work event, we did remember that
regular event list was empty and therefore we did not use zero time
in poll(). This leads to ~3 s latency in route reload during
reconfiguration.
2023-10-04 17:36:03 +02:00
Ondrej Zajicek
0bfa216f49 Doc: Fix syntax errors in SGML 2023-10-04 15:25:05 +02:00
Ondrej Zajicek
be09b030ed MPLS: Update to support and use 64bit source id 2023-10-04 15:00:24 +02:00
Ondrej Zajicek
cab5fce2b6 Doc: L3VPN documentation 2023-10-04 13:12:05 +02:00
Ondrej Zajicek
8a70885694 Doc: MPLS documentation 2023-10-04 13:12:05 +02:00
Ondrej Zajicek
8f5511dafb L3VPN: Import/export target reconfiguration 2023-10-04 13:12:05 +02:00
Ondrej Zajicek
d8130da86b BGP, L3VPN: Fix MPLS channel reload
When a MPLS channel is reloaded, it should reload all regular MPLS-aware
channels. This causes re-evaluation of routes in FEC map and possibly
reannouncement of MPLS routes.
2023-10-04 13:12:05 +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
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
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
Ondrej Zajicek
fcf2258620 MPLS: Improve label range reconfiguration
Allow to shorten label range over unused area.
2023-10-04 13:12:05 +02:00
Ondrej Zajicek
8e9e013b0d MPLS: Add command 'show mpls ranges'
Add command to show MPLS label ranges and their stats.
2023-10-04 13:12:05 +02:00
Ondrej Zajicek
3397ca51f8 Nest: Fix missing RTS_* values in filters 2023-10-04 13:12:05 +02:00
Ondrej Zajicek
e338c4b63c Lib: Extend MPLS label allocator bitmap
Add function lmap_last_one_in_range() for finding the last active label
in a label range.
2023-10-04 13:07:33 +02:00
Ondrej Zajicek
bcff3ae79a L3VPN: BGP/MPLS VPNs using MPLS backbone
The L3VPN protocol implements RFC 4364 BGP/MPLS VPNs using MPLS backbone.
It works similarly to pipe. It connects IP table (one per VRF) with (global)
VPN table. Routes passed from VPN table to IP table are stripped of RD and
filtered by import targets, routes passed in the other direction are extended
with RD, MPLS labels and export targets in extended communities. A separate
MPLS channel is used to announce MPLS routes for the labels.
2023-10-04 13:07:28 +02:00