Skip to content
Thomas Mangin edited this page May 24, 2026 · 6 revisions

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

RFC 7947 route server: forwards every received route to every other peer, with zero-copy wire forwarding when peers share an encoding context. Supports dynamic peers for IXP deployments.

Category

Policy.

Configuration

Bound per peer alongside bgp-adj-rib-in for replay on reconnect.

plugin {
    external rs         { use bgp-rs;         encoder json; }
    external adj-rib-in { use bgp-adj-rib-in; encoder json; }
}

bgp {
    peer client-a {
        connection { remote { ip 10.0.0.1; } }
        session    { asn { remote 65001; } }
        process rs         { receive [ update ]; send [ update ]; }
        process adj-rib-in { receive [ update state ]; }
    }
}

See route reflection for the full reference.

Dynamic peers

For IXP deployments, the route server supports dynamic peers. Instead of configuring each peer individually, define a peer template and let peers connect dynamically:

bgp {
    peer-group ixp-clients {
        session {
            family { ipv4/unicast { prefix { maximum 100000; } } }
        }
        process rs         { receive [ update ]; send [ update ]; }
        process adj-rib-in { receive [ update state ]; }
    }
}

Dynamic peers inherit configuration from the peer group and are created on first connection. RS-client role and community filtering apply per peer.

Behaviour

The plugin receives every UPDATE from every peer and forwards it to every other peer, with no best-path selection. When two peers share a ContextID (same ADD-PATH mode, same ASN format, same extended message support), the wire bytes go out unchanged. When contexts differ, the reactor walks the cached attributes and re-encodes for the destination.

A peer that reconnects triggers a three-phase replay from bgp-adj-rib-in: snapshot, delta, End-of-RIB.

Community filtering is applied per peer when configured, allowing selective route filtering based on standard, large, or extended communities.

Interactions

  • bgp-adj-rib-in stores received routes for the reconnect replay.
  • The reactor's forwarding pool carries the bytes between peers.
  • role filters apply per peer when the RFC 9234 Role plugin is loaded.
  • Community filtering applies per peer when configured.

Source

main/internal/component/bgp/plugins/rs/

Home

About

First Steps

Configuration

Operation

Interfaces

Plugins

Plugin Development

Chaos Testing

Blueprints

Development

Reference

Clone this wiki locally