← Gallery

BGP: eBGP session establishment (network-xray gallery)

Shows the FSM as an eBGP session goes Idle → Established without booting any router (R1 AS 65001 — R2 AS 65002). Each button switches the state. Click "Open the router" to open the cylinder and see the BGP processor and the session (tunnel) inside. At Established, r2 learns the 203.0.113.0/24 advertised by r1.

① TCP :179 connect
② OPEN / capabilities exchange
③ Established (KEEPALIVE / UPDATE)
// load: xray-core.js (engine) + xray-api.js (facade) + bgp-data.js
var view = xrayCore.renderTopology('#topo', BGP_CONFIG, { topology: TOPO });

// each state button = one snapshot
view.applyState(BGP_STATES.opensent);      // → exchanging OPEN (not yet established)
view.applyState(BGP_STATES.established);    // → tunnel purple + learns 203.0.113.0/24

// "inside the router" cylinder:
view.openDeepDive();
Field shapes: see DATA-CONTRACT.md. Descriptive only — it visualizes BGP session state, it is not a simulator. The engine renders BGP as is_established (Established → purple session tunnel) and installs the learned prefix from route_resolution; the Idle→ Established progression above is shown by the 3-step indicator (the engine itself draws only the Established / not-Established distinction).
The live ping/packet animation is hidden here (this demo is about the session, not traffic).