--- 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