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.
// 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();
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).