Validated Intent Compilation for Constrained Routing in LEO Mega-Constellations
Abstract
Operating LEO mega-constellations requires translating high-level operator intents ("reroute financial traffic away from polar links under 80 ms") into low-level routing constraints -- a task that demands both natural language understanding and network-domain expertise. We present an end-to-end system comprising three components: (1) a GNN cost-to-go router that distills Dijkstra-quality routing into a 152K-parameter graph attention network achieving 99.8% packet delivery ratio with 17x inference speedup; (2) an LLM intent compiler that converts natural language to a typed constraint intermediate representation using few-shot prompting with a verifier-feedback repair loop, achieving 98.4% compilation rate and 87.6% full semantic match on feasible intents in a 240-intent benchmark (193 feasible, 47 infeasible); and (3) an 8-pass deterministic validator with constructive feasibility certification that achieves 0% unsafe acceptance on all 47 infeasible intents (30 labeled + 17 discovered by Pass 8), with 100% corruption detection across 240 structural corruption tests and 100% on 15 targeted adversarial attacks. End-to-end evaluation across four constrained routing scenarios confirms zero constraint violations with both routers. We further demonstrate that apparent performance gaps in polar-avoidance scenarios are largely explained by topological reachability ceilings rather than routing quality, and that the LLM compiler outperforms a rule-based baseline by 46.2 percentage points on compositional intents. Our system bridges the semantic gap between operator intent and network configuration while maintaining the safety guarantees required for operational deployment.
Figures & tables
| Type | Target | Grounding |
|---|---|---|
| disable_node | node: | |
| disable_plane | plane: | |
| disable_edge | edge: | |
| avoid_latitude | edges | if |
| avoid_region | region: | if |
| reroute_away | node: | (transit) |
| Scenario | GNN PDR | Dijkstra PDR | Random PDR |
|---|---|---|---|
| Uniform | 99.75% | 99.75% | 0.90% |
| Hotspot | 99.99% | 99.99% | 2.36% |
| Regional | 99.94% | 99.94% | 5.49% |
| Polar | 100.0% | 100.0% | 1.88% |
| Flash | 99.77% | 99.77% | 0.89% |
| Config | Compiled | Types | Full Match | Latency |
|---|---|---|---|---|
| Full pipeline | 97.9% | 91.7% | 86.2% | 15.7s |
| No verifier | 100.0% | 93.8% | 91.7% | 13.8s |
| No repair | 92.9% | 86.7% | 84.6% | 13.8s |
| Zero-shot | 92.5% | 71.7% | 15.4% | 34.2s |
| Accept | Reject | Abstain | |
| Single ( =80) | 10 | 5 | 65 |
| Compositional ( =100) | 40 | 25 | 35 |
| Conditional ( =30) | 8 | 2 | 20 |
| Infeasible ( =30) | 0 | 22 | 8 |
| Total ( =240) | 58 | 54 | 128 |
| Safety (unsafe = infeasible ACCEPT ): | |||
| Scenario | Reach. | Raw PDR | Reachable PDR | ||
|---|---|---|---|---|---|
| GNN | Dijkstra | GNN | Dijkstra | ||
| Baseline | 100% | 99.8% | — | 99.8% | — |
| Node failure | 100% | 98.7% | 97.8% | 98.7% | 97.8% |
| Plane maint. | 100% | 70.5% | 70.2% | 70.5% | 70.2% |
| Polar avoid. | 24.0% | 34.6% | 47.9% | 100% | 100% |
| Compositional | 24.0% | 34.3% | 47.1% | 100% | 100% |
| Metric | Rule-Based | LLM 4B | LLM 9B |
|---|---|---|---|
| Compiled | 100.0% | 59.6% | 98.4% |
| Types Match | 67.1% | 55.4% | 91.7% |
| Full Match | 56.7% | 54.2% | 87.6% |
| Avg Latency | 0.05ms | 204s | 15.7s |
| Full match by category: | |||
| Single | 76.2% | — | 89.5% |
| Category | N | Compiled | Full Match |
|---|---|---|---|
| Single | 20 | 100% | 95.0% (19/20) |
| Compositional | 5 | 100% | 40.0% (2/5) |
| Conditional | 8 | 100% | 75.0% (6/8) |
| Ambiguous | 5 | 100% | qualitative: 5/5 |
| Scorable total | 33 | 100% | 81.8% (27/33) |
| Metric | Qwen 4B | Qwen 9B |
|---|---|---|
| Compiled | 59.6% | 98.4% |
| Types Match | 55.4% | 91.7% |
| Full Match | 54.2% | 87.6% |
| First-try Rate | 47.1% | 77.9% |
| Avg Latency | 204.4s | 15.7s |
| Planes Off | Capacity | GNN PDR | Dijkstra PDR | |
|---|---|---|---|---|
| 1 | 5% | 81.1% | 80.9% | +0.22 |
| 2 | 10% | 41.1% | 41.1% | 0.00 |
| 3 | 15% | 36.8% | 36.8% | 0.00 |
| 5 | 25% | 45.3% | 45.3% | 0.00 |
| 7 | 35% | 42.5% | 42.5% | 0.00 |
| 10 | 50% | 11.4% | 11.4% | 0.00 |
| Configuration | GNN PDR | Dijkstra PDR | |
|---|---|---|---|
| 550 km / 53 ∘ (training) | 99.75% | 99.75% | 0.00 |
| 1200 km / 53 ∘ (OOD) | 99.75% | 99.75% | 0.00 |
| 550 km / 97 ∘ SSO (OOD) | 45.18% | 99.09% | 53.91 |
| Threshold | Edges Removed | GNN PDR | Dijkstra PDR | |
|---|---|---|---|---|
| 30 ∘ | 28.8% | 38.17% | 99.75% | 61.58 |
| 40 ∘ | 20.5% | 54.08% | 99.75% | 45.67 |
| 45 ∘ | 15.8% | 65.20% | 99.75% | 34.55 |
| 50 ∘ | 9.8% | 80.37% | 99.75% | 19.38 |
| Category | Median | P95 | Max | |
|---|---|---|---|---|
| All programs | 240 | 0.720 ms | 1.580 ms | 1.898 ms |
| With flow selectors | 98 | 1.059 ms | 1.738 ms | 1.898 ms |
| Topology-only | 142 | 0.437 ms | 1.501 ms | 1.629 ms |
| By certification status: | ||||
| Accepted | 58 | 1.044 ms | 1.738 ms | 1.812 ms |
| Rejected | 32 | 1.135 ms | 1.757 ms | 1.898 ms |
| Scenario | GNN PDR | Dijkstra PDR | Violations |
|---|---|---|---|
| Node failure | 98.69% | 97.83% | 0 |
| Plane maintenance | 70.51% | 70.22% | 0 |
| Polar avoidance | 34.63% | 47.86% | 0 |
| Compositional | 34.27% | 47.07% | 0 |