author | Manuel Requena <manuel.requena@cttc.es> |
Tue, 27 Nov 2012 19:00:38 +0100 | |
changeset 9435 | a60d3218e8f4 |
parent 9418 | 150d133b96af |
child 9436 | 3cc0554d7bf1 |
child 9456 | 3102416ce9d7 |
permissions | -rw-r--r-- |
7886 | 1 |
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
2 |
/* |
|
9406 | 3 |
* Copyright (c) 2011, 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC) |
7886 | 4 |
* |
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 |
|
7 |
* published by the Free Software Foundation; |
|
8 |
* |
|
9 |
* This program is distributed in the hope that it will be useful, |
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU General Public License for more details. |
|
13 |
* |
|
14 |
* You should have received a copy of the GNU General Public License |
|
15 |
* along with this program; if not, write to the Free Software |
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
17 |
* |
|
9346 | 18 |
* Authors: Nicola Baldo <nbaldo@cttc.es> |
19 |
* Marco Miozzo <mmiozzo@cttc.es> |
|
20 |
* Manuel Requena <manuel.requena@cttc.es> |
|
7886 | 21 |
*/ |
22 |
||
23 |
#ifndef LTE_ENB_RRC_H |
|
24 |
#define LTE_ENB_RRC_H |
|
25 |
||
9406 | 26 |
#include <ns3/nstime.h> |
27 |
#include <ns3/object.h> |
|
28 |
#include <ns3/packet.h> |
|
29 |
#include <ns3/lte-enb-cmac-sap.h> |
|
30 |
#include <ns3/lte-mac-sap.h> |
|
31 |
#include <ns3/ff-mac-sched-sap.h> |
|
32 |
#include <ns3/lte-pdcp-sap.h> |
|
33 |
#include <ns3/epc-x2-sap.h> |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
34 |
#include <ns3/epc-enb-s1-sap.h> |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
35 |
#include <ns3/lte-enb-cphy-sap.h> |
9406 | 36 |
#include <ns3/lte-rrc-sap.h> |
37 |
#include <ns3/traced-callback.h> |
|
7886 | 38 |
|
39 |
#include <map> |
|
9036 | 40 |
#include <set> |
7886 | 41 |
|
42 |
namespace ns3 { |
|
43 |
||
8389
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
44 |
class LteRadioBearerInfo; |
9406 | 45 |
class LteSignalingRadioBearerInfo; |
46 |
class LteDataRadioBearerInfo; |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
47 |
class EpcEnbS1SapUser; |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
48 |
class EpcEnbS1SapProvider; |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
49 |
class LteUeRrc; |
9406 | 50 |
class LteEnbRrc; |
8007 | 51 |
|
52 |
/** |
|
53 |
* Manages all the radio bearer information possessed by the ENB RRC for a single UE |
|
54 |
* |
|
55 |
*/ |
|
9406 | 56 |
class UeManager : public Object |
8007 | 57 |
{ |
9406 | 58 |
friend class LtePdcpSpecificLtePdcpSapUser<UeManager>; |
59 |
||
8007 | 60 |
public: |
61 |
||
62 |
||
63 |
/** |
|
9406 | 64 |
* The state of the UeManager at the eNB RRC |
65 |
* |
|
66 |
*/ |
|
67 |
enum State |
|
68 |
{ |
|
69 |
INITIAL_RANDOM_ACCESS = 0, |
|
70 |
CONNECTION_SETUP, |
|
71 |
CONNECTED_NORMALLY, |
|
72 |
CONNECTION_RECONFIGURATION, |
|
73 |
CONNECTION_REESTABLISHMENT, |
|
74 |
HANDOVER_JOINING, |
|
75 |
HANDOVER_LEAVING, |
|
76 |
NUM_STATES |
|
77 |
}; |
|
78 |
||
79 |
UeManager (); |
|
80 |
||
81 |
/** |
|
82 |
* UeManager constructor |
|
83 |
* |
|
84 |
* \param rrc pointer to the LteEnbRrc holding this UeManager |
|
85 |
* \param rnti RNTI of the UE |
|
86 |
* \param s initial state of the UeManager |
|
87 |
* |
|
88 |
* \return |
|
89 |
*/ |
|
90 |
UeManager (Ptr<LteEnbRrc> rrc, uint16_t rnti, State s); |
|
91 |
||
92 |
virtual ~UeManager (void); |
|
93 |
||
94 |
// inherited from Object |
|
95 |
protected: |
|
96 |
virtual void DoDispose (); |
|
97 |
public: |
|
98 |
static TypeId GetTypeId (void); |
|
99 |
||
9407 | 100 |
/** |
101 |
* Set the identifiers of the source eNB for the case where a UE |
|
102 |
* joins the current eNB as part of a handover procedure |
|
103 |
* |
|
104 |
* \param sourceCellId |
|
105 |
* \param sourceX2apId |
|
106 |
*/ |
|
107 |
void SetSource (uint16_t sourceCellId, uint16_t sourceX2apId); |
|
9406 | 108 |
|
109 |
/** |
|
110 |
* Setup a new data radio bearer, including both the configuration |
|
111 |
* within the eNB and the necessary RRC signaling with the UE |
|
112 |
* |
|
113 |
* \param bearer |
|
9408
80fa1de0bef2
implemented UeManager::GetErabList ()
Nicola Baldo <nbaldo@cttc.es>
parents:
9407
diff
changeset
|
114 |
* \param gtpTeid S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1 |
80fa1de0bef2
implemented UeManager::GetErabList ()
Nicola Baldo <nbaldo@cttc.es>
parents:
9407
diff
changeset
|
115 |
* \param transportLayerAddress IP Address of the SGW, see 36.423 9.2.1 |
9406 | 116 |
* |
117 |
* \return the EPS Bearer Id |
|
118 |
*/ |
|
9408
80fa1de0bef2
implemented UeManager::GetErabList ()
Nicola Baldo <nbaldo@cttc.es>
parents:
9407
diff
changeset
|
119 |
uint8_t SetupDataRadioBearer (EpsBearer bearer, uint32_t gtpTeid, Ipv4Address transportLayerAddress); |
9406 | 120 |
|
121 |
/** |
|
8007 | 122 |
* |
9406 | 123 |
* Release a given radio bearer |
124 |
* |
|
125 |
* \param drbid the data radio bearer id of the bearer to be released |
|
126 |
*/ |
|
127 |
void ReleaseDataRadioBearer (uint8_t drbid); |
|
128 |
||
129 |
/** |
|
130 |
* schedule an RRC Connection Reconfiguration procedure with the UE |
|
131 |
* |
|
8007 | 132 |
*/ |
9406 | 133 |
void ScheduleRrcConnectionReconfiguration (); |
134 |
||
135 |
/** |
|
136 |
* In the X2-based handover procedure, at the source eNB, trigger |
|
137 |
* handover by sending to the UE a RRC Connection |
|
138 |
* Reconfiguration message including Mobility Control Info |
|
139 |
* |
|
140 |
* \param rcr the RrcConnectionReconfiguration message including the |
|
141 |
* Mobility Control Info. The content of this struct shall be |
|
142 |
* provided by the target eNB. |
|
143 |
*/ |
|
144 |
void SendHandoverCommand (LteRrcSap::RrcConnectionReconfiguration rcr); |
|
145 |
||
146 |
/** |
|
147 |
* |
|
148 |
* \return the HandoverPreparationInfo sent by the source eNB to the |
|
149 |
* target eNB in the X2-based handover procedure |
|
150 |
*/ |
|
151 |
LteRrcSap::RadioResourceConfigDedicated GetRadioResourceConfigForHandoverPreparationInfo (); |
|
8007 | 152 |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
153 |
/** |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
154 |
* |
9406 | 155 |
* \return retrieve the data that the target eNB needs to send to the source |
156 |
* eNB as the Handover Command in the X2-based handover |
|
157 |
* procedure. |
|
158 |
*/ |
|
159 |
LteRrcSap::RrcConnectionReconfiguration GetHandoverCommand (); |
|
160 |
||
161 |
/** |
|
162 |
* Send a data packet over the appropriate Data Radio Bearer |
|
163 |
* |
|
164 |
* \param bid the corresponding EPS Bearer ID |
|
165 |
* \param p the packet |
|
166 |
*/ |
|
167 |
void SendData (uint8_t bid, Ptr<Packet> p); |
|
168 |
||
169 |
/** |
|
170 |
* |
|
171 |
* \return a list of ERAB-to-be-setup items to be put in a X2 HO REQ message |
|
172 |
*/ |
|
173 |
std::vector<EpcX2Sap::ErabToBeSetupItem> GetErabList (); |
|
174 |
||
175 |
||
176 |
// methods forwarded from RRC SAP |
|
177 |
void CompleteSetupUe (LteEnbRrcSapProvider::CompleteSetupUeParameters params); |
|
178 |
void RecvRrcConnectionRequest (LteRrcSap::RrcConnectionRequest msg); |
|
179 |
void RecvRrcConnectionSetupCompleted (LteRrcSap::RrcConnectionSetupCompleted msg); |
|
180 |
void RecvRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionReconfigurationCompleted msg); |
|
181 |
void RecvRrcConnectionReestablishmentRequest (LteRrcSap::RrcConnectionReestablishmentRequest msg); |
|
182 |
void RecvRrcConnectionReestablishmentComplete (LteRrcSap::RrcConnectionReestablishmentComplete msg); |
|
183 |
||
184 |
||
185 |
// methods forwarded from CMAC SAP |
|
186 |
void CmacUeConfigUpdateInd (LteEnbCmacSapUser::UeConfig cmacParams); |
|
187 |
||
188 |
||
189 |
// methods forwarded from PDCP SAP |
|
190 |
void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params); |
|
191 |
||
192 |
/** |
|
193 |
* |
|
194 |
* \return the RNTI, i.e., an UE identifier that is unique within |
|
195 |
* the cell |
|
196 |
*/ |
|
197 |
uint16_t GetRnti (void); |
|
198 |
||
199 |
/** |
|
200 |
* |
|
201 |
* \return the IMSI, i.e., a globally unique UE identifier |
|
202 |
*/ |
|
203 |
uint64_t GetImsi (void); |
|
204 |
||
205 |
/** |
|
206 |
* |
|
207 |
* \return the SRS Configuration Index |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
208 |
*/ |
9406 | 209 |
uint16_t GetSrsConfigurationIndex (void); |
210 |
||
211 |
/** |
|
212 |
* Set the SRS configuration index and do the necessary reconfiguration |
|
213 |
* |
|
214 |
* \param srsConfIndex |
|
215 |
*/ |
|
216 |
void SetSrsConfigurationIndex (uint16_t srsConfIndex); |
|
217 |
||
218 |
/** |
|
219 |
* |
|
220 |
* \return the current state |
|
221 |
*/ |
|
222 |
State GetState (); |
|
223 |
||
224 |
||
225 |
private: |
|
226 |
||
227 |
/** |
|
228 |
* Add a new LteDataRadioBearerInfo structure to the UeManager |
|
229 |
* |
|
230 |
* \param radioBearerInfo |
|
231 |
* |
|
232 |
* \return the id of the newly added data radio bearer structure |
|
233 |
*/ |
|
234 |
uint8_t AddDataRadioBearerInfo (Ptr<LteDataRadioBearerInfo> radioBearerInfo); |
|
235 |
||
236 |
/** |
|
237 |
* \param drbid the Data Radio Bearer id |
|
238 |
* |
|
239 |
* \return the corresponding LteDataRadioBearerInfo |
|
240 |
*/ |
|
241 |
Ptr<LteDataRadioBearerInfo> GetDataRadioBearerInfo (uint8_t drbid); |
|
242 |
||
243 |
/** |
|
244 |
* remove the LteDataRadioBearerInfo corresponding to a bearer being released |
|
245 |
* |
|
246 |
* \param drbid the Data Radio Bearer id |
|
247 |
*/ |
|
248 |
void RemoveDataRadioBearerInfo (uint8_t drbid); |
|
249 |
||
250 |
/** |
|
251 |
* |
|
252 |
* \return an RrcConnectionReconfiguration struct built based on the |
|
253 |
* current configuration |
|
254 |
*/ |
|
255 |
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration (); |
|
256 |
||
257 |
/** |
|
258 |
* |
|
259 |
* \return a RadioResourceConfigDedicated struct built based on the |
|
260 |
* current configuration |
|
261 |
*/ |
|
262 |
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated (); |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
263 |
|
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
264 |
|
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
265 |
/** |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
266 |
* |
9406 | 267 |
* \return a newly allocated identifier for a new RRC transaction |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
268 |
*/ |
9406 | 269 |
uint8_t GetNewRrcTransactionIdentifier (); |
270 |
||
271 |
/** |
|
272 |
* \param lcid a Logical Channel Identifier |
|
273 |
* |
|
274 |
* \return the corresponding Data Radio Bearer Id |
|
275 |
*/ |
|
276 |
uint8_t Lcid2Drbid (uint8_t lcid); |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
277 |
|
9406 | 278 |
/** |
279 |
* \param drbid a Data Radio Bearer Id |
|
280 |
* |
|
281 |
* \return the corresponding Logical Channel Identifier |
|
282 |
*/ |
|
283 |
uint8_t Drbid2Lcid (uint8_t drbid); |
|
9346 | 284 |
|
9406 | 285 |
/** |
286 |
* \param lcid a Logical Channel Identifier |
|
287 |
* |
|
288 |
* \return the corresponding EPS Bearer Identifier |
|
289 |
*/ |
|
290 |
uint8_t Lcid2Bid (uint8_t lcid); |
|
8007 | 291 |
|
9406 | 292 |
/** |
293 |
* \param bid an EPS Bearer Identifier |
|
294 |
* |
|
295 |
* \return the corresponding Logical Channel Identifier |
|
296 |
*/ |
|
297 |
uint8_t Bid2Lcid (uint8_t bid); |
|
8007 | 298 |
|
9406 | 299 |
/** |
300 |
* \param drbid Data Radio Bearer Id |
|
301 |
* |
|
302 |
* \return the corresponding EPS Bearer Identifier |
|
303 |
*/ |
|
304 |
uint8_t Drbid2Bid (uint8_t drbid); |
|
8007 | 305 |
|
9406 | 306 |
/** |
307 |
* \param bid an EPS Bearer Identifier |
|
308 |
* |
|
309 |
* \return the corresponding Data Radio Bearer Id |
|
310 |
*/ |
|
311 |
uint8_t Bid2Drbid (uint8_t bid); |
|
312 |
||
313 |
/** |
|
314 |
* Switch the UeManager to the given state |
|
315 |
* |
|
316 |
* \param s the given state |
|
317 |
*/ |
|
318 |
void SwitchToState (State s); |
|
9346 | 319 |
|
320 |
||
9406 | 321 |
std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap; |
322 |
Ptr<LteSignalingRadioBearerInfo> m_srb0; |
|
323 |
Ptr<LteSignalingRadioBearerInfo> m_srb1; |
|
324 |
uint8_t m_lastAllocatedDrbid; |
|
325 |
uint16_t m_rnti; |
|
8007 | 326 |
uint64_t m_imsi; |
9406 | 327 |
uint8_t m_lastRrcTransactionIdentifier; |
328 |
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated; |
|
329 |
Ptr<LteEnbRrc> m_rrc; |
|
330 |
State m_state; |
|
331 |
LtePdcpSapUser* m_pdcpSapUser; |
|
332 |
bool m_pendingRrcConnectionReconfiguration; |
|
333 |
TracedCallback<State, State> m_stateTransitionCallback; |
|
9407 | 334 |
uint16_t m_sourceX2apId; |
335 |
uint16_t m_sourceCellId; |
|
8007 | 336 |
}; |
337 |
||
7886 | 338 |
|
339 |
/** |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
340 |
* \ingroup lte |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
341 |
* |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
342 |
* The LTE Radio Resource Control entity at the eNB |
7886 | 343 |
*/ |
344 |
class LteEnbRrc : public Object |
|
345 |
{ |
|
346 |
||
7888 | 347 |
friend class EnbRrcMemberLteEnbCmacSapUser; |
9406 | 348 |
friend class MemberLteEnbRrcSapProvider<LteEnbRrc>; |
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
349 |
friend class MemberEpcEnbS1SapUser<LteEnbRrc>; |
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
350 |
friend class EpcX2SpecificEpcX2SapUser<LteEnbRrc>; |
9406 | 351 |
friend class UeManager; |
7886 | 352 |
|
353 |
public: |
|
354 |
/** |
|
355 |
* create an RRC instance for use within an eNB |
|
356 |
* |
|
357 |
*/ |
|
358 |
LteEnbRrc (); |
|
359 |
||
360 |
/** |
|
361 |
* Destructor |
|
362 |
*/ |
|
363 |
virtual ~LteEnbRrc (); |
|
364 |
||
365 |
||
366 |
// inherited from Object |
|
9406 | 367 |
protected: |
7886 | 368 |
virtual void DoDispose (void); |
9406 | 369 |
public: |
7886 | 370 |
static TypeId GetTypeId (void); |
371 |
||
372 |
||
373 |
/** |
|
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
374 |
* Set the X2 SAP this RRC should interact with |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
375 |
* \param s the X2 SAP Provider to be used by this RRC entity |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
376 |
*/ |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
377 |
void SetEpcX2SapProvider (EpcX2SapProvider* s); |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
378 |
|
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
379 |
/** |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
380 |
* Get the X2 SAP offered by this RRC |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
381 |
* \return s the X2 SAP User interface offered to the X2 entity by this RRC entity |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
382 |
*/ |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
383 |
EpcX2SapUser* GetEpcX2SapUser (); |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
384 |
|
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
385 |
|
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
386 |
/** |
7886 | 387 |
* set the CMAC SAP this RRC should interact with |
388 |
* |
|
389 |
* \param s the CMAC SAP Provider to be used by this RRC |
|
390 |
*/ |
|
391 |
void SetLteEnbCmacSapProvider (LteEnbCmacSapProvider * s); |
|
392 |
||
7901
2451f71f1ce4
Added attributes to enable access to RLC instances in Enb
jnin
parents:
7888
diff
changeset
|
393 |
/** |
8389
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
394 |
* Get the CMAC SAP offered by this RRC |
7886 | 395 |
* \return s the CMAC SAP User interface offered to the MAC by this RRC |
396 |
*/ |
|
397 |
LteEnbCmacSapUser* GetLteEnbCmacSapUser (); |
|
398 |
||
399 |
||
400 |
/** |
|
9406 | 401 |
* set the RRC SAP this RRC should interact with |
7886 | 402 |
* |
9406 | 403 |
* \param s the RRC SAP User to be used by this RRC |
7886 | 404 |
*/ |
9406 | 405 |
void SetLteEnbRrcSapUser (LteEnbRrcSapUser * s); |
7886 | 406 |
|
9406 | 407 |
/** |
408 |
* |
|
409 |
* |
|
410 |
* \return s the RRC SAP Provider interface offered to the MAC by this RRC |
|
411 |
*/ |
|
412 |
LteEnbRrcSapProvider* GetLteEnbRrcSapProvider (); |
|
7886 | 413 |
|
414 |
/** |
|
415 |
* set the MAC SAP provider. The eNB RRC does not use this |
|
416 |
* directly, but it needs to provide it to newly created RLC instances. |
|
417 |
* |
|
418 |
* \param s the MAC SAP provider that will be used by all |
|
419 |
* newly created RLC instances |
|
420 |
*/ |
|
421 |
void SetLteMacSapProvider (LteMacSapProvider* s); |
|
422 |
||
423 |
||
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
424 |
/** |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
425 |
* Set the S1 SAP Provider |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
426 |
* |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
427 |
* \param s the S1 SAP Provider |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
428 |
*/ |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
429 |
void SetS1SapProvider (EpcEnbS1SapProvider * s); |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
430 |
|
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
431 |
/** |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
432 |
* |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
433 |
* \return the S1 SAP user |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
434 |
*/ |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
435 |
EpcEnbS1SapUser* GetS1SapUser (); |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
436 |
|
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
437 |
|
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
438 |
/** |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
439 |
* set the CPHY SAP this RRC should use to interact with the PHY |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
440 |
* |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
441 |
* \param s the CPHY SAP Provider |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
442 |
*/ |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
443 |
void SetLteEnbCphySapProvider (LteEnbCphySapProvider * s); |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
444 |
|
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
445 |
/** |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
446 |
* |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
447 |
* |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
448 |
* \return s the CPHY SAP User interface offered to the PHY by this RRC |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
449 |
*/ |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
450 |
LteEnbCphySapUser* GetLteEnbCphySapUser (); |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
451 |
|
9406 | 452 |
/** |
453 |
* |
|
454 |
* |
|
455 |
* \param rnti the identifier of an UE |
|
456 |
* |
|
457 |
* \return the corresponding UeManager instance |
|
458 |
*/ |
|
459 |
Ptr<UeManager> GetUeManager (uint16_t rnti); |
|
8389
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
460 |
|
7886 | 461 |
/** |
462 |
* configure cell-specific parameters |
|
463 |
* |
|
464 |
* \param ulBandwidth the uplink bandwdith in number of RB |
|
465 |
* \param dlBandwidth the downlink bandwidth in number of RB |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
466 |
* \param ulEarfcn the UL EARFCN |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
467 |
* \param dlEarfcn the DL EARFCN |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
468 |
* \param cellId the ID of the cell |
7886 | 469 |
*/ |
470 |
void ConfigureCell (uint8_t ulBandwidth, |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
471 |
uint8_t dlBandwidth, |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
472 |
uint16_t ulEarfcn, |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
473 |
uint16_t dlEarfcn, |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
474 |
uint16_t cellId); |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
475 |
|
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
476 |
/** |
9406 | 477 |
* set the cell id of this eNB |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
478 |
* |
9406 | 479 |
* \param m_cellId |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
480 |
*/ |
9036 | 481 |
void SetCellId (uint16_t m_cellId); |
7886 | 482 |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
483 |
/** |
9406 | 484 |
* Enqueue an IP data packet on the proper bearer for downlink |
485 |
* transmission. Normally expected to be called by the NetDevice |
|
486 |
* forwarding a packet coming from the EpcEnbApplication |
|
8389
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
487 |
* |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
488 |
* \param p the packet |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
489 |
* |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
490 |
* \return true if successful, false if an error occurred |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
491 |
*/ |
9406 | 492 |
bool SendData (Ptr<Packet> p); |
8389
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
493 |
|
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
494 |
/** |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
495 |
* set the callback used to forward data packets up the stack |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
496 |
* |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
497 |
* \param void |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
498 |
* \param cb |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
499 |
*/ |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
500 |
void SetForwardUpCallback (Callback <void, Ptr<Packet> > cb); |
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
501 |
|
9038
e1d67c8aa95b
Polish code according to codereview
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9036
diff
changeset
|
502 |
/** |
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
503 |
* Send a HandoverRequest through the X2 SAP interface |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
504 |
* |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
505 |
* This method will trigger a handover which is started by the RRC |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
506 |
* by sending a handover request to the target eNB over the X2 |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
507 |
* interface |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
508 |
* |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
509 |
* \param imsi the id of the UE to be handed over |
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
510 |
* \param cellId the id of the target eNB |
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
511 |
*/ |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
512 |
void SendHandoverRequest (uint16_t rnti, uint16_t cellId); |
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
513 |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
514 |
/** |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
515 |
* Identifies how EPS Bearer parameters are mapped to different RLC types |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
516 |
* |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
517 |
*/ |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
518 |
enum LteEpsBearerToRlcMapping_t {RLC_SM_ALWAYS = 1, |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
519 |
RLC_UM_ALWAYS = 2, |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
520 |
RLC_AM_ALWAYS = 3, |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
521 |
PER_BASED = 4}; |
7886 | 522 |
private: |
8389
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
523 |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
524 |
|
9406 | 525 |
// methods forwarded from RRC SAP |
526 |
||
527 |
void DoCompleteSetupUe (uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params); |
|
528 |
void DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg); |
|
529 |
void DoRecvRrcConnectionSetupCompleted (uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg); |
|
530 |
void DoRecvRrcConnectionReconfigurationCompleted (uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg); |
|
531 |
void DoRecvRrcConnectionReestablishmentRequest (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg); |
|
532 |
void DoRecvRrcConnectionReestablishmentComplete (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg); |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
533 |
|
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
534 |
|
9406 | 535 |
// S1 SAP methods |
536 |
void DoDataRadioBearerSetupRequest (EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params); |
|
537 |
||
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
538 |
|
9405
ec9b557065cc
Add UE Context Release primitive to X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
9346
diff
changeset
|
539 |
// X2 SAP methods |
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
540 |
void DoRecvHandoverRequest (EpcX2SapUser::HandoverRequestParams params); |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
541 |
void DoRecvHandoverRequestAck (EpcX2SapUser::HandoverRequestAckParams params); |
9405
ec9b557065cc
Add UE Context Release primitive to X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
9346
diff
changeset
|
542 |
void DoRecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params); |
9418
150d133b96af
Add support of Load Information primitive in RRC
Manuel Requena <manuel.requena@cttc.es>
parents:
9408
diff
changeset
|
543 |
void DoRecvLoadInformation (EpcX2SapUser::LoadInformationParams params); |
9435
a60d3218e8f4
Add support of ResourceStatusUpdate X2 primitive in RRC
Manuel Requena <manuel.requena@cttc.es>
parents:
9418
diff
changeset
|
544 |
void DoRecvResourceStatusUpdate (EpcX2SapUser::ResourceStatusUpdateParams params); |
a60d3218e8f4
Add support of ResourceStatusUpdate X2 primitive in RRC
Manuel Requena <manuel.requena@cttc.es>
parents:
9418
diff
changeset
|
545 |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
546 |
|
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
547 |
// CMAC SAP methods |
9406 | 548 |
uint16_t DoAllocateTemporaryCellRnti (); |
549 |
void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success); |
|
9346 | 550 |
void DoRrcConfigurationUpdateInd (LteEnbCmacSapUser::UeConfig params); |
9406 | 551 |
|
552 |
||
553 |
||
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
554 |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
555 |
/** |
9346 | 556 |
* Allocate a new RNTI for a new UE. This is done in the following cases: |
557 |
* * T-C-RNTI allocation upon contention-based MAC Random Access procedure |
|
558 |
* * target cell RNTI allocation upon handover |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
559 |
* |
9406 | 560 |
* \param state the initial state of the UeManager |
561 |
* |
|
9346 | 562 |
* \return the newly allocated RNTI |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
563 |
*/ |
9406 | 564 |
uint16_t AddUe (UeManager::State state); |
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
565 |
|
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
566 |
/** |
9406 | 567 |
* remove a UE from the cell |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
568 |
* |
9406 | 569 |
* \param rnti the C-RNTI identiftying the user |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
570 |
*/ |
9406 | 571 |
void RemoveUe (uint16_t rnti); |
9346 | 572 |
|
7886 | 573 |
|
9406 | 574 |
/** |
575 |
* |
|
576 |
* \param bearer the specification of an EPS bearer |
|
577 |
* |
|
578 |
* \return the type of RLC that is to be created for the given EPS bearer |
|
579 |
*/ |
|
580 |
TypeId GetRlcType (EpsBearer bearer); |
|
7886 | 581 |
|
9406 | 582 |
/** |
583 |
* Allocate a new SRS configuration index for a new UE. |
|
584 |
* |
|
585 |
* \note this method can have the side effect of updating the SRS |
|
586 |
* configuration index of all UEs |
|
587 |
* |
|
588 |
* \return the newly allocated SRS configuration index |
|
589 |
*/ |
|
9036 | 590 |
uint16_t GetNewSrsConfigurationIndex (void); |
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
591 |
|
9406 | 592 |
/** |
593 |
* remove a previously allocated SRS configuration index |
|
594 |
* |
|
595 |
* \note this method can have the side effect of updating the SRS |
|
596 |
* configuration index of all UEs |
|
597 |
* |
|
598 |
* \param srcCi the indext to be removed |
|
599 |
*/ |
|
9038
e1d67c8aa95b
Polish code according to codereview
Marco Miozzo <marco.miozzo@cttc.es>
parents:
9036
diff
changeset
|
600 |
void RemoveSrsConfigurationIndex (uint16_t srcCi); |
7886 | 601 |
|
9406 | 602 |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
603 |
|
9406 | 604 |
/** |
605 |
* |
|
606 |
* \param bearer the characteristics of the bearer |
|
607 |
* |
|
608 |
* \return the Logical Channel Group in a bearer with these |
|
609 |
* characteristics is put. Used for MAC Buffer Status Reporting purposes. |
|
610 |
*/ |
|
611 |
uint8_t GetLogicalChannelGroup (EpsBearer bearer); |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
612 |
|
9406 | 613 |
/** |
614 |
* |
|
615 |
* \param bearer the characteristics of the bearer |
|
616 |
* |
|
617 |
* \return the priority level of a bearer with these |
|
618 |
* characteristics is put. Used for the part of UL MAC Scheduling |
|
619 |
* carried out by the UE |
|
620 |
*/ |
|
621 |
uint8_t GetLogicalChannelPriority (EpsBearer bearer); |
|
9346 | 622 |
|
7886 | 623 |
|
9406 | 624 |
/** |
625 |
* method used to periodically send System Information |
|
626 |
* |
|
627 |
*/ |
|
628 |
void SendSystemInformation (); |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
629 |
|
8389
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
630 |
Callback <void, Ptr<Packet> > m_forwardUpCallback; |
cb215987eb77
LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents:
8152
diff
changeset
|
631 |
|
9323
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
632 |
EpcX2SapUser* m_x2SapUser; |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
633 |
EpcX2SapProvider* m_x2SapProvider; |
c4c734a16f4f
Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents:
8714
diff
changeset
|
634 |
|
7886 | 635 |
LteEnbCmacSapUser* m_cmacSapUser; |
636 |
LteEnbCmacSapProvider* m_cmacSapProvider; |
|
637 |
||
9406 | 638 |
LteEnbRrcSapUser* m_rrcSapUser; |
639 |
LteEnbRrcSapProvider* m_rrcSapProvider; |
|
640 |
||
7886 | 641 |
LteMacSapProvider* m_macSapProvider; |
642 |
||
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
643 |
EpcEnbS1SapProvider* m_s1SapProvider; |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
644 |
EpcEnbS1SapUser* m_s1SapUser; |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
645 |
|
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
646 |
LteEnbCphySapUser* m_cphySapUser; |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
647 |
LteEnbCphySapProvider* m_cphySapProvider; |
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
648 |
|
7886 | 649 |
bool m_configured; |
9345
8290ae6cab62
add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents:
9338
diff
changeset
|
650 |
uint16_t m_cellId; |
9406 | 651 |
uint16_t m_dlEarfcn; |
652 |
uint16_t m_ulEarfcn; |
|
653 |
uint16_t m_dlBandwidth; |
|
654 |
uint16_t m_ulBandwidth; |
|
7886 | 655 |
uint16_t m_lastAllocatedRnti; |
656 |
||
9406 | 657 |
std::map<uint16_t, Ptr<UeManager> > m_ueMap; |
8714
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8389
diff
changeset
|
658 |
|
398bbcbb3f42
Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents:
8389
diff
changeset
|
659 |
uint8_t m_defaultTransmissionMode; |
7886 | 660 |
|
9337
ae7126b266ce
revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents:
8714
diff
changeset
|
661 |
enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping; |
9406 | 662 |
|
663 |
Time m_systemInformationPeriodicity; |
|
9036 | 664 |
|
665 |
// SRS related attributes |
|
666 |
uint16_t m_srsCurrentPeriodicityId; |
|
667 |
std::set<uint16_t> m_ueSrsConfigurationIndexSet; |
|
668 |
uint16_t m_lastAllocatedConfigurationIndex; |
|
669 |
bool m_reconfigureUes; |
|
7886 | 670 |
|
671 |
}; |
|
672 |
||
673 |
||
674 |
} // namespace ns3 |
|
675 |
||
676 |
#endif // LTE_ENB_RRC_H |