Skip to content

bgp ls export

Thomas Mangin edited this page Sep 28, 2026 · 1 revision

Pre-Alpha. This page describes behavior that may change.

BGP-LS origination (RFC 9552). The bgp-ls-export plugin advertises Ze's own IS-IS and OSPF link-state databases, and its EPE segments, to BGP-LS collectors such as a PCE or an SDN controller.

Category

Link state and traffic engineering.

Configuration

plugin {
    internal native-export { use bgp-ls-export; }
}

bgp-ls-export { }

isis {
    net 49.0001.0000.0000.0001.00
    level l1
}

bgp {
    peer collector {
        connection {
            remote { ip 192.0.2.10; }
        }
        session {
            asn { local 65000; remote 65000; }
            family { bgp-ls/bgp-ls { prefix { maximum 10000; } } }
            capability { route-refresh enable; }
        }
        attach process native-export {
            receive [ state refresh ];
            send    [ update ];
        }
    }
}

The bgp-ls-export block is a presence container: writing it starts the exporter, and removing it stops the exporter and withdraws its routes. The schema is always loaded, so no --plugin flag is needed. A collector peer negotiates bgp-ls/bgp-ls and attaches the plugin with state and refresh delivery and permission to send UPDATEs.

Instance-ID mapping

Each native domain keeps its own identifier unless you map it to a routing-universe Instance-ID.

bgp-ls-export {
    domain core-isis {
        source isis;
        protocol-id 2;
        native-instance 0;
        native-area 1;
        instance-id 100;
    }
}
Leaf Type Meaning
domain <name> list, up to 65536 Operator name for one mapping.
source string Registered link-state publisher: isis, ospf, or bgp-epe.
protocol-id 1 to 7 BGP-LS Protocol-ID of the native snapshot this mapping selects.
native-instance uint64 Instance number the source publishes.
native-area uint32 Numeric OSPF area or IS-IS level the source publishes.
instance-id uint64 Eight-octet Instance-ID placed in the originated NLRIs. All leaves are mandatory.

Assign distinct Instance-IDs when two native domains describe different routing universes. A replacement that would give an existing cross-domain NLRI different attributes is refused.

Behaviour

  • IS-IS and OSPF publish complete database snapshots on an internal event bus. The exporter never imports an IGP plugin or reads its state directly. A source generation number stops an older snapshot resurrecting a removed domain.
  • Standard Node, Link, IPv4 and IPv6 Prefix, and SRv6 SID NLRIs are originated (SAFI 71). Private-use TLVs are never originated, and there is no SAFI 72 (VPN) origination.
  • Each snapshot replaces the previous one: removed identities are withdrawn before replacements are announced. The exporter holds at most 65536 routes and refuses a larger replacement without touching the last accepted database.
  • Every collector peer-up or BGP-LS route refresh receives the current database. A failed collector does not hold up the others.
  • The exporter asks for next-hop self, which resolves at delivery to the connected session's local address, so a reconnect uses the new session's endpoint.
  • Links in several topologies produce separate NLRIs, and non-default prefixes carry an MT-ID.
  • The exporter needs the in-process engine event bus; it does not run as a forked plugin.

Interactions

Source

main/internal/component/bgp/plugins/ls_export/

See also

Adapted from main/docs/architecture/wire/nlri-bgpls.md.

Home

About

First Steps

Configuration

Operation

Interfaces

Plugins

Plugin Development

Chaos Testing

Blueprints

Development

Reference

Clone this wiki locally