You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Qualify service integration and failure behavior on the target platform #1048
Deliverable: a checked-in independent service client, reproducible acceptance harness, and executed evidence for the complete Galactic backend integration.
Exercise the published backend contract using an external consumer against fixed Galactic artifacts and real fabric routers. Cover all four supported diagnostics and both address families where supported. Qualify backend behavior without requiring the public website, project session controller, or customer CLI to be implemented.
Work items:
Package the independent client, pinned artifacts, setup, fixture identities, workload generation, and cleanup instructions.
Exercise project fairness, bursts, aggregate destination traffic, replica coordination, limiter failure, slow consumers, cancellation, API isolation, and leadership replacement.
Execute the suite on the target platform; publish measured failure and resource bounds, routing impact, and results mapped to every epic acceptance requirement. Run by hand with the procedure in docs/fabric-api/qualification.md; the lab run is recorded in the archive.
Dependencies: harness development can begin after #1042; final qualification requires #1043, #1044, #1045, #1046, #1047.
Acceptance: Another engineer can reproduce the tests using the published API and pinned artifacts without modifying Galactic internals. Evidence records versions, initial limits, routing-impact thresholds, observed packet budgets, cancellation timings, and resource ceilings. Required fault and probe checks execute; skipped tests or readiness checks alone do not establish acceptance. The harness cleans up its resources and preserves diagnostic payload confidentiality.
Closing this with the lab run as the qualification of record. The deployed-cell run will be done by hand.
What landed (stack #1143, merged as #1141 and #1142):
An independent client in examples/looking-glass-client. It imports only the published service API, and task test:looking-glass-client enforces that.
The tests/lgqualify suite, with 21 scenarios covering authorization, compatibility, all four diagnostics in both address families, router coverage, destination policy, existing interfaces, bursts, fairness, destination budgets, cancellation, deadlines, the service switch, blackholed clients, routing impact, leader crash, pause and API isolation, resources, confidentiality, and cleanup.
deploy:looking-glass, verify:looking-glass and undeploy:looking-glass lab tasks, plus the procedure in docs/fabric-api/qualification.md.
Fixes for four defects the suite found: the gateway now applies the public destination policy before the snapshot, and has --deny-prefixes; service request logs no longer echo targets; node certificates under require-permits carry client auth; and a node's permit connection redials when its credentials reload.
Result: on the containerlab lab, all 21 scenarios passed with none skipped, against thresholds fixed before the run. Loaded p95 BGP convergence was within 1 % of the control's, and no other session reset. After a leader crash, the new leader resumed 132 s after acquiring the lease, against a 134 s bound. cleanup found no leftover rules. After undeploy:looking-glass, verify:fabric-api passed. The dated record, with the revision and results mapped to every acceptance row, is in docs/archive/benchmarks/looking-glass-qualification-2026-10-27.md.
Not covered: the fourth work item asked for a run on the target platform. It will be run by hand on a staging cell with the procedure in docs/fabric-api/qualification.md. Until that run passes, the service is qualified only on the lab.
Activity
test(fabric-api): Refuse special-use probe targets with no deny list
test(fabric-api): Refuse special-use probe targets with no deny list
test(fabric-api): Qualify the Looking Glass service on the lab
docs(fabric-api): Document how to qualify the Looking Glass service
docs(fabric-api): Document how to qualify the Looking Glass service
test(fabric-api): Add an independent Looking Glass service client
privateip commentedon Oct 29, 2026
Closing this with the lab run as the qualification of record. The deployed-cell run will be done by hand.
What landed (stack #1143, merged as #1141 and #1142):
examples/looking-glass-client. It imports only the published service API, andtask test:looking-glass-clientenforces that.tests/lgqualifysuite, with 21 scenarios covering authorization, compatibility, all four diagnostics in both address families, router coverage, destination policy, existing interfaces, bursts, fairness, destination budgets, cancellation, deadlines, the service switch, blackholed clients, routing impact, leader crash, pause and API isolation, resources, confidentiality, and cleanup.deploy:looking-glass,verify:looking-glassandundeploy:looking-glasslab tasks, plus the procedure in docs/fabric-api/qualification.md.--deny-prefixes; service request logs no longer echo targets; node certificates underrequire-permitscarry client auth; and a node's permit connection redials when its credentials reload.Result: on the containerlab lab, all 21 scenarios passed with none skipped, against thresholds fixed before the run. Loaded p95 BGP convergence was within 1 % of the control's, and no other session reset. After a leader crash, the new leader resumed 132 s after acquiring the lease, against a 134 s bound.
cleanupfound no leftover rules. Afterundeploy:looking-glass,verify:fabric-apipassed. The dated record, with the revision and results mapped to every acceptance row, is in docs/archive/benchmarks/looking-glass-qualification-2026-10-27.md.Not covered: the fourth work item asked for a run on the target platform. It will be run by hand on a staging cell with the procedure in docs/fabric-api/qualification.md. Until that run passes, the service is qualified only on the lab.