Also known as: CMCE, circuit mode control entity, MLE PDU
The TETRA CMCE PDUs are the circuit-mode call-control messages that a TETRA infrastructure sends on the control channel to set up, connect and tear down voice calls.12 They ride in the TL-SDU handed up by the LLC layer, beneath a 3-bit MLE protocol discriminator. A receiver following a system reads them to learn who is calling whom and — paired with the MAC channel-allocation element — where the call’s traffic is, which together form a voice grant.
The discriminator
Every Layer-3 PDU opens with a 4-bit discriminator (§14.7). Its top two bits are the protocol identifier that selects the sub-protocol, and the low two bits are the upper part of the PDU type within it:
| Discriminator | Protocol |
|---|---|
00xx |
MLE — Mobile Link Entity (system broadcast) |
01xx |
MM — Mobility Management |
10xx |
CMCE — Circuit Mode Control Entity (call control) |
11xx |
SDS — Short Data Service |
Only CMCE and MLE carry trunking-relevant messages a voice follower acts on; MM and SDS are dropped by strict validation.
The CMCE PDUs
| Type | PDU | Role |
|---|---|---|
| 0x1 | D-SETUP | Incoming call setup — announces a call is forming |
| 0x2 | D-CONNECT | Call connected — carries the traffic grant |
| 0x4 | D-RELEASE | Call released — teardown |
| 0x5 | D-TX-CEASED | Talker stopped transmitting |
| 0x7 | D-TX-GRANTED | Late-grant transmission permission |
| 0x9 | D-INFO | Supplementary services |
| 0xA | D-CALL-PROCEEDING | Call proceeding |
D-SETUP and D-CONNECT are the pair that opens a call: the setup announces it and the connect confirms it and carries the grant. A follower assembles the VoiceGrant field by field — the physical resource (carrier + timeslot + usage marker) from the MAC allocation element, and the call identifier, source and destination SSIs and emergency flag from the CMCE TM-SDU in the same PDU. Whether the destination is a talkgroup GSSI (a group call) or an individual ISSI (a private call) is classified from that destination address so the UI does not surface a radio ID as a phantom talkgroup, and the emergency bit marks an emergency call. D-RELEASE and D-TX-CEASED drive teardown; the latter is treated as idle filler the state machine absorbs.
MLE SYSINFO
Under the MLE discriminator, PDU type 0x3 is SYSINFO, the network-broadcast that carries the system identity: a 10-bit Mobile Country Code, a 14-bit Mobile Network Code, and a 14-bit Location Area. The MCC and MNC uniquely tag a TETRA system, and GopherTrunk treats the first SYSINFO as the trigger that locks the control channel, surfacing the identifier in the lock state.
Relevance to SDR
internal/radio/tetra/cmce.go defines the CMCE and MLE PDU types, the VoiceGrant carrier
the MAC path fills, and AsSystemBroadcast for the MLE SYSINFO; pdu.go defines the
Discriminator and the PDU shape. A real CMCE TM-SDU is bit-packed (a 3-bit MLE
discriminator plus a 5-bit PDU type), so grants are decoded bit-accurately off the MAC layer
rather than from the byte-aligned ParsePDU view, which cannot frame the sub-byte fields.
IsKnown and strict validation gate the state machine to the documented (discriminator,
type) pairs so a PDU whose type field lands in an unallocated range is dropped rather than
mis-dispatched.
Sources
-
Terrestrial Trunked Radio — Wikipedia, on the TETRA call-control signalling. ↩
-
Protocol data unit — Wikipedia, on the PDU concept the CMCE/MLE messages instantiate. ↩