title: ntn-rrc - 3GPP NR-NTN RRC procedures (SIB19, timing advance, DRX) | ns3-ntn-toolkit description: ns-3 module implementing 3GPP Rel-17 NR-NTN RRC for satellite networks: SIB19 ephemeris broadcast, ephemeris-driven timing advance, pass-aware DRX, GNSS reporting.
W2 - ntn-rrc¶
ntn-rrc is the ns3-ntn-toolkit module that adds the 3GPP Release-17 NR-NTN RRC procedures stock ns-3 lacks: SIB19 ephemeris broadcast, ephemeris-driven timing advance pre-compensation, pass-aware DRX, and GNSS-assisted UE location reporting. Every procedure runs on a real mmwave NR NTN cell with measured DL SINR, TBLER, and throughput taken off the PHY trace, over genuine SGP4 LEO orbits.
Why it matters. LEO non-terrestrial networks impose one-way delays beyond 17 ms and timing-advance drift of tens of microseconds per second that the terrestrial 5G RRC stack was never specified for. 3GPP closed those gaps with new IEs, a new SIB type, and new MAC behaviors, but most ns-3 distributions still ship only terrestrial RRC. Researchers studying NR-NTN access procedures, UL synchronization, and UE power saving need these procedures running on real radio geometry, not closed-form link models.
What it simulates¶
- SIB19 ephemeris broadcast (
NtnSib19Broadcaster, TS 38.331 §6.3.2): a periodic broadcaster (default 160 ms) that snapshots fresh satellite ephemeris (ECEF state vector), the common timing advance, and its drift rate into a fixed-layout little-endian 124-byte codec frame (Sib19Codec). Carries NTN-Config-r17 assistance data: ephemeris,taCommon, drift rate and variation, UL-sync validity, K-offsets, payload mode, and cell id. - Ephemeris-driven timing advance (
NtnTimingAdvance, TS 38.213 §4.2.2, TR 38.821 §6.3.3): TA decomposed into a SIB19-broadcast common term plus a per-UE UE-specific residual, computed as2·d/cfor transparent payload andd/cfor regenerative. ExposesComputeTotalTa(),ComputeCommonTa(),ComputeUeSpecificTa(),ComputeTaDriftRate(), andGetSlantRangeMetres()from a UE and satelliteMobilityModelpair plus a beam-centre reference. - Pass-aware DRX (
NtnDrxStateMachine, TS 38.321 + TR 38.821 §6.3.4): the NR connected-mode DRX state machine (Active / OnDuration / ShortSleep / LongSleep) extended with an NTNAwaitingPassdeep-sleep state between visibility windows, withNotifyDataActivity(),NotifyNextPass(), and aStateChangetrace. - GNSS-assisted UE location reporting (
NtnUeLocationReporter, TS 38.331 §5.7.4): periodic, event-triggered, and on-demand modes with closed-form Heikkinen ECEF↔WGS-84 conversion (EcefToGeodeticWgs84()/GeodeticWgs84ToEcef()). - Transparent vs regenerative payload modes (
PayloadMode,TaReferenceFrame) switchable across the whole stack. NtnRrcHelperfaçade to install timing advance, SIB19 broadcaster, UE location reporter, and DRX with one helper, and to set payload mode and reference position.- RRC measurement reports on measured radio: examples fire a connection-quality measurement report when the measured DL SINR crosses a threshold, alongside the live TA and SIB19 machinery.
Standards & references¶
- 3GPP TS 38.331: RRC, SIB19 / NTN-Config-r17 (§6.3.2), UE information / location reporting (§5.7.4).
- 3GPP TS 38.213: timing advance and UL synchronization (§4.2.2).
- 3GPP TS 38.321: MAC DRX state machine.
- 3GPP TR 38.821: solutions for NR to support NTN, covering timing advance (§6.3.3) and DRX (§6.3.4).
- 3GPP TR 38.811: NTN UE class mobility (consumed via
ntn-cho'sNtnTr38811MobilityModel).
Use cases¶
- NR-NTN access-procedure research: validate UL timing synchronization and the timing-advance "smile" curve against the TR 38.821 reference table over a real LEO pass.
- SIB19 assistance-information studies: measure broadcast overhead, ephemeris staleness, and refresh cadence on a live ephemeris feed.
- UE energy-efficiency evaluation: quantify the power-saving versus throughput trade-off of pass-aware DRX by comparing
--drxOn=trueagainst--drxOn=false. - GNSS-reporting protocol design: compare periodic, event-triggered, and on-demand UE location reporting modes and their ECEF↔WGS-84 accuracy.
- TLE-driven scenario reproduction: drive the RRC stack from a real 3-line element set (a bundled ISS TLE) through the SNS3
SatSGP4MobilityModel.
Run it¶
This produces the classic NTN timing-advance "smile" curve from live SGP4 slant-range geometry on a real mmwave NR NTN cell, writing ntn-rrc-leo-pass-ta.csv (with slant_km, ta_total_us, ta_common_us, ta_ue_us, ta_drift_us_per_s, measured_sinr_db) and a sim_health.csv provenance file. To exercise all four components at once, run ntn-rrc-full-stack; to drive the cell from a real TLE, run ntn-rrc-from-tle (which runs with zero arguments using the bundled ISS TLE).
Source¶
- README
- 5 model files ·
NtnRrcHelper· 5 examples ·ntn-rrcC++ test suite
Cite¶
If you use this module, please cite the toolkit (see Cite).