Skip to content

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 as 2·d/c for transparent payload and d/c for regenerative. Exposes ComputeTotalTa(), ComputeCommonTa(), ComputeUeSpecificTa(), ComputeTaDriftRate(), and GetSlantRangeMetres() from a UE and satellite MobilityModel pair 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 NTN AwaitingPass deep-sleep state between visibility windows, with NotifyDataActivity(), NotifyNextPass(), and a StateChange trace.
  • 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.
  • NtnRrcHelper faç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's NtnTr38811MobilityModel).

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=true against --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

./ns3 run "ntn-rrc-leo-pass --simTime=20 --transparent=true --outputDir=ntn-rrc-leo-pass-output"

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-rrc C++ test suite

Cite

If you use this module, please cite the toolkit (see Cite).