# Firmware Status Report

## Scope

- Device under test: `M62CF-EU`
- Firmware: `1.0.11.26032007`
- Serial: `67C10M25F00120`
- Controller host: `192.168.1.132`
- Router SSH host: `192.168.1.1`
- Test date: `2026-03-31`
- Reset performed: `No`

## Executive Summary

This firmware is usable for read-oriented USP validation and limited controlled Wi-Fi changes, but it is not stable under broad sequential mutation. Discovery, parameter collection, and router-local USP/BBF runtime checks are solid. A few individual Wi-Fi writes succeed, including the normal guest Wi-Fi toggle. However, once the test load shifts into repeated configuration mutations, the controller/device path degrades quickly into `504` and `503` responses, rollback becomes unreliable, and controller-side Wi-Fi host/station views can diverge from router-local truth.

## Current Observed Write-Stability Envelope

Tonight's data supports a provisional operating envelope rather than a final hard limit.

Observed range:

- `1` targeted write: generally workable
- around `5-6` sequential mutations: instability already visible
- by `9+` sequential mutations: frequent `504` / `503` behavior
- at `81` attempted mutations: not operationally usable as a batch workflow

Interpretation:

- this is an evidence-based observed range, not a finalized capacity curve
- the exact threshold may vary by parameter type, delay between writes, and whether read activity is happening at the same time
- the safest current guidance is to treat the stable envelope as approximately `1-5` sequential Wi-Fi mutations before failure risk rises sharply

## Test Plan Followed

1. Collect baseline controller and router context from Oktopus and router SSH.
2. Run a one-off capability sweep in phases:
   - small mutation sample
   - verifier correction
   - broader non-reset sweep with router snapshots before and after
3. Manually recover any residual configuration drift.
4. Run standard suite coverage for tonight's status update:
   - `all --read-only`
   - `nightly --allow-write-outside-window`
   - focused `router --read-only`
5. Consolidate results into a single engineering summary.

## Standard Suite Results

### Full Read-Only Coverage

- Suite: `all`
- Run: `1775014940-all`
- Result counts:
  - `PASS`: `1271`
  - `FAIL`: `756`
  - `SKIP`: `38`
  - `BLOCKED`: `1`

Interpretation:

- Most failures were not outage-style failures. They were concentrated in:
  - `advertised-analysis`
  - `acceptance-review`
  - `acceptance-required`
  - `acceptance-analysis`
- These failures mostly indicate parameter exposure gaps, missing modeled leaves, or incomplete controller responses relative to the acceptance expectations.
- One caveat: this run started in the same second as the nightly write run, so some read-side inventory gaps during this report may have been amplified by concurrent write activity.

High-signal failures from this run:

- `mesh.parent_child`
  - `BLOCKED`
  - parent reported `0` enabled APs and `0` associated devices for the mesh expectation logic
- `connectivity.openspeedtest`
  - `FAIL`
  - OpenSpeedTest reachability path is not operational
- `lan-speed.openspeedtest.browser`
  - `FAIL`
  - browser-driven speed test path is not operational

### Nightly Controlled Writes

- Suite: `nightly`
- Run: `1775014940-nightly`
- Result counts:
  - `PASS`: `1`
  - `FAIL`: `1`

Results:

- `guest_wifi.toggle`
  - `PASS`
  - guest Wi-Fi toggle and rollback succeeded
- `wifi.radio.toggle`
  - `FAIL`
  - controller write path and runtime verification did not converge cleanly

### Focused Router Read-Only Check

- Suite: `router`
- Run: `1775015576-router`
- Result counts:
  - `PASS`: `1`
  - `FAIL`: `3`

Results:

- `router.usp.runtime`
  - `PASS`
  - router-local USP runtime is present
- `router.hosts.compare`
  - `FAIL`
  - router active hosts: `25`
  - controller hosts: `0`
- `router.associated_device.compare`
  - `FAIL`
  - router stations: `21`
  - controller active stations: `0`
- `router.dataelements.compare`
  - `FAIL`
  - router DataElements stations: `22`
  - controller DataElements stations: `0`

Interpretation:

- Router-local truth remained available.
- The controller-side Wi-Fi host/station trees were empty during this run, which is a controller/device-state problem, not a router observability problem.

## Capability Sweep Results

No reset operation was executed. The sweep intentionally excluded factory reset.

### Sample Sweep 1

- Run: `1775010413-m62-capabilities`
- Actions attempted: `6`
- Set accepted: `5`
- Verify succeeded: `0`
- Rollback succeeded: `2`

What this revealed:

- individual writes can be accepted
- radio values can change at the controller layer
- rollback is inconsistent
- verification logic needed normalization fixes

### Sample Sweep 2

- Run: `1775011894-m62-capabilities`
- Actions attempted: `9`
- Set accepted: `1`
- Verify succeeded: `0`
- Rollback succeeded: `0`

What this revealed:

- once the device/controller path was stressed, many additional writes immediately returned `504` or `503`

### Broad Non-Reset Sweep

- Run: `1775012582-m62-capabilities`
- Actions attempted: `81`
- Set accepted: `1`
- Verify succeeded: `0`
- Rollback succeeded: `0`

Categories exercised:

- SSID rename
- SSID visibility
- AP QoS / UAPSD / isolation / WPS toggles
- AP capacity limit changes
- DataElements threshold and policy leaves
- neighbor scan operation

Observed behavior:

- `Device.WiFi.NeighboringWiFiDiagnostic()` accepted reliably
- nearly all follow-on mutations failed with `504` or `503`
- one SSID rename (`Device.WiFi.SSID.4.SSID`) stuck temporarily as `mud puddle-lab`
- that SSID was manually restored to `mud puddle`

## What Works Well

- Controller login, discovery, and large read retrievals
- Router-local USP and BBF runtime visibility over SSH
- Guest Wi-Fi toggle and rollback in the nightly test
- Neighbor scan operation acceptance
- Router runtime remained healthy after recovery:
  - radios `wifi0`, `wifi1`, `wifi2` up
  - main `WaterCooler` APs serving clients
- Router-side evidence capture is strong and repeatable:
  - `ubus`
  - `hostapd_cli`
  - `wifi.dataelements`
  - `hosts show`

## What Works With Limits

- Isolated Wi-Fi parameter writes
  - some single-leaf changes are accepted and can be read back
  - this is practical for one-off troubleshooting actions
- Controller-side mutation support
  - useful for targeted testing
  - not yet reliable as a broad batch configuration engine
- Acceptance and advertised analysis
  - useful for finding data model gaps
  - raw fail counts should not be read as a single runtime health score

## What Still Needs Work

- Repeated USP write stability
  - broad mutation quickly degrades into `504` and `503`
- Rollback reliability
  - rollback cannot yet be assumed after multi-step write sequences
- Controller/runtime alignment
  - controller Wi-Fi host and station trees can go empty while router runtime remains healthy
- Radio write path
  - `wifi.radio.toggle` remains a known failure path
- Operational test tooling
  - OpenSpeedTest integration is not currently usable

## Recovery and Final State

Manual recovery performed:

- restored `Device.WiFi.SSID.4.SSID` from `mud puddle-lab` back to `mud puddle`
- confirmed radios and main APs healthy on router SSH

Final observed state:

- all three radios enabled and reported `Up`
- main `WaterCooler` SSIDs active
- guest `mud puddle` SSIDs restored
- router runtime healthy on 2.4 GHz and 5 GHz

## Recommended Next Steps

1. Treat broad write/revert sweeps as a paced engineering workflow, not a batch automation path.
2. Prioritize fixes for:
   - repeated write stability
   - rollback reliability
   - controller Wi-Fi inventory emptiness under load
3. Keep router-SSH validation as the source of truth for QA whenever USP results are ambiguous.
4. Use the current Actions tab for targeted operations, not wide mutation campaigns.
5. Run the formal stress matrix plan in `../1775016304-stress-matrix/stress-matrix-plan.md` to replace this provisional envelope with a controlled capacity measurement.

## Artifact Links

Standard reports:

- `../1775014940-all/all-report.html`
- `../1775014940-nightly/nightly-report.html`
- `../1775015576-router/router-report.html`

Capability sweep runs:

- `../../capability_sweeps/1775010413-m62-capabilities/summary.md`
- `../../capability_sweeps/1775011894-m62-capabilities/summary.md`
- `../../capability_sweeps/1775012582-m62-capabilities/summary.md`
