← Gallery

BGP paste → render (network-xray gallery)

Paste a router's show bgp summary and show ip bgp output and press Render. This router and its BGP neighbors are drawn, and the engine shows the session (tunnel when Established) and the prefixes it has learned. Click "Open the router" to look inside (BGP processor + the routes in the table).
πŸ”’ Runs entirely in your browser β€” your config never leaves the page (no upload, no server).
Supported here: FRR show bgp summary + show ip bgp, small eBGP from one router's view. iBGP / route-reflectors / large tables / multipath aren't fully reconstructed β€” feed the engine state directly (see DATA-CONTRACT.md) or fork bgp-parse.js.

self node = r1; neighbors become r2, r3, …
// bgp-parse.js turns the pasted text into the engine's config/state…
var r = BGPFRR.build(summaryText, bgpTableText, 'r1');

// …and xrayCore draws it β€” the topology, the session, and the BGP table:
var view = xrayCore.renderTopology('#topo', r.config, { topology: r.topo, trace: r.trace });
view.setBgpTable(r.bgpRows);   // Seam C: the learned routes, inside the cylinder
view.applyState(r.state);

// zoom into this router's internals (the cylinder):
view.openDeepDive();
Field shapes: see DATA-CONTRACT.md. The engine renders BGP as a binary (is_established β†’ purple session tunnel) and installs the learned prefix from route_resolution; it is descriptive, not a simulator. Topology is inferred from one router's view (self + its eBGP neighbors); next-hops are matched to neighbors to place the links.
The live ping/packet animation is hidden in this demo (traffic-specific); the engine supports it via Seam B β€” see DATA-CONTRACT.md.