LTE - Carrier Aggregation
The purpose of this tutorial is to show you how to perform LTE Carrier Aggregation. Carrier Aggregation is a mechanism that aggregate the traffic at MAC layer which requires accurate synchronization among all the cell and scheduled by a common MAC scheduler. At high level, it happens in a few steps as follows.
Step 1 : Perform the measurement for all the relavent cells
Step 2 : RRC Connection Reconfiguration to add SCC (Secondary Component Carrier)
Step 3 : MAC CE activating SCCs
In terms of 3GPP, Step 1 is optional but in live network Step 1 is always performed. In Amarisoft Callbox, user case choose whether to perform step 1 or not.
Regarding the total number of CC (PCC + SCCs) and the number of Layers for each cell, the capacity varies with the product type. Refer to the following table summarized from the datasheet (Click on the link to check out the full datasheet)
Product |
|||||
Max Number of LTE Cell |
1 |
3 |
4 |
8 |
12 |
Max Number of NR Cell |
1 |
3 |
4 |
8 |
12 |
Max Total Number of Cell |
1 |
3 |
4 |
8 |
12 |
Σ(Bi*Li) |
40 |
120 |
800 |
1600 |
2400 |
Bi : Bandwidth of Cell [i], Li : Number of Layers of Cell[i]
Table of Contents
- LTE - Carrier Aggregation
- Test Setup
- Key Configuration Parameters
- Test 1 : 2CC CA (FDD-FDD) - Inter band without Measurement
- Test 2 : 2CC CA (FDD-FDD) - with Measurement
- Test 3 : 2CC CA (FDD-FDD) - DL+UL without Measurement
- Test 4 : 2CC CA (FDD-FDD) + NR NSA/FDD
- Test 5 : 2CC CA (TDD-TDD) - with Measurement
- RRC / NAS Signaling
- FAQ
Test Setup
Test setup for this tutorial is as shown below. In this setup, it shows 4 SDR cards are connected with Antenna but not all the test in this tuturial requires the 4 sdr cards. You only have to connect antenna to the number of sdr cards that you need for each test.
Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
- scell_list: In this link, you will get the descriptions for all the items listed below.
- cell_id
- cross_carrier_scheduling
- scheduling_cell_id
- ul_allowed
- rrc_configuration
- individual_offset
- meas_config_desc : In this link, you would get the descriptions for all the items listed below
- a1_report_type
- a1_rsrp
- a1_hysteresis
- a1_time_to_trigger
- a2_report_type
- a2_hysteresis
- a2_time_to_trigger
- a3_report_type
- a3_offset
- a3_hysteresis
- a3_time_to_trigger
- scell_config
- a2_report_type
- a2_rsrp
- a2_hysteresis
- a2_time_to_trigger
- a4_report_type
- a4_rsrp
- a4_hysteresis
- a4_time_to_trigger
- meas_gap_config
Test 1 : 2CC CA (FDD-FDD) - Inter band without Measurement
This test is to show how to configure a carrier aggregation between two LTE cells with different frequencies. In this test, carrier aggregation will be forced without any measurement report from UE.
This test configures 2 cells as follows.
- 2 LTE FDD Cells (2 Cells are in different bands)
It performs following procedure
Step 1 : Initial Attach to LTE
Step 3 : Establish 2CC CA in LTE
Configuration
In this test, I used enb-2cc.cfg without modification.
I used the mme-ims.cfg config as it is.
The configuration in enb-2cc.cfg is as shown below.
The first thing to notice is that the number of cells (N_CELL) is set to greater than 1 since this is a type of multi cell scenario. In this test, I set N_CELL to 2.
In carrier aggregation, you need to add the parameter scell_list and put the cell information for SCC(Secondary Component Cell) in the configuration. In case of using the first cell as PCC(Primary component cell), put the second cell in scell_list as SCC.
In case of using the second LTE cell as PCC(Primary component cell), put the first LTE cell in scell_list as SCC.
This configuration is not mandatory, but I extended the timer so that eNB does not release the RRC before adding the SCC.
Perform the Test
Check out the result of "cell phy" command and make it sure that the number of cells and other cell parameters (e.g, BAND, BW, ARFCN etc) are configured as expected.
NOTE : you may not always see the print for CC=1 because the print shown here is a sampled / averaged. You may take it as success as long as you see the print for CC = 2.
Run lteSim_server at the directory /root/mme and generate IP traffic as shown below (If you are not familiar with ltesim_server, check out this tutorial)
Make it sure that all the cells configured Carrier Aggregation are connected. You can confirm on this by checking the number in the column 'C'. In this example, it is 2 which mean that 2 carriers are connected.
Log Analysis
In this section, you will see how to confirm if UE registration is complete from trace log. You can use the same method to find any issues (e.g, registration failure) for troubleshooting. When UE registration fails, you may use this tutorial to figure out the point of the failure and troubleshoot
NOTE : This section is just to check quickly some important points in the log, but it may be a little bit tricky to do the detailed log analysis (especially for lower layer log analysis). In that case, I strongly recommend you to use WebGUI for the log analysis. You may refer to WebGUI Tutorial
Before you try any carrier aggregation test, I strongly suggest you to check on UE capability for your UE and confirm that it support the band combination that you want to try.
This is not mandatory in terms of operation, but it would be good to check on pucch-ConfigDedicated IE in RRC connection Reconfiguration and see if the pucch for the carrier aggregation is properly configured.
Check out if the SCC(Secondary Component Carrier) is sCellToAddModList in RRC Connection Reconfiguration. This IE triggers the establishment of carrier aggregation.
If the SCC addition is properly done in RRC layer, eNB will activate the SCC cell in MAC layer and print out 'enabling scell #' in the log.
You see two separate DCIs are transmitted for each cells at the same subframe. This indicates that each cells in the aggregation is scheduled by itself separately (i.e, cross-scheduling OFF)
Check PDSCHs and corresponding UCI with HARQ responses. You see each cell transmit PDSCH and single PUCCH to PCC (Primary Component Carrier) acknowledges the PDSCH reception on both cells.
You can confirm the operation of the carrier aggregation easily by checking out Resource Block Allocation plot.
Test 2 : 2CC CA (FDD-FDD) - with Measurement
This test is to show how to configure a carrier aggregation between two LTE cells. In this test, carrier aggregation will be triggered only when the measurement report from UE is recieved.
This test configures 2 cells as follows.
- 2 LTE FDD Cells
It performs following procedure
Step 1 : Initial Attach to LTE
Step 2 : Perform Measurement to LTE neighbour cell for SCC detection
Step 3 : Establish 2CC CA in LTE
Configuration
In this test I used the enb-2cc-meas.cfg which is copied and modified from enb-2cc.cfg
If you use other Network (e.g, other network simulator or real network), you have to make it sure to configure UE sim according to the settings on network side
Followings are the configurations in enb-2cc-meas.cfg
The first thing to notice is that the number of cells (N_CELL) is set to greater than 1 since this is a type of multi cell scenario. In this test, I set N_CELL to 2.
In carrier aggregation, you need to add the parameter scell_list and put the cell information for SCC(Secondary Component Cell) in the configuration. In case of using the first cell as PCC(Primary component cell), put the second cell in scell_list as SCC. In this test, there is additional setting called rrc_configuration: "measurement". It means that the carrier aggregation will be triggered only when the expected measurement report is recieved.
In case of using the second LTE cell as PCC(Primary component cell), put the first LTE cell in scell_list as SCC. In this test, there is additional setting called rrc_configuration: "measurement". It means that the carrier aggregation will be triggered only when the expected measurement report is recieved.
Since this is measurement based test, you need to configure meas_config_desc as required for the test. Pay special attention to scell_config settings since this is the fundamental requirement to trigger Carrier Aggregation.
This is not mandatory change, but I extended this timer so that eNB does not release RRC too soon before adding SCC.
Perform the Test
Check out the result of "cell phy" command and make it sure that the number of cells and other cell parameters (e.g, BAND, BW, ARFCN etc) are configured as expected.
NOTE : you may not always see the print for CC=1 because the print shown here is a sampled / averaged. You may take it as success as long as you see the print for CC = 2.
Run lteSim_server at the directory /root/mme and generate IP traffic as shown below (If you are not familiar with ltesim_server, check out this tutorial)
Make it sure that all the cells configured Carrier Aggregation are connected. You can confirm on this by checking the number in the column 'C'. In this example, it is 2 which mean that 2 carriers are connected.
Log Analysis
In this section, you will see how to confirm if UE registration is complete from trace log. You can use the same method to find any issues (e.g, registration failure) for troubleshooting. When UE registration fails, you may use this tutorial to figure out the point of the failure and troubleshoot
This test is for Carrier Aggregation based on Measurement. So check out eNB configure Measurement Report condition(measConfig) in RRC connection reconfiguration.
UE send measurement report. this is the trigger to add SCC. If eNB does not receive this message, SCC will not be added. Make it sure that the measurementReport carries the measurement of target cell with measResultNeighCells IE.
Once the expected measurement report is recieved, eNB send RRC connection reconfiguration to add SCC. Check out sCellToAddModList IE and make it sure sCellIndex is configured as intended.
Test 3 : 2CC CA (FDD-FDD) - DL+UL without Measurement
This test is to show how to configure the carrier aggregation with 2CC (Component Carriers) for both Uplink and Downlink. In this test, the carrier aggregation will be forced without measurement from UE.
This test configures 3 cells as follows.
- 2 LTE FDD Cells
It performs following procedure
Step 1 : Initial Attach to LTE
Step 2 : Establish 2CC CA in LTE
Configuration
In this test, I used enb-2cc-ul.cfg which is copied and modified from enb-2cc.cfg.
I used the mme-ims.cfg config as it is.
In UEsim, I am using ue-2cc-ul.cfg which is copied from ue-2cc.cfg (
The configuration in enb-2cc-ul.cfg is as shown below.
The first thing to notice is that the number of cells (N_CELL) is set to greater than 1 since this is a type of multi cell scenario. In this test, I set N_CELL to 2.
In carrier aggregation, you need to add the parameter scell_list and put the cell information for SCC(Secondary Component Cell) in the configuration. In case of using the first cell as PCC(Primary component cell), put the second cell in scell_list as SCC. In this test, a specific additional parameter ul_allowed is added. This indicates that not only DL but also UL Carrier Aggregation will be triggered as long as UE notifies that it support UL carrier aggregation in UE capability Information message.
In case of using the second cell as PCC(Primary component cell), put the first cell in scell_list as SCC (
This configuration is not mandatory, but I extended the timer so that eNB does not release the RRC before adding the SCC.
Followings are the configuration on UEsim which is configured in ue-2cc-ul.cfg .(
First, set the number of cell (N_CELL) to be same as callbox. In this case, N_CELL is set to 2.
Cell parameters on UEsim does not need any specific configuration excep bandwidth and frequency, all other details are automatically configured based on RRC messages sent by eNB.
Specify as_release and ue_category as required by the test.
Perform the Test
Check out the result of "cell phy" command and make it sure that the number of cells and other cell parameters (e.g, BAND, BW, ARFCN etc) are configured as expected.
Power on UE on UEsim (UE simulator)
Make it sure that all the cells configured Carrier Aggregation are connected. You can confirm on this by checking the number in the column 'C'. In this example, it is 2 which mean that 2 carriers are connected.
Log Analysis
In any type of Carrier Aggregation test, the first thing you need to check is whether the DUT(UE) support the band combination that is required for the test.
Network send ueCapabilityInquiry message for the list of the bands that you specified in the configuration file.
Check out UE capability Information message from UE and see if the intended band combination is supported.
It is cumbersome to check out all those band combination in RRC message. WebGUI provides functionality to display those band combination in tabular format as shown below.
Then check out sCellToAddModList in RRC Connection Reconfiguration for SCC Addition. In case of this test, it is important to configure not only for the addition of DL carrier but also for the addition of UL carrier. You can confirm on this with ul-Configuration IE in sCellToAddModList.
Now check out the antenna configuration(Transmission Mode) and power control for Uplink in ul-Configuration IE.
You can confirm on the operation of all the carrier aggregation with Resource Block Allocation plot as shown below. Here you clearly see the aggregation of the traffics on both DL and UL.
Test 4 : 2CC CA (FDD-FDD) + NR NSA/FDD
This test is to show how to InterRAT carrier aggregation between LTE and NR. Carrier aggregation will be established between two cells and NR cell will be added as NSA SCG cell.
This test configures 3 cells as follows.
- 2 LTE FDD Cells
- 1 NR FDD Cells
It performs following procedure
Step 1 : Initial Attach to LTE
Step 2 : Establish 2CC CA in LTE
Step 3 : Perform measurement for NR neigbhour cell
Step 4 : Add NR to establish NSA
Configuration
In this test, I used gnb-nsa-2LTE-1NR.cfg which is copied and modified from gnb-nsa.cfg.
I used the mme-ims.cfg config as it is.
The configuration in gnb-nsa-2LTE-1NR.cfg is as shown below.
At first, both NR related and LTE related constants are specified. In this test, both NR and LTE is set to FDD and the bandwidth of the both LTE and NR are set to 20 Mhz.
Make it sure that you have configured enough number of sdr card for this test. In this test, NR uses 4x4 MIMO and LTE use 2x2 MIMO. So you would need at least 6 sdr cards (in case of SDR 50) enabled.
In carrier aggregation, you need to add the parameter scell_list and put the cell information for SCC(Secondary Component Cell) in the configuration. In case of using the first cell as PCC(Primary component cell), put the second cell in scell_list as SCC. In this test, we want to establish carrier aggreation between inter RAT cells (i.e, between LTE and NR). For this, another parameter en_dc_scg_cell_list is configured.
In case of using the second cell as PCC(Primary component cell), put the first cell in scell_list as SCC. In this test, we want to establish carrier aggreation between inter RAT cells (i.e, between LTE and NR). For this, another parameter en_dc_scg_cell_list is configured.
Now comes with NR configuration. In this test, NR will be used only as SCC (Secondary Component Carrier) in CA. So just basic setup will be configured without any secondary cell information.
Since this test will be done based on measurement report, you need to configure meas_config_desc.
Perform the Test
Check out the result of "cell phy" command and make it sure that the number of cells and other cell parameters (e.g, BAND, BW, ARFCN etc) are configured as expected.
Make it sure that all the cells configured Carrier Aggregation are connected. You can confirm on this by checking the number in the column 'C'. In this example, you see two values 2 and 1 are alternating. The value 2 indicates LTE carrier aggregation is established and the value with Cell ID 3 indicates NR cell connected in NSA mode.
Log Analysis
Check out UE capability Information and see if the UE supports the band combination that matches the carrier aggregation you want to establish.
Since this test is for measurement based carrier aggregation, make it sure that eNB send RRC connection reconfiguration with measurement configuration for all the component carriers. Check out the details in measConfig IE in the rrcConnectionReconfiguration message.
Then check out if reportConfigToAddMod list and measIdToAddModList configures the proper event and measurement configuration.
eNB establish carrier aggregation between two LTE cells by adding the target LTE cell to sCellToAddModList in RRC Connection Reconfiguration message.
Then wait for measurement report for NR cell. Confirm this with measuResultNeighCells in the Measurement Report message from UE.
If the measurement report is received as intended, eNB add NR cell in NSA mode with nr-SecondaryCellGroupConfig IE in RRC Connection Reconfiguration.
Test 5 : 2CC CA (TDD-TDD) - with Measurement
This test is to show how to configure a carrier aggregation between two LTE cells. In this test, carrier aggregation will be triggered only when the measurement report from UE is recieved.
This test configures 2 cells as follows.
- 2 LTE TDD Cells
It performs following procedure
Step 1 : Initial Attach to LTE
Step 2 : Perform Measurement to LTE neighbour cell for SCC detection
Step 3 : Establish 2CC CA in LTE
Configuration
In this test I used the enb-48A-48A-20-20-NonContiguous.cfg which is copied and modified from enb-2cc.cfg
If you use other Network (e.g, other network simulator or real network), you have to make it sure to configure UE sim according to the settings on network side
In this test, UEsim is used as a DUT. The configuration for UEsim is ue-48A-48A-20-20-NonContiguous.cfg which is copied and modified from ue-2cc.cfg (
Followings are the configurations in enb-2cc-meas.cfg
The first thing to notice is that the number of cells (N_CELL) is set to greater than 1 since this is a type of multi cell scenario. In this test, I set N_CELL to 2. In this tutorial, configure the duplex mode to TDD by setting TDD to 1 since it is TDD CA tutorial.
In carrier aggregation, you need to add the parameter scell_list and put the cell information for SCC(Secondary Component Cell) in the configuration. In case of using the first cell as PCC(Primary component cell), put the second cell in scell_list as SCC. In this test, there is additional setting called rrc_configuration: "measurement". It means that the carrier aggregation will be triggered only when the expected measurement report is recieved.
In case of using the second LTE cell as PCC(Primary component cell), put the first LTE cell in scell_list as SCC. In this test, there is additional setting called rrc_configuration: "measurement". It means that the carrier aggregation will be triggered only when the expected measurement report is recieved.
Since this is a tutorial for TDD carrier aggregation, you need to configure some TDD specific parameters like Slot configuration parameters (uldl_config, sp_config) and Ack/Nack feedback mode parameters (tdd_ack_nack_feedback_mode)
Since this is measurement based test, you need to configure meas_config_desc as required for the test. Pay special attention to scell_config settings since this is the fundamental requirement to trigger Carrier Aggregation.
This is not mandatory change, but I extended this timer so that eNB does not release RRC too soon before adding SCC.
Now let's look into the configurations on UEsim (
The first thing to notice is that the number of cells (N_CELL) is set to greater than 1 since this is a type of multi cell scenario. In this test, I set N_CELL to 2. In this tutorial, configure the duplex mode to TDD by setting TDD to 1 since it is TDD CA tutorial.
Configure band and frequency (dl_earfcn) to match the band/frequency of eNB(Callbox).
Configure UE specific configuration (ue_list). In this tutorial, I am just using the default configuration. Make it sure that as_release (ASN release) and ue_category is configured to support capability that is required for the test.
Perform the Test
Check out the result of "cell phy" command and make it sure that the number of cells and other cell parameters (e.g, BAND, BW, ARFCN etc) are configured as expected.
If you want to let UE perform the initial attach to a specific cell, tweak the cell power so that the UE select the cell as intended. In this case, I decreased the power of cell 2 to let UE to camp on to cell 1.
NOTE : you may not always see the print for CC=1 because the print shown here is a sampled / averaged. You may take it as success as long as you see the print for CC = 2.
Once the initial attach is complete and while UE is still in connected state, increase the SCC cell power so that it meets the measurement criteria. (NOTE : you may need to keep UE in connected mode long enough to perform this operation. To keep UE in connected state long enough, you may do continous ping or set inactivity_timer to a large enough value).
If the SCC cell power meets the measurement criteria and UE send the measurement report as expected, eNB add the SCC to setup Carrier Aggregation. Once CA is established, you will see the number 2 (meaning the number of CC is 2) under the column 'C' as shown below.
Log Analysis (eNB)
In this section, you will see how to confirm if UE registration is complete from trace log. You can use the same method to find any issues (e.g, registration failure) for troubleshooting. When UE registration fails, you may use this tutorial to figure out the point of the failure and troubleshoot
First check the UE capability enquiry and UE capability Information and see if UE declare the capability that is required for the test.
In this test, UE capability enquiry request the information about LTE band 48
Check if UE capability information. It is easier to check it in tabular format by [UE Caps] button rather than looking into RRC message.
This test is for Carrier Aggregation based on Measurement. So check out eNB configure Measurement Report condition(measConfig) in RRC connection reconfiguration.
Measurement for 1st cell and 2nd cell is configured in measObjecttoAddModList.
Event A2 and Event A4 are configured in reportConfigToAddModList and Event A4 for cell 2 is configured in meadIdToAddModList
UE send measurement report. this is the trigger to add SCC. If eNB does not receive this message, SCC will not be added. Make it sure that the measurementReport carries the measurement of target cell with measResultNeighCells IE.
Once the expected measurement report is recieved, eNB send RRC connection reconfiguration to add SCC. Check out sCellToAddModList IE and make it sure sCellIndex is configured as intended.
Finally you can confirm the completion and activation of the SCC addition by checking 'enabling cell' print in MAC log.
Log Analysis (UEsim)
This is log from the UEsim for the same test, in terms of OTA(Over the Air) message (i.e, RRC, NAS message) it is exactly same as eNB log. However, in this log I want to highight the log for UE side measuremet which is supported by UEsim only.
First you need to check 'Cell meas' options in logging property window.
You may check "Cell selection measurements" first to see the measured cell power right before UE attempt initial attach. In this case, you see that rsrp of PCI 1 is much higher than the rsrp of PCI 2 while all other measurements are similar between the two. Based on this measurement, UE select the PCI 1 cell for the initial attach.
Once UE complete the initial attach and gets into connected mode, UEsim perform "Connected cell measurement refresh" periodically. In the following screenshot, I highlighted the three measurements on the left. The first measurement is from when I didn't increase SCC cell power which does not meet EventA4 criteria. The second and third are the measurement after I increased SCC cell power and the cell power meet the EventA4 criteria. Once the Event A4 criteria is met, UEsim send the measurement report for Event4A.
RRC / NAS Signaling
RrcConnectionReconfiguration
: This is the RrcConnectionReconfigurationmessage sent by eNB to configure Carrier Aggregation. (
{
message c1: rrcConnectionReconfiguration: {
rrc-TransactionIdentifier 0,
criticalExtensions c1: rrcConnectionReconfiguration-r8: {
dedicatedInfoNASList {
'...'H
},
radioResourceConfigDedicated {
srb-ToAddModList {
...
},
physicalConfigDedicated {
...
},
drb-ToAddModList-r15 {
...
}
},
nonCriticalExtension {
nonCriticalExtension {
nonCriticalExtension {
sCellToAddModList-r10 {
{
sCellIndex-r10 1,
cellIdentification-r10 {
physCellId-r10 2,
dl-CarrierFreq-r10 1575
},
radioResourceConfigCommonSCell-r10 {
nonUL-Configuration-r10 {
dl-Bandwidth-r10 n25,
antennaInfoCommon-r10 {
antennaPortsCount an1
},
phich-Config-r10 {
phich-Duration normal,
phich-Resource one
},
pdsch-ConfigCommon-r10 {
referenceSignalPower -18,
p-b 0
}
}
},
radioResourceConfigDedicatedSCell-r10 {
physicalConfigDedicatedSCell-r10 {
nonUL-Configuration-r10 {
antennaInfo-r10 {
transmissionMode-r10 tm1,
ue-TransmitAntennaSelection release: NULL
},
crossCarrierSchedulingConfig-r10 {
schedulingCellInfo-r10 own-r10: {
cif-Presence-r10 FALSE
}
},
pdsch-ConfigDedicated-r10 {
p-a dB0
}
},
ul-Configuration-r10 {
cqi-ReportConfigSCell-r10 {
cqi-ReportModeAperiodic-r10 rm20,
nomPDSCH-RS-EPRE-Offset-r10 0,
cqi-ReportPeriodicSCell-r10 release: NULL
}
},
cqi-ReportConfigSCell-v1250 {
altCQI-Table-r12 allSubframes
}
}
}
}
},
...
}
}
}
}
}
}
}
FAQ
[Q1] Why I see less PDSCH scheduling on SCC ?
[A1] there are various factors affecting the scheduling on SCC. Some of the typical factors are as follows.
- Available downlink data
- CSI Report type
- PUCCH format
I would not comment anything about "Available Downlink Data" here. I am assuming in this comment that DL data is available high enough to utilize the full SCC resources or force_dl_schedule is enabled.
Bascally when the eNB is expecting PUCCH format other than format 3, it does not schedule PDSCH on SCC. So what you can do to work around the underscheduling issue on SCC would be one of the followings :
- Use Aperiodic CQI report instead of Periodic CQI : In case of Aperiodic CQI, it is reported on PUSCH (not on PUCCH), so the limiting factors on PUCCH would not apply
- Use PUCCH format3 : "pucch3" as opposed to "cs" and enable simultaneousAckNackAndCQI
Followings are the list of configuration parameters that are related to this issue.
- ack_nack_feedback_mode_ca
- n1_pucch_an_cs_count
- simultaneousAckNackAndCQI
- simultaneousAckNackAndCQI_format3