RRC parameters for 5G NTN describe the detailed configuration framework that enables smooth operation of NR systems over satellites and high-altitude platforms. Each parameter is designed to handle the unique physical conditions of NTN, such as long signal travel time, Doppler frequency variation, and continuously changing satellite positions. These settings are defined in 3GPP specifications to provide a common structure for implementation across devices and networks.
The parameters include essential NTN-specific configurations such as reference location data, timing adjustment values, and satellite ephemeris information. These allow the UE to accurately calculate delay, compensate frequency offset, and align with the moving satellite. Configuration procedures also cover neighbor cell relations, synchronization validity, and polarization handling, ensuring the UE can maintain stable connectivity even as the satellite orbits or handover events occur.
Additional elements define the scheduling and feedback behavior of both uplink and downlink links. HARQ timing, PDCCH monitoring, and slot allocation mechanisms are optimized for long round-trip times to preserve efficiency. The framework also includes enhancements for random access, beam management, and measurement reporting to cope with dynamic link conditions.
Together, these RRC configurations enable the UE to operate seamlessly across terrestrial and non-terrestrial layers, maintaining service continuity and efficient resource use. They form the functional bridge that allows 5G to extend beyond Earth-based infrastructure into global satellite coverage.
Highlights
-
NTN Configuration: SIB19 supplies the assistance needed for NR access over NTN: epoch time, common timing advance, scheduling offsets, uplink synchronization validity, satellite ephemeris, and service-link polarization. The synchronization-validity enumeration now includes s900 in the V17.6.0 baseline.- SIB19-r17
- ntn-Config-r17
- ntn-UlSyncValidityDuration-r17
-
Neighbour Cell Assistance: The base and v1720 extension lists identify NTN neighbour cells by carrier frequency and physical cell ID and may provide per-cell NTN assistance. If an extended-list entry omits ntn-Config, the configuration at the same position in the base list applies; within the base list, an omitted configuration inherits from the preceding entry.- ntn-NeighCellConfigList-r17
- ntn-NeighCellConfigListExt-v1720
-
Timing Advance and Reporting: Common timing advance, drift, and drift variation compensate NTN propagation timing. cellSpecificKoffset modifies NTN scheduling relationships, while kmac handles non-aligned downlink and uplink frame timing at the gNB. ta-Report-r17 enables timing-advance reporting during the applicable random-access procedures.- TA-Info-r17
- cellSpecificKoffset-r17
- kmac-r17
- ta-Report-r17
- n-TimingAdvanceOffset
-
Ephemeris Information: Satellite ephemeris is provided either as Cartesian position and velocity state vectors or as orbital elements. Together with epochTime-r17, it gives the UE a time reference for applying the satellite assistance data. -
Location-Based Mobility and Service Time: referenceLocation-r17 identifies the serving-cell reference location for a quasi-Earth-fixed NTN system. distanceThresh-r17 is the distance from that location used to initiate location-based measurements in RRC_IDLE and RRC_INACTIVE, with each encoded step representing 50 m. t-Service-r17 indicates when the cell will stop serving its current area.- referenceLocation-r17
- distanceThresh-r17
- t-Service-r17
-
NTN HARQ Timing and Capacity: DL-DataToUL-ACK-v1700 provides NTN-specific PDSCH-to-HARQ-ACK timing. A serving cell can configure 32 PDSCH HARQ processes and selectively disable uplink feedback per HARQ process to accommodate long NTN round-trip times.- downlinkHARQ-FeedbackDisabled-r17
- nrofHARQ-ProcessesForPDSCH
- nrofHARQ-ProcessesForPDSCH-v1700
- DL-DataToUL-ACK-r17
- DL-DataToUL-ACK-v1700
- DL-DataToUL-ACK-DCI-1-2-r17
-
Service-Link Polarization: Downlink and uplink polarization can be signalled as RHCP, LHCP, or linear. If the uplink field is absent while the downlink field is present, the UE assumes the same polarization for both directions.- ntn-PolarizationDL-r17
- ntn-PolarizationUL-r17
-
Code-Block-Group Feedback: PDSCH code-block-group configuration controls CBG-based retransmission and the code-block-group flush indicator. A Release 16 list supports up to two configurations for simultaneously constructed HARQ-ACK codebooks.- PDSCH-CodeBlockGroupTransmission
- PDSCH-CodeBlockGroupTransmissionList-r16
- codeBlockGroupFlushIndicator
RRC Parameters
ASN.1 baseline: the definitions below were checked line by line against the Release 17 ASN.1 of 3GPP TS 38.331. Field names, ranges and OPTIONAL / Need markers are reproduced verbatim; only the column alignment has been tightened so that the blocks fit the page width. The UE capability section further down tracks TS 38.306 V19.2.0 (2026-03), Release 19.
SIB19 - the NTN system information block
SIB19 is the container for everything an NTN UE needs before it may transmit : where the satellite is, how much common delay to pre-compensate, how long that information stays valid, and which neighbours to prepare for. Note that only
SIB19-r17 ::= SEQUENCE { ntn-Config-r17 NTN-Config-r17 OPTIONAL, -- Need R t-Service-r17 INTEGER (0..549755813887) OPTIONAL, -- Need R referenceLocation-r17 ReferenceLocation-r17 OPTIONAL, -- Need R distanceThresh-r17 INTEGER (0..65525) OPTIONAL, -- Need R ntn-NeighCellConfigList-r17 NTN-NeighCellConfigList-r17 OPTIONAL, -- Need R lateNonCriticalExtension OCTET STRING OPTIONAL, ..., [[ ntn-NeighCellConfigListExt-v1720 NTN-NeighCellConfigList-r17 OPTIONAL -- Need R ]] } NTN-NeighCellConfigList-r17 ::= SEQUENCE (SIZE (1..maxCellNTN-r17)) OF NTN-NeighCellConfig-r17 NTN-NeighCellConfig-r17 ::= SEQUENCE { ntn-Config-r17 NTN-Config-r17 OPTIONAL, -- Need R carrierFreq-r17 ARFCN-ValueNR OPTIONAL, -- Need R physCellId-r17 PhysCellId OPTIONAL -- Need R } maxCellNTN-r17 INTEGER ::= 4 -- Max NTN neighbour cells given assistance info ReferenceLocation-r17 ::= OCTET STRING
NTN-Config - the assistance data itself
This is the single most important structure on the page. Everything the UE needs for open-loop timing and frequency pre-compensation is in here, and the same type is reused in three places : broadcast in SIB19, per-neighbour in the neighbour list, and in dedicated signalling inside ServingCellConfigCommon.
NTN-Config-r17 ::= SEQUENCE { epochTime-r17 EpochTime-r17 OPTIONAL, -- Need R ntn-UlSyncValidityDuration-r17 ENUMERATED { s5, s10, s15, s20, s25, s30, s35, s40, s45, s50, s55, s60, s120, s180, s240, s900 } OPTIONAL, -- Cond SIB19 cellSpecificKoffset-r17 INTEGER (1..1023) OPTIONAL, -- Need R kmac-r17 INTEGER (1..512) OPTIONAL, -- Need R ta-Info-r17 TA-Info-r17 OPTIONAL, -- Need R ntn-PolarizationDL-r17 ENUMERATED {rhcp,lhcp,linear} OPTIONAL, -- Need R ntn-PolarizationUL-r17 ENUMERATED {rhcp,lhcp,linear} OPTIONAL, -- Need R ephemerisInfo-r17 EphemerisInfo-r17 OPTIONAL, -- Need R ta-Report-r17 ENUMERATED {enabled} OPTIONAL, -- Need R ... } EpochTime-r17 ::= SEQUENCE { sfn-r17 INTEGER (0..1023), subFrameNR-r17 INTEGER (0..9) } TA-Info-r17 ::= SEQUENCE { ta-Common-r17 INTEGER (0..66485757), ta-CommonDrift-r17 INTEGER (-257303..257303) OPTIONAL, -- Need R ta-CommonDriftVariant-r17 INTEGER (0..28949) OPTIONAL -- Need R }
Ephemeris - two ways to describe an orbit
The network may describe the satellite either as Cartesian position and velocity state vectors, or as classical orbital elements. Both carry velocity information implicitly or explicitly, which is what makes Doppler pre-compensation possible - see NTN Frequency Compensation.
EphemerisInfo-r17 ::= CHOICE { positionVelocity-r17 PositionVelocity-r17, orbital-r17 Orbital-r17 } PositionVelocity-r17 ::= SEQUENCE { positionX-r17 PositionStateVector-r17, positionY-r17 PositionStateVector-r17, positionZ-r17 PositionStateVector-r17, velocityVX-r17 VelocityStateVector-r17, velocityVY-r17 VelocityStateVector-r17, velocityVZ-r17 VelocityStateVector-r17 } Orbital-r17 ::= SEQUENCE { semiMajorAxis-r17 INTEGER (0..8589934591), eccentricity-r17 INTEGER (0..1048575), periapsis-r17 INTEGER (0..268435455), longitude-r17 INTEGER (0..268435455), inclination-r17 INTEGER (-67108864..67108863), meanAnomaly-r17 INTEGER (0..268435455) } PositionStateVector-r17 ::= INTEGER (-33554432..33554431) VelocityStateVector-r17 ::= INTEGER (-131072..131071)
Where ntn-Config actually appears
In dedicated signalling the NTN assistance travels inside ServingCellConfigCommon, in its v1700 extension group - not in DownlinkConfigCommon. Both are shown below so the distinction is visible.
ServingCellConfigCommon ::= SEQUENCE {
physCellId PhysCellId OPTIONAL, -- Cond HO/Add
downlinkConfigCommon DownlinkConfigCommon OPTIONAL, -- Cond HO/Add
uplinkConfigCommon UplinkConfigCommon OPTIONAL, -- Need M
n-TimingAdvanceOffset ENUMERATED {n0,n25600,n39936} OPTIONAL, -- Need S
... -- further Rel-15/16 fields omitted
...,
[[ -- v1700 extension group
uplinkConfigCommon-v1700 UplinkConfigCommon-v1700 OPTIONAL, -- Need R
ntn-Config-r17 NTN-Config-r17 OPTIONAL -- Need R
]],
...
}
DownlinkConfigCommon ::= SEQUENCE { -- for contrast: no ntn-Config here
frequencyInfoDL FrequencyInfoDL OPTIONAL, -- Cond HO/Add
initialDownlinkBWP BWP-DownlinkCommon OPTIONAL, -- Cond ServCell
...,
[[
initialDownlinkBWP-RedCap-r17 BWP-DownlinkCommon OPTIONAL -- Need R
]]
}HARQ feedback timing for NTN
NTN needs a PDSCH-to-HARQ-ACK timing range that terrestrial NR never required. Note the range of DL-DataToUL-ACK-v1700 - it starts at 16 rather than at 0, because in NTN the answer can never come back quickly.
PUCCH-Config ::= SEQUENCE { ... dl-DataToUL-ACK-r17 SetupRelease { ...-r17 } OPTIONAL, -- Need M dl-DataToUL-ACK-DCI-1-2-r17 SetupRelease { ...-DCI-1-2-r17 }OPTIONAL, -- Need M ul-AccessConfigListDCI-1-2-r17 SetupRelease { ...-DCI-1-2-r17 }OPTIONAL, -- Need M ul-AccessConfigListDCI-1-1-r17 SetupRelease { ...-DCI-1-1-r17 }OPTIONAL, -- Need M ... dl-DataToUL-ACK-v1700 SetupRelease { ...-v1700 } OPTIONAL, -- Need M ... } DL-DataToUL-ACK-r16 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (-1..15) DL-DataToUL-ACK-r17 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (-1..127) DL-DataToUL-ACK-v1700 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (16..31) DL-DataToUL-ACK-DCI-1-2-r17 ::= SEQUENCE (SIZE (1..8)) OF INTEGER (0..127) UL-AccessConfigListDCI-1-2-r17 ::= SEQUENCE (SIZE (1..16)) OF INTEGER (0..15) UL-AccessConfigListDCI-1-1-r17 ::= SEQUENCE (SIZE (1..3)) OF INTEGER (0..2)
HARQ processes and feedback disabling
Two Rel-17 additions carry the NTN HARQ adaptation : the process count is raised to 32, and feedback can be switched off per process. Both are visible in the last extension group below.
PDSCH-ServingCellConfig ::= SEQUENCE {
codeBlockGroupTransmission SetupRelease { PDSCH-CBGT } OPTIONAL, -- Need M
xOverhead ENUMERATED {xOh6,xOh12,xOh18} OPTIONAL, -- Need S
nrofHARQ-ProcessesForPDSCH ENUMERATED {n2,n4,n6,n10,n12,n16}OPTIONAL, -- Need S
pucch-Cell ServCellIndex OPTIONAL, -- Cond SCellAdd
...,
[[
maxMIMO-Layers INTEGER (1..8) OPTIONAL, -- Need M
processingType2Enabled BOOLEAN OPTIONAL -- Need M
]],
[[
pdsch-CodeBlockGroupTransmissionList-r16
SetupRelease { ...-r16 } OPTIONAL -- Need M
]],
[[ -- Rel-17, used by NTN
downlinkHARQ-FeedbackDisabled-r17 SetupRelease { ...-r17 } OPTIONAL, -- Need M
nrofHARQ-ProcessesForPDSCH-v1700 ENUMERATED {n32} OPTIONAL -- Need R
]]
}
DownlinkHARQ-FeedbackDisabled-r17 ::= BIT STRING (SIZE (32))
PDSCH-CodeBlockGroupTransmission ::= SEQUENCE {
maxCodeBlockGroupsPerTransportBlockENUMERATED {n2,n4,n6,n8},
codeBlockGroupFlushIndicator BOOLEAN,
...
}
PDSCH-CodeBlockGroupTransmissionList-r16 ::= SEQUENCE (SIZE (1..2))
OF PDSCH-CodeBlockGroupTransmissionNTN-Parameters - the capability container
On the capability side, Rel-17 does not scatter NTN flags through the existing structures. It defines one container that
NTN-Parameters-r17 ::= SEQUENCE {
inactiveStateNTN-r17 ENUMERATED {supported} OPTIONAL,
ra-SDT-NTN-r17 ENUMERATED {supported} OPTIONAL,
srb-SDT-NTN-r17 ENUMERATED {supported} OPTIONAL,
measAndMobParametersNTN-r17 MeasAndMobParameters OPTIONAL,
mac-ParametersNTN-r17 MAC-Parameters OPTIONAL,
phy-ParametersNTN-r17 Phy-Parameters OPTIONAL,
fdd-Add-UE-NR-CapabilitiesNTN-r17 UE-NR-CapabilityAddXDD-Mode OPTIONAL,
fr1-Add-UE-NR-CapabilitiesNTN-r17 UE-NR-CapabilityAddFRX-Mode OPTIONAL,
ue-BasedPerfMeas-ParametersNTN-r17UE-BasedPerfMeas-Parameters-r16OPTIONAL,
son-ParametersNTN-r17 SON-Parameters-r16 OPTIONAL
}Parameter map : what each field is actually for
The ASN.1 above is organised the way the specification is organised. The table below reorganises the same fields the way an engineer meets them.
The question it answers |
Field |
Range / values |
Comment |
|---|---|---|---|
Where is the satellite ? |
ephemerisInfo-r17 |
PositionVelocity or Orbital |
Timing and Doppler pre-compensation both start here |
When is that true ? |
epochTime-r17 |
SFN 0..1023, subframe 0..9 |
The origin for every extrapolation |
How much common delay ? |
ta-Common-r17 |
0..66485757 (approx. 270.73 ms) |
The RP-to-satellite round trip the UE cannot compute itself |
How fast is it changing ? |
ta-CommonDrift-r17 |
-257303..257303 (approx. +/- 51.5 us/s) |
First-order term; signed because the satellite may approach or recede |
And its curvature ? |
ta-CommonDriftVariant-r17 |
0..28949 (approx. 0.58 us/s2) |
Second-order term, keeps the extrapolation valid over a pass |
How long may I use it ? |
ntn-UlSyncValidityDuration-r17 |
s5 ... s60, s120, s180, s240, s900 |
Drives timer T430; short values imply LEO, s900 implies GEO |
How far ahead do I schedule ? |
cellSpecificKoffset-r17 |
1..1023 slots at 15 kHz |
Restores causality for uplink scheduling relationships |
When does a MAC CE apply ? |
kmac-r17 |
1..512 slots at 15 kHz |
Only when DL and UL frame timing are not aligned at the gNB |
Tell the network my TA |
ta-Report-r17 |
enabled |
Lets the network reconstruct the absolute delay it no longer measures |
Which polarisation ? |
ntn-PolarizationDL / UL-r17 |
rhcp, lhcp, linear |
If UL is absent but DL present, the UE assumes the same for both |
When does this cell stop ? |
t-Service-r17 |
0..549755813887 |
Planned expiry of a quasi-Earth-fixed cell |
Where is the cell centred ? |
referenceLocation-r17 / distanceThresh-r17 |
OCTET STRING / 0..65525 |
Location-based measurement triggering; 50 m per step |
What comes next ? |
ntn-NeighCellConfigList-r17 |
up to maxCellNTN-r17 = 4 cells |
Pre-computation for a satellite the UE has not switched to yet |
HARQ in long RTT |
downlinkHARQ-FeedbackDisabled-r17 |
BIT STRING (SIZE (32)) |
Per-process feedback disabling, alongside n32 processes |
What is deliberately absent
It is worth noticing what is
UE Capability
NR NTN capability signalling starts with the Release 17 access indication and uses dedicated capability fields where NTN behavior differs from terrestrial-network behavior. Release 18 adds connected-mode SIB19 reception, satellite switching, dedicated neighbour ephemeris, conditional handover, and mobile-terminated small-data support. Release 19 adds TN-to-NTN and NTN-to-NTN redirection, Ku-band VSAT characteristics, and FR1 NTN support for eRedCap devices.
Capability baseline: 3GPP TS 38.306 V19.2.0 (2026-03), Release 19. The RRC capability container structure summarized here is based on 3GPP TS 38.331 V17.6.0.
NTN-Parameters-r17 Conveys the subset of UE radio-access capabilities that applies differently to NTN access than to terrestrial access.- inactiveStateNTN-r17, ra-SDT-NTN-r17, and srb-SDT-NTN-r17
- measAndMobParametersNTN-r17, mac-ParametersNTN-r17, and phy-ParametersNTN-r17
- fdd-Add-UE-NR-CapabilitiesNTN-r17 and fr1-Add-UE-NR-CapabilitiesNTN-r17
- ue-BasedPerfMeas-ParametersNTN-r17 and son-ParametersNTN-r17
- If an NTN-specific differential field is absent, the corresponding terrestrial capability field applies.
nonTerrestrialNetwork-r17 Indicates whether the UE supports NR NTN access.- Extends timers in MAC, RLC, and PDCP layers to handle long RTT.
- Adapts RACH procedure to large propagation delay.
- Receives NTN-specific System Information Blocks (SIBs).
- Supports multiple TACs per PLMN broadcast within one cell.
uplinkPreCompensation-r17 Indicates support for uplink time and frequency pre-compensation and NTN timing-relationship enhancements. uplink-TA-Reporting-r17 separately indicates support for reporting timing-advance pre-compensation information.- UE-specific Timing Advance (TA) calculation using GNSS position and satellite ephemeris.
- Use of network-provided common TA, cellSpecificKoffset, and kmac.
- Application of calculated timing advance to uplink transmissions and random access.
- Performs frequency pre-compensation to counter Doppler shift on the service link.
- uplink-TA-Reporting-r17 enables TA reporting during initial access when configured by the network.
inactiveStateNTN-r17 Indicates UE support for RRC_INACTIVE in NTN as specified in TS 38.331.- Mandatory if
nonTerrestrialNetwork-r17is supported.
- Mandatory if
ra-SDT-NTN-r17 Indicates UE support for initiating mobile-originated Small Data Transmission over random access in RRC_INACTIVE.- Supports 4-step RA type.
- If
twoStepRACH-r16is supported for NTN, supports 2-step RA type as well. - Defined in TS 38.331.
- Requires
nonTerrestrialNetwork-r17support.
srb-SDT-NTN-r17 Indicates support for using SRB2 for mobile-originated or mobile-terminated SDT over random access or configured grants in NTN.- Defined in TS 38.331.
- Requires support for at least one applicable NTN RA-SDT, CG-SDT, or MT-SDT capability.
- Requires
nonTerrestrialNetwork-r17support.
ntn-ScenarioSupport-r17 Indicates whether the UE supports NTN features in GSO or NGSO scenario.- If not present but
nonTerrestrialNetwork-r17is supported:- UE supports both GSO and NGSO.
- UE supports mobility between GSO and NGSO.
- If not present but
Release 18 Satellite Mobility and Access Adds capability signalling for acquiring assistance while connected to a terrestrial cell, switching satellites, NTN conditional handover, dedicated neighbour ephemeris, and mobile-terminated SDT.- sib19-Support-r18 - receives SIB19 in RRC_CONNECTED in a TN cell for NTN satellite assistance.
- hardSatelliteSwitchResyncNTN-r18 - supports hard satellite switching with re-synchronization.
- softSatelliteSwitchResyncNTN-r18 - supports soft switching and also requires hard-switch support.
- ntn-CHO-OnlyLocationTimeTrigger-r18 - supports NTN conditional handover using only location- or time-based trigger events.
- ntn-NeighbourCellInfoSupport-r18 - supports dedicated neighbour ephemeris in MeasObjectNR.
- mt-SDT-NTN-r18 - supports mobile-terminated SDT initiated in response to paging.
Release 19 Redirection Extends mobility into and within NTN through explicit redirection capabilities.- ntn-Redirection-r19 - supports redirection from an NR terrestrial frequency to an NR NTN frequency.
- ntn-RedirectionWithSatelliteInfo-r19 - supports receiving satellite assistance in RRCRelease for redirection between NR NTN frequencies.
- Both capabilities require nonTerrestrialNetwork-r17.
VSAT and Reduced-Capability NTN Identifies antenna steering, mobility class, and reduced-capability operation for newer NTN frequency ranges and device types.- ntn-VSAT-AntennaType-r18 and ntn-VSAT-MobilityType-r18 cover FR2-NTN bands above 14.5 GHz.
- ntn-VSAT-AntennaTypeKuBand-r19 and ntn-VSAT-MobilityTypeKuBand-r19 cover FR1/FR2 NTN bands from 10.7 GHz to 14.5 GHz.
- ntn-ERedCap-FR1-r19 indicates FR1-NTN support for an eRedCap UE and requires the applicable eRedCap capability.
cqi-4-BitsSubbandNTN-SharedSpectrumChAccess-r17 Indicates support for 4-bit per-subband CQI reporting for NTN and shared spectrum channel access.dynamicSlotRepetitionMulticastNTN-SharedSpectrumChAccess-r17 Indicates maximum number of supported dynamic slot-level repetitions for group-common PDSCH (multicast) for NTN and shared spectrum access.- Value
n8= 8 repetitions. - Value
n16= 16 repetitions. - Requires support for
dynamicMulticastPCell-r17.
- Value
ta-BasedPDC-NTN-SharedSpectrumChAccess-r17 Indicates support for propagation-delay compensation based on the legacy timing-advance procedure for NTN and shared-spectrum channel access.