SUL stands for Supplimentary Uplink. Basic idea (or Use Case) on SUL is described/illustrated as shown below in 38.300. A cell has one downlink and normally one uplink. SUL gives that same cell a second uplink on a much lower band, and the UE uses one or the other at any moment. Two words in that description matter more than the rest. The first is
That is the entire feature. Everything else on this page follows from it: which carrier the UE uses, how the network tells it to change, and why only one of the two can carry PUCCH. The drawing below states the same thing geometrically. One gNB serves three nested areas, and the normal uplink is the one that reaches the shortest distance. The frequency strip underneath places the SUL carrier far below the NR carrier, and draws it narrower. The band table further down this page confirms that the SUL bands really are the narrow ones.
< 38.300-Figure B.1-1: Example of Supplementary Uplink >

The basic idea behind this is as follows.
i) Usually cell coverage in UL direction is lower than DL direction because UE Tx Power(UL Power) is not as strong as gNB Tx Power(DL Power).
ii) The performance degradation on UL direction due to this difference gets very serious as the UE approaches to cell edge.
iii) As a possible solution, an idea to use very low frequency than the original UL frequency is proposed. As you know, cell coverage gets larger as frequency gets lower.
iv) this (to use a secondary UL at much lower frequency) is the idea behind SUL. When the channel condition is good, Network tell UE to use the original UL frequency and when channel condition gets poor than a certain criteria, Network directs UE to use the secondary(supplementary) UL frequency.
There are several NR bands dedicated for SUL which are n80, n81, n82, n83, n84, n86, n89, n97, n98 and n99, as listed in the table further down this page. As you see in this table, these are all under 2Ghz which is lower than commonly used NR frequency(e.g, over 3Ghz). However, one possible drawback of this approach is that these SUL bands are colliding with existing LTE bands. So it would cause NR-LTE Co Existance issues. You would need some researches on SUL and NR/LTE Coexistance issue before you make decision to deploy any SUL. See TR 37.872 and TR 37.716 for the details on SUL and NR/LTE CoExistance.
Would SUL be useful in real practice and widely deployed ? See this blog by Martin.
Overall Procedures
Two questions have to be answered before any of this works. The UE has to learn that a second uplink exists at all, and then it has to know which one to transmit on. SIB1 answers the first. The second is answered three different ways depending on what is being sent, and the diagram below shows where each of them applies.
Overall procedure for SUL operation can be summarized in illustration shown below.

- Step 1 : SUL configuration is broadcast by SIB1 of Normal Cell
- Step 2 : UE trigger RACH to Normal Cell or SUL cell depending on signal condition it percieves and Completes the initial attach
- Step 3 : Once in Connection Mode. gNB can dynamically switching between Normal cell and SUL cell via DCI 0_1.
Example 01 > Following example is from the test with Amarisoft Callbox and UEsim
Read the two screenshots below for one field each. The PRACH line carries


