Skip to content

floors provenance: loop_protection, arp_table, vlans, auto_disable, ip_restrict, signal_contact ssh=pass - #386

Merged
AdamRickards merged 1 commit into
mainfrom
test-bot/provenance-20260925
Sep 24, 2026
Merged

AdamRickards merged 1 commit into
mainfrom
test-bot/provenance-20260925

Conversation

@AdamRickards

Copy link
Copy Markdown
Owner

Summary

Evidence (sidecar <method>.read with trace:true, tip 6b71a1e, 2026-09-25)

method mops snmp ssh parity_diffs ssh CLI
get_loop_protection ok, interfaces n=28 ok, 28 ok, 28 [] show loop-protection interface, show loop-protection global, show port
get_arp_table ok, n=33 ok, 33 ok, 33 [] show ip arp table, show port
get_vlans ok, n=11 ok, 11 ok, 11 [] show vlan brief, show vlan port, show port
get_auto_disable ok, n=28 ok, 28 ok, 28 [] show auto-disable brief, show port
get_ip_restrict ok, rules n=1 ok, 1 ok, 1 [] show network management access global, show network management access rules
get_signal_contact ok, contacts n=1 ok, 1 ok, 1 [] none recorded (see below)

Beyond the harness verdict, I also compared the full field-by-field output of ssh against mops and snmp: it is identical for 5 methods.

Caveats:

  • get_vlans: on this lab every transport shows U-only membership (PVID). T/F is never exercised, so the T/F show vlan member remainder stays parked on hitl-engine-park.md. This pass covers the current floor only.
  • get_signal_contact:
    • ssh matches snmp exactly, and sense_ps_state is {'1': True, '2': True} on all 3 transports.
    • sense_fan, sense_humidity and sense_stp_port_block are mops None vs ssh/snmp False. The harness doesn't count None vs False, and schema(#293): get_signal_contact sense_ps_state per-PSU dict {psid: bool} #384 leaves these out of scope.
    • The ssh cli is empty because the per-contact loop doesn't record commands (get_interfaces.read: SSH parse remainder (cli listed; n=1 vs mops 36) #226 class). Declared command: show signal-contact {entity} all for contacts 1–2.
    • The section: 1 PS-table index is not raw-verified. Live keys rule out the case "PS table at separator 0 followed by another table"; they don't rule out "PS table is the only separator" (fallback to separator 0).
  • get_arp_table: n=33 on all three transports on this run. The ARP table is live, and n matches across transports.

Named proof

  • python3 scripts/generate_floors_board.py
  • python3 scripts/generate_status.py --check → PASS
  • Receipt: /tmp/sigma/provenance20260925/receipt.txt

Issues

Test plan

  • Diff is only those 6 ssh cells plus the board rollup
  • Prove receipts under /tmp/sigma/provenance20260925/

…s, auto_disable, ip_restrict, signal_contact
@AdamRickards
AdamRickards merged commit 9ee450d into main Sep 24, 2026
4 checks passed
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