Guides › How the portal pushes a message to your RSU (NTCIP 1218 over SNMPv3)

Updated 2026-10-08

What a push is

A roadside unit broadcasts two kinds of messages on behalf of the agency: store-and-repeat messages (a MAP, a work-zone TIM or RSM) that it transmits on a schedule from its own memory, and immediate-forward messages (SPaT, SSM) that a controller or server streams to it in real time. NTCIP 1218 defines SNMP tables for both. This portal writes a store-and-repeat row by default, which is what an agency needs for a TIM, MAP or RSM that should keep broadcasting after you close the browser.

What gets written

Objects live under the NTCIP 1218 RSU MIB, enterprise OID 1.3.6.1.4.1.1206.4.2.18. For a store-and-repeat message the portal writes one row of rsuMsgRepeatTable (...18.3.2.1):

ColumnObjectValue the portal sets
2rsuMsgRepeatPsidThe PSID as p-encoded octets (TIM 80 03, MAP E0 00 00 17)
3rsuMsgRepeatTxChannel183 by default (the C-V2X 20 MHz channel; 180 or 172 for other configurations)
4rsuMsgRepeatTxIntervalRepeat interval in milliseconds, 1000 by default
5rsuMsgRepeatDeliveryStartStart of the broadcast window, UTC DateAndTime
6rsuMsgRepeatDeliveryStopEnd of the window, one hour after start unless you choose otherwise
7rsuMsgRepeatPayloadThe J2735 MessageFrame bytes (UPER), unsigned. NTCIP 1218 v01A (June 2024) deprecates this column in favour of rsuMsgRepeatPayload2 (column 12, up to 4,214 octets); the portal tries column 7 first and retries with 12 if the unit rejects it
8rsuMsgRepeatEnable1 (enabled)
9rsuMsgRepeatStatusRowStatus createAndGo (4)
10rsuMsgRepeatPriority6 by default
11rsuMsgRepeatOptionsBit 0 (0x80) set so the RSU signs the message with its SCMS certificate before transmitting; clear it only when the payload you push is already a signed IEEE 1609.2 SPDU

This column layout was confirmed on production Commsignia and Yunex RSUs that we monitor for a state DOT; both answer on the 1218 tree with 1000 ms TIM repeats on channel 183. The payload column holds the bare MessageFrame; the RSU adds the IEEE 1609.2 envelope and signature when it transmits, provided it has valid application certificates. The portal refuses to push anything that does not decode as a valid J2735 MessageFrame.

For an immediate-forward push the portal writes rsuIFMTable (...18.4.2.1) instead: PSID, channel, enable, status, priority, options and payload. The RSU transmits it once.

The portal targets NTCIP 1218 v01A as required by CTI 4001, which is what every current procurement specifies. Units that still run the 2016 USDOT RSU Specification 4.1 MIB are not supported here; those devices are at or past end of life and, with the DSRC sunset on December 14, 2026, need a C-V2X replacement rather than a push integration. ITS Roads can plan that migration as part of a managed service.

What you need on the RSU side

  1. SNMPv3 user with authPriv. NTCIP 1218 requires SNMPv3 with AES-256 privacy mandatory (SHA-1 and AES-128 remain as backward-compatible options on deployed units); the portal supports SHA, SHA-256 or SHA-512 authentication and AES, AES-256 or DES privacy. Create a dedicated user for the portal with write access to the rsu subtree, and note that some vendors require the user to be created from the vendor console rather than over SNMP. SNMPv2c is accepted only for lab units.
  2. Reachability. The portal's requests come from the ITS Roads network to UDP port 161 on the address you register. Allow it in the RSU's ACL (NTCIP 1218 rsuSetIpAcl) and on any firewall in between. Private addresses are not reachable from the free tier; for a fleet behind a firewall we set up a VPN or an on-premises collector as part of a managed service.
  3. Clock. Delivery windows are UTC. An RSU with a bad clock (no GNSS fix, no NTP) will not transmit a stored message whose window it thinks has passed. Check rsuClockSource and the GNSS objects first.
  4. Security. A unit without valid application certificates will either refuse to sign or transmit unsigned frames that receivers discard. See the SCMS guide.
  5. Capacity. rsuMsgRepeatMaxEntries (...18.3.1.0) tells you how many rows the unit can hold (100 on one vendor, 255 on another). Choose a row index that is free, or reuse your own.

What the push log shows

Every push records the row, the message type, PSID, parameters and the raw SNMP response, with credentials redacted. A timeout means the RSU never answered: check reachability and the ACL. An authorizationError or noAccess means the SNMPv3 user cannot write that object. inconsistentValue usually means the row index is in use or the delivery window is in the past.

Verify on the RSU


snmpwalk -v3 -l authPriv -u <user> -a SHA -A <auth> -x AES -X <priv> udp:<rsu-ip>:161 1.3.6.1.4.1.1206.4.2.18.3.2.1

You should see your PSID, channel, interval, window, payload and status in the row you chose. The decoder page can read the payload column straight from the walk output.

References