diff --git a/docs/CURRENT-STATE.md b/docs/CURRENT-STATE.md index 8ac4a68..edce64d 100644 --- a/docs/CURRENT-STATE.md +++ b/docs/CURRENT-STATE.md @@ -95,8 +95,9 @@ > `ofport>=0`; phase-04 Step 12.2 + Step 6 corrected to use it. Evidence + tested sequence in the root-cause > record above (LIVE-CONFIRMED 2026-08-09 section). D-number RULED 2026-08-09 (GA-R5, operator: > "D-139 amendment") -> `docs/design-decisions.md` D-139 AMENDMENT 2026-08-09. Still OWED for the -> rebuild: confirm the fixed ovn-chassis revision (bracket bug) or wire a persistent unbracket -> override; the container v6 carve; D-139's metal-admin-leg-IPv4 gate. Changelog: +> rebuild (consolidated executable **REBUILD RECIPE** in the root-cause record): container v6 carve; +> persistent unbracket override (no fixed ovn-chassis rev pinned by search 2026-08-09); neutron +> `overlay_ip_version=6`; D-139's metal-admin-leg-IPv4 gate (specced, build at rebuild). Changelog: > `docs/changelog-20260809-geneve-v6-rootcause-gate.md`. > ## >>> STANDING OPERATOR DIRECTIVE, 2026-07-30: THE NEXT SESSION PROCEEDS TO THE JUJU DEPLOYMENT (STAGE 5). NO MATTER WHAT. <<< diff --git a/docs/audit/geneve-over-v6-rootcause-20260808.md b/docs/audit/geneve-over-v6-rootcause-20260808.md index 2fed5eb..62da4a6 100644 --- a/docs/audit/geneve-over-v6-rootcause-20260808.md +++ b/docs/audit/geneve-over-v6-rootcause-20260808.md @@ -192,6 +192,33 @@ Teardown of `geneve-proof-*` + `lb-smoke` proceeds now (reproduction captured above). The manual step-2 encap override is left as-is on throwaway dc0 (harmless; not persisted to git/charm). +### REBUILD RECIPE -- geneve-over-v6 on 10.13 (consolidated; ruled D-139 AMENDMENT 2026-08-09) + +One place for the rebuild session. Three fixes + one gate; order matters (DEFECT 2). + +1. **Container v6 carve (fixes the 2026-08-08 family split).** The LXD ovn-chassis chassis (octavia / + ovn-chassis-octavia) must hold a v6 data-tenant address, not the D-134 auto-picked v4. Extend the + carve so LXD-container data-tenant legs get v6 (parity with metal `::12x`). Verify with + `juju exec --unit ovn-central/leader -- ovn-sbctl list encap` -> all Encap.ip v6. +2. **Unbracket the encap (fixes the 2026-08-09 bracket bug).** `ovn-chassis` 24.03 sets + `external_ids:ovn-encap-ip` BRACKETED; OVS geneve -> `ofport -1`. **No fixed charm revision was pinned + by search 2026-08-09** (charm-ovn-chassis LP #1968355 IPv6 family; inconclusive) -- so do NOT assume a + channel bump fixes it. RELIABLE fix = a persistent post-deploy override on every chassis host: + `sudo ovs-vsctl set open_vswitch . external_ids:ovn-encap-ip=` (idempotent; re-assert + after any ovn-chassis config-changed hook -- wire it as a oneshot/subordinate, not a one-time command). + Re-test a NEWER ovn-chassis channel at rebuild; if it emits unbracketed, the override is unneeded. +3. **neutron `overlay_ip_version=6`** for tenant MTU ~1422 (v6 geneve +20B), else large-packet failures later. +4. **GATE at Stage-5 close, before any workload smoke:** + `bash scripts/geneve-encap-assert.sh --live "$DC_MODEL" --expect-family v6` (C1 family + C2 tunnel + ofport). A real VM->VM cross-compute ping is the functional second half -- source from a **VM VIF, NOT an + ovnmeta/localport** (localport traffic never tunnels; that was the retracted test). + +**Ordering (D-139 DEFECT 2):** carve node/container v6 statics WHILE the v4 twin still exists (dc-node-v6-carve +keys off the v4 last octet), THEN remove data-tenant v4. **Still OWED (build at rebuild, needs the live +cloud):** D-139's metal-admin-leg-IPv4 gate (CARRIED RISK -- assert every container's metal-admin leg is v4; +same offline+`--live` shape as geneve-encap-assert; specced but not built, to avoid building against an +unmeasured target). + ## Evidence This session's captured output (transcript): `ovn-sbctl show`, `ovs-vsctl list interface` (bfd_status empty), octavia health-manager log ConnectTimeout, ping6 100% loss, SG rule list,