Airgapped · Infrastructure-agnostic · DDIL-real

Train on the internet you’ll fight on.

GSP stands up a complete parallel internet on your own hardware: real ISP routing, mission-relevant SATCOM and degraded-link effects, and real devices living on emulated public address space. Fully airgapped. Inside your wire.

Real routing, not mocked paths Time-varying SATCOM effects Real devices and mission traffic
0internet dependencies at deploy time. The verified package crosses the airgap once.
Realrouters, BGP paths, packet hops, addressing, traffic, and endpoint behavior.
Livelatency, jitter, loss, bandwidth, corruption, handovers, fades, and outages.
1declarative configuration and one management plane for the entire environment.
Why it exists

The tactical edge is DDIL. The lab usually isn’t.

Systems proven on perfect networks meet latency, handovers, rain fade, congestion, and loss for the first time in theater. GSP moves that discovery left—into a repeatable lab environment.

01 · FIDELITY

A real parallel internet

Packets cross real routing domains and real policy boundaries. Traceroute, TTL, peering, customer transit, and failure behavior have the structure operators expect.

02 · REPEATABILITY

Reproduce the hard failure

Declarative topology and seeded impairment schedules let teams replay the same contested network condition after a fix—not argue about an unrepeatable anomaly.

03 · SOVEREIGNTY

Entirely inside your wire

No cloud control plane, license server, phone-home, or deploy-time pull. GSP brings the internet behavior you need without bringing the internet into the enclave.

How to use this

Emulate it. Automate it. Rehearse on it.

One emulated internet serves three jobs: it reproduces the network faithfully, it takes orders from a pipeline, and it becomes a range operators can rehearse a mission on.

01 · EMULATE

Every hop degrades traffic its own way

VyOS routers run multi-area OSPF and inter-ISP eBGP, so paths are selected and reconverged rather than looked up. A dedicated WAN emulator sits on every inter-ISP link, giving a terrestrial peering hop and a LEO SATCOM hop entirely independent delay, jitter, loss and rate.

Independent per-hop distributions compose into the reordering, burst loss and tail latency that a single averaged pipe can never generate.

02 · AUTOMATE

Same suite, different internet

GSP is API driven end to end and idempotent by construction. A pipeline stage runs its suite clean, swaps terrestrial-fiber for starlink-maritime over REST, and runs the identical suite again. The delta is the finding.

Delay, loss, corruption and rate are settable per link and per direction on a running emulator, and a hop can be cut and restored mid-suite. Matrix tests over network conditions the way you already matrix them over OS versions.

03 · REHEARSE

Rehearse on the network you will actually have

Operators drive their real C2 console over the real tunnel, across links impaired to match the theater they deploy into. Reaching the target crosses genuine routing domains, so hop count, TTL and RTT signatures behave as they will on mission.

Seeded schedules make a failed rehearsal reproducible — a 30-second fixed beacon dies across a 45-second LEO handover gap; a 12-second jittered beacon with resume tokens recovers 8 seconds after the fade. That lesson costs nothing to learn here.

Airgap-first by design

Airgap is not a deployment option. It is the only supported deployment model.

We develop and validate the product from day one as a disconnected system so continuous airgap operation remains a first-class requirement—not a late-stage packaging exercise.

Connected once. Airgapped for operation.

A connected build device assembles and verifies one package with gspcli package build — fetch, verify, hash, assemble. That package crosses the boundary through the customer’s approved transfer process, and gspcli deploy stands up RKE2, the ISPs, customers, WANEMU and the UI entirely inside the enclave. Every runtime artifact, image, chart, binary, and dependency is already there.

No deploy-time pulls. No license server. No cloud control plane. No phone-home path.

The disconnected path is exercised continuously in development because it is the product path.

Next: WAN emulation

Impairment is the product.

Routers make the path real. The emulators make the path hard. Every impaired link is a transparent Layer-2 bump-in-the-wire: the routers either side keep their real adjacency while the wire between them behaves like weather, orbit, congestion, or emissions control.

Two real GSP profiles plotted over time: leo-starlink latency spikes and rain-fade bandwidth collapse The leo-starlink profile holds 25 milliseconds of latency and adds a 40 millisecond handover spike every 15 seconds for 1.5 seconds. The rain-fade profile ramps bandwidth from 30 down to 6 megabits over a 30 second fade-in, dwells for 20 seconds, recovers over 20 seconds and stays clear for 20 seconds. DYNAMIC PROFILES ARE SCHEDULED, NOT RANDOM leo-starlink · latency base 25 ms · handover +40 ms every 15 s for 1.5 s 80 25 0 ms handover spikes 0 s 30 s 60 s 90 s rain-fade · bandwidth 30 → 6 Mbit/s · fade-in 30 s, dwell 20 s, recover 20 s, clear 20 s 30 6 Mbit fade-in dwell · loss 8% · corrupt 5% recover clear
REAL SHIPPED PROFILES · REPLAYED THE SAME WAY EVERY RUN
bandwidth tbf rate cap latency + jitter loss + correlation corruption bit errors queue limit buffer depth per direction a2b · b2a · both enable / disable hard cut
operator@edge-kit — a real device on the emulated internet
$ gspcli connect afloat-02
 identity 175.148.93.101 (customer afloat-02)
 tunnel up (emulated public routes installed)

$ ping 89.69.91.10 # ship → SATCOM → emulated internet
64 bytes: icmp_seq=1 ttl=58 time=561 ms
64 bytes: icmp_seq=2 ttl=58 time=574 ms
Request timeout for icmp_seq 3 ← that is the point
64 bytes: icmp_seq=4 ttl=58 time=559 ms

Pulse — brief, repeating hits

A clean link that keeps getting punched on a schedule. handover, burst, outage: LEO beam switches, obstruction loss bursts, mast blockage, EMCON blackout windows, flapping backhaul.

Envelope — it comes on gradually

Ramp in, dwell at the worst of it, recover, run clear. fade, swell, congestion: rain storms, sea-state mispointing, diurnal busy hour, and buffer-filling congestion collapse.

Ladder — capacity steps down

Adaptive coding and modulation under fade. acm walks bandwidth down through real modcod tiers and holds a loss floor at the bottom rung, the way a satellite modem actually degrades.

Markov — good and bad regimes

Session-level burstiness instead of tidy averages. gilbert-elliott flips between a good state and a lossy bad state on mean dwell times, so retransmits clump the way they do on a real link.

Oscillator — continuous wobble

doppler walks delay up and down on a period, modelling range-rate change as a satellite or a ship moves. Layer it under any of the above — modulators stack in an ordered list.

21built-in profiles
9modulator types
your own, same schema

Terrestrial fiber and congestion · GEO, MEO and LEO satellite · WGS Ka maritime and MUOS narrowband · Starlink at sea · sea state · EMCON · LTE and 5G · congestion collapse. All shipped inside the airgap package, all controllable over REST.

01 / 05
Follow the deployment

Demo Architecture

Use this view as the live map of what exists now and what each deployment target adds.

Cometfall reflects local config · replace GCP TEST-NET placeholders before a cloud demo
deploy / package Kubernetes live customer traffic impaired link
drag node · drag background · wheel to zoom · click to inspect
Baked standalone reference

WAN Emulator Profiles & Effects

The complete interactive profile guide is embedded directly in this HTML—no server, repository, or network request required.

Open embedded page ↗
Baked standalone corpus

GSP Documentation

The complete documentation set is embedded in this one file and rendered with the same sidebar/search pattern as the GSP UI Docs tab.