A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
lte-handover-algorithm.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2013 Budiarto Herman
3
*
4
* SPDX-License-Identifier: GPL-2.0-only
5
*
6
* Author: Budiarto Herman <budiarto.herman@magister.fi>
7
*
8
*/
9
10
#ifndef LTE_HANDOVER_ALGORITHM_H
11
#define LTE_HANDOVER_ALGORITHM_H
12
13
#include "
lte-rrc-sap.h
"
14
15
#include <ns3/object.h>
16
17
namespace
ns3
18
{
19
20
class
LteHandoverManagementSapUser;
21
class
LteHandoverManagementSapProvider;
22
23
/**
24
* @brief The abstract base class of a handover algorithm that operates using
25
* the Handover Management SAP interface.
26
*
27
* Handover algorithm receives measurement reports from an eNodeB RRC instance
28
* and tells the eNodeB RRC instance when to do a handover.
29
*
30
* This class is an abstract class intended to be inherited by subclasses that
31
* implement its virtual methods. By inheriting from this abstract class, the
32
* subclasses gain the benefits of being compatible with the LteEnbNetDevice
33
* class, being accessible using namespace-based access through ns-3 Config
34
* subsystem, and being installed and configured by LteHelper class (see
35
* LteHelper::SetHandoverAlgorithmType and
36
* LteHelper::SetHandoverAlgorithmAttribute methods).
37
*
38
* The communication with the eNodeB RRC instance is done through the *Handover
39
* Management SAP* interface. The handover algorithm instance corresponds to the
40
* "provider" part of this interface, while the eNodeB RRC instance takes the
41
* role of the "user" part. The following code skeleton establishes the
42
* connection between both instances:
43
*
44
* Ptr<LteEnbRrc> u = ...;
45
* Ptr<LteHandoverAlgorithm> p = ...;
46
* u->SetLteHandoverManagementSapProvider (p->GetLteHandoverManagementSapProvider ());
47
* p->SetLteHandoverManagementSapUser (u->GetLteHandoverManagementSapUser ());
48
*
49
* However, user rarely needs to use the above code, since it has already been
50
* taken care by LteHelper::InstallEnbDevice.
51
*
52
* \sa LteHandoverManagementSapProvider, LteHandoverManagementSapUser
53
*/
54
class
LteHandoverAlgorithm
:
public
Object
55
{
56
public
:
57
LteHandoverAlgorithm
();
58
~LteHandoverAlgorithm
()
override
;
59
60
/**
61
* @brief Get the type ID.
62
* @return the object TypeId
63
*/
64
static
TypeId
GetTypeId
();
65
66
/**
67
* @brief Set the "user" part of the Handover Management SAP interface that
68
* this handover algorithm instance will interact with.
69
* @param s a reference to the "user" part of the interface, typically a
70
* member of an LteEnbRrc instance
71
*/
72
virtual
void
SetLteHandoverManagementSapUser
(
LteHandoverManagementSapUser
* s) = 0;
73
74
/**
75
* @brief Export the "provider" part of the Handover Management SAP interface.
76
* @return the reference to the "provider" part of the interface, typically to
77
* be kept by an LteEnbRrc instance
78
*/
79
virtual
LteHandoverManagementSapProvider
*
GetLteHandoverManagementSapProvider
() = 0;
80
81
protected
:
82
// inherited from Object
83
void
DoDispose
()
override
;
84
85
// HANDOVER MANAGEMENT SAP PROVIDER IMPLEMENTATION
86
87
/**
88
* @brief Implementation of LteHandoverManagementSapProvider::ReportUeMeas.
89
* @param rnti Radio Network Temporary Identity, an integer identifying the UE
90
* where the report originates from
91
* @param measResults a single report of one measurement identity
92
*/
93
virtual
void
DoReportUeMeas
(uint16_t rnti,
LteRrcSap::MeasResults
measResults) = 0;
94
95
};
// end of class LteHandoverAlgorithm
96
97
}
// end of namespace ns3
98
99
#endif
/* LTE_HANDOVER_ALGORITHM_H */
ns3::LteHandoverAlgorithm
The abstract base class of a handover algorithm that operates using the Handover Management SAP inter...
Definition
lte-handover-algorithm.h:55
ns3::LteHandoverAlgorithm::SetLteHandoverManagementSapUser
virtual void SetLteHandoverManagementSapUser(LteHandoverManagementSapUser *s)=0
Set the "user" part of the Handover Management SAP interface that this handover algorithm instance wi...
ns3::LteHandoverAlgorithm::DoDispose
void DoDispose() override
Destructor implementation.
Definition
lte-handover-algorithm.cc:37
ns3::LteHandoverAlgorithm::DoReportUeMeas
virtual void DoReportUeMeas(uint16_t rnti, LteRrcSap::MeasResults measResults)=0
Implementation of LteHandoverManagementSapProvider::ReportUeMeas.
ns3::LteHandoverAlgorithm::~LteHandoverAlgorithm
~LteHandoverAlgorithm() override
Definition
lte-handover-algorithm.cc:25
ns3::LteHandoverAlgorithm::LteHandoverAlgorithm
LteHandoverAlgorithm()
Definition
lte-handover-algorithm.cc:21
ns3::LteHandoverAlgorithm::GetTypeId
static TypeId GetTypeId()
Get the type ID.
Definition
lte-handover-algorithm.cc:30
ns3::LteHandoverAlgorithm::GetLteHandoverManagementSapProvider
virtual LteHandoverManagementSapProvider * GetLteHandoverManagementSapProvider()=0
Export the "provider" part of the Handover Management SAP interface.
ns3::LteHandoverManagementSapProvider
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance.
Definition
lte-handover-management-sap.h:27
ns3::LteHandoverManagementSapUser
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance.
Definition
lte-handover-management-sap.h:54
ns3::Object
A base class which provides memory management and object aggregation.
Definition
object.h:78
ns3::TypeId
a unique identifier for an interface.
Definition
type-id.h:48
lte-rrc-sap.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::LteRrcSap::MeasResults
MeasResults structure.
Definition
lte-rrc-sap.h:706
src
lte
model
lte-handover-algorithm.h
Generated on Thu Dec 12 2024 09:20:48 for ns-3 by
1.11.0