LEFT | RIGHT |
(no file at all) | |
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ | 1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
2 /* | 2 /* |
3 * Copyright (c) 2013 Budiarto Herman | 3 * Copyright (c) 2013 Budiarto Herman |
4 * | 4 * |
5 * This program is free software; you can redistribute it and/or modify | 5 * This program is free software; you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 2 as | 6 * it under the terms of the GNU General Public License version 2 as |
7 * published by the Free Software Foundation; | 7 * published by the Free Software Foundation; |
8 * | 8 * |
9 * This program is distributed in the hope that it will be useful, | 9 * This program is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 */ | 66 */ |
67 class LteHandoverManagementSapUser | 67 class LteHandoverManagementSapUser |
68 { | 68 { |
69 public: | 69 public: |
70 virtual ~LteHandoverManagementSapUser (); | 70 virtual ~LteHandoverManagementSapUser (); |
71 | 71 |
72 /** | 72 /** |
73 * \brief Request a certain reporting configuration to be fulfilled by the UEs | 73 * \brief Request a certain reporting configuration to be fulfilled by the UEs |
74 * attached to the eNodeB entity. | 74 * attached to the eNodeB entity. |
75 * \param reportConfig the UE measurement reporting configuration | 75 * \param reportConfig the UE measurement reporting configuration |
76 * \return the measurement identity associated with this newly added | 76 * \return the measurement identities associated with this newly added |
77 * reporting configuration | 77 * reporting configuration |
78 * | 78 * |
79 * The eNodeB RRC entity is expected to configure the same reporting | 79 * The eNodeB RRC entity is expected to configure the same reporting |
80 * configuration in each of the attached UEs. When later in the simulation a | 80 * configuration in each of the attached UEs. When later in the simulation a |
81 * UE measurement report is received from a UE as a result of this | 81 * UE measurement report is received from a UE as a result of this |
82 * configuration, the eNodeB RRC entity shall forward this report to the | 82 * configuration, the eNodeB RRC entity shall forward this report to the |
83 * handover algorithm through the LteHandoverManagementSapProvider::ReportUeMe
as | 83 * handover algorithm through the LteHandoverManagementSapProvider::ReportUeMe
as |
84 * SAP function. | 84 * SAP function. |
85 * | 85 * |
86 * \note This function is only valid before the simulation begins. | 86 * \note This function is only valid before the simulation begins. |
87 */ | 87 */ |
88 virtual uint8_t AddUeMeasReportConfigForHandover (LteRrcSap::ReportConfigEutra
reportConfig) = 0; | 88 virtual std::vector<uint8_t> AddUeMeasReportConfigForHandover (LteRrcSap::Repo
rtConfigEutra reportConfig) = 0; |
89 | 89 |
90 /** | 90 /** |
91 * \brief Instruct the eNodeB RRC entity to prepare a handover. | 91 * \brief Instruct the eNodeB RRC entity to prepare a handover. |
92 * \param rnti Radio Network Temporary Identity, an integer identifying the | 92 * \param rnti Radio Network Temporary Identity, an integer identifying the |
93 * UE which shall perform the handover | 93 * UE which shall perform the handover |
94 * \param targetCellId the cell ID of the target eNodeB | 94 * \param targetCellId the cell ID of the target eNodeB |
95 * | 95 * |
96 * This function is used by the handover algorithm entity when a handover | 96 * This function is used by the handover algorithm entity when a handover |
97 * decision has been reached. | 97 * decision has been reached. |
98 * | 98 * |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
158 { | 158 { |
159 public: | 159 public: |
160 /** | 160 /** |
161 * Constructor | 161 * Constructor |
162 * | 162 * |
163 * \param owner the owenr class | 163 * \param owner the owenr class |
164 */ | 164 */ |
165 MemberLteHandoverManagementSapUser (C* owner); | 165 MemberLteHandoverManagementSapUser (C* owner); |
166 | 166 |
167 // inherited from LteHandoverManagementSapUser | 167 // inherited from LteHandoverManagementSapUser |
168 virtual uint8_t AddUeMeasReportConfigForHandover (LteRrcSap::ReportConfigEutra
reportConfig); | 168 virtual std::vector<uint8_t> AddUeMeasReportConfigForHandover (LteRrcSap::Repo
rtConfigEutra reportConfig); |
169 virtual void TriggerHandover (uint16_t rnti, uint16_t targetCellId); | 169 virtual void TriggerHandover (uint16_t rnti, uint16_t targetCellId); |
170 | 170 |
171 private: | 171 private: |
172 MemberLteHandoverManagementSapUser (); | 172 MemberLteHandoverManagementSapUser (); |
173 C* m_owner; ///< the owner class | 173 C* m_owner; ///< the owner class |
174 | 174 |
175 }; // end of class MemberLteAnrSapUser | 175 }; // end of class MemberLteAnrSapUser |
176 | 176 |
177 | 177 |
178 template <class C> | 178 template <class C> |
179 MemberLteHandoverManagementSapUser<C>::MemberLteHandoverManagementSapUser (C* ow
ner) | 179 MemberLteHandoverManagementSapUser<C>::MemberLteHandoverManagementSapUser (C* ow
ner) |
180 : m_owner (owner) | 180 : m_owner (owner) |
181 { | 181 { |
182 } | 182 } |
183 | 183 |
184 | 184 |
185 template <class C> | 185 template <class C> |
186 uint8_t | 186 std::vector<uint8_t> |
187 MemberLteHandoverManagementSapUser<C>::AddUeMeasReportConfigForHandover (LteRrcS
ap::ReportConfigEutra reportConfig) | 187 MemberLteHandoverManagementSapUser<C>::AddUeMeasReportConfigForHandover (LteRrcS
ap::ReportConfigEutra reportConfig) |
188 { | 188 { |
189 return m_owner->DoAddUeMeasReportConfigForHandover (reportConfig); | 189 return m_owner->DoAddUeMeasReportConfigForHandover (reportConfig); |
190 } | 190 } |
191 | 191 |
192 | 192 |
193 template <class C> | 193 template <class C> |
194 void | 194 void |
195 MemberLteHandoverManagementSapUser<C>::TriggerHandover (uint16_t rnti, uint16_t
targetCellId) | 195 MemberLteHandoverManagementSapUser<C>::TriggerHandover (uint16_t rnti, uint16_t
targetCellId) |
196 { | 196 { |
197 return m_owner->DoTriggerHandover (rnti, targetCellId); | 197 return m_owner->DoTriggerHandover (rnti, targetCellId); |
198 } | 198 } |
199 | 199 |
200 | 200 |
201 } // end of namespace ns3 | 201 } // end of namespace ns3 |
202 | 202 |
203 | 203 |
204 #endif /* LTE_HANDOVER_MANAGEMENT_SAP_H */ | 204 #endif /* LTE_HANDOVER_MANAGEMENT_SAP_H */ |
LEFT | RIGHT |