Field Guide · term

Also known as: network access code, NAC, P25 NAC

A Network Access Code (NAC) is a 12-bit code embedded in every P25 voice and data frame that identifies which system the transmission belongs to, so a radio can ignore traffic from neighbouring systems that happen to share the frequency.1 It is the digital equivalent of an analog CTCSS tone or DCS code: a low-level “colour” that gates the receiver before it ever unmutes, with 4096 possible values (0x000–0xFFF).

NAC payload (voice / data) NAC == 0x293 ? yes → unmute the NAC gates the receiver before any audio is heard 12 bits → 4096 codes; a few (0xF7E, 0xF7F) have special meaning
Every P25 frame carries a NAC; a receiver opens only for frames whose NAC matches the system it is programmed for.

How it works

The NAC sits in the frame header alongside the network ID and data-unit type, so it is present on both the control channel and voice channels. A P25 radio is programmed to accept one NAC and rejects everything else — this is how two systems can share a repeater output frequency without their users hearing each other. A handful of values are reserved: 0xF7E means “accept any NAC” (used for monitoring), and 0xF7F tells a repeater to retransmit using the received NAC.

The NAC alone does not identify a system uniquely across a wide area — many systems reuse the same value. Full P25 identity comes from the WACN, System ID, and RFSS fields carried on the control channel; the NAC is the fast, frame-by-frame filter, while those longer codes are the registered network identity.

Variants

The idea appears under different names across the digital land-mobile protocols. DMR calls its equivalent the color code; NXDN calls it the Radio Access Number (RAN). All three serve the same purpose — a small per-frame code that stops co-channel systems from interfering at the receiver — and all three descend conceptually from analog CTCSS/DCS sub-audible signalling.

Relevance to SDR

For a monitor the NAC is a useful discriminator: it labels which system a decoded frame came from and lets a scanner separate overlapping P25 signals. GopherTrunk reads the NAC from each frame it decodes and reports it, and can decode regardless of the value (it does not need to be pre-programmed with the system’s NAC the way a subscriber radio does) — the code is data to be observed, not a key. It is not encryption: a matching NAC grants access to signalling and clear voice, but does nothing to protect keyed traffic.

Sources

  1. Project 25 — Wikipedia, on the P25 Common Air Interface and the Network Access Code. 

See also