0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-16 18:35:19 +00:00
bird/lib
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
..
alloca.h Several minor fixes 2017-02-20 02:26:45 +01:00
birdlib.h Lib: Improve IP/net hashing 2023-05-18 16:02:02 +02:00
bitmap_test.c Lib: Indirect bitmap for MPLS label allocator 2023-10-04 13:01:21 +02:00
bitmap.c Lib: Indirect bitmap for MPLS label allocator 2023-10-04 13:01:21 +02:00
bitmap.h Lib: Indirect bitmap for MPLS label allocator 2023-10-04 13:01:21 +02:00
bitops_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
bitops.c Initial commit on integrated BIRD 2015-11-05 12:48:52 +01:00
bitops.h Slab: head now uses bitmask for used/free nodes info instead of lists 2021-03-25 16:47:48 +01:00
blake2-impl.h Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
blake2-kat.h Lib: Add tests for blake2s and blake2b 2021-06-06 16:28:09 +02:00
blake2.h Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
blake2b.c Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
blake2s.c Lib: Add Blake2s and Blake2b hash functions 2021-06-06 16:26:58 +02:00
buffer_test.c Fixed resource initialization in unit tests 2022-03-09 10:30:42 +01:00
buffer.h Filter: Recursive filter iteration code 2021-02-07 19:21:42 +01:00
checksum_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
checksum.c unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
checksum.h unsigned [int] -> uint 2015-06-08 02:24:08 +02:00
Doc Doc: Rename code documentation files back to Doc 2018-12-14 02:03:42 +01:00
event_test.c Fixed resource initialization in unit tests 2022-03-09 10:30:42 +01:00
event.c Introducing an universal temporary linpool flushed after every task 2022-03-02 12:13:49 +01:00
event.h Rate-limit scheduling of work-events 2021-03-12 15:35:56 +01:00
fletcher16_test.c Fletcher16 test fixed to work at bigendian architectures. 2020-04-05 01:15:26 +02:00
fletcher16.h OSPF: Redesign LSA checksumming 2015-05-01 14:40:56 +02:00
flowspec_test.c Fixed resource initialization in unit tests 2022-03-09 10:30:42 +01:00
flowspec.c Flowspec: Documentation update 2021-05-18 20:41:01 +02:00
flowspec.h Flowspec: Fix values for true/false operators 2021-05-14 18:44:52 +02:00
hash_test.c Fixed resource initialization in unit tests 2022-03-09 10:30:42 +01:00
hash.h Aggregator: Fixed hashing of adata 2023-09-26 15:46:24 +02:00
heap_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
heap.h BFD work in progress. 2013-09-16 23:57:40 +02:00
idm.c Merge branch 'master' into int-new 2016-11-08 19:27:58 +01:00
idm.h Move ID allocator to a separate file and use it also in OSPF 2015-12-29 15:42:12 +01:00
ip_test.c Trie: Simplify network matching code 2021-11-13 21:11:18 +01:00
ip.c Lib: Allow use of 240.0.0.0/4 as a private range 2022-03-16 20:01:18 +01:00
ip.h MPLS subsystem 2023-10-04 13:01:21 +02:00
lists_test.c Lists: Replaced replace_node() by update_node() which is the only use of that function. 2020-05-01 15:19:12 +02:00
lists.c Lists: Replaced replace_node() by update_node() which is the only use of that function. 2020-05-01 15:19:12 +02:00
lists.h Static list initializer 2022-03-02 12:13:49 +01:00
mac_test.c Lib: Add tests for blake2s and blake2b 2021-06-06 16:28:09 +02:00
mac.c Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
mac.h Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
macro.h Macro: Added a bunch of dirty C preprocessor tricks 2018-05-29 11:53:51 +02:00
Makefile Slab memory allocator unit test 2022-03-14 17:37:56 +01:00
md5.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
md5.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
mempool.c Linpool: Fix lp_restore() 2023-04-20 19:33:00 +02:00
net.c Net: Replace runtime checks with STATIC_ASSERT() 2023-03-06 11:57:40 +01:00
net.h Lib: Improve IP/net hashing 2023-05-18 16:02:02 +02:00
patmatch_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
patmatch.c Some consts for function arguments 2015-11-24 13:52:26 +01:00
printf_test.c Printf test suite fails on systems with musl libc because tests for "%m" 2023-03-06 11:33:27 +01:00
printf.c Printf variant with a result allocated inside a pool / linpool 2022-03-15 11:21:46 +01:00
resource.c Printf variant with a result allocated inside a pool / linpool 2022-03-15 11:21:46 +01:00
resource.h All linpools use pages to allocate regular blocks 2022-04-06 18:14:08 +02:00
resource.sgml Fixes for the programmer's manual. 2000-06-08 12:37:21 +00:00
sha1.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha1.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha256.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha256.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha512.c Add generic message authentication interface 2016-11-02 16:23:53 +01:00
sha512.h Add generic message authentication interface 2016-11-02 16:23:53 +01:00
slab_test.c Slab allocator can free the blocks without knowing the parent structure 2022-04-06 18:14:08 +02:00
slab.c Converted Slab allocator to typed lists 2022-04-06 18:14:08 +02:00
slist_test.c Birdtest: Replace BT_SUCCESS and BT_FAILURE with 1 and 0 2016-11-11 17:43:09 +01:00
slists.c Unit Testing for BIRD 2016-11-09 16:36:34 +01:00
slists.h Temporary integrated OSPF commit. 2014-06-26 11:58:57 +02:00
socket.h IO: Support nonlocal bind in socket interface 2022-01-08 19:02:31 +01:00
string.h Lib: Add functions for reading and writing of bytestrings 2023-08-24 04:19:07 +02:00
strtoul.c Lib: Add functions for reading and writing of bytestrings 2023-08-24 04:19:07 +02:00
tbf.c Timers: Fix TBF and some last remains 2017-12-07 13:53:42 +01:00
timer.c Introducing an universal temporary linpool flushed after every task 2022-03-02 12:13:49 +01:00
timer.h IO: Add current_time_now() function for immediate timestamp 2023-06-02 00:26:41 +02:00
tlists.h Typed lists for easier walking and stronger type checking 2022-04-06 18:14:08 +02:00
unaligned.h The MRT protocol 2018-11-20 17:45:35 +01:00
xmalloc.c unsigned [int] -> uint 2015-06-08 02:24:08 +02:00