Skip to content

bgp nlri vpls

Thomas Mangin edited this page Jun 24, 2026 · 4 revisions

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

L2VPN VPLS (AFI 25 / SAFI 65), RFC 4761 / RFC 4762. The older L2VPN family, largely superseded by EVPN for new deployments. The family is decoded, encoded, and originated through the plugin NLRI pipeline, not the legacy core path.

Category

Address families.

Configuration

plugin {
    internal nlri-vpls { use bgp-nlri-vpls }
}

bgp {
    peer upstream {
        family {
            l2vpn/vpls { prefix { maximum 10000; } }
        }
    }
}

Behaviour

Encode and decode VPLS NLRIs. Routes carry a Route Distinguisher, a Virtual Edge (VE) ID, and the label block information that makes up the VPLS control plane.

VPLS is a legacy family. For new deployments, prefer bgp-nlri-evpn. The plugin exists for interoperability with networks that still run VPLS.

Plugin pipeline

The bgp-nlri-vpls plugin registers four in-process callbacks: InProcessNLRIDecoder, InProcessNLRIEncoder, InProcessRouteEncoder, and InProcessConfigRouteParser. Decode, encode, route origination, and config parsing all live in the plugin, so the RIB, filter chain, and central config code need no VPLS-specific knowledge. JSON output is rendered through the attribute JSON registry with ExaBGP-compatible key ordering.

Interactions

  • Supports both encode and decode.
  • Does not interact with bgp-nlri-evpn directly; the two families are orthogonal.

Source

main/internal/component/bgp/plugins/nlri/vpls/

See also

Adapted from the vpls plugin source code (RFC 4761 / RFC 4762).

Home

About

First Steps

Configuration

Operation

Interfaces

Plugins

Plugin Development

Chaos Testing

Blueprints

Development

Reference

Clone this wiki locally