Maria Matejka
b797444e94
Merge commit 'b95dc8f29f18eb177f91fdc4bf0716fac9b15366' into mq-config-ref
...
Also converted all _Bool's to bool.
2024-06-26 17:19:24 +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
76ca53e4f8
SKIP_BACK_DECLARE: easier embedded-to-parent typecasting
2024-05-25 19:37:16 +02:00
Maria Matejka
83a409abd2
Cached route attributes now have explicitly marked layers
...
Also the rta_* functions renamed to ea_* functions
2024-05-22 11:34:34 +02:00
Maria Matejka
e0a1bbdf65
Lockfree usecount: deferring unlocks to the metaloop
...
This allows us for easy temporary locks without additional burden of explicit cleanup.
2024-05-22 11:34:34 +02:00
Maria Matejka
3b217f2984
Fixed L3VPN after merge to v3.
...
Semantics of rt_get_source() has changed between v2 and v3. Also other
minor fixes were needed to make it run.
2024-01-30 23:14:10 +01:00
Maria Matejka
57b5eb5cbd
Merge commit 'v2.13.1-162-g5bf25678' into thread-next
2024-01-27 19:01:06 +01:00
Maria Matejka
5bf2567853
Merge commit 'v2.13.1-125-g90b9e871' into mq-merge-step-2
2024-01-26 23:29:17 +01:00
Maria Matejka
365ea12ea1
MPLS Subsystem Proper Locking
...
Added also some debug lines if debug is on.
2024-01-26 14:42:44 +01:00
Maria Matejka
e711a991d4
MPLS: FEC Map moved from protocol to MPLS channel
2024-01-08 13:03:25 +01:00
Maria Matejka
34d040a034
MPLS: Domain list locked by The BIRD Lock
2024-01-08 13:03:25 +01:00
Maria Matejka
9815353c5e
MPLS: Putting internal objects aside
2024-01-08 13:03:25 +01:00
Maria Matejka
8558e666e0
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 17:38:31 +01:00
Maria Matejka
e6362b21dc
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:34:26 +01:00
Maria Matejka
c4c2148ab9
Merge commit 'a7a9df86' into mq-aggregator-for-v3
2023-11-09 16:34:20 +01:00
Maria Matejka
4f2212ccf2
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 16:34:04 +01:00
Maria Matejka
6067ad6c07
Merge commit '9b775859' into mq-aggregator-for-v3
2023-11-09 16:00:44 +01:00
Maria Matejka
8f2f612e2f
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:59:03 +01:00
Maria Matejka
926c3295d4
Merge commit 'b6385dec' into mq-aggregator-for-v3
2023-11-09 15:58:58 +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
e61fc5272a
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:32 +01:00
Maria Matejka
4d6620a008
Merge commit '35726051' into mq-aggregator-for-v3
2023-11-09 15:50:28 +01:00
Maria Matejka
2193b1efe4
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:15 +01:00
Maria Matejka
c7cc1ccd2e
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:50:13 +01:00
Maria Matejka
360de8fb68
Merge commit 'fcf22586' into mq-aggregator-for-v3
2023-11-09 15:50:02 +01:00
Maria Matejka
8429b4bc38
Merge commit '8e9e013b' into mq-aggregator-for-v3
2023-11-09 15:35:18 +01:00
Maria Matejka
e5c320d44a
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 11:04:57 +01:00
Maria Matejka
6270373954
Merge commit '9ca86ef6' into mq-aggregator-for-v3
2023-11-09 10:52:53 +01:00
Maria Matejka
30712a2bdf
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-08 21:51:46 +01:00
Ondrej Zajicek
a0b4835253
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-11-07 16:06:15 +01: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
be09b030ed
MPLS: Update to support and use 64bit source id
2023-10-04 15:00:24 +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
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
9ca86ef69c
MPLS: Add support for per-VRF labeling policy
...
The new labeling policy MPLS_POLICY_VRF assigns one label to all routes
(from the same FEC map associated with one VRF), while replaces their
next hops with a lookup to a VRF table. This is useful for L3VPN
protocol.
2023-10-04 13:01:21 +02:00
Ondrej Zajicek
333ddd4f98
MPLS subsystem
...
The MPLS subsystem manages MPLS labels and handles their allocation to
MPLS-aware routing protocols. These labels are then attached to IP or VPN
routes representing label switched paths -- LSPs.
There was already a preliminary MPLS support consisting of MPLS label
net_addr, MPLS routing tables with static MPLS routes, remote labels in
next hops, and kernel protocol support.
This patch adds the MPLS domain as a basic structure representing local
label space with dynamic label allocator and configurable label ranges.
To represent LSPs, allocated local labels can be attached as route
attributes to IP or VPN routes with local labels as attributes.
There are several steps for handling LSP routes in routing protocols --
deciding to which forwarding equivalence class (FEC) the LSP route
belongs, allocating labels for new FECs, announcing MPLS routes for new
FECs, attaching labels to LSP routes. The FEC map structure implements
basic code for managing FECs in routing protocols, therefore existing
protocols can be made MPLS-aware by adding FEC map and delegating
most work related to local label management to it.
2023-10-04 13:01:21 +02:00