|
[1] PRACH : RACH to SUL Cell |
Amarisoft Callbox and UEsim log, quoted as captured.
Message: sequence_index=0 ta=5 prb=3:3sul_index=0 snr=29.0
|
[2] PDCCH : Scheduling PUSCH on Normal Cell |
Amarisoft Callbox and UEsim log, quoted as captured.
Message: ss_id=2 cce_index=6 al=2 dci=0_1 k2=4 Data: rb_alloc=0x12f mcs=14 ndi=0 rv_idx=1 harq_process=3 dai=3 tpc_command=1 antenna_ports=0 srs_request=0 dmrs_seq_init=0 ul_sch_indicator=1sul_ind=0
|
[2a] PUSCH : on Normal Cell Nacked |
Amarisoft Callbox and UEsim log, quoted as captured.
Message: harq=3 prb=2:47 symb=0:14 CW0: tb_len=1985 mod=4 rv_idx=1 cr=0.54 retx=1 crc=KO snr=3.0 epre=-43.4 ta=0.6
|
[3] PDCCH : Scheduling PUSCH on SUL Cell |
Amarisoft Callbox and UEsim log, quoted as captured.
Message: ss_id=2 cce_index=6 al=2 dci=0_1 k2=4 Data: rb_alloc=0x2 mcs=7 ndi=1 rv_idx=0 harq_process=4 dai=3 tpc_command=1 antenna_ports=0 srs_request=0 dmrs_seq_init=0 ul_sch_indicator=1sul_ind=1
|
[3a] PUSCH : on SUL Cell : Acked |
Amarisoft Callbox and UEsim log, quoted as captured.
Message: harq=4 prb=2 symb=0:14 CW0: tb_len=20 mod=2 rv_idx=0 cr=0.56 retx=0 crc=OK snr=5.2 epre=-24.6 ta=5.3sul=1
Operation Highlights
What I mentioned above is based on my intuitive understanding on SUL operation. In this section, I will quote some formal description from 3GPP specification for your (my) reference.
38.300 - 5.4.2 state as follows :
In conjunction with a UL/DL carrier pair (FDD band) or a bidirectional carrier (TDD band), a UE may be configured with additional, Supplementary Uplink (SUL).
38.300 - 6.9 state as follows :
In case of Supplementary Uplink,
38.300 - 9.2.6 state as follows :
For initial access in a cell configured with SUL,
38.300 - 10.3 state as follows :
38.213 - 8 states as follows :
If a UE is configured with two UL carriers for a serving cell and the UE detects a ,
38.321 - 5.1.1 states as follows :
if
else:
select the NUL carrier for performing Random Access procedure;
Band Combinations for SUL
SUL bands are not ordinary bands with an extra label. They are uplink-only entries, and the table below shows why: every one of them has N/A in the downlink column. A SUL band therefore cannot be deployed alone. It is always paired with the downlink of the cell it supplements.
Following is the frequency band assigned to SUL in 3GPP.
< 38.101-1 v17.5 - Table 5.2-1: NR operating bands in FR1 >

Followings are the table that I consolidated multiple tables from TR 37.872.
|
SUL Band combination |
NR Band |
Uplink (UL) band |
Downlink (DL) band |
Duplex mode |
||||
|
BS receive / UE transmit |
BS transmit / UE receive |
|||||||
|
FUL_low FUL_high |
FDL_low FDL_high |
|||||||
|
SUL_n78-n80 |
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
||
|
n80 |
1710 MHz |
1785 MHz |
SUL |
|||||
|
SUL_n79-n80 |
n79 |
4400 MHz |
5000 MHz |
4400 MHz |
5000 MHz |
TDD |
||
|
n80 |
1710 MHz |
1785 MHz |
SUL |
|||||
|
SUL_n78-n84 |
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
||
|
n84 |
1920 MHz |
1980 MHz |
N/A |
SUL |
||||
|
SUL_n78-n82 |
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
||
|
n82 |
832 MHz |
862 MHz |
N/A |
SUL |
||||
|
SUL_n78-n81 |
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
||
|
n81 |
880 MHz |
915 MHz |
N/A |
SUL |
||||
|
SUL_n78-n83 |
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
||
|
n83 |
703 MHz |
748 MHz |
N/A |
SUL |
||||
|
SUL_n78-n86 |
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
||
|
n86 |
1710 MHz |
1780 MHz |
N/A |
SUL |
||||
|
SUL_n79-n81 |
n79 |
4400 MHz |
5000 MHz |
4400 MHz |
5000 MHz |
TDD |
||
|
n81 |
880 MHz |
915 MHz |
N/A |
SUL |
||||
Following is the table for SUL with ENDC. You would notice that all LTE is FDD and all NR is TDD, and NR SUL is in same frequency range in LTE UL range implying that NR UL and LTE UL would share the frequency range.
|
E-UTRA and NR DC Band |
E-UTRA and NR Band |
Uplink (UL) band |
Downlink (DL) band |
Duplex mode |
||||
|
BS receive / UE transmit |
BS transmit / UE receive |
|||||||
|
FUL_low FUL_high |
FDL_low FDL_high |
|||||||
|
DC_3-SUL_n79-n80 |
3 |
1710 MHz |
1785 MHz |
1805 MHz |
1880 MHz |
FDD |
||
|
n79 |
4400 MHz |
5000 MHz |
4400 MHz |
5000 MHz |
TDD |
|||
|
n80 |
1710 MHz |
1785 MHz |
NA |
SUL |
||||
|
DC_1-SUL_n78-n84 |
1 |
1920 MHz |
1980 MHz |
2110 MHz |
2170 MHz |
FDD |
||
|
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
|||
|
n84 |
1920 MHz |
1980 MHz |
NA |
SUL |
||||
|
DC_20-SUL_n78-n82 |
20 |
832 MHz |
862 MHz |
791MHz |
821 MHz |
FDD |
||
|
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
|||
|
n82 |
832 MHz |
862 MHz |
NA |
SUL |
||||
|
DC_8-SUL_n78-n81 |
8 |
880 MHz |
915 MHz |
925 MHz |
960 MHz |
FDD |
||
|
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
|||
|
n81 |
880 MHz |
915 MHz |
N/A |
SUL |
||||
|
DC_28-SUL_n78-n83 |
28 |
703 MHz |
748 MHz |
758 MHz |
803 MHz |
FDD |
||
|
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
|||
|
n83 |
703 MHz |
748 MHz |
N/A |
SUL |
||||
|
DC_66-SUL_n78-n86 |
66 |
1710 MHz |
1780 MHz |
2110 MHz |
2200 MHz |
FDD |
||
|
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
|||
|
n86 |
1710 MHz |
1780 MHz |
N/A |
SUL |
||||
|
DC_8-SUL_n79-n81 |
8 |
880 MHz |
915 MHz |
925 MHz |
960 MHz |
FDD |
||
|
n79 |
4400 MHz |
5000 MHz |
4400 MHz |
5000 MHz |
TDD |
|||
|
n81 |
880 MHz |
915 MHz |
N/A |
SUL |
||||
|
DC_3-SUL_n78-n82 |
3 |
1710 MHz |
1785 MHz |
1805 MHz |
1880 MHz |
FDD |
||
|
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
|||
|
n82 |
832 MHz |
862 MHz |
N/A |
SUL |
||||
|
DC_20-SUL_n78-n83 |
20 |
832 MHz |
862 MHz |
791 MHz |
821 MHz |
FDD |
||
|
n78 |
3300 MHz |
3800 MHz |
3300 MHz |
3800 MHz |
TDD |
|||
|
n83 |
703 MHz |
748 MHz |
N/A |
SUL |
||||
Where SUL is Configured
Everything above shows SUL working. None of it shows where the second uplink is configured, and the answer is three places rather than one. A cell advertises SUL in SIB1 so that a UE which has not yet connected can use it for random access. A connected UE is given its own SUL configuration in dedicated signalling. The two are separate, and a UE can have the first without ever being given the second.
The cell side, broadcast in SIB1
SIB1 carries
Following is based on
ServingCellConfigCommonSIB ::= SEQUENCE {
downlinkConfigCommon DownlinkConfigCommonSIB,
uplinkConfigCommon UplinkConfigCommonSIB OPTIONAL, -- Need R
supplementaryUplink UplinkConfigCommonSIB OPTIONAL, -- Need R
-- remaining fields omitted
}
The dedicated form of the same information element uses a different field name for the same idea. That difference in name is easy to misread as a difference in meaning.
Following is based on
ServingCellConfigCommon ::= SEQUENCE {
physCellId PhysCellId OPTIONAL, -- Cond HOAndServCellAdd,
downlinkConfigCommon DownlinkConfigCommon OPTIONAL, -- Cond HOAndServCellAdd
uplinkConfigCommon UplinkConfigCommon OPTIONAL, -- Need M
supplementaryUplinkConfig UplinkConfigCommon OPTIONAL, -- Need S
-- remaining fields omitted
}
So the broadcast version calls it
The UE side, in dedicated signalling
A connected UE gets its own uplink configuration in
Following is based on
ServingCellConfig ::= SEQUENCE {
-- earlier fields omitted
uplinkConfig UplinkConfig OPTIONAL, -- Need M
supplementaryUplink UplinkConfig OPTIONAL, -- Need M
-- later fields omitted
...,
[[
supplementaryUplinkRelease-r16 ENUMERATED {true} OPTIONAL, -- Need N
-- rest of this extension group omitted
]]
}
Two rules govern this pair. The network may configure
The threshold that comes with it
A cell that offers SUL has to tell the UE when to use it, and that number lives in the random access configuration rather than in the uplink configuration.
Following is based on
RACH-ConfigCommon ::= SEQUENCE {
rach-ConfigGeneric RACH-ConfigGeneric,
-- fields omitted
ra-ContentionResolutionTimer ENUMERATED { sf8, sf16, sf24, sf32, sf40, sf48, sf56, sf64},
rsrp-ThresholdSSB RSRP-Range OPTIONAL, -- Need R
rsrp-ThresholdSSB-SUL RSRP-Range OPTIONAL, -- Cond SUL
-- remaining fields omitted
}
: the UE selects the SUL carrier for random access based on this threshold. 38.331 states that the value applies to all the BWPs and all RACH configurations, so a UE does not get a different threshold on a different BWP.rsrp-ThresholdSSB-SUL : the field is mandatory present inCond SUL rach-ConfigCommon of the initial uplink BWP whenever SUL is configured, and absent otherwise. A cell therefore cannot advertise SUL and leave the threshold out.
One more information element is worth reading, because it explains why a SUL carrier needs more description than an ordinary TDD uplink does.
Following is based on
FrequencyInfoUL ::= SEQUENCE {
frequencyBandList MultiFrequencyBandListNR OPTIONAL, -- Cond FDD-OrSUL-OrEarlyUL-Sync
absoluteFrequencyPointA ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL-OrEarlyUL-Sync
scs-SpecificCarrierList SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
additionalSpectrumEmission AdditionalSpectrumEmission OPTIONAL, -- Need S
p-Max P-Max OPTIONAL, -- Need S
frequencyShift7p5khz ENUMERATED {true} OPTIONAL, -- Cond FDD-TDD-OrSUL-Optional
-- extension groups omitted
}
Look at the condition on the first two fields. Both
The same idea carries three field names :supplementaryUplink in the SIB1 form,supplementaryUplinkConfig in the dedicated common form, andsupplementaryUplink again inServingCellConfig . Searching a log for one of them will miss the other two.Broadcast SUL and dedicated SUL are separate grants : the first lets an idle UE reach the cell on the low band. The second lets a connected UE be scheduled there, and a UE can be given the first and never the second.The threshold is not optional in practice : Cond SUL makesrsrp-ThresholdSSB-SUL mandatory in the initial uplink BWP whenever SUL is configured, so its absence in a decode means SUL is not configured either.Removal has its own field :supplementaryUplinkRelease-r16 takes the carrier away, and the network never sends it together with a newsupplementaryUplink .A SUL carrier states its own frequency :absoluteFrequencyPointA andfrequencyBandList are conditional-mandatory for SUL, exactly as they are for paired FDD. Nothing about the downlink implies where the SUL carrier is.
Choosing Between the Two Uplinks
The illustration near the top of this page gives one answer for random access and one for PUSCH. The full picture has four, and they do not all consult the same input. One reads a measurement, two read a field in a downlink message, and the fourth reads nothing at all because it was decided at configuration time. Mixing them up is the usual reason a SUL log does not match expectation.
The measurement decides only the first row. Once the network gives an explicit instruction, the threshold is no longer consulted.
Random access, when nothing was signalled
This is the case the quotation from 38.321 above describes, and it is worth reading the lines that come before the quoted ones. The carrier is not chosen by measurement first. It is chosen by measurement only when nothing else has already chosen it.
- If the carrier to use is explicitly signalled, the UE selects the signalled carrier.
- Otherwise, if the serving cell is configured with supplementary uplink and the RSRP of the downlink pathloss reference is less than
rsrp-ThresholdSSB-SUL , the UE selects the SUL carrier. - Otherwise the UE selects the NUL carrier.
One detail in the same clause is easy to miss. The UE also sets PCMAX to the value for the selected carrier. The power ceiling follows the carrier, so the two uplinks do not share a budget, and a SUL transmission is not limited by what the NUL carrier was allowed.
Random access ordered by the network
A PDCCH order carries its own UL/SUL indicator field, and 38.213 clause 8 says the UE uses that field value to determine the carrier for the corresponding PRACH. The measurement is not consulted. The quotation from 38.213 further up this page describes this mechanism. It is also why a UE can be moved to the SUL carrier while its RSRP sits far above the threshold.
Scheduled uplink data
For PUSCH the carrier travels in the grant. 38.212 defines the UL/SUL indicator as one bit, and Table 7.3.1.1.1-1 gives it two values: 0 is the non-supplementary uplink and 1 is the supplementary uplink. That is the field the two PDCCH clips in Example 01 differ in, and they differ in nothing else.
Whether the bit is there at all is a separate question, and DCI format 0_0 answers it differently from DCI format 0_1. In format 0_1 the bit is absent when the UE has no
38.212 then says what happens in that case, and the fallback order is worth knowing.
- If the indicator is present but
pusch-Config is not configured on both uplinks, the UE ignores the field and uses the uplink that carriespucch-Config . - If the indicator is absent and
pucch-Config is configured, the grant is for the uplink that carriespucch-Config . - If the indicator is absent and
pucch-Config is not configured, the grant is for the uplink on which the latest PRACH was transmitted.
Control signalling, decided once
PUCCH never chooses. 38.300 clause 6.9 states that overlapping PUCCH transmissions are avoided through configuration, and that PUCCH can only be configured for one of the two uplinks of the cell. The same restriction reaches further than PUCCH: 38.331 says that beam failure recovery, when SUL is present, is configured on one of the uplink carriers only.
That single fact is what makes the fallback rules above work. Because exactly one uplink carries
The threshold governs one case only : it decides random access when no carrier was signalled. A PDCCH order and a scheduling grant both override it, and neither one looks at RSRP.One bit carries the whole decision for PUSCH : 0 for the non-supplementary uplink, 1 for the supplementary uplink. In the Example 01 clips that bit issul_ind , and it is the only field that changes between the two grants.A missing indicator is not an error : format 0_1 omits the bit when only one carrier is configured for PUSCH, and format 0_0 carries it only when the format is padded. The fallback rules then decide.PUCCH anchors the fallback : because only one uplink can holdpucch-Config , the UE always has a defined carrier when the grant does not name one.The power ceiling travels with the carrier : the UE sets PCMAX to the value of the carrier it selected, so the two uplinks are budgeted separately.A random access procedure does not change carriers midway : 38.300 clause 9.2.6 states that once started, all uplink transmissions of the procedure remain on the selected carrier.
Reference
- 2023 Switched Uplink in 5G-NR: Benefit & Deployment Consideration - Qualcomm
- 3GPP TS 38.331 V19.3.0 : NR; Radio Resource Control (RRC) protocol specification. Source for every ASN.1 excerpt on this page
- 3GPP TS 38.321 V19.3.0 : NR; Medium Access Control (MAC) protocol specification. Clause 5.1.1 holds the carrier selection for random access
- 3GPP TS 38.212 V19.4.0 : NR; Multiplexing and channel coding. Table 7.3.1.1.1-1 defines the UL/SUL indicator
- 3GPP TS 38.213 V19.4.0 : NR; Physical layer procedures for control. Clause 8 covers the PDCCH order
- 3GPP TS 38.300 : NR; Overall description. Source of the quotations in Operation Highlights
- 3GPP TS 38.101-1 : NR; UE radio transmission and reception, Part 1: Range 1 Standalone. Table 5.2-1 lists the SUL operating bands