Add automatic handover documentation
authorManuel Requena <manuel.requena@cttc.es>
Fri, 19 Apr 2013 17:51:58 +0200
changeset 10045 26a4c08df793
parent 10041 fa9ab25291ca
child 10046 e048181b71a7
Add automatic handover documentation
src/lte/doc/Makefile
src/lte/doc/source/figures/lte-handover-algorithm.dot
src/lte/doc/source/lte-design.rst
src/lte/doc/source/lte-testing.rst
src/lte/doc/source/lte-user.rst
--- a/src/lte/doc/Makefile	Mon Apr 15 16:25:46 2013 +0200
+++ b/src/lte/doc/Makefile	Fri Apr 19 17:51:58 2013 +0200
@@ -79,6 +79,7 @@
 $(FIGURES)/mac-random-access-contention.pdf_width = 10cm
 $(FIGURES)/mac-random-access-noncontention.pdf_width = 15cm
 $(FIGURES)/lte-ue-rrc-states.pdf_width = 7cm
+$(FIGURES)/lte-handover-algorithm.pdf_width = 10cm
 $(FIGURES)/helpers.pdf_width = 8cm
 
 IMAGES_SEQDIAG = \
@@ -93,7 +94,8 @@
 
 IMAGES_DOT = \
 	$(FIGURES)/lte-enb-rrc-states.dot \
-	$(FIGURES)/lte-ue-rrc-states.dot
+	$(FIGURES)/lte-ue-rrc-states.dot \
+	$(FIGURES)/lte-handover-algorithm.dot
 
 IMAGES_NOBUILD = $(FIGURES)/fading_pedestrian.png \
 	$(FIGURES)/fading_vehicular.png \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/lte/doc/source/figures/lte-handover-algorithm.dot	Fri Apr 19 17:51:58 2013 +0200
@@ -0,0 +1,21 @@
+digraph LteHandoverAlgorithm {
+
+size = "30,30"
+
+GET_MEASUREMENTS [shape = box,
+                  label = "Get measurements from UE\n(The eNB receives events A2 and A4 with UE measurements)"]
+CHECK_SERVING_RSRQ [shape = diamond, fixedsize = true, width = 8, height = 1.0,
+                    label = "serving cell RSRQ <= servingHandoverThreshold"]
+LOOK_BEST_NEIGHBOUR [shape = box,
+                     label = "Look for the neighbour cell with the best RSRQ"]
+CHECK_BEST_NEIGHBOUR [shape = diamond, fixedsize = true, width = 9, height = 1.0,
+                      label = "best neighbour RSRQ - serving cell RSRQ >= neighbourHandoverOffset"]
+TRIGGER_HANDOVER [shape = box,
+                  label = "Trigger Handover procedure for this UE"]
+
+GET_MEASUREMENTS -> CHECK_SERVING_RSRQ
+CHECK_SERVING_RSRQ -> LOOK_BEST_NEIGHBOUR
+LOOK_BEST_NEIGHBOUR -> CHECK_BEST_NEIGHBOUR
+CHECK_BEST_NEIGHBOUR -> TRIGGER_HANDOVER
+
+}
--- a/src/lte/doc/source/lte-design.rst	Mon Apr 15 16:25:46 2013 +0200
+++ b/src/lte/doc/source/lte-design.rst	Fri Apr 19 17:51:58 2013 +0200
@@ -1833,16 +1833,16 @@
 UE RRC measurements support
 ---------------------------
 
-The UE RRC entities provides support for UE measurements; in
+The UE RRC entity provides support for UE measurements; in
 particular, it implements the procedures described in Section 5.5 of
 [TS36331]_, with the following simplifying assumptions:
 
  - only E-UTRA intra-frequency measurements are supported;
 
- - meausrement gaps are not needed to perform the measurements;
+ - measurement gaps are not needed to perform the measurements;
 
  - only event-driven measurements are supported; the other type of
- measurements are not supported;
+   measurements are not supported;
 
  - only the events A2 and A4 are to be supported; 
 
@@ -1860,16 +1860,68 @@
 eNB RRC measurement configuration
 ---------------------------------
 
+The eNB RRC entity configures the UE measurements. The eNB RRC entity
+sends the configuration parameters to the UE RRC entity in the
+MeasConfig IE of the RRC Connection Reconfiguration message when the UE
+attaches to the eNB or the RRC Handover Request message when the target
+eNB initiates the handover procedure.
+
+The eNB RRC entity implements the configuration parameters and procedures
+described in Section 5.5 of [TS36331]_, with the following simplifying
+assumptions:
+
+ - only E-UTRA intra-frequency measurements are configured, so only the
+   downlink carrier frequency of the serving cell is configured as
+   measurement object;
+
+ - only the events A2 and A4 are configured;
+
+ - only the RSRQ threshold is configured for both events;
+
+ - the reportInterval parameter is configured to 480 ms, so once the
+   events are triggered, the UE will send the measurement reports with
+   this periodicity;
+
+ - the filterCoefficientRSRQ parameter is configured to fc4, it is the
+   default value specified in the protocol specification [TS36331]_;
+
+ - the hysteresis and timeToTrigger parameters are configured with
+   values equal to zero;
+
 
 Handover
 ++++++++
 
