Expand description
Duty-cycle admission gate for the device node’s radio path.
PROP_PHY_DUTY_LIMIT bounds the combined airtime of every radio
client (device-node plan increment 4). The session already prices
and records its own transmissions against the shared
[DutyLedger]; this wrapper is the node-side counterpart: it sits
between the node’s MAC and its virtual mux bundle, admits each
transmit against the combined budget, and records the airtime once
the transmit completes.
A refused transmit is reported as [TxError::CadTimeout] — the one
transmit error the MAC treats as “channel unavailable right now”:
it backs off with jitter, retries a bounded number of times, and
then drops the frame. Any other error would surface as a fatal
MacError::Transmit and kill the node pump, which must never be a
consequence of duty limiting. A budget exhausted this hour rarely
recovers within the MAC’s short backoff horizon, so a refused frame
is effectively shed — exactly the spec’s posture (transmits never
wait for duty-cycle allowance).
Structs§
- Duty
Gated Radio - A [
Radio] decorator enforcing the shared duty budget.