0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-16 18:35:19 +00:00
bird/nest
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
..
a-path_test.c Merge remote-tracking branch 'origin/master' into backport 2022-07-11 11:08:10 +02:00
a-path.c Basic route aggregation 2023-09-26 15:46:24 +02:00
a-set_test.c Fixed resource initialization in unit tests 2022-03-09 10:30:42 +01:00
a-set.c Filter: Implement for loops 2022-06-27 21:13:32 +02:00
attrs.h Basic route aggregation 2023-09-26 15:46:24 +02:00
bfd.h BFD: Allow per-request session options 2020-11-08 15:33:22 +01:00
bird.h Initial commit on integrated BIRD 2015-11-05 12:48:52 +01:00
cli.c CLI: Fix continuation lines after final one 2019-11-26 16:43:09 +01:00
cli.h CLI: Fix for long-lived sessions during high loads 2022-12-10 17:32:42 +01:00
cmds.c Conf: Symbol hashes for all scopes 2023-09-12 15:20:50 +02:00
cmds.h Filter refactoring: dropped the recursion from the interpreter 2019-02-20 22:30:54 +01:00
config.Y MPLS subsystem 2023-10-04 13:01:21 +02:00
Doc MPLS subsystem 2023-10-04 13:01:21 +02:00
iface.c Nest: Treat VRF interfaces as inside respective VRFs 2023-08-23 16:08:40 +02:00
iface.h Nest: Treat VRF interfaces as inside respective VRFs 2023-08-23 16:08:40 +02:00
locks.c Lib: Add and use ev_new_init() 2018-10-01 15:55:23 +02:00
locks.h Nest: VRF support for neighbor cache and olock code 2017-09-12 15:49:36 +02:00
Makefile MPLS subsystem 2023-10-04 13:01:21 +02:00
mpls.c MPLS subsystem 2023-10-04 13:01:21 +02:00
mpls.h MPLS subsystem 2023-10-04 13:01:21 +02:00
mpls.Y MPLS subsystem 2023-10-04 13:01:21 +02:00
neighbor.c Nest: Treat VRF interfaces as inside respective VRFs 2023-08-23 16:08:40 +02:00
password.c Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
password.h Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
proto-hooks.c Dropping rte-local dumper entries 2021-10-13 19:09:05 +02:00
proto.c MPLS subsystem 2023-10-04 13:01:21 +02:00
proto.sgml Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
protocol.h MPLS subsystem 2023-10-04 13:01:21 +02:00
route.h MPLS subsystem 2023-10-04 13:01:21 +02:00
rt-attr.c MPLS subsystem 2023-10-04 13:01:21 +02:00
rt-dev.c Nest: Fix several issues with pflags 2023-01-01 20:10:23 +01:00
rt-dev.h Nest: SADR support for Direct 2018-03-18 02:56:51 +01:00
rt-fib_test.c Nest: Add tests and benchmark for FIB 2023-05-16 13:25:48 +02:00
rt-fib.c Slab allocator can free the blocks without knowing the parent structure 2022-04-06 18:14:08 +02:00
rt-show.c MPLS subsystem 2023-10-04 13:01:21 +02:00
rt-table.c MPLS subsystem 2023-10-04 13:01:21 +02:00