Skip to content

Glossary

acarteron edited this page May 20, 2026 · 1 revision

Glossary

← Home

Term Definition
AMR-NB Adaptive Multi-Rate Narrowband. The reference codec; 8 bitrates from 4.75 to 12.2 kbps, 20 ms frame.
channel Meshtastic channel index (u32). Selects which channel PSK Meshtastic's firmware uses to encrypt the whole payload on the LoRa air interface.
channel_psk Pre-shared key configured in Meshtastic for a given channel. Used by Meshtastic firmware for channel encryption; this protocol does not consume it directly.
chunk_index Index of a frame within its packet-type bucket. 0..total_data for DATA, 0..parity_count for PARITY.
chunk_size Fixed body length for non-final DATA chunks and all PARITY chunks within a single message. Inferred by the receiver, not on the wire.
codec One-byte advisory marker indicating which codec produced the bytes. Receivers MUST drop unknown codecs.
codec_param Codec-specific metadata (e.g. AMR-NB bitrate ordinal). Pass-through; not range-checked by the protocol.
DATA frame A frame whose body is the codec bytes for a single chunk of original audio.
FEC Forward Error Correction. Reed-Solomon over GF(2⁸); see Reliability.
from Sender's Meshtastic node id, formatted as lowercase !hex8 (e.g. !a1b2c3d4).
give_up NACK flag: the receiver has timed out. Sender SHOULD discard remaining queued chunks for that message_id.
Integrity tag The 4 trailing bytes of every frame's 16-byte header: SHA-256(header[0..12])[..4] (unkeyed). Catches on-air bit-flips; not an authenticator.
last_in_stream type_flags bit 4. Marks the final frame of a recording session. Currently informational in the reference receiver.
message_id Non-zero u32 chosen by the sender. With from, uniquely identifies a message for the completion-memory window.
MTU Maximum Transmission Unit. Meshtastic LoRa MTU = 231 bytes (= MAX_PACKET_SIZE).
NACK frame Negative ACK with bitmap of missing DATA chunk indices. See Frame Format.
nack_window_ms Quiet period (default 3000 ms) after the last seen chunk before the receiver issues a NACK round.
nack_rounds Per-message counter of consecutive NACK rounds without progress; reset whenever a new shard lands, capped at NACK_MAX_ROUNDS = 400.
PARITY frame A frame whose body is a Reed-Solomon parity shard. Always chunk_size bytes.
packet_type Top 2 bits of type_flags: 0 = DATA, 1 = PARITY, 2 = NACK, 3 reserved.
parity_count Number of FEC parity shards in a message. 0 disables FEC; max 128.
PRIVATE_APP Meshtastic PortNum value 256. Voice frames ride here.
PSK Pre-Shared Key. Meshtastic channel-level secret used by the firmware's channel encryption.
Reed-Solomon The FEC code used. (total_data, parity_count) shards over GF(2⁸); recovery from any total_data shards.
stream_seq Per-(from, channel) monotonic u8, wrapping at 256. Intended for ordering overlapping recordings; informational in the reference receiver.
Template The header fields locked in by the first frame of a message: total_data, codec, stream_seq, plus chunk_size once observable.
total_data Number of original DATA chunks in a message. u8, must be ≥ 1.
type_flags Header byte 1, packing packet_type (2b), last_in_stream (1b), and reserved bits (5b, must be 0). The V2 encrypted (0x20) and mac_keyed (0x08) bits are now reserved-zero.
want_ack Meshtastic packet flag. Voice senders set it for DM DATA / PARITY frames; cleared for broadcasts and NACKs.
Blacklist The receiver's recently-finalized (from, message_id) set. Late frames for finalized messages are silently dropped.
Validation strike Counter on each in-progress entry; incremented on post-template mismatches. After 3 strikes the entry is evicted + blacklisted.

← Home

Clone this wiki locally