From Nsnam
Revision as of 16:11, 27 May 2017 by Krotov (Talk | contribs) (Phase 1 (May 30, 2017 - June 30, 2017))

Jump to: navigation, search

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

Return to GSoC 2017 Accepted Projects page.

Project overview

  • Project name: Enabling LTE CA handover to secondary cell
  • Abstract: The goal of the project is to implement handover to secondary cell, i.e. implement the ability to switch primary cell and reconfigure secondary carriers over RRC in runtime.

Technical Approach

In current LTE carrier aggregation (CA) model of ns-3 the handover among different component carriers is not supported. This is because the current LTE CA model does not treat different component carriers as different cells. Additionally, the primary component carrier is fixed and there is no procedure that allows change of a primary component carrier. In order to allow handover among component carriers, it is necessary to enhance SAP interfaces between RRC and component carrier manager (CCM), and also between CCM and lower layers (MAC, PHY) to allow change of primary component carrier, and also to extend the model so that each component carrier is treated as independent cell.

Currently cells have several identifiers. Firstly, according to LTE specifications, each cell has its own Cell ID. UE can learn this ID by communicating with eNB, so it always corresponds to Cell ID on eNB. Secondly, for the needs of scheduler, which is implemented according to LTE Femtocell Scheduler API, each cell is identified internally within eNB by its 8-bit identifier (componentCarrierId).

On the one hand, UE is unnecessarily aware of eNB configuration. componentCarrierIds are configured by LteHelper, so PHYs on eNB and UE correspond one-to-one. However, they don't have to, and it may be convenient to reserve componentCarrierId = 0 for primary CC on each UE. It is even possible that number of PHYs on eNB and UE is not equal. On the other hand, entities such as LteEnbNetDevice have "CellId" attributes, which correspond to "primary" component carrier. As "primary" component carrier is a property of UE, not eNB, it is necessary to remove such attributes.

As distinction between primary and secondary carrier is done on each UE, any flags that identify primary carrier should be removed from eNB and scenario configuration. For example, ComponentCarrier class has "PrimaryCarrier" boolean attribute which should be removed.

General plan is as follows:

  1. Improve architecture of LTE CA to make sure secondary cells are treated the same way as primary cells by eNB and frequency channels can be switched easily on UE.
  2. Implement minimally feasible version of handover procedure on eNB and UE and write unit tests for this procedure.
  3. Implement necessary signalling on RRC to make handover negotiation possible.
  4. Implement handover algorithm to make automatic handover possible.
  5. Write a scenario to validate implemented functionality and provide an example of usage for implemented functionality.

Milestones and Deliverables

Phase 1 (May 30, 2017 - June 30, 2017)

  1. Replace several Spectrum channels created by LteHelper with one Spectrum channel to make transition between cells easier. This way PHY should not need to switch Spectrum channels. PHY should be reconfigured but not linked against different channel object.
  2. Implement example scenario with one UE and one eNB with multiple component carriers. Attempt to trigger handover from one component carrier to another component carrier. This scenario may fail or even crash at this point, but it will be useful during development to identify the next step necessary to take.
  3. Remove references to GetCellId and CellId attributes of LteEnbNetDevices.
  4. Make UEs actually receive information about CCs from RRC instead of being set by LteHelper.

Phase 2 (June 30, 2017 - July 24, 2017)

  1. Improve CCM↔MAC interface on eNB to make sure CCM is informed about changes made to each UE configuration. Add the ability to force reconfiguration of UE without actual RRC negotiation. Write a test that shows how to manually change secondary cell.
  2. Make sure LteEnbRrcProtocolIdeal is able to deliver messages regardless of which CellId is used. Implement necessary interfaces on LteEnbNetDevice to make it possible to find corresponding LteEnbNetDevice by each of its CellIds.
  3. Refine RRCConnectionReconfiguration message handling to allow reconfiguration of secondary cells in the middle of simulation with proper RRC negotiation. Test that UE is able to receive reconfiguration message and reconfigure itself according to it.

Phase 3 (July 28, 2017 - August 21, 2017)

  1. Improve CCM↔MAC interface on UE to make sure CCM has enough information to make decision about reconfiguration. Implement some example algorithm, such as round robin with a predefined time period that will decide when to handover. Write a test scenario or example showing how to use it.
  2. Implement some more realistic algorithm or, even better, integrate existing event-based handover algorithms.