• Ondřej Zajíček's avatar
    MPLS subsystem · 333ddd4f
    Ondřej Zajíček authored
    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.
    333ddd4f