-The RRC model support the execution of an X2-based handover
-procedure. The handover needs to be triggered explicitly by the
-simulation program by scheduling an execution of the method
-``LteEnbRrc::SendHandoverRequest ()``. The automatic triggering of the
-handover based on UE measurements is not supported at this stage.
-
+The RRC model support the execution of an X2-based handover procedure.
+There are 2 ways to trigger the handover procedure:
+
+ - the handover could be triggered explicitly by the simulation program
+   by scheduling an execution of the method ``LteEnbRrc::SendHandoverRequest ()``
+
+ - the handover could be triggered automatically by the eNB RRC entity.
+   The eNB executes the following algorithm :ref:`fig-lte-handover-algorithm` 
+   to trigger the handover procedure for a UE providing measurements in its
+   serving cell and the neighbour cells the UE measures:
+
+.. _fig-lte-handover-algorithm:
+
+.. figure:: figures/lte-handover-algorithm.*
+   :align: center
+
+   Algorithm to automatically trigger the Handover procedure
+
+The simulation user can set two parameters to control the handover decision:
+
+ - servingHandoverThreshold, if the RSRQ value measured by the UE in its
+   serving cell is less or equal to the servingHandoverThreshold parameter
+   (i.e. the conditions of the UE in the serving cell are getting bad or
+   not good enough), then the eNB considers this UE to hand it over to a new
+   neighbour eNB. The handover will really triggered depending on the 
+   measurements of the neighbour cells.
+
+ - neighbourHandoverOffset, if the difference between the best neighbour RSRQ
+   and the serving cell RSRQ is greater or equal to the neighbourHandoverOffset
+   parameter, then the handover procedure is triggered for this UE.
 
 
 RRC sequence diagrams
--- a/src/lte/doc/source/lte-testing.rst	Mon Apr 15 16:25:46 2013 +0200
+++ b/src/lte/doc/source/lte-testing.rst	Fri Apr 19 17:51:58 2013 +0200
@@ -693,7 +693,7 @@
  - a boolean flag indicating whether the ideal RRC protocol is to be used instead of the real RRC protocol
  - the type of scheduler to be used (RR or PF)
 
-Each test cases passes if the following conditions are true:
+Each test case passes if the following conditions are true:
 
  - at time 0.06s, the test CheckConnected verifies that each UE is connected to the first eNB
  - for each event in the handover list:
@@ -716,3 +716,48 @@
  - for each Data Radio Bearer, the following identifiers match between
    the UE and the eNB: EPS bearer id, DRB id, LCID
 
+
+Automatic X2 handover
+---------------------
+
+The test suite ``lte-x2-handover-measures`` checks the correct functionality of the handover
+algorithm. The scenario being tested is a topology with two, three or four eNBs connected by
+an X2 interface. The eNBs are located in a straight line in the X-axes. A UE moves along the
+X-axes going from the neighbourhood of one eNB to the next eNB. Each test case is a particular
+instance of this scenario defined by the following parameters:
+
+ - the number of eNBs in the X-axes
+ - the number of EPS bearers activated for the UE
+ - a list of check point events to be triggered, where each event is defined by:
+   + the time of the first check point event
+   + the time of the last check point event
+   + interval time between two check point events
+   + the index of the UE doing the handover
+   + the index of the eNB where the UE must be connected
+ - a boolean flag indicating whether the ideal RRC protocol is to be used instead of the
+   real RRC protocol
+ - the type of scheduler to be used (RR or PF)
+
+Each test case passes if the following conditions are true:
+
+ - at time 0.08s, the test CheckConnected verifies that each UE is connected to the first eNB
+ - for each event in the check point list:
+
+   + at the indicated check point time, the indicated UE is connected to the indicated eNB
+   + 0.5s after the check point, for each active EPS bearer, the uplink and downlink sink
+     applications of the UE have achieved a number of bytes which is at least half the number
+     of bytes transmitted by the corresponding source applications
+
+The condition "UE is connected to eNB" is evaluated positively if and only if all the following conditions are met:
+
+ - the eNB has the context of the UE (identified by the RNTI value 
+   retrieved from the UE RRC)
+ - the RRC state of the UE at the eNB is CONNECTED_NORMALLY
+ - the RRC state at the UE is CONNECTED_NORMALLY
+ - the UE is configured with the CellId, DlBandwidth, UlBandwidth, 
+   DlEarfcn and UlEarfcn of the eNB
+ - the IMSI of the UE stored at the eNB is correct
+ - the number of active Data Radio Bearers is the expected one, both
+   at the eNB and at the UE
+ - for each Data Radio Bearer, the following identifiers match between
+   the UE and the eNB: EPS bearer id, DRB id, LCID
--- a/src/lte/doc/source/lte-user.rst	Mon Apr 15 16:25:46 2013 +0200
+++ b/src/lte/doc/source/lte-user.rst	Fri Apr 19 17:51:58 2013 +0200
@@ -892,8 +892,35 @@
 Automatic handover trigger
 **************************
 
-add description of how to setup/configure automatic handover
+Handover procedure can be triggered "automatically" by the serving eNB of 
+the UE. It is also known as the source eNB in the handover procedure. In
+order to control when the handover procedure is initiated, you can configure
+the parameters of the handover algorithm in your simulation program 
+through the ns-3 attributes of the eNB RRC entity::
+
+
+  Config::SetDefault ("ns3::LteEnbRrc::ServingCellHandoverThreshold",
+                      UintegerValue (30));
+
+  Config::SetDefault ("ns3::LteEnbRrc::NeighbourCellHandoverOffset",
+                      UintegerValue (1));
+
 
+The UE measurements are used in the automatic handover algorithm. You can
+configure the parameters of the UE measurements in your simulation program
+through the ns-3 attributes of the eNB RRC entity. You can set the thresholds
+of events A2 and A4::
+
+
+  Config::SetDefault ("ns3::LteEnbRrc::EventA2Threshold",
+                      UintegerValue (32));
+
+  Config::SetDefault ("ns3::LteEnbRrc::EventA4Threshold",
+                      UintegerValue (2));
+
+
+You can find more info about events A2 and A4 in Subsections 5.5.4.3 and 5.5.4.5
+of [TS36331]_.
 
 
 Handover traces