A Discrete-Event Network Simulator
API
lte-ue-rrc.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 * Copyright (c) 2018 Fraunhofer ESK : RLF extensions
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 *
18 * Author: Nicola Baldo <nbaldo@cttc.es>
19 * Budiarto Herman <budiarto.herman@magister.fi>
20 * Modified by:
21 * Danilo Abrignani <danilo.abrignani@unibo.it> (Carrier Aggregation - GSoC 2015)
22 * Biljana Bojovic <biljana.bojovic@cttc.es> (Carrier Aggregation)
23 * Vignesh Babu <ns3-dev@esk.fraunhofer.de> (RLF extensions)
24 */
25
26#ifndef LTE_UE_RRC_H
27#define LTE_UE_RRC_H
28
29#include "ns3/component-carrier-ue.h"
30#include <ns3/lte-as-sap.h>
31#include <ns3/lte-pdcp-sap.h>
32#include <ns3/lte-rrc-sap.h>
33#include <ns3/lte-ue-ccm-rrc-sap.h>
34#include <ns3/lte-ue-cmac-sap.h>
35#include <ns3/lte-ue-cphy-sap.h>
36#include <ns3/object.h>
37#include <ns3/packet.h>
38#include <ns3/traced-callback.h>
39
40#include <map>
41#include <set>
42#include <vector>
43
44#define MIN_NO_CC 1
45#define MAX_NO_CC 5 // this is the maximum number of carrier components allowed by 3GPP up to R13
46
47namespace ns3
48{
49
67
68class LteRlc;
74
79class LteUeRrc : public Object
80{
88 friend class MemberLteAsSapProvider<LteUeRrc>;
90 friend class MemberLteUeCphySapUser<LteUeRrc>;
95
96 public:
101 enum State
102 {
117 };
118
123 LteUeRrc();
124
128 ~LteUeRrc() override;
129
130 // inherited from Object
131 private:
132 void DoInitialize() override;
133 void DoDispose() override;
134
135 public:
140 static TypeId GetTypeId();
141
143 void InitializeSap();
144
157 void SetLteUeCphySapProvider(LteUeCphySapProvider* s, uint8_t index);
158
171
184 void SetLteUeCmacSapProvider(LteUeCmacSapProvider* s, uint8_t index);
185
197
204
211
220
226 void SetAsSapUser(LteAsSapUser* s);
227
234
241
248
253 void SetImsi(uint64_t imsi);
254
260 void StorePreviousCellId(uint16_t cellId);
261
266 uint64_t GetImsi() const;
267
272 uint16_t GetRnti() const;
273
278 uint16_t GetCellId() const;
279
284 bool IsServingCell(uint16_t cellId) const;
285
289 uint8_t GetUlBandwidth() const;
290
294 uint8_t GetDlBandwidth() const;
295
299 uint32_t GetDlEarfcn() const;
300
304 uint32_t GetUlEarfcn() const;
305
310 State GetState() const;
311
317 uint16_t GetPreviousCellId() const;
318
324 void SetUseRlcSm(bool val);
325
330 static const std::string ToString(LteUeRrc::State s);
331
338 typedef void (*CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId);
339
347 typedef void (*ImsiCidRntiTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti);
348
358 typedef void (*MibSibHandoverTracedCallback)(uint64_t imsi,
359 uint16_t cellId,
360 uint16_t rnti,
361 uint16_t otherCid);
362
372 typedef void (*StateTracedCallback)(uint64_t imsi,
373 uint16_t cellId,
374 uint16_t rnti,
375 State oldState,
376 State newState);
377
385 std::list<LteRrcSap::SCellToAddMod>);
386
397 typedef void (*PhySyncDetectionTracedCallback)(uint64_t imsi,
398 uint16_t rnti,
399 uint16_t cellId,
400 std::string type,
401 uint16_t count);
402
412 typedef void (*ImsiCidRntiCountTracedCallback)(uint64_t imsi,
413 uint16_t cellId,
414 uint16_t rnti,
415 uint8_t count);
416
417 private:
418 // PDCP SAP methods
425
426 // CMAC SAP methods
432 void DoSetTemporaryCellRnti(uint16_t rnti);
437
438 // LTE AS SAP methods
444 void DoSetCsgWhiteList(uint32_t csgId);
451 void DoForceCampedOnEnb(uint16_t cellId, uint32_t dlEarfcn);
457 void DoStartCellSelection(uint32_t dlEarfcn);
459 void DoConnect();
466 void DoSendData(Ptr<Packet> packet, uint8_t bid);
468 void DoDisconnect();
469
470 // CPHY SAP methods
484 void DoRecvSystemInformationBlockType1(uint16_t cellId,
492
493 // RRC SAP methods
494
542
547 void DoSetNumberOfComponentCarriers(uint16_t noOfComponentCarriers);
548
549 // INTERNAL METHODS
550
559
578
633
657 void SaveUeMeasurements(uint16_t cellId,
658 double rsrp,
659 double rsrq,
660 bool useLayer3Filtering,
661 uint8_t componentCarrierId);
662
687 void MeasurementReportTriggering(uint8_t measId);
688
720 void SendMeasurementReport(uint8_t measId);
721
734 void StartConnection();
745 void LeaveConnectedMode();
747 void DisposeOldSrb1();
753 uint8_t Bid2Drbid(uint8_t bid);
758 void SwitchToState(State s);
759
760 std::map<uint8_t, uint8_t> m_bid2DrbidMap;
761
762 std::vector<LteUeCphySapUser*> m_cphySapUser;
763 std::vector<LteUeCphySapProvider*> m_cphySapProvider;
764
765 std::vector<LteUeCmacSapUser*> m_cmacSapUser;
766 std::vector<LteUeCmacSapProvider*> m_cmacSapProvider;
767
770
773
776
777 // Receive API calls from the LteUeComponentCarrierManager instance.
778 // LteCcmRrcSapUser* m_ccmRrcSapUser;
782
785
787 uint64_t m_imsi;
791 uint16_t m_rnti;
795 uint16_t m_cellId;
796
814 std::map<uint8_t, Ptr<LteDataRadioBearerInfo>> m_drbMap;
815
821
823
825
826 uint16_t m_dlBandwidth;
827 uint16_t m_ulBandwidth;
831 std::list<LteRrcSap::SCellToAddMod> m_sCellToAddModList;
911 TracedCallback<Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod>> m_sCarrierConfiguredTrace;
935
944
947
949 std::set<uint16_t> m_acceptableCell;
950
953
954 // INTERNAL DATA STRUCTURE RELATED TO UE MEASUREMENTS
955
964 {
965 std::map<uint8_t, LteRrcSap::MeasIdToAddMod> measIdList;
966 std::map<uint8_t, LteRrcSap::MeasObjectToAddMod> measObjectList;
967 std::map<uint8_t, LteRrcSap::ReportConfigToAddMod> reportConfigList;
969 double aRsrp;
970 double aRsrq;
971 };
972
980
989 {
990 uint8_t measId;
991 std::set<uint16_t> cellsTriggeredList;
994 };
995
1001 std::map<uint8_t, VarMeasReport> m_varMeasReportList;
1002
1006 typedef std::list<uint16_t> ConcernedCells_t;
1007
1026 void VarMeasReportListAdd(uint8_t measId, ConcernedCells_t enteringCells);
1027
1046 void VarMeasReportListErase(uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave);
1047
1058 void VarMeasReportListClear(uint8_t measId);
1059
1064 {
1065 double rsrp;
1066 double rsrq;
1068 };
1069
1083 std::map<uint16_t, MeasValues> m_storedMeasValues;
1084
1088 std::map<uint16_t, std::map<uint8_t, MeasValues>> m_storedMeasValuesPerCarrier;
1089
1106 std::map<uint16_t, MeasValues> m_storedScellMeasValues;
1107
1114 {
1115 uint8_t measId;
1117 EventId
1119 };
1120
1130 std::map<uint8_t, std::list<PendingTrigger_t>> m_enteringTriggerQueue;
1131
1142 std::map<uint8_t, std::list<PendingTrigger_t>> m_leavingTriggerQueue;
1143
1161 void CancelEnteringTrigger(uint8_t measId);
1162
1182 void CancelEnteringTrigger(uint8_t measId, uint16_t cellId);
1183
1201 void CancelLeavingTrigger(uint8_t measId);
1202
1222 void CancelLeavingTrigger(uint8_t measId, uint16_t cellId);
1223
1230
1236
1241 void ConnectionTimeout();
1242
1252
1257 uint8_t m_n310;
1258
1263 uint8_t m_n311;
1264
1275
1278
1281
1283
1286
1299
1306 void DoNotifyInSync();
1307
1314 void DoNotifyOutOfSync();
1315
1325
1340 void ResetRlfParams();
1341
1342 public:
1347
1348}; // end of class LteUeRrc
1349
1350} // namespace ns3
1351
1352#endif // LTE_UE_RRC_H
An identifier for simulation events.
Definition: event-id.h:55
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:39
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:98
store information on active data radio bearer instance
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:36
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Definition: lte-pdcp-sap.h:69
LtePdcpSpecificLtePdcpSapUser class.
Definition: lte-pdcp-sap.h:129
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE,...
Definition: lte-rlc.h:48
store information on active signaling radio bearer instance
Service Access Point (SAP) offered by the UE component carrier manager to the UE RRC.
Service Access Point (SAP) offered by the UE RRC to the UE CCM.
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
void DoRecvRrcConnectionReconfiguration(LteRrcSap::RrcConnectionReconfiguration msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1053
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
Definition: lte-ue-rrc.h:822
bool m_connectionPending
True if a connection request by upper layers is pending.
Definition: lte-ue-rrc.h:937
bool m_hasReceivedSib1
True if SIB1 was received for the current cell.
Definition: lte-ue-rrc.h:941
void SendMeasurementReport(uint8_t measId)
Produce a proper measurement report from the given measurement identity's reporting entry in m_varMea...
Definition: lte-ue-rrc.cc:2980
std::map< uint8_t, std::list< PendingTrigger_t > > m_enteringTriggerQueue
List of triggers that were raised because entering condition have been true, but are still delayed fr...
Definition: lte-ue-rrc.h:1130
void DoCompleteSetup(LteUeRrcSapProvider::CompleteSetupParameters params)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:959
void DoNotifyOutOfSync()
Do notify out of sync function.
Definition: lte-ue-rrc.cc:3362
LteUeCcmRrcSapUser * GetLteCcmRrcSapUser()
Get the Component Carrier Management SAP offered by this RRC.
Definition: lte-ue-rrc.cc:407
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1219
uint16_t m_previousCellId
the cell id of the previous cell UE was attached to
Definition: lte-ue-rrc.h:1282
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
SRB1 configuration before RRC connection reconfiguration.
Definition: lte-ue-rrc.h:809
static TypeId GetTypeId()
Get the type ID.
Definition: lte-ue-rrc.cc:178
void SwitchToState(State s)
Switch the UE RRC to the given state.
Definition: lte-ue-rrc.cc:3282
uint16_t GetRnti() const
Definition: lte-ue-rrc.cc:453
void DoDisconnect()
Disconnect function.
Definition: lte-ue-rrc.cc:608
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
Definition: lte-ue-rrc.h:771
void(* ImsiCidRntiCountTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, uint8_t count)
TracedCallback signature for imsi, cellId, rnti and counter for random access events.
Definition: lte-ue-rrc.h:412
void DoNotifyRandomAccessFailed()
Notify random access failed function.
Definition: lte-ue-rrc.cc:703
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
The MibReceived trace source.
Definition: lte-ue-rrc.h:837
LteUeCmacSapUser * GetLteUeCmacSapUser()
This function is overloaded to maintain backward compatibility.
Definition: lte-ue-rrc.cc:365
std::map< uint16_t, MeasValues > m_storedScellMeasValues
Internal storage of the latest measurement results from all detected detected Secondary carrier compo...
Definition: lte-ue-rrc.h:1106
void SetLteUeCmacSapProvider(LteUeCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:351
uint64_t m_imsi
The unique UE identifier.
Definition: lte-ue-rrc.h:787
uint8_t m_n311
The 'N311' attribute.
Definition: lte-ue-rrc.h:1263
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
Definition: lte-ue-rrc.h:800
uint8_t m_connEstFailCountLimit
the counter value for T300 timer expiration received from the eNB
Definition: lte-ue-rrc.h:1284
LteUeCphySapUser * GetLteUeCphySapUser()
Definition: lte-ue-rrc.cc:337
void DoConnect()
Connect function.
Definition: lte-ue-rrc.cc:805
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
The HandoverEndError trace source.
Definition: lte-ue-rrc.h:905
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:102
@ CONNECTED_REESTABLISHING
Definition: lte-ue-rrc.h:115
@ IDLE_CAMPED_NORMALLY
Definition: lte-ue-rrc.h:108
@ CONNECTED_PHY_PROBLEM
Definition: lte-ue-rrc.h:114
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source.
Definition: lte-ue-rrc.h:854
VarMeasConfig m_varMeasConfig
Includes the accumulated configuration of the measurements to be performed by the UE.
Definition: lte-ue-rrc.h:979
void ApplyMeasConfig(LteRrcSap::MeasConfig mc)
Update the current measurement configuration m_varMeasConfig.
Definition: lte-ue-rrc.cc:1636
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
the PDSCH config dedicated
Definition: lte-ue-rrc.h:824
uint8_t m_n310
The 'N310' attribute.
Definition: lte-ue-rrc.h:1257
void SetUseRlcSm(bool val)
Definition: lte-ue-rrc.cc:522
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
The InitialCellSelectionEndError trace source.
Definition: lte-ue-rrc.h:864
EventId m_radioLinkFailureDetected
Time limit (given by m_t310) before the radio link is considered to have failed.
Definition: lte-ue-rrc.h:1274
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1180
void DoNotifyRandomAccessSuccessful()
Notify random access successful function.
Definition: lte-ue-rrc.cc:658
LteUeRrcSapProvider * m_rrcSapProvider
RRC SAP provider.
Definition: lte-ue-rrc.h:769
void VarMeasReportListErase(uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave)
Remove some cells from an existing reporting entry in m_varMeasReportList.
Definition: lte-ue-rrc.cc:2904
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1022
void CancelLeavingTrigger(uint8_t measId)
Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measureme...
Definition: lte-ue-rrc.cc:2771
bool m_leaveConnectedMode
true if UE NAS ask UE RRC to leave connected mode, e.g., after RLF, i.e.
Definition: lte-ue-rrc.h:1279
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1157
bool m_hasReceivedSib2
True if SIB2 was received for the current cell.
Definition: lte-ue-rrc.h:943
void SynchronizeToStrongestCell()
Go through the list of measurement results, choose the one with the strongest RSRP,...
Definition: lte-ue-rrc.cc:1240
std::map< uint8_t, uint8_t > m_bid2DrbidMap
bid to DR bid map
Definition: lte-ue-rrc.h:760
void SetLteUeCphySapProvider(LteUeCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
Definition: lte-ue-rrc.cc:323
std::vector< LteUeCmacSapProvider * > m_cmacSapProvider
UE CMac SAP provider.
Definition: lte-ue-rrc.h:766
State GetState() const
Definition: lte-ue-rrc.cc:508
uint32_t m_dlEarfcn
Downlink carrier frequency.
Definition: lte-ue-rrc.h:829
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteUeComponentCarrierManage instance.
Definition: lte-ue-rrc.h:780
void DoSetCsgWhiteList(uint32_t csgId)
Set CSG white list function.
Definition: lte-ue-rrc.cc:743
void ApplyRadioResourceConfigDedicatedSecondaryCarrier(LteRrcSap::NonCriticalExtensionConfiguration nonCec)
Apply radio resource config dedicated secondary carrier.
Definition: lte-ue-rrc.cc:1364
LteAsSapProvider * GetAsSapProvider()
Definition: lte-ue-rrc.cc:420
void DoSetTemporaryCellRnti(uint16_t rnti)
Set temporary cell rnti function.
Definition: lte-ue-rrc.cc:649
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
Definition: lte-ue-rrc.cc:393
TracedCallback< uint64_t, uint16_t, uint16_t > m_radioLinkFailureTrace
The 'RadioLinkFailure' trace source.
Definition: lte-ue-rrc.h:934
uint64_t GetImsi() const
Definition: lte-ue-rrc.cc:447
uint32_t m_ulEarfcn
Uplink carrier frequency.
Definition: lte-ue-rrc.h:830
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-ue-rrc.h:880
friend class UeRrcMemberLteEnbCmacSapUser
allow UeRrcMemberLteEnbCmacSapUser class friend access
Definition: lte-ue-rrc.h:84
uint8_t GetDlBandwidth() const
Definition: lte-ue-rrc.cc:488
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_sib1ReceivedTrace
The Sib1Received trace source.
Definition: lte-ue-rrc.h:843
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessErrorTrace
The RandomAccessError trace source.
Definition: lte-ue-rrc.h:875
uint32_t GetDlEarfcn() const
Definition: lte-ue-rrc.cc:495
std::list< LteRrcSap::SCellToAddMod > m_sCellToAddModList
Secondary carriers.
Definition: lte-ue-rrc.h:831
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
Definition: lte-ue-rrc.h:772
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > m_sCarrierConfiguredTrace
The SCarrierConfigured trace source.
Definition: lte-ue-rrc.h:911
void DoStartCellSelection(uint32_t dlEarfcn)
Start cell selection function.
Definition: lte-ue-rrc.cc:750
bool m_useRlcSm
True if RLC SM is to be used, false if RLC UM/AM are to be used.
Definition: lte-ue-rrc.h:820
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-ue-rrc.h:900
TracedCallback< uint64_t, uint16_t, uint16_t, std::string, uint8_t > m_phySyncDetectionTrace
The 'PhySyncDetection' trace source.
Definition: lte-ue-rrc.h:929
std::map< uint8_t, std::list< PendingTrigger_t > > m_leavingTriggerQueue
List of triggers that were raised because leaving condition have been true, but are still delayed fro...
Definition: lte-ue-rrc.h:1142
void(* PhySyncDetectionTracedCallback)(uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count)
TracedCallback signature for in-sync and out-of-sync detection events.
Definition: lte-ue-rrc.h:397
Time m_t310
The 'T310' attribute.
Definition: lte-ue-rrc.h:1251
void RadioLinkFailureDetected()
Radio link failure detected function.
Definition: lte-ue-rrc.cc:3339
State m_state
The current UE RRC state.
Definition: lte-ue-rrc.h:784
std::vector< LteUeCphySapProvider * > m_cphySapProvider
UE CPhy SAP provider.
Definition: lte-ue-rrc.h:763
LteUeCcmRrcSapUser * m_ccmRrcSapUser
CCM RRC SAP user.
Definition: lte-ue-rrc.h:781
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
The DrbCreated trace source.
Definition: lte-ue-rrc.h:923
uint16_t m_numberOfComponentCarriers
The number of component carriers.
Definition: lte-ue-rrc.h:1346
std::map< uint8_t, VarMeasReport > m_varMeasReportList
The list of active reporting entries, indexed by the measurement identity which triggered the reporti...
Definition: lte-ue-rrc.h:1001
std::vector< LteUeCmacSapUser * > m_cmacSapUser
UE CMac SAP user.
Definition: lte-ue-rrc.h:765
TracedCallback< uint64_t, uint16_t, uint16_t > m_srb1CreatedTrace
The Srb1Created trace source.
Definition: lte-ue-rrc.h:917
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
The InitialCellSelectionEndOk trace source.
Definition: lte-ue-rrc.h:859
uint8_t GetUlBandwidth() const
Definition: lte-ue-rrc.cc:481
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Send data function.
Definition: lte-ue-rrc.cc:584
void(* MibSibHandoverTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid)
TracedCallback signature for MIBRecieved, Sib1Received and HandoverStart events.
Definition: lte-ue-rrc.h:358
LteAsSapProvider * m_asSapProvider
AS SAP provider.
Definition: lte-ue-rrc.h:774
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-ue-rrc.h:791
uint8_t m_noOfSyncIndications
number of in-sync or out-of-sync indications coming from PHY layer
Definition: lte-ue-rrc.h:1276
uint16_t GetCellId() const
Definition: lte-ue-rrc.cc:460
void DoSetNumberOfComponentCarriers(uint16_t noOfComponentCarriers)
RRC CCM SAP USER Method.
Definition: lte-ue-rrc.cc:1233
~LteUeRrc() override
Destructor.
Definition: lte-ue-rrc.cc:150
void CancelEnteringTrigger(uint8_t measId)
Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurem...
Definition: lte-ue-rrc.cc:2710
std::map< uint16_t, MeasValues > m_storedMeasValues
Internal storage of the latest measurement results from all detected detected cells,...
Definition: lte-ue-rrc.h:1083
void DoReportUeMeasurements(LteUeCphySapUser::UeMeasurementsParameters params)
Report UE measurements function.
Definition: lte-ue-rrc.cc:911
LteUeRrcSapUser * m_rrcSapUser
RRC SAP user.
Definition: lte-ue-rrc.h:768
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-ue-rrc.h:890
void MeasurementReportTriggering(uint8_t measId)
Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on ...
Definition: lte-ue-rrc.cc:1936
void SaveUeMeasurements(uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering, uint8_t componentCarrierId)
Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functio...
Definition: lte-ue-rrc.cc:1877
void SetLteCcmRrcSapProvider(LteUeCcmRrcSapProvider *s)
set the Component Carrier Management SAP this RRC should interact with
Definition: lte-ue-rrc.cc:400
TracedCallback< uint64_t, uint16_t, uint16_t > m_sib2ReceivedTrace
The Sib2Received trace source.
Definition: lte-ue-rrc.h:848
void LeaveConnectedMode()
Leave connected mode method Resets the UE back to an appropriate state depending on the nature of cau...
Definition: lte-ue-rrc.cc:3185
uint32_t GetUlEarfcn() const
Definition: lte-ue-rrc.cc:501
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
Definition: lte-ue-rrc.cc:2962
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
Definition: lte-ue-rrc.cc:386
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-ue-rrc.h:814
uint16_t m_cellId
The CellId attribute.
Definition: lte-ue-rrc.h:795
uint8_t m_connEstFailCount
the counter to count T300 timer expiration
Definition: lte-ue-rrc.h:1287
void DoRecvMasterInformationBlock(uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
Receive master information block function.
Definition: lte-ue-rrc.cc:845
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Receive PDCP SDU function.
Definition: lte-ue-rrc.cc:642
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_connectionTimeoutTrace
The ConnectionTimeout trace source.
Definition: lte-ue-rrc.h:885
std::set< uint16_t > m_acceptableCell
List of cell ID of acceptable cells for cell selection that have been detected.
Definition: lte-ue-rrc.h:949
Time m_t300
The T300 attribute.
Definition: lte-ue-rrc.h:1229
EventId m_connectionTimeout
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes ...
Definition: lte-ue-rrc.h:1235
void VarMeasReportListAdd(uint8_t measId, ConcernedCells_t enteringCells)
Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList,...
Definition: lte-ue-rrc.cc:2832
std::vector< LteUeCphySapUser * > m_cphySapUser
UE CPhy SAP user.
Definition: lte-ue-rrc.h:762
void ConnectionTimeout()
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure ...
Definition: lte-ue-rrc.cc:3229
bool m_hasReceivedMib
True if MIB was received for the current cell.
Definition: lte-ue-rrc.h:939
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1202
std::list< uint16_t > ConcernedCells_t
List of cell IDs which are responsible for a certain trigger.
Definition: lte-ue-rrc.h:1006
void EvaluateCellForSelection()
Performs cell selection evaluation to the current serving cell.
Definition: lte-ue-rrc.cc:1283
void(* CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:338
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
Receive system information block type 1 function.
Definition: lte-ue-rrc.cc:871
void StartConnection()
Start connection function.
Definition: lte-ue-rrc.cc:3174
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:970
void DoNotifyInSync()
Do notify in sync function.
Definition: lte-ue-rrc.cc:3349
uint16_t m_ulBandwidth
Uplink bandwidth in RBs.
Definition: lte-ue-rrc.h:827
LteUeRrc()
create an RRC instance for use within an ue
Definition: lte-ue-rrc.cc:116
uint32_t m_csgWhiteList
List of CSG ID which this UE entity has access to.
Definition: lte-ue-rrc.h:952
uint16_t GetPreviousCellId() const
Get the previous cell id.
Definition: lte-ue-rrc.cc:515
void(* ImsiCidRntiTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:347
void InitializeSap()
Initiaize SAP.
Definition: lte-ue-rrc.cc:561
void DisposeOldSrb1()
Dispose old SRB1.
Definition: lte-ue-rrc.cc:3260
void DoInitialize() override
Initialize() implementation.
Definition: lte-ue-rrc.cc:529
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
The RandomAccessSuccessful trace source.
Definition: lte-ue-rrc.h:870
bool IsServingCell(uint16_t cellId) const
Definition: lte-ue-rrc.cc:467
LteRrcSap::SystemInformationBlockType1 m_lastSib1
Stored content of the last SIB1 received.
Definition: lte-ue-rrc.h:946
void(* StateTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState)
TracedCallback signature for state transition events.
Definition: lte-ue-rrc.h:372
static const std::string ToString(LteUeRrc::State s)
Definition: lte-ue-rrc.cc:3402
void(* SCarrierConfiguredTracedCallback)(Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)
TracedCallback signature for secondary carrier configuration events.
Definition: lte-ue-rrc.h:384
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
Stored measure values per carrier.
Definition: lte-ue-rrc.h:1088
void SetAsSapUser(LteAsSapUser *s)
Set the AS SAP user to interact with the NAS entity.
Definition: lte-ue-rrc.cc:414
void SetLteUeRrcSapUser(LteUeRrcSapUser *s)
set the RRC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:379
uint16_t m_dlBandwidth
Downlink bandwidth in RBs.
Definition: lte-ue-rrc.h:826
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-ue-rrc.h:804
LteAsSapUser * m_asSapUser
AS SAP user.
Definition: lte-ue-rrc.h:775
void SetImsi(uint64_t imsi)
Definition: lte-ue-rrc.cc:426
void DoForceCampedOnEnb(uint16_t cellId, uint32_t dlEarfcn)
Force camped on ENB function.
Definition: lte-ue-rrc.cc:761
void DoDispose() override
Destructor implementation.
Definition: lte-ue-rrc.cc:156
void StorePreviousCellId(uint16_t cellId)
Store the previous cell id.
Definition: lte-ue-rrc.cc:440
void ResetRlfParams()
Reset radio link failure parameters.
Definition: lte-ue-rrc.cc:3393
void DoResetSyncIndicationCounter()
Do reset sync indication counter function.
Definition: lte-ue-rrc.cc:3383
void ApplyRadioResourceConfigDedicated(LteRrcSap::RadioResourceConfigDedicated rrcd)
Apply radio resource config dedicated.
Definition: lte-ue-rrc.cc:1415
uint8_t Bid2Drbid(uint8_t bid)
Bid 2 DR bid.
Definition: lte-ue-rrc.cc:3267
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-ue-rrc.h:895
Part of the RRC protocol.
Definition: lte-rrc-sap.h:1045
Part of the RRC protocol.
Definition: lte-rrc-sap.h:960
Template for the implementation of the LteAsSapProvider as a member of an owner class of type C to wh...
Definition: lte-as-sap.h:131
MemberLteUeCcmRrcSapUser class.
Template for the implementation of the LteUeCphySapUser as a member of an owner class of type C to wh...
Template for the implementation of the LteUeRrcSapProvider as a member of an owner class of type C to...
Definition: lte-rrc-sap.h:1443
A base class which provides memory management and object aggregation.
Definition: object.h:89
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:78
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
a unique identifier for an interface.
Definition: type-id.h:59
UeMemberLteUeCmacSapUser class.
Definition: lte-ue-rrc.cc:53
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition: nstime.h:1360
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static const Time UE_MEASUREMENT_REPORT_DELAY
Artificial delay of UE measurements procedure.
Definition: lte-ue-rrc.h:66
params
Fit Fluctuating Two Ray model to the 3GPP TR 38.901 using the Anderson-Darling goodness-of-fit ##.
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Definition: lte-pdcp-sap.h:77
MasterInformationBlock structure.
Definition: lte-rrc-sap.h:622
MeasConfig structure.
Definition: lte-rrc-sap.h:553
NonCriticalExtensionConfiguration structure.
Definition: lte-rrc-sap.h:874
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:163
QuantityConfig structure.
Definition: lte-rrc-sap.h:306
RadioResourceConfigDedicated structure.
Definition: lte-rrc-sap.h:296
RrcConnectionReconfiguration structure.
Definition: lte-rrc-sap.h:881
RrcConnectionReestablishment structure.
Definition: lte-rrc-sap.h:911
RrcConnectionReestablishmentReject structure.
Definition: lte-rrc-sap.h:925
RrcConnectionReject structure.
Definition: lte-rrc-sap.h:936
RrcConnectionRelease structure.
Definition: lte-rrc-sap.h:930
RrcConnectionSetup structure.
Definition: lte-rrc-sap.h:736
SystemInformationBlockType1 structure.
Definition: lte-rrc-sap.h:629
SystemInformation structure.
Definition: lte-rrc-sap.h:643
UeMeasurementsParameters structure.
Represents a measurement result from a certain cell.
Definition: lte-ue-rrc.h:1064
uint32_t carrierFreq
Measurement object frequency.
Definition: lte-ue-rrc.h:1067
double rsrp
Measured RSRP in dBm.
Definition: lte-ue-rrc.h:1065
double rsrq
Measured RSRQ in dB.
Definition: lte-ue-rrc.h:1066
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
Definition: lte-ue-rrc.h:1114
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Definition: lte-ue-rrc.h:1116
EventId timer
The pending reporting event, scheduled at the end of the time-to-trigger.
Definition: lte-ue-rrc.h:1118
uint8_t measId
The measurement identity which raised the trigger.
Definition: lte-ue-rrc.h:1115
Includes the accumulated configuration of the measurements to be performed by the UE.
Definition: lte-ue-rrc.h:964
std::map< uint8_t, LteRrcSap::ReportConfigToAddMod > reportConfigList
report config list
Definition: lte-ue-rrc.h:967
LteRrcSap::QuantityConfig quantityConfig
quantity config
Definition: lte-ue-rrc.h:968
std::map< uint8_t, LteRrcSap::MeasObjectToAddMod > measObjectList
measure object list
Definition: lte-ue-rrc.h:966
std::map< uint8_t, LteRrcSap::MeasIdToAddMod > measIdList
measure ID list
Definition: lte-ue-rrc.h:965
Represents a single measurement reporting entry., which includes information about a measurement for ...
Definition: lte-ue-rrc.h:989
uint32_t numberOfReportsSent
number of reports sent
Definition: lte-ue-rrc.h:992
std::set< uint16_t > cellsTriggeredList
note: only E-UTRA is supported.
Definition: lte-ue-rrc.h:991
EventId periodicReportTimer
periodic report timer
Definition: lte-ue-rrc.h:993
uint8_t measId
measure ID
Definition: lte-ue-rrc.h:990
CompleteSetupParameters structure.
Definition: lte-rrc-sap.h:1049