author | Peter D. Barnes, Jr. <barnes26@llnl.gov> |
Fri, 26 Sep 2014 15:51:00 -0700 | |
changeset 10968 | 2d29fee2b7b8 |
parent 10652 | dc18deba4502 |
child 10983 | 087597a150da |
permissions | -rw-r--r-- |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
1 |
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
2 |
/* |
10379
c61db1276872
Correction to copyright notices in some GSoC LTE code
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10368
diff
changeset
|
3 |
* Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) |
10353
938b6e44ab95
Updated GPL header of GSoC files
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10327
diff
changeset
|
4 |
* Copyright (c) 2013 Budiarto Herman |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
5 |
* |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
6 |
* This program is free software; you can redistribute it and/or modify |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
7 |
* it under the terms of the GNU General Public License version 2 as |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
8 |
* published by the Free Software Foundation; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
9 |
* |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
10 |
* This program is distributed in the hope that it will be useful, |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
13 |
* GNU General Public License for more details. |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
14 |
* |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
16 |
* along with this program; if not, write to the Free Software |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
17 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
18 |
* |
10379
c61db1276872
Correction to copyright notices in some GSoC LTE code
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10368
diff
changeset
|
19 |
* Original work authors (from lte-enb-rrc.cc): |
c61db1276872
Correction to copyright notices in some GSoC LTE code
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10368
diff
changeset
|
20 |
* - Nicola Baldo <nbaldo@cttc.es> |
c61db1276872
Correction to copyright notices in some GSoC LTE code
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10368
diff
changeset
|
21 |
* - Marco Miozzo <mmiozzo@cttc.es> |
c61db1276872
Correction to copyright notices in some GSoC LTE code
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10368
diff
changeset
|
22 |
* - Manuel Requena <manuel.requena@cttc.es> |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
23 |
* |
10379
c61db1276872
Correction to copyright notices in some GSoC LTE code
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10368
diff
changeset
|
24 |
* Converted to handover algorithm interface by: |
c61db1276872
Correction to copyright notices in some GSoC LTE code
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10368
diff
changeset
|
25 |
* - Budiarto Herman <budiarto.herman@magister.fi> |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
26 |
*/ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
27 |
|
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
28 |
#include "a2-a4-rsrq-handover-algorithm.h" |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
29 |
#include <ns3/log.h> |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
30 |
#include <ns3/uinteger.h> |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
31 |
|
10968
2d29fee2b7b8
[Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
10652
diff
changeset
|
32 |
namespace ns3 { |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
33 |
|
10968
2d29fee2b7b8
[Bug 1551] Redux: NS_LOG_COMPONENT_DEFINE inside or outside of ns3 namespace?
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
10652
diff
changeset
|
34 |
NS_LOG_COMPONENT_DEFINE ("A2A4RsrqHandoverAlgorithm"); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
35 |
|
10652
dc18deba4502
[doxygen] Revert r10410, r10411, r10412
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
10412
diff
changeset
|
36 |
NS_OBJECT_ENSURE_REGISTERED (A2A4RsrqHandoverAlgorithm); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
37 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
38 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
39 |
/////////////////////////////////////////// |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
40 |
// Handover Management SAP forwarder |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
41 |
/////////////////////////////////////////// |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
42 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
43 |
|
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
44 |
A2A4RsrqHandoverAlgorithm::A2A4RsrqHandoverAlgorithm () |
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
45 |
: m_a2MeasId (0), |
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
46 |
m_a4MeasId (0), |
10327
4ea8ec2bfb68
Handover algorithm based on Event A3 and RSRP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10324
diff
changeset
|
47 |
m_servingCellThreshold (30), |
4ea8ec2bfb68
Handover algorithm based on Event A3 and RSRP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10324
diff
changeset
|
48 |
m_neighbourCellOffset (1), |
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
49 |
m_handoverManagementSapUser (0) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
50 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
51 |
NS_LOG_FUNCTION (this); |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
52 |
m_handoverManagementSapProvider = new MemberLteHandoverManagementSapProvider<A2A4RsrqHandoverAlgorithm> (this); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
53 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
54 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
55 |
|
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
56 |
A2A4RsrqHandoverAlgorithm::~A2A4RsrqHandoverAlgorithm () |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
57 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
58 |
NS_LOG_FUNCTION (this); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
59 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
60 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
61 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
62 |
TypeId |
10380
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
63 |
A2A4RsrqHandoverAlgorithm::GetTypeId () |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
64 |
{ |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
65 |
static TypeId tid = TypeId ("ns3::A2A4RsrqHandoverAlgorithm") |
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
66 |
.SetParent<LteHandoverAlgorithm> () |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
67 |
.AddConstructor<A2A4RsrqHandoverAlgorithm> () |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
68 |
.AddAttribute ("ServingCellThreshold", |
10320
0fca10d6d044
LTE Automatic Neighbour Relation (ANR) function
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10317
diff
changeset
|
69 |
"If the RSRQ of the serving cell is worse than this threshold, " |
0fca10d6d044
LTE Automatic Neighbour Relation (ANR) function
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10317
diff
changeset
|
70 |
"neighbour cells are consider for handover", |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
71 |
UintegerValue (30), |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
72 |
MakeUintegerAccessor (&A2A4RsrqHandoverAlgorithm::m_servingCellThreshold), |
10320
0fca10d6d044
LTE Automatic Neighbour Relation (ANR) function
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10317
diff
changeset
|
73 |
MakeUintegerChecker<uint8_t> (0, 34)) // RSRQ range is [0..34] as per Section 9.1.7 of 3GPP TS 36.133 |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
74 |
.AddAttribute ("NeighbourCellOffset", |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
75 |
"Minimum offset between serving and best neighbour cell to trigger the Handover", |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
76 |
UintegerValue (1), |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
77 |
MakeUintegerAccessor (&A2A4RsrqHandoverAlgorithm::m_neighbourCellOffset), |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
78 |
MakeUintegerChecker<uint8_t> ()) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
79 |
; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
80 |
return tid; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
81 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
82 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
83 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
84 |
void |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
85 |
A2A4RsrqHandoverAlgorithm::SetLteHandoverManagementSapUser (LteHandoverManagementSapUser* s) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
86 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
87 |
NS_LOG_FUNCTION (this << s); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
88 |
m_handoverManagementSapUser = s; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
89 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
90 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
91 |
|
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
92 |
LteHandoverManagementSapProvider* |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
93 |
A2A4RsrqHandoverAlgorithm::GetLteHandoverManagementSapProvider () |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
94 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
95 |
NS_LOG_FUNCTION (this); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
96 |
return m_handoverManagementSapProvider; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
97 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
98 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
99 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
100 |
void |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
101 |
A2A4RsrqHandoverAlgorithm::DoInitialize () |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
102 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
103 |
NS_LOG_FUNCTION (this); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
104 |
|
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
105 |
NS_LOG_LOGIC (this << " requesting Event A2 measurements" |
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
106 |
<< " (threshold=" << (uint16_t) m_servingCellThreshold << ")"); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
107 |
LteRrcSap::ReportConfigEutra reportConfigA2; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
108 |
reportConfigA2.eventId = LteRrcSap::ReportConfigEutra::EVENT_A2; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
109 |
reportConfigA2.threshold1.choice = LteRrcSap::ThresholdEutra::THRESHOLD_RSRQ; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
110 |
reportConfigA2.threshold1.range = m_servingCellThreshold; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
111 |
reportConfigA2.triggerQuantity = LteRrcSap::ReportConfigEutra::RSRQ; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
112 |
reportConfigA2.reportInterval = LteRrcSap::ReportConfigEutra::MS240; |
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
113 |
m_a2MeasId = m_handoverManagementSapUser->AddUeMeasReportConfigForHandover (reportConfigA2); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
114 |
|
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
115 |
NS_LOG_LOGIC (this << " requesting Event A4 measurements" |
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
116 |
<< " (threshold=0)"); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
117 |
LteRrcSap::ReportConfigEutra reportConfigA4; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
118 |
reportConfigA4.eventId = LteRrcSap::ReportConfigEutra::EVENT_A4; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
119 |
reportConfigA4.threshold1.choice = LteRrcSap::ThresholdEutra::THRESHOLD_RSRQ; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
120 |
reportConfigA4.threshold1.range = 0; // intentionally very low threshold |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
121 |
reportConfigA4.triggerQuantity = LteRrcSap::ReportConfigEutra::RSRQ; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
122 |
reportConfigA4.reportInterval = LteRrcSap::ReportConfigEutra::MS480; |
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
123 |
m_a4MeasId = m_handoverManagementSapUser->AddUeMeasReportConfigForHandover (reportConfigA4); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
124 |
|
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
125 |
LteHandoverAlgorithm::DoInitialize (); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
126 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
127 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
128 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
129 |
void |
10380
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
130 |
A2A4RsrqHandoverAlgorithm::DoDispose () |
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
131 |
{ |
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
132 |
NS_LOG_FUNCTION (this); |
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
133 |
delete m_handoverManagementSapProvider; |
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
134 |
} |
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
135 |
|
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
136 |
|
b97c429d2bc9
Moved DoDispose method of handover and ANR classes to protected scope
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10379
diff
changeset
|
137 |
void |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
138 |
A2A4RsrqHandoverAlgorithm::DoReportUeMeas (uint16_t rnti, |
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
139 |
LteRrcSap::MeasResults measResults) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
140 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
141 |
NS_LOG_FUNCTION (this << rnti << (uint16_t) measResults.measId); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
142 |
|
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
143 |
if (measResults.measId == m_a2MeasId) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
144 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
145 |
NS_ASSERT_MSG (measResults.rsrqResult <= m_servingCellThreshold, |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
146 |
"Invalid UE measurement report"); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
147 |
EvaluateHandover (rnti, measResults.rsrqResult); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
148 |
} |
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
149 |
else if (measResults.measId == m_a4MeasId) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
150 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
151 |
if (measResults.haveMeasResultNeighCells |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
152 |
&& !measResults.measResultListEutra.empty ()) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
153 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
154 |
for (std::list <LteRrcSap::MeasResultEutra>::iterator it = measResults.measResultListEutra.begin (); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
155 |
it != measResults.measResultListEutra.end (); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
156 |
++it) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
157 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
158 |
NS_ASSERT_MSG (it->haveRsrqResult == true, |
10327
4ea8ec2bfb68
Handover algorithm based on Event A3 and RSRP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10324
diff
changeset
|
159 |
"RSRQ measurement is missing from cellId " << it->physCellId); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
160 |
UpdateNeighbourMeasurements (rnti, it->physCellId, it->rsrqResult); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
161 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
162 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
163 |
else |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
164 |
{ |
10322
54f2e33137a3
Using template for forwarding classes and new names for Handover Management SAP
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10320
diff
changeset
|
165 |
NS_LOG_WARN (this << " Event A4 received without measurement results from neighbouring cells"); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
166 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
167 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
168 |
else |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
169 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
170 |
NS_LOG_WARN ("Ignoring measId " << (uint16_t) measResults.measId); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
171 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
172 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
173 |
} // end of DoReportUeMeas |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
174 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
175 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
176 |
void |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
177 |
A2A4RsrqHandoverAlgorithm::EvaluateHandover (uint16_t rnti, |
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
178 |
uint8_t servingCellRsrq) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
179 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
180 |
NS_LOG_FUNCTION (this << rnti << (uint16_t) servingCellRsrq); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
181 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
182 |
MeasurementTable_t::iterator it1; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
183 |
it1 = m_neighbourCellMeasures.find (rnti); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
184 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
185 |
if (it1 == m_neighbourCellMeasures.end ()) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
186 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
187 |
NS_LOG_WARN ("Skipping handover evaluation for RNTI " << rnti << " because neighbour cells information is not found"); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
188 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
189 |
else |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
190 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
191 |
// Find the best neighbour cell (eNB) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
192 |
NS_LOG_LOGIC ("Number of neighbour cells = " << it1->second.size ()); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
193 |
uint16_t bestNeighbourCellId = 0; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
194 |
uint8_t bestNeighbourRsrq = 0; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
195 |
MeasurementRow_t::iterator it2; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
196 |
for (it2 = it1->second.begin (); it2 != it1->second.end (); ++it2) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
197 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
198 |
if ((it2->second->m_rsrq > bestNeighbourRsrq) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
199 |
&& IsValidNeighbour (it2->first)) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
200 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
201 |
bestNeighbourCellId = it2->first; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
202 |
bestNeighbourRsrq = it2->second->m_rsrq; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
203 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
204 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
205 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
206 |
// Trigger Handover, if needed |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
207 |
if (bestNeighbourCellId > 0) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
208 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
209 |
NS_LOG_LOGIC ("Best neighbour cellId " << bestNeighbourCellId); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
210 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
211 |
if ((bestNeighbourRsrq - servingCellRsrq) >= m_neighbourCellOffset) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
212 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
213 |
NS_LOG_LOGIC ("Trigger Handover to cellId " << bestNeighbourCellId); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
214 |
NS_LOG_LOGIC ("target cell RSRQ " << (uint16_t) bestNeighbourRsrq); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
215 |
NS_LOG_LOGIC ("serving cell RSRQ " << (uint16_t) servingCellRsrq); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
216 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
217 |
// Inform eNodeB RRC about handover |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
218 |
m_handoverManagementSapUser->TriggerHandover (rnti, |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
219 |
bestNeighbourCellId); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
220 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
221 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
222 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
223 |
} // end of else of if (it1 == m_neighbourCellMeasures.end ()) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
224 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
225 |
} // end of EvaluateMeasurementReport |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
226 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
227 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
228 |
bool |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
229 |
A2A4RsrqHandoverAlgorithm::IsValidNeighbour (uint16_t cellId) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
230 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
231 |
NS_LOG_FUNCTION (this << cellId); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
232 |
|
10368
0a6adb7e304d
Updated TODO tags to Doxygen format
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10353
diff
changeset
|
233 |
/** |
0a6adb7e304d
Updated TODO tags to Doxygen format
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10353
diff
changeset
|
234 |
* \todo In the future, this function can be expanded to validate whether the |
0a6adb7e304d
Updated TODO tags to Doxygen format
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10353
diff
changeset
|
235 |
* neighbour cell is a valid target cell, e.g., taking into account the |
0a6adb7e304d
Updated TODO tags to Doxygen format
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10353
diff
changeset
|
236 |
* NRT in ANR and whether it is a CSG cell with closed access. |
0a6adb7e304d
Updated TODO tags to Doxygen format
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10353
diff
changeset
|
237 |
*/ |
0a6adb7e304d
Updated TODO tags to Doxygen format
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10353
diff
changeset
|
238 |
|
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
239 |
return true; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
240 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
241 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
242 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
243 |
void |
10324
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
244 |
A2A4RsrqHandoverAlgorithm::UpdateNeighbourMeasurements (uint16_t rnti, |
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
245 |
uint16_t cellId, |
20e45655eaa8
Renamed A2RsrqHandoverAlgorithm to A2A4RsrqHandoverAlgorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10322
diff
changeset
|
246 |
uint8_t rsrq) |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
247 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
248 |
NS_LOG_FUNCTION (this << rnti << cellId << (uint16_t) rsrq); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
249 |
MeasurementTable_t::iterator it1; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
250 |
it1 = m_neighbourCellMeasures.find (rnti); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
251 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
252 |
if (it1 == m_neighbourCellMeasures.end ()) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
253 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
254 |
// insert a new UE entry |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
255 |
MeasurementRow_t row; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
256 |
std::pair<MeasurementTable_t::iterator, bool> ret; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
257 |
ret = m_neighbourCellMeasures.insert (std::pair<uint16_t, MeasurementRow_t> (rnti, row)); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
258 |
NS_ASSERT (ret.second); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
259 |
it1 = ret.first; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
260 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
261 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
262 |
NS_ASSERT (it1 != m_neighbourCellMeasures.end ()); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
263 |
Ptr<UeMeasure> neighbourCellMeasures; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
264 |
std::map<uint16_t, Ptr<UeMeasure> >::iterator it2; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
265 |
it2 = it1->second.find (cellId); |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
266 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
267 |
if (it2 != it1->second.end ()) |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
268 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
269 |
neighbourCellMeasures = it2->second; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
270 |
neighbourCellMeasures->m_cellId = cellId; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
271 |
neighbourCellMeasures->m_rsrp = 0; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
272 |
neighbourCellMeasures->m_rsrq = rsrq; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
273 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
274 |
else |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
275 |
{ |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
276 |
// insert a new cell entry |
10381
31dc8d6462f9
UeMeasure class now inherits from SimpleRefCount
Budiarto Herman <budiarto.herman@magister.fi>
parents:
10380
diff
changeset
|
277 |
neighbourCellMeasures = Create<UeMeasure> (); |
10316
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
278 |
neighbourCellMeasures->m_cellId = cellId; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
279 |
neighbourCellMeasures->m_rsrp = 0; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
280 |
neighbourCellMeasures->m_rsrq = rsrq; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
281 |
it1->second[cellId] = neighbourCellMeasures; |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
282 |
} |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
283 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
284 |
} // end of UpdateNeighbourMeasurements |
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
285 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
286 |
|
dc88a59d7ff2
Handover management SAP interface and A2/RSRQ-based handover algorithm
Budiarto Herman <budiarto.herman@magister.fi>
parents:
diff
changeset
|
287 |
} // end of namespace ns3 |