5G/NR - Carrier Bandwith Part
BWP (BandWidth Part) in a Nutshell
What is it ? BWP is a mechanism to configure/divide a whole channel band into multiple
and switch among the subbands depending on situation
BWPs can overlap in terms of frequency span and location
Minimum bandwidth of a BWP should be equal or larger than SSB Bandwidth
It is not mandatory for every BWP should transmit SSB
Max number of BWP that can configured is 4, but only one of them can be active at a sp
Each DL BWP should have at least one CORESET with UE Specific Search Space (USS)
In Primary DL BWP, there should be at least one CORESET with Common Search Space (C
There are roughly 3 ways of BWP switching : Timer based, DCI based, RRC Based
It would require a certain amount of time to switch between BWPs and the minimum swi
up to UE capability which should be informed to network via UE capability Information.
BWP(Carrier Bandwidth Part) in Detail
This page is about another new concept in NR called BWP(BandWidth Part). BWP is a part of th
channel bandwidth configured for a cell that is used for a UE at a specific moment of operation.
cell configures multiple BWPs out of the total channel bandwidth and select a specific one at ea
operation. I think the purpose and concept of BWP is very similar to NarrowBand in LTE M1.
Definition of BWP
Carrier Bandwidth Part allocation for DL and UL
Mapping between nCRB and nPRB
BWP Types
RRC Parameters for BandwidthPart Configuration
How BWP are defined ?
How BWP location and bandwidth is specified in RRC
?
How a specific BWP is selected (BWP switching) ?
BWP Switching Delay
RRC for BWP Switching
UE Capability
Why BWP ?
BWP Configuration Examples
o Example 01 > Band78, CBW 20 Mhz
BWP Switching Operation Examples
o Example 1 > BWP Switching by DCI
o Example 2 > BWP Switching by RRC
Get the Test Procedure and Log / Amarisoft
TechAcademy
Definition of BWP
According to 38.211 4.4.5, A carrier bandwidth part is defined as follows :
Carrier Bandwidth Part is a contiguous set of physical resource blocks,selected from a contiguo
the common resource blocks for a given numerology(u) on a given carrier. It can be illustrated
NOTE : Maximum 4 BWP can be specified in DL and UL. Following illustration is only an example
case of 3 BWP. (NOTE : CRB in this illustration stands for Carrier Resource Block which is numbe
one end through the other end of Carrier Band (this is a kind of global resource block), the PRB
Physical Resource Block is the resource blocks numbered within each BWP).
Point A indicates a common reference point for resource block grids and is obtained from the fo
higher-layer parameters as described in 38.211 - 4.4.4.2:
PRB-index-DL-common for a PCell downlink represents the frequency offset between poin
lowest subcarrier of the lowest resource block of the SS/PBCH block used by the UE for in
selection;
PRB-index-UL-common for a PCell uplink in paired spectrum represents the frequency off
point A and the frequency location based on ARFCN of the uplink indicated in SIB1;
PRB-index-UL-common for a PCell uplink in unpaired spectrum represents the frequency
between point A and the lowest subcarrier of the lowest resrouce block of the SS/PBCH b
the UE for initial cell selection;
PRB-index-DL-Dedicated for an SCell downlink represents the frequency offset between p
the frequency location based on ARFCN in the higher-layer SCell configuration;
PRB-index-UL-Dedicated for an SCell uplink represents the frequency offset between poin
frequency location based on ARFCN in the higher-layer SCell configuration;
PRB-index-SUL-common for a supplementary uplink represents the frequency offset betw
and the frequency location based on ARFCN in the higher-layer SUL configuration.
Carrier Bandwidth Part allocation for DL and UL
< Downlink >
A UE can be configured with up to four carrier bandwidth parts
The bandwidth of each BW should be equal or greater than SS Block BW, but it may or m
contain SS Block.
Only one carrier bandwidth part can be active at a given time
The UE is not expected to receive PDSCH, PDCCH, CSI-RS, or TRS outside an active band
Each DL BWP include at least one CORESET with UE Specific Search Space (USS).
In primary carrier, at least one of the configured DL BWPs includes one CORESET with co
space (CSS)
< Uplink >
A UE can be configured with up to four carrier bandwidth parts
Only one carrier bandwidth part can be active at a given time
If a UE is configured with a supplementary uplink
o The UE can in addition be configured with up to four carrier bandwidth parts in the
supplementary uplink
o Only one carrier bandwidth part can be active at a given time
The UE shall not transmit PUSCH or PUCCH outside an active bandwidth part.
Mapping between nCRB and nPRB
nCRB indicates a resource block location in common resource block, nPRB indicates a resource
specific carrier bandwidth part. In other words, you can think of nCRB is a position in an absolut
coordinate system and nPRB is a position in a relative coordinate system. The relationship betw
and nPRB is defined as follows (38.211 v2.0.0 - 4.4.4.4).
This can be illustrated as an example shown below.
BWP types
There are several different types of BWPs : Initial BWP, firstActiveBWP, Default BWP and (regula
These are defined in RRC message as follows. Regarding the role of each BWP, refer to the diag
section and RRC parameter description in this section.
< BWP configuration in ENDC RRCReconfig >
Using the basic types and configuration structure as shown above, you can take various options
configuration as shown below.
Source : A Primer on Bandwidth Parts in 5G New Radio
RRC Parameters for BandwidthPart Configuration
Following is based on 38.331 v15.7.0
ServingCellConfig ::= SEQUENCE {
tdd-UL-DL-ConfigurationDedicated TDD-UL-DL-ConfigDedicated OPTIONAL,-- Cond TDD
initialDownlinkBWP BWP-DownlinkDedicated OPTIONAL, -- Cond ServCellAdd
downlinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL
downlinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink OPTI
firstActiveDownlinkBWP-Id BWP-Id OPTIONAL, -- Need R
bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20,
ms30, ms40,ms50, ms60, ms80, ms100, ms200,
ms300, ms500, ms750, ms1280, ms1920, ms2560,
spare10, spare9, spare8, spare7, spare6,
spare5, spare4, spare3, spare2, spare1 } OPTIONAL,
defaultDownlinkBWP-Id BWP-Id OPTIONAL, -- Need M
uplinkConfig UplinkConfig OPTIONAL, -- Cond ServCellAdd-UL
supplementaryUplink UplinkConfig OPTIONAL, -- Cond ServCellAdd-SUL
pdsch-ServingCellConfig SetupRelease { PDSCH-ServingCellConfig } OPTIONAL, -- Need M
csi-MeasConfig SetupRelease { CSI-MeasConfig } OPTIONAL, -- Need M
carrierSwitching SetupRelease { SRS-CarrierSwitching} OPTIONAL, -- Need M
sCellDeactivationTimer ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240, ms32
ms400, ms480, ms520, ms640, ms720, ms840,
ms1280, spare2,spare1} OPTIONAL,-- Cond
.....
}
maxNrofBWPs INTEGER ::= 4
UplinkConfig ::= SEQUENCE {
initialUplinkBWP BWP-UplinkDedicated OPTIONAL, -- Cond ServCellAdd.
uplinkBWP-ToReleaseList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL,-- Need
uplinkBWP-ToAddModList SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink OPTIONAL,
firstActiveUplinkBWP-Id BWP-Id OPTIONAL, -- Need R
pusch-ServingCellConfig SetupRelease { PUSCH-ServingCellConfig } OPTIONAL,
...
}
BWP-Downlink ::= SEQUENCE {
bwp-Id BWP-Id,
bwp-Common BWP-DownlinkCommon
bwp-Dedicated BWP-DownlinkDedicated
...
}
BWP-DownlinkCommon ::= SEQUENCE {
genericParameters BWP,
pdcch-ConfigCommon SetupRelease { PDCCH-ConfigCommon }
pdsch-ConfigCommon SetupRelease { PDSCH-ConfigCommon }
...
}
BWP-DownlinkDedicated ::= SEQUENCE {
pdcch-Config SetupRelease { PDCCH-Config }
pdsch-Config SetupRelease { PDSCH-Config }
sps-Config SetupRelease { SPS-Config }
radioLinkMonitoringConfig SetupRelease { RadioLinkMonitoringConfig }
...
}
BWP-Uplink ::= SEQUENCE {
bwp-Id BWP-Id,
bwp-Common BWP-UplinkCommon
bwp-Dedicated BWP-UplinkDedicated
...
}
BWP-UplinkCommon ::= SEQUENCE {
genericParameters BWP,
rach-ConfigCommon SetupRelease { RACH-ConfigCommon }
pusch-ConfigCommon SetupRelease { PUSCH-ConfigCommon }
pucch-ConfigCommon SetupRelease { PUCCH-ConfigCommon }
...
}
BWP-UplinkDedicated ::= SEQUENCE {
pucch-Config SetupRelease { PUCCH-Config } OPTIONAL,--Need M
pusch-Config SetupRelease { PUSCH-Config } OPTIONAL,--Need M
configuredGrantConfig SetupRelease { ConfiguredGrantConfig } OPTIONAL,--Need M
srs-Config SetupRelease { SRS-Config } OPTIONAL,--Need M
beamFailureRecoveryConfig SetupRelease { BeamFailureRecoveryConfig } OPTIONAL,--N
...
}
BWP ::= SEQUENCE {
locationAndBandwidth INTEGER (0..37949),
subcarrierSpacing SubcarrierSpacing,
cyclicPrefix ENUMERATED { extended }
}
initialDownlinkBWP : The dedicated (UE-specific) configuration for the initial downlink bandwidt
described in 38.331, this is the dedicated (UE-specific) configuration for the initial downlink ban
(i.e. DL BWP#0). If any of the optional IEs are configured within this IE, the UE considers the BW
RRC configured BWP (from UE capability viewpoint). Otherwise, the UE does not consider the BW
RRC configured BWP (from UE capability viewpoint). Network always configures the UE with a v
field if no other BWPs are configured. Network always configures the UE with a value for this fie
BWPs are configured. If the dedicated part of initial UL/DL BWP configuration is absent, the initia
used but with some limitations. For example, changing to another BWP requires RRCReconfigur
DCI format 1_0 doesn't support DCI-based switching.
firstActiveDownlinkBWP-Id : This is the BWP to be active right after the initial attach (or NR add
completed.
If configured for an SpCell, this field contains the ID of the DL BWP to be activated upon perform
reconfiguration in which it is received. If the field is absent, the RRC reconfiguration does not im
switch (corresponds to L1 parameter 'active-BWP-DL-Pcell'). If configuredfor an SCell, this field c
ID of the downlink bandwidth part to be used upon MAC-activation of an SCell. The initial band
referred to by BWP-Id = 0
defaultDownlinkBWP-Id : This indicates the BWP that UE/NW automatically switches when there
in current BWP until bwp-InactivityTimer. If this field is set to 0, it means the defaultDownlinkBW
initialDownlinkBWP. ID of the downlink bandwidth part to be used upon expiry of the BWP inacti
This field is UE specific. When the field is absent the UE uses the initial BWP as default BWP.
bwp-InactivityTimer : The duration in ms after which the UE falls back to the default Bandwidth
value 0.5 ms is only applicable for carriers > 6 GHz. When the network releases the timer confi
UE stops the timer without swithching to the default BWP
initialUplinkBWP : If configured for an SpCell, this field contains the ID of the DL BWP to be activ
performing the reconfiguration in which it is received. If the field is absent, the RRC reconfigura
impose a BWP switch (corresponds to L1 parameter 'active-BWP-UL-Pcell'). If configured for an S
field contains the ID of the uplink bandwidth part to be used upon MAC-activation of an SCell. T
bandwidth part is referred to by BandiwdthPartId = 0
firstActiveUplinkBWP-Id : The dedicated (UE-specific) configuration for the initial uplink bandwid
BWP-Id : An identifier for this bandwidth part. Other parts of the RRC configuration use the BWP
associate themselves with a particular bandwidth part. The BWP ID=0 is always associated with
BWP and may hence not be used here (in other bandwidth parts).
The NW may trigger the UE to swtich UL or DL BWP using a DCI field. The four code points in th
map to the RRC-configured
BWP-ID as follows: For up to 3 configured BWPs (in addition to the initial BWP) the DCI co
equivalent to the BWP ID
o (initial = 0, first dedicated = 1, ...). If the NW configures 4 dedicated bandwidth pa
identified by DCI code
o points 0 to 3. In this case it is not possible to switch to the initial BWP using the DC
o Corresponds to L1 parameter 'UL-BWP-index' / 'DL-BWP-index'.
locationAndBandwidth : Frequency domain location and bandwidth of this bandwidth part. The
field shall be interpreted as resource indicator value (RIV). See here for the details
subcarrierSpacing : Subcarrier spacing to be used in this BWP for all channels and reference sig
explicitly configured elsewhere. It corresponds to subcarrier spacing according to 38.211-Table
value kHz15 corresponds to =0, kHz30 to =1, and so on. Only the values 15 or 30 kHz (<6GHz
kHz (>6GHz) are applicable.
How BWP are defined ?
As mentioned in Carrier Bandwidth Part allocation for DL and UL, maximum 4 BWPs can be defi
UL. Each of BWP are configured by RRC messages as described in RRC Parameters for Bandwid
Configuration.
How BWP location and bandwidth is specified in RRC ?
The location (starting position and the bandwidth of a BWP is specified in RRC parameter called
locationAndBandwidth and this parameter is specified as RIV that can be calculated according t
following specification.
< 38.213-12 Bandwidth part operation > states as follows :
a first PRB and a number of contiguous PRBs by higher layer parameter locationAndBandwidth
interpreted as RIV according to TS 38.214, setting , and the first PRB is a PRB offset r
PRB indicated by higher layer parameters offsetToCarrier and subcarrierSpacing
< 38.214-5.1.2.2.2 Downlink resource allocation type 1> defines RIV as follows :
Combining the two specification mentioned above, I would come up with some examples as sho
these examples are based on the assumption that RB_start = 0, BWP takes up the maximum RB
specified channel bandwidth and subcarrierspacing = 30 Khz, FR1
CBW max RB Equation RIV Calculation locationAndBand
5 11 (1) 275*(11-1)+0 2750
10 24 (1) 275*(24-1)+0 6325
15 38 (1) 275*(38-1)+0 10175
20 51 (1) 275*(51-1)+0 13750
25 65 (1) 275*(65-1)+0 17600
30 78 (1) 275*(78-1)+0 21175
40 106 (1) 275*(106-1)+0 28875
50 133 (1) 275*(133-1)+0 36300
60 162 (2) 275*(275-162+1)+(275-1-0) 31624
70 189 (2) 275*(275-189+1)+(275-1-0) 24199
80 217 (2) 275*(275-217+1)+(275-1-0) 16499
90 245 (2) 275*(275-245+1)+(275-1-0) 8799
100 273 (2) 275*(275-273+1)+(275-1-0) 1099
Following is the table that I calculated for subcarrier spacing = 15 Khz based on the assumptio
RB_start = 0, BWP takes up the maximum RB for the specified channel bandwidth
CBW max RB Equation RIV Calculation locationAndBand
5 25 (1) 275*(25-1)+0 6600
10 52 (1) 275*(52-1)+0 14025
15 79 (1) 275*(79-1)+0 21450
20 106 (1) 275*(106-1)+0 28875
25 133 (1) 275*(133-1)+0 36300
30 160 (2) 275*(275-160+1)+(275-1-0) 32174
40 216 (2) 275*(275-216+1)+(275-1-0) 16774
50 270 (2) 275*(275-270+1)+(275-1-0) 1924
Following is the table that I calculated for subcarrier spacing = 120 Khz based on the assumpt
RB_start = 0, BWP takes up the maximum RB for the specified channel bandwidth
CBW max RB Equation RIV Calculation locationAndBand
50 32 (1) 275*(32-1)+0 8525
100 66 (1) 275*(66-1)+0 17875
200 132 (1) 275*(132-1)+0 36025
400 264 (2) 275*(275-264+1)+(275-1-0) 3574
How a specific BWP is selected (BWP switching) ?
Even though multiple (max 4) BWPs can be defined in DL and UL, only one BWP can be active a
specific moment. It implies there is some mechainism to select a specific BWP as the active one
to 38.321-5.15 Bandwidth Part (BWP) operation, BWP selection (or BWP switching) can be done
different way
s as listed below.
By PDCCH (i.e, DCI) : A specific BWP can be activated by Bandwidth part indicator in DCI
UL Grant) and DCI Format 1_1 (a DL Schedule)
By the bwp-InactivityTimer : ServingCellConfig.bwp-InactivityTimer
By RRC signalling
By the MAC entity itself upon initiation of Random Access procedure
With using the mechanisums listed above, a specific BWP become active depending on various
the call processing.The switching process can be summarized in illustration as follows.
Another well presented illustration of BWP change/adaptation is shown below :
Source : A Primer on Bandwidth Parts in 5G New Radio
Followings are some of the examples of BWP switching for specific cases based on the stateme
specification. If you have overall understanding as shown above, following description would so
to you.
Case 1 : Upon initiation of the Random Access procedure on a Serving Cell (based on 38.321 -
if PRACH occasions are not configured for the active UL BWP:
For UL,set the active UL BWP = initialUplinkBWP;
For DL,
if the Serving Cell is a SpCell:
set the active DL BWP = initialDownlinkBWP.
if PRACH occasions are configured for the active UL BWP
For UL,set the active UL BWP = the configured UL BWP
For DL,
if the Serving Cell is a SpCell:
set the active DL BWP = DL BWP with the same bwp-Id as the active UL BWP.
Perform RACH procedure with the active BWP selected as above.
NOTE : What if initialDownlinkBWP is not configured ? According to 38.213-12 Bandwidth part o
stated as follows.
an initial DL BWP is defined by a location and number of contiguous PRBs, starting from a PRB w
lowest index and ending at a PRB with the highest index among PRBs of a CORESET for Type0-P
set, and a SCS and a cyclic prefix for PDCCH reception in the CORESET for Type0-PDCCH CSS se
mean that the initialDlBWP takes up the full RBs defined in FrequencyInfoDL (i.e, Full RB in the C
Case 2 : RrcReconfiguration /with sync (based on 38.331 - 5.3.5.5.2)
"Reconfiguration with sync" is a common mechanism of activing NR cell in NSA (i.e, Adding NR
cell). In this case, Active BWP for DL and UL is set to be as follows .
o Active BWP for DL = firstActiveDownlinkBWP-Id
o Active BWP for UL = firstActiveUplinkBWP-Id
Case 3 : DCI with Bandwidth part indicator is recieved
Check if there is any on-going RACH procedure. If there is no on-going RACH procedure or RACH
just completed by the received DCI (masked with C-RNTI).
set the active BWP = the BWP specified by the DCI
NOTE : BWP-id for DL / UL in TDD (unpared spectrum). 38.213-12 Bandwidth part operation stat
For unpaired spectrum operation, a DL BWP from the set of configured DL BWPs with index prov
Id is linked with an UL BWP from the set of configured UL BWPs with index provided by BWP-Id w
BWP index and the UL BWP index are same. ==> Simply put, DL BWP id = UL BWP id
NOTE : Center Frequency of DL/UL BWP in TDD(unpared spectrum)
For unpaired spectrum operation, a UE does not expect to receive a configuration where the ce
frequency for a DL BWP is different than the center frequency for an UL BWP when the BWP-Id o
is same as the BWP-Id of the UL BWP ==> Simply put, Center frequency of DL BWP = Center F
UL BWP
BWP Switching Delay
Changing BWP (Switching BWP) is the process of changing huge set of configurations. So it wou
least a certain amount of time to complete the switching. This time delay can be illustrated as f
on 38.133-8.6.2
Time Delay for DCI based BWP switching
Time Delay for Timer based BWP switching
RRC for BWP Switching
ServingCellConfig ::= SEQUENCE {
...
firstActiveDownlinkBWP-Id BWP-Id
bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms3
ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
ms750, ms1280, ms1920, ms2560, spare10, spare9, spa
spare7, spare6, spare5, spare4, spare3, spare2, spare1 }
...
UE Capability
Phy-ParametersCommon ::= SEQUENCE {
...
bwp-SwitchingDelay ENUMERATED {type1, type2} OPTIONAL,
bwp-SwitchingMultiCCs-r16 CHOICE {
type1-r16 ENUMERATED {us100, us200},
type2-r16 ENUMERATED {us200, us400, us800, us1000}
}
...
}
BandNR ::= SEQUENCE {
bwp-WithoutRestriction ENUMERATED {supported} OPTIONAL,
bwp-SameNumerology ENUMERATED {upto2, upto4} OPTIONAL,
bwp-DiffNumerology ENUMERATED {upto4} OPTIONAL,
...
}
bwp-SameNumerology : Indicates whether UE supports BWP adaptation (up to 2/4 BWPs) with t
numerology, via DCI and timer. For the UE capable of this feature, the bandwidth of a UE-specifi
configured DL BWP includes the bandwidth of the CORESET#0 (if CORESET#0 is present) and S
and PSCell (if configured). For SCell(s), the bandwidth of the UE-specific RRC configured DL BWP
SSB, if there is SSB on SCell(s).
bwp-DiffNumerology : Indicates whether the UE supports BWP adaptation up to 4 BWPs with the
numerologies, via DCI and timer. For the UE capable of this feature, the bandwidth of a UE-spec
configured DL BWP includes the bandwidth of the CORESET#0 (if CORESET#0 is present) and S
and PSCell (if configured). For SCell(s), the bandwidth of the UE-specific RRC configured DL BWP
SSB, if there is SSB on SCell(s).
bwp-SwitchingDelay : (According to 38.306) Defines whether the UE supports DCI and timer ba
BWP switching delay type1 or type2 specified in clause 8.6.2 of TS 38.133. It is mandatory to re
type 2. This capability is not applicable to IAB-MT. See BWP Switching Delay section in this page
details.
bwp-WithoutRestriction : (According to 38.306) Indicates support of BWP operation without ban
restriction. The Bandwidth restriction in terms of DL BWP for PCell and PSCell means that the ba
UE-specific RRC configured DL BWP may not include the bandwidth of CORESET #0 (if configure
For SCell(s), it means that the bandwidth of DL BWP may not include SSB.
Why BWP ?
When I first saw the descriptions on BWP, I asked myself 'why we need this ? We already has pr
mechanism of changing Bandwidth dynamically. Just by changing the number of RBs and startin
change the operation bandwidth. Then, why we still need another mechanism of restricting ban
The purpose of BWP is more for UE rather than for Network, especially for low end UEs which ca
to such a wideband operation.
In most case, NR would operate in very wideband and there wouldn't be any issues for the netw
and high end UEs to handle the full operating band, but we cannot expect every types of UE to
work with this kind of wideband. So we need another special mechanism to tell some UEs 'Hey.
operating in this wide band, but you don't need to worry about covering the full band. this is a f
spectrum you only need to care'. This is how (and why) we came out with the new concept calle
would remind you of NarrowBand in LTE M1. (Refer to Ref[1] if you want to know more detailed
various alternatives on NR Wideband operation).
BWP Configuration Examples
Example 01 > Band78, CBW 20 Mhz
Following is an example configuration from Amarisoft. (NOTE : You may need additional knowle
Coreset Bandwidth. Refer to this note for CORESET interpretation)
NOTE : CBW = 20 is just based on the Bandwidth specification : 38.101-1 Table 5.3.2-1: Maximu
transmission bandwidth configuration NRB : FR1 . The physical bandwidth accupied by 51RB is
BWP Switching Operation Examples
NOTE : If you want to see the contents of full log with Amarisoft Log viewer, go to LogAnalysis s
click on 'Sample Log' in this tutorial of Amarisoft TechAcademy.
Example 1 > BWP Switching by DCI
This is an example from Amari Callbox with a commercial UE showing the BWP switching trigge
[1] and [2] in the following RRC log is the places where all the BWP is configured.
Following is the sequence of physical channels showing the PDCCH/PDSCH before and after BW
[1] SIB1
Check on this for full message.
message c1: systemInformationBlockType1: {
....
servingCellConfigCommon {
downlinkConfigCommon {
frequencyInfoDL {
frequencyBandList {
{
freqBandIndicatorNR 78
}
},
offsetToPointA 30,
scs-SpecificCarrierList {
{
offsetToCarrier 0,
subcarrierSpacing kHz30,
carrierBandwidth 106
}
}
},
initialDownlinkBWP { // DL BWP 0
genericParameters {
locationAndBandwidth 12928,
subcarrierSpacing kHz30
},
....
},
uplinkConfigCommon {
frequencyInfoUL {
scs-SpecificCarrierList {
{
offsetToCarrier 0,
subcarrierSpacing kHz30,
carrierBandwidth 106
}
}
},
initialUplinkBWP { // UL BWP 0
genericParameters {
locationAndBandwidth 12928,
subcarrierSpacing kHz30
},
....
}
[2] RrcSetup
Check on this for full message.
{
message c1: rrcSetup: {
rrc-TransactionIdentifier 0,
criticalExtensions rrcSetup: {
...
spCellConfig {
spCellConfigDedicated {
initialDownlinkBWP {
...
downlinkBWP-ToAddModList {
{
bwp-Id 1,
bwp-Common { // DL BWP 1
genericParameters {
locationAndBandwidth 28875,
subcarrierSpacing kHz30
},
...
bwp-Dedicated {
pdcch-Config setup: {
...
},
pdsch-Config setup: {
...
},
firstActiveDownlinkBWP-Id 0,
uplinkConfig {
initialUplinkBWP {
pucch-Config setup: {
..
},
...
},
uplinkBWP-ToAddModList {
{
bwp-Id 1,
bwp-Common {
genericParameters { // UL BWP 1
locationAndBandwidth 28875,
subcarrierSpacing kHz30
},
pusch-ConfigCommon setup: {
...
},
pucch-ConfigCommon setup: {
...
}
},
bwp-Dedicated {
pucch-Config setup: {
...
},
resourceToAddModList {
...
},
pusch-Config setup: {
...
},
firstActiveUplinkBWP-Id 0,
...
},
....
}
}
}
}
}
}
[3] PDCCH
Message: ss_id=2 cce_index=12 al=2 dci=1_1
Data:
bwp=0
rb_alloc=0x5f
time_domain_rsc=0
mcs1=21
ndi1=0
rv_idx1=3
harq_process=10
dai=0
tpc_command=1
pucch_rsc=0
harq_feedback_timing=4
antenna_ports=2
srs_request=0
dmrs_seq_init=0
[4] PDSCH
Message: harq=10 prb=3:48 symb=2:12 k1=4 nl=2 CW0: tb_len=8709 mod=8 rv_idx=3 cr=0.
[5] PDCCH
Message: ss_id=2 cce_index=2 al=2 dci=0_1 k2=7
Data:
bwp=1
rb_alloc=0x139
time_domain_rsc=0
mcs=9
ndi=1
rv_idx=0
harq_process=0
dai=3
tpc_command=1
antenna_ports=0
srs_request=0
dmrs_seq_init=0
ul_sch_indicator=1
[6] PDCCH
Message: ss_id=4 cce_index=4 al=2 dci=1_1
Data:
bwp=1
rb_alloc=0xd3
time_domain_rsc=0
mcs1=23
ndi1=0
rv_idx1=0
harq_process=0
dai=0
tpc_command=1
pucch_rsc=0
harq_feedback_timing=1
antenna_ports=2
srs_request=0
dmrs_seq_init=0
[7] PDSCH
Message: harq=0 prb=0:106 symb=2:12 k1=7 nl=2 CW0: tb_len=22026 mod=8 rv_idx=0 cr=0
[8] PUSCH
Message: harq=0 prb=101:3 symb=0:14 CW0: tb_len=141 mod=4 rv_idx=0 cr=0.61 retx=0 cr
0.4 epre=-124.0 ta=8.8
Example 2 > BWP Switching by RRC
This is an example from Amari Callbox with Amari UEsim
[1] SIB1
Following is bwp related parts in SIB1. See this for the whole message.
{
message c1: systemInformationBlockType1: {
...
servingCellConfigCommon {
downlinkConfigCommon {
frequencyInfoDL {
frequencyBandList {
{
freqBandIndicatorNR 78
}
},
offsetToPointA 30,
scs-SpecificCarrierList {
{
offsetToCarrier 0,
subcarrierSpacing kHz30,
carrierBandwidth 106
}
}
},
initialDownlinkBWP {
genericParameters {
locationAndBandwidth 12928,
subcarrierSpacing kHz30
},
...
uplinkConfigCommon {
frequencyInfoUL {
scs-SpecificCarrierList {
{
offsetToCarrier 0,
subcarrierSpacing kHz30,
carrierBandwidth 106
}
}
},
initialUplinkBWP {
genericParameters {
locationAndBandwidth 12928,
subcarrierSpacing kHz30
},
...
}
[2] RrcSetup
Following is bwp related parameters in RrcSetup. See this for the whole message.
{
message c1: rrcSetup: {
rrc-TransactionIdentifier 0,
criticalExtensions rrcSetup: {
radioBearerConfig {
...
spCellConfig {
spCellConfigDedicated {
initialDownlinkBWP {
....
downlinkBWP-ToAddModList {
{
bwp-Id 1,
bwp-Common {
genericParameters {
locationAndBandwidth 28875,
subcarrierSpacing kHz30
},
....
firstActiveDownlinkBWP-Id 0,
....,
uplinkBWP-ToAddModList {
{
bwp-Id 1,
bwp-Common {
genericParameters {
locationAndBandwidth 28875,
subcarrierSpacing kHz30
},
....
firstActiveUplinkBWP-Id 0,
[3] RrcReconfiguration
{
message c1: rrcReconfiguration: {
rrc-TransactionIdentifier 0,
criticalExtensions rrcReconfiguration: {
nonCriticalExtension {
masterCellGroup {
cellGroupId 0,
spCellConfig {
spCellConfigDedicated {
firstActiveDownlinkBWP-Id 1,
uplinkConfig {
firstActiveUplinkBWP-Id 1
},
tag-Id 0
}
}
}
}
}
}
}
[4] PDCCH @ SFN = 334.3
Message: ss_id=2 cce_index=8 al=2 dci=1_1
Data:
bwp=0
rb_alloc=0x2f
time_domain_rsc=0
mcs1=9
ndi1=1
rv_idx1=0
harq_process=0
dai=0
tpc_command=1
pucch_rsc=0
harq_feedback_timing=2
antenna_ports=2
srs_request=0
dmrs_seq_init=0
[5] PDCCH @ SFN = 360.5
Message: ss_id=4 cce_index=8 al=2 dci=1_1
Data:
bwp=1
rb_alloc=0x0
time_domain_rsc=0
mcs1=9
ndi1=1
rv_idx1=0
harq_process=0
dai=0
tpc_command=1
pucch_rsc=0
harq_feedback_timing=4
antenna_ports=2
srs_request=0
dmrs_seq_init=0
Reference
[1] NR Wide Bandwidth Operations by Jeongho Jeon, Intel Corporation
[2] Impact of Bandwidth Part (BWP) Switching on 5G NR System Performance (Fuad Abinader et
[3] A Primer on Bandwidth Parts in 5G New Radio
[4] 5G NR BWP Types and BWP Operations
YouTube
[1] BandWidth Part (BWP): A 5G feature for improving spectrum flexibility and power savings
[2] 5G Course - 5G Bandwidth Parts (5G Initial BWP Active BWP Default BWP)