Live link quality and suspend¶
Live ethernet quality (NETEM) and suspend are Interaction as Code: they change the running lab through the agent HTTPS API using public YAML identity (n_1 + interface). They do not rewrite topology.yml.
Consoles remain the other Interaction as Code surface: Interaction as Code.
Two planes¶
| Quality (delay / jitter / loss / bandwidth) | Suspend | |
|---|---|---|
| Desired state | topology.yml source_impairment / destination_impairment |
none — there is no YAML *_suspend |
| Live apply | POST /api/v1/projects/links/quality |
POST /api/v1/projects/links/suspend |
| Persist | deploy / reconcile | never |
| Observe | inspect |
inspect runtime source_suspend / destination_suspend |
Live quality always uses native save=0. persisted is always false. Persist later with YAML + deploy/reconcile. Do not use live apply to paper over a missing reconcile impairment write.
Identity¶
match.endpoints is exactly two public endpoints. endpoints[0] is source. Never send native EVE numeric ids.
LOAD, CREATE, and IMPORT all allow these ops (they are not topology mutation). Native lab.lock is not a gate.
Unknown pair → 400 unknown_link. Serial NETEM → 400 serial_impairment_unsupported.
CLI¶
eve-iac link quality ./lab --from n_1:e0/0 --to n_2:e0/1 --delay 50 --loss 1
eve-iac link suspend ./lab --from n_1:e0/0 --to n_2:e0/1 --side source
eve-iac link resume ./lab --from n_1:e0/0 --to n_2:e0/1
SDK¶
applyLinkQuality / setLinkSuspend (Python apply_link_quality / set_link_suspend). Generated from OpenAPI like every other v1 op.
MCP¶
eve_iac_link_quality and eve_iac_link_suspend. Observe with eve_iac_inspect. Do not eve_iac_edit a fake suspend field.