Skip to content

bridge: a frame the receiver locked onto and lost reaches the chip - #29

Open
A13xB0 wants to merge 2 commits into
mainfrom
failed-frames-reach-the-chip
Open

A13xB0 wants to merge 2 commits into
mainfrom
failed-frames-reach-the-chip

Conversation

@A13xB0

@A13xB0 A13xB0 commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

The node half of MeshBench/meshbench#757.

The engine now sends kind 0x0A, [failure][frame...], for a frame this node locked onto and lost. The bridge hands it to deliverFrameFailed, which the pinned chip model (v1.3.3) already has: HeaderErr alone for a header it could not read, or RxDone beside CrcErr with the corrupt bytes in the buffer for a payload it could not.

The radio stats record grows from 47 bytes to 48. Byte 47, bit 0 says this bridge takes 0x0A. It has to be said: today's bridge ends its connection on any kind it does not know (default: goto done), so the engine only sends 0x0A to a node that sets the bit. Every engine reads the record on length, so an older MeshBench ignores the extra byte.

Until now every lost frame reached the firmware as nothing, so MeshCore's handling of HeaderErr and CrcErr never ran in a simulation.

Checked: simple_repeater builds cleanly against MeshCore dev (07a833bb) on Linux amd64. The engine side, including the capability bit, is tested in #757 over a real bridge. Not yet run end to end in a mesh.

The engine sends kind 0x0A, [failure][frame...], for a frame this node's
receiver locked onto and could not trust. The chip raises HeaderErr for a
header it could not read, or RxDone beside CrcErr for a payload it could not,
which is what lets the firmware's error paths run at all.
Byte 47, bit 0. The engine sends kind 0x0A only to a node that says so,
because a bridge without that case ends its connection on a kind it does not
know and the engine has no other way to tell the two apart.
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.

2 participants