Skip to content

feat(sonic-vm): qualified SRv6/EVPN conformance profile - #19

Merged
mergify[bot] merged 7 commits into
mainfrom
feat/sonic-vm-conformance
Oct 11, 2026
Merged

mergify[bot] merged 7 commits into
mainfrom
feat/sonic-vm-conformance

Conversation

@mairp

@mairp mairp commented Oct 11, 2026

Copy link
Copy Markdown
Owner

Summary

  • Adds the operator-buildable sonic-vm vrnetlab conformance profile end-to-end: image build tooling (scripts/build-sonic-vm.sh, direct .img.gz artifact download with resume), the 4-node QEMU-in-container topology, and SSH-driven guest bootstrap (TLS gNMI certs + GNMI CONFIG_DB table + gNMI user).
  • Makes the integration suites profile-aware: new tests/integration/lib/node_exec.sh routes node-side ops (config, redis-cli, vtysh, kernel probes) over SSH into the sonic-vm guest instead of docker exec into the launcher.
  • EVPN-VM witness peers the leaves across the real fabric (leaf01–spine01–leaf02 /30s, iBGP EVPN on the image's AS 65100 with distinct router-ids); documents why 10.1.0.1 (image-default Loopback0) cannot be used as a peer address.
  • Kernel seg6 lwtunnel witnesses auto-skip on sonic-vm (guest kernel has no seg6 support; control-plane SRv6 still asserted over gNMI).
  • Persistence for sonic-vm verified via guest config reload (re-reads /etc/sonic/config_db.json).
  • versions.lock.yaml pins local/sonic-vm:202505; TUTORIAL.md known-limitations rewritten with the qualified status.

Evidence

Full gate scripts/lib/qualify.sh: 17/17 pass — Capabilities, Get, Set, Subscribe, sonic-srv6, persistence, EVPN Type-2/3/5, SRv6-Underlay, H.Encaps.Red, End, End.DT46, SID-list, Decapsulation, Counters, YANG-Paths ({\"result\":\"pass\"}, proof logs under .wiggum/features/001-agentic-netops-sonic-evpn-fabric/gates/proofs/).

Test plan

  • bash scripts/lib/qualify.sh → exit 0, all suites green on the sonic-vm lab
  • gnmic capabilities/get/subscribe over mTLS to all four guests
  • verify_pins.sh passes with the new sonic_vm digest

mairp added 7 commits October 6, 2026 22:23
…ge, TLS gNMI, gate pass)

- build tooling: scripts/build-sonic-vm.sh (direct .gz artifact download,
  resumable, local-image support, --update-pin); versions.lock.yaml pins
  local/sonic-vm:202505
- profile: lab/topology.sonic-vm.clab.yml + lab/profiles/sonic-vm/bootstrap
  (SSH-driven guest provisioning; GNMI CONFIG_DB table for TLS — the legacy
  TELEMETRY table is ignored by gnmi-native.sh in 202505; host-side creds
  injection because the launcher has no jq)
- suites: tests/integration/lib/node_exec.sh dispatches node-side ops over
  SSH into the sonic-vm guest (launchers lack config/redis-cli/vtysh);
  EVPN-VM peering crosses the real fabric (leaf-spine-leaf /30s, iBGP EVPN
  on the image AS 65100 with distinct router-ids); kernel seg6 witnesses
  auto-skip when the guest kernel lacks seg6 lwtunnel
- persistence: guest 'config reload' re-reads /etc/sonic/config_db.json
- gate: scripts/lib/qualify.sh passes 17/17 (Capabilities/Get/Set/Subscribe,
  sonic-srv6, persistence, EVPN Type-2/3/5, SRv6 underlay/End/End.DT46/
  decap/counters, YANG paths)
- TUTORIAL.md known-limitations rewritten with the qualified status and
  verified sonic-vm profile notes
@mergify

mergify Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Merge Queue Status

  • ✅ Entered queue — 2026-10-11 11:37 UTC · Rule: default · triggered by merge protections
  • ✅ Checks passed · on draft merge queue: checking #19 on main (e2b15b8) #20
  • ✅ Merged — 2026-10-11 11:39 UTC · at 5fff0736e3ad9ca46ce7aa09b7515e9f2bc8227c · squash

This pull request spent 1 minute 26 seconds in the queue, including 1 minute 6 seconds running CI.

Required conditions to merge
  • github-review-approved [🛡 GitHub repository ruleset rule pr-only]
  • any of [🛡 GitHub branch protection]:
    • check-success = build-and-test
    • check-neutral = build-and-test
    • check-skipped = build-and-test
  • any of [🛡 GitHub branch protection]:
    • check-success = python-tier (openai/gpt-4o-mini)
    • check-neutral = python-tier (openai/gpt-4o-mini)
    • check-skipped = python-tier (openai/gpt-4o-mini)
  • any of [🛡 GitHub branch protection]:
    • check-success = python-tier (anthropic/claude-3-haiku)
    • check-neutral = python-tier (anthropic/claude-3-haiku)
    • check-skipped = python-tier (anthropic/claude-3-haiku)
  • any of [🛡 GitHub branch protection]:
    • check-success = ui
    • check-neutral = ui
    • check-skipped = ui
  • any of [🛡 GitHub branch protection]:
    • check-success = no-credential-literals
    • check-neutral = no-credential-literals
    • check-skipped = no-credential-literals
  • any of [🛡 GitHub branch protection]:
    • check-success = tier-absent-gates
    • check-neutral = tier-absent-gates
    • check-skipped = tier-absent-gates
  • any of [🛡 GitHub branch protection]:
    • check-success = lifecycle-idempotence
    • check-neutral = lifecycle-idempotence
    • check-skipped = lifecycle-idempotence

@mergify mergify Bot mentioned this pull request Oct 11, 2026
44 of 72 tasks
@mergify mergify Bot added the queued label Oct 11, 2026
@mergify
mergify Bot merged commit 5fff073 into main Oct 11, 2026
11 checks passed
@mergify
mergify Bot deleted the feat/sonic-vm-conformance branch October 11, 2026 11:39
@mergify mergify Bot removed the queued label Oct 11, 2026
mairp added a commit that referenced this pull request Oct 19, 2026
Resolve conflicts with #19 (sonic-vm conformance profile) in favour of the
feature branch, whose versions are the measured successors of the same code:
node_sudo privilege prefix, bounded ssh with -n, seg6 probe on Loopback0 with
SKIP 77, spine resolved by name, running-AS peering, one-line image@sha256 pin
(FR-009), sonic-vm default profile (T247/T248), and docs that describe the
delivered SRv6Service. Brings in #21 (Phoenix trace fan-out) unchanged.

Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: mairp <oec.valle.art@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant