A Discrete-Event Network Simulator
API
lte-ue-rrc.h
Go to the documentation of this file.
1/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2/*
3 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4 * Copyright (c) 2018 Fraunhofer ESK : RLF extensions
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation;
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 *
19 * Author: Nicola Baldo <nbaldo@cttc.es>
20 * Budiarto Herman <budiarto.herman@magister.fi>
21 * Modified by:
22 * Danilo Abrignani <danilo.abrignani@unibo.it> (Carrier Aggregation - GSoC 2015)
23 * Biljana Bojovic <biljana.bojovic@cttc.es> (Carrier Aggregation)
24 * Vignesh Babu <ns3-dev@esk.fraunhofer.de> (RLF extensions)
25 */
26
27#ifndef LTE_UE_RRC_H
28#define LTE_UE_RRC_H
29
30#include <ns3/object.h>
31#include <ns3/packet.h>
32#include <ns3/lte-ue-cmac-sap.h>
33#include <ns3/lte-pdcp-sap.h>
34#include <ns3/lte-as-sap.h>
35#include <ns3/lte-ue-cphy-sap.h>
36#include <ns3/lte-rrc-sap.h>
37#include <ns3/traced-callback.h>
38#include "ns3/component-carrier-ue.h"
39#include <ns3/lte-ue-ccm-rrc-sap.h>
40#include <vector>
41
42#include <map>
43#include <set>
44
45#define MIN_NO_CC 1
46#define MAX_NO_CC 5 // this is the maximum number of carrier components allowed by 3GPP up to R13
47
48namespace ns3 {
49
50
68
69
70class LteRlc;
76
81class LteUeRrc : public Object
82{
83
91 friend class MemberLteAsSapProvider<LteUeRrc>;
93 friend class MemberLteUeCphySapUser<LteUeRrc>;
98
99public:
100
105 enum State
106 {
121 };
122
123
128 LteUeRrc ();
129
130
134 virtual ~LteUeRrc ();
135
136
137 // inherited from Object
138private:
139 virtual void DoInitialize (void);
140 virtual void DoDispose (void);
141public:
146 static TypeId GetTypeId (void);
147
149 void InitializeSap (void);
150
163 void SetLteUeCphySapProvider (LteUeCphySapProvider * s, uint8_t index);
164
176 LteUeCphySapUser* GetLteUeCphySapUser (uint8_t index);
177
190 void SetLteUeCmacSapProvider (LteUeCmacSapProvider * s, uint8_t index);
191
202 LteUeCmacSapUser* GetLteUeCmacSapUser (uint8_t index);
203
204
211
218
227
233 void SetAsSapUser (LteAsSapUser* s);
234
241
248
255
260 void SetImsi (uint64_t imsi);
261
267 void StorePreviousCellId (uint16_t cellId);
268
273 uint64_t GetImsi (void) const;
274
279 uint16_t GetRnti () const;
280
285 uint16_t GetCellId () const;
286
291 bool IsServingCell (uint16_t cellId) const;
292
296 uint8_t GetUlBandwidth () const;
297
301 uint8_t GetDlBandwidth () const;
302
306 uint32_t GetDlEarfcn () const;
307
311 uint32_t GetUlEarfcn () const;
312
317 State GetState () const;
318
324 uint16_t GetPreviousCellId () const;
325
331 void SetUseRlcSm (bool val);
332
337 static const std::string ToString (LteUeRrc::State s);
338
346 (uint64_t imsi, uint16_t cellId);
347
356 (uint64_t imsi, uint16_t cellId, uint16_t rnti);
357
368 (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid);
369
379 typedef void (* StateTracedCallback)
380 (uint64_t imsi, uint16_t cellId, uint16_t rnti,
381 State oldState, State newState);
382
390 (Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod>);
391
403 (uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count);
404
415 (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint8_t count);
416
417
418private:
419
420
421 // PDCP SAP methods
428
429 // CMAC SAP methods
435 void DoSetTemporaryCellRnti (uint16_t rnti);
440
441 // LTE AS SAP methods
447 void DoSetCsgWhiteList (uint32_t csgId);
454 void DoForceCampedOnEnb (uint16_t cellId, uint32_t dlEarfcn);
460 void DoStartCellSelection (uint32_t dlEarfcn);
462 void DoConnect ();
469 void DoSendData (Ptr<Packet> packet, uint8_t bid);
471 void DoDisconnect ();
472
473 // CPHY SAP methods
480 void DoRecvMasterInformationBlock (uint16_t cellId,
488 void DoRecvSystemInformationBlockType1 (uint16_t cellId,
496
497 // RRC SAP methods
498
539
544 void DoSetNumberOfComponentCarriers (uint16_t noOfComponentCarriers);
545
546
547 // INTERNAL METHODS
548
557
576
631
655 void SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq,
656 bool useLayer3Filtering, uint8_t componentCarrierId);
657
682 void MeasurementReportTriggering (uint8_t measId);
683
715 void SendMeasurementReport (uint8_t measId);
716
728 void StartConnection ();
739 void LeaveConnectedMode ();
741 void DisposeOldSrb1 ();
747 uint8_t Bid2Drbid (uint8_t bid);
752 void SwitchToState (State s);
753
754 std::map<uint8_t, uint8_t> m_bid2DrbidMap;
755
756 std::vector<LteUeCphySapUser*> m_cphySapUser;
757 std::vector<LteUeCphySapProvider*> m_cphySapProvider;
758
759 std::vector<LteUeCmacSapUser*> m_cmacSapUser;
760 std::vector<LteUeCmacSapProvider*> m_cmacSapProvider;
761
764
767
770
771 // Receive API calls from the LteUeComponentCarrierManager instance.
772 // LteCcmRrcSapUser* m_ccmRrcSapUser;
776
779
781 uint64_t m_imsi;
785 uint16_t m_rnti;
789 uint16_t m_cellId;
790
808 std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
809
815
817
819
820 uint16_t m_dlBandwidth;
821 uint16_t m_ulBandwidth;
825 std::list<LteRrcSap::SCellToAddMod> m_sCellToAddModList;
905 TracedCallback<Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod> > m_sCarrierConfiguredTrace;
929
938
941
943 std::set<uint16_t> m_acceptableCell;
944
947
948
949 // INTERNAL DATA STRUCTURE RELATED TO UE MEASUREMENTS
950
959 {
960 std::map<uint8_t, LteRrcSap::MeasIdToAddMod> measIdList;
961 std::map<uint8_t, LteRrcSap::MeasObjectToAddMod> measObjectList;
962 std::map<uint8_t, LteRrcSap::ReportConfigToAddMod> reportConfigList;
964 double aRsrp;
965 double aRsrq;
966 };
967
975
984 {
985 uint8_t measId;
986 std::set<uint16_t> cellsTriggeredList;
989 };
990
996 std::map<uint8_t, VarMeasReport> m_varMeasReportList;
997
1001 typedef std::list<uint16_t> ConcernedCells_t;
1002
1021 void VarMeasReportListAdd (uint8_t measId, ConcernedCells_t enteringCells);
1022
1041 void VarMeasReportListErase (uint8_t measId, ConcernedCells_t leavingCells,
1042 bool reportOnLeave);
1043
1054 void VarMeasReportListClear (uint8_t measId);
1055
1060 {
1061 double rsrp;
1062 double rsrq;
1064 };
1065
1079 std::map<uint16_t, MeasValues> m_storedMeasValues;
1080
1084 std::map<uint16_t, std::map <uint8_t, MeasValues> > m_storedMeasValuesPerCarrier;
1085
1102 std::map<uint16_t, MeasValues> m_storedScellMeasValues;
1103
1110 {
1111 uint8_t measId;
1114 };
1115
1125 std::map<uint8_t, std::list<PendingTrigger_t> > m_enteringTriggerQueue;
1126
1137 std::map<uint8_t, std::list<PendingTrigger_t> > m_leavingTriggerQueue;
1138
1156 void CancelEnteringTrigger (uint8_t measId);
1157
1177 void CancelEnteringTrigger (uint8_t measId, uint16_t cellId);
1178
1196 void CancelLeavingTrigger (uint8_t measId);
1197
1217 void CancelLeavingTrigger (uint8_t measId, uint16_t cellId);
1218
1225
1231
1236 void ConnectionTimeout ();
1237
1247
1252 uint8_t m_n310;
1253
1258 uint8_t m_n311;
1259
1270
1272
1274
1276
1278
1291
1298 void DoNotifyInSync ();
1299
1306 void DoNotifyOutOfSync ();
1307
1317
1332 void ResetRlfParams ();
1333
1334public:
1339
1340}; // end of class LteUeRrc
1341
1342
1343} // namespace ns3
1344
1345#endif // LTE_UE_RRC_H
An identifier for simulation events.
Definition: event-id.h:54
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:40
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:104
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:37
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36....
Definition: lte-pdcp-sap.h:70
LtePdcpSpecificLtePdcpSapUser class.
Definition: lte-pdcp-sap.h:134
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE,...
Definition: lte-rlc.h:51
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:1054
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
Definition: lte-ue-rrc.h:816
bool m_connectionPending
True if a connection request by upper layers is pending.
Definition: lte-ue-rrc.h:931
bool m_hasReceivedSib1
True if SIB1 was received for the current cell.
Definition: lte-ue-rrc.h:935
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:2925
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:1125
void DoCompleteSetup(LteUeRrcSapProvider::CompleteSetupParameters params)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:963
void DoNotifyOutOfSync()
Do notify out of sync function.
Definition: lte-ue-rrc.cc:3292
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:1202
uint16_t m_previousCellId
the cell id of the previous cell UE was attached to
Definition: lte-ue-rrc.h:1275
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
SRB1 configuration before RRC connection reconfiguration.
Definition: lte-ue-rrc.h:803
void SwitchToState(State s)
Switch the UE RRC to the given state.
Definition: lte-ue-rrc.cc:3210
uint16_t GetRnti() const
Definition: lte-ue-rrc.cc:453
void DoDisconnect()
Disconnect function.
Definition: lte-ue-rrc.cc:612
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
Definition: lte-ue-rrc.h:765
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:415
void DoNotifyRandomAccessFailed()
Notify random access failed function.
Definition: lte-ue-rrc.cc:712
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
The MibReceived trace source.
Definition: lte-ue-rrc.h:831
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:1102
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:781
uint8_t m_n311
The 'N311' attribute.
Definition: lte-ue-rrc.h:1258
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
Definition: lte-ue-rrc.h:794
uint8_t m_connEstFailCountLimit
the counter value for T300 timer expiration received from the eNB
Definition: lte-ue-rrc.h:1277
LteUeCphySapUser * GetLteUeCphySapUser()
Definition: lte-ue-rrc.cc:337
void DoConnect()
Connect function.
Definition: lte-ue-rrc.cc:808
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
The HandoverEndError trace source.
Definition: lte-ue-rrc.h:899
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:106
@ CONNECTED_REESTABLISHING
Definition: lte-ue-rrc.h:119
@ IDLE_CAMPED_NORMALLY
Definition: lte-ue-rrc.h:112
@ CONNECTED_PHY_PROBLEM
Definition: lte-ue-rrc.h:118
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source.
Definition: lte-ue-rrc.h:848
VarMeasConfig m_varMeasConfig
Includes the accumulated configuration of the measurements to be performed by the UE.
Definition: lte-ue-rrc.h:974
void ApplyMeasConfig(LteRrcSap::MeasConfig mc)
Update the current measurement configuration m_varMeasConfig.
Definition: lte-ue-rrc.cc:1598
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
the PDSCH condig dedicated
Definition: lte-ue-rrc.h:818
uint8_t m_n310
The 'N310' attribute.
Definition: lte-ue-rrc.h:1252
void SetUseRlcSm(bool val)
Definition: lte-ue-rrc.cc:523
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
The InitialCellSelectionEndError trace source.
Definition: lte-ue-rrc.h:858
EventId m_radioLinkFailureDetected
Time limit (given by m_t310) before the radio link is considered to have failed.
Definition: lte-ue-rrc.h:1269
virtual void DoInitialize(void)
Initialize() implementation.
Definition: lte-ue-rrc.cc:531
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1173
void DoNotifyRandomAccessSuccessful()
Notify random access successful function.
Definition: lte-ue-rrc.cc:663
LteUeRrcSapProvider * m_rrcSapProvider
RRC SAP provider.
Definition: lte-ue-rrc.h:763
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:2845
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1024
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:2711
void InitializeSap(void)
Initiaize SAP.
Definition: lte-ue-rrc.cc:562
bool m_leaveConnectedMode
true if UE NAS ask UE RRC to leave connected mode, e.g., after RLF, i.e. T310 has expired
Definition: lte-ue-rrc.h:1273
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1149
bool m_hasReceivedSib2
True if SIB2 was received for the current cell.
Definition: lte-ue-rrc.h:937
void SynchronizeToStrongestCell()
Go through the list of measurement results, choose the one with the strongest RSRP,...
Definition: lte-ue-rrc.cc:1225
std::map< uint8_t, uint8_t > m_bid2DrbidMap
bid to DR bid map
Definition: lte-ue-rrc.h:754
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:760
State GetState() const
Definition: lte-ue-rrc.cc:509
uint32_t m_dlEarfcn
Downlink carrier frequency.
Definition: lte-ue-rrc.h:823
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteUeComponentCarrierManage instance.
Definition: lte-ue-rrc.h:774
void DoSetCsgWhiteList(uint32_t csgId)
Set CSG white list function.
Definition: lte-ue-rrc.cc:745
void ApplyRadioResourceConfigDedicatedSecondaryCarrier(LteRrcSap::NonCriticalExtensionConfiguration nonCec)
Apply radio resource config dedicated secondary carrier.
Definition: lte-ue-rrc.cc:1350
LteAsSapProvider * GetAsSapProvider()
Definition: lte-ue-rrc.cc:420
void DoSetTemporaryCellRnti(uint16_t rnti)
Set temporary cell rnti function.
Definition: lte-ue-rrc.cc:654
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:928
uint32_t m_ulEarfcn
Uplink carrier frequency.
Definition: lte-ue-rrc.h:824
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-ue-rrc.h:874
friend class UeRrcMemberLteEnbCmacSapUser
allow UeRrcMemberLteEnbCmacSapUser class friend access
Definition: lte-ue-rrc.h:87
uint8_t GetDlBandwidth() const
Definition: lte-ue-rrc.cc:489
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_sib1ReceivedTrace
The Sib1Received trace source.
Definition: lte-ue-rrc.h:837
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessErrorTrace
The RandomAccessError trace source.
Definition: lte-ue-rrc.h:869
uint32_t GetDlEarfcn() const
Definition: lte-ue-rrc.cc:496
std::list< LteRrcSap::SCellToAddMod > m_sCellToAddModList
Secondary carriers.
Definition: lte-ue-rrc.h:825
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
Definition: lte-ue-rrc.h:766
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > m_sCarrierConfiguredTrace
The SCarrierConfigured trace source.
Definition: lte-ue-rrc.h:905
void DoStartCellSelection(uint32_t dlEarfcn)
Start cell selection function.
Definition: lte-ue-rrc.cc:752
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:814
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-ue-rrc.h:894
TracedCallback< uint64_t, uint16_t, uint16_t, std::string, uint8_t > m_phySyncDetectionTrace
The 'PhySyncDetection' trace source.
Definition: lte-ue-rrc.h:923
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:1137
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:403
Time m_t310
The 'T310' attribute.
Definition: lte-ue-rrc.h:1246
void RadioLinkFailureDetected()
Radio link failure detected function.
Definition: lte-ue-rrc.cc:3269
State m_state
The current UE RRC state.
Definition: lte-ue-rrc.h:778
std::vector< LteUeCphySapProvider * > m_cphySapProvider
UE CPhy SAP provider.
Definition: lte-ue-rrc.h:757
LteUeCcmRrcSapUser * m_ccmRrcSapUser
CCM RRC SAP user.
Definition: lte-ue-rrc.h:775
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
The DrbCreated trace source.
Definition: lte-ue-rrc.h:917
uint16_t m_numberOfComponentCarriers
The number of component carriers.
Definition: lte-ue-rrc.h:1338
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
Stored measure values per carrier.
Definition: lte-ue-rrc.h:1084
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:996
std::vector< LteUeCmacSapUser * > m_cmacSapUser
UE CMac SAP user.
Definition: lte-ue-rrc.h:759
TracedCallback< uint64_t, uint16_t, uint16_t > m_srb1CreatedTrace
The Srb1Created trace source.
Definition: lte-ue-rrc.h:911
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
The InitialCellSelectionEndOk trace source.
Definition: lte-ue-rrc.h:853
uint8_t GetUlBandwidth() const
Definition: lte-ue-rrc.cc:482
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Send data function.
Definition: lte-ue-rrc.cc:586
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:368
LteAsSapProvider * m_asSapProvider
AS SAP provider.
Definition: lte-ue-rrc.h:768
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-ue-rrc.h:785
uint8_t m_noOfSyncIndications
number of in-sync or out-of-sync indications coming from PHY layer
Definition: lte-ue-rrc.h:1271
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:1216
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:2649
virtual ~LteUeRrc()
Destructor.
Definition: lte-ue-rrc.cc:159
std::map< uint16_t, MeasValues > m_storedMeasValues
Internal storage of the latest measurement results from all detected detected cells,...
Definition: lte-ue-rrc.h:1079
void DoReportUeMeasurements(LteUeCphySapUser::UeMeasurementsParameters params)
Report UE measurements function.
Definition: lte-ue-rrc.cc:917
LteUeRrcSapUser * m_rrcSapUser
RRC SAP user.
Definition: lte-ue-rrc.h:762
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-ue-rrc.h:884
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:1876
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:1820
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:842
void LeaveConnectedMode()
Leave connected mode method Resets the UE back to an appropiate state depending on the nature of caus...
Definition: lte-ue-rrc.cc:3114
uint32_t GetUlEarfcn() const
Definition: lte-ue-rrc.cc:502
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
Definition: lte-ue-rrc.cc:2906
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
Definition: lte-ue-rrc.cc:386
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-ue-rrc.h:808
uint16_t m_cellId
The CellId attribute.
Definition: lte-ue-rrc.h:789
uint8_t m_connEstFailCount
the counter to count T300 timer expiration
Definition: lte-ue-rrc.h:1279
void DoRecvMasterInformationBlock(uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
Receive master information block function.
Definition: lte-ue-rrc.cc:850
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Receive PDCP SDU function.
Definition: lte-ue-rrc.cc:646
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_connectionTimeoutTrace
The ConnectionTimeout trace source.
Definition: lte-ue-rrc.h:879
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:943
Time m_t300
The T300 attribute.
Definition: lte-ue-rrc.h:1224
EventId m_connectionTimeout
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes ...
Definition: lte-ue-rrc.h:1230
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:2773
std::vector< LteUeCphySapUser * > m_cphySapUser
UE CPhy SAP user.
Definition: lte-ue-rrc.h:756
uint64_t GetImsi(void) const
Definition: lte-ue-rrc.cc:447
void ConnectionTimeout()
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure ...
Definition: lte-ue-rrc.cc:3157
bool m_hasReceivedMib
True if MIB was received for the current cell.
Definition: lte-ue-rrc.h:933
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1195
std::list< uint16_t > ConcernedCells_t
List of cell IDs which are responsible for a certain trigger.
Definition: lte-ue-rrc.h:1001
void EvaluateCellForSelection()
Performs cell selection evaluation to the current serving cell.
Definition: lte-ue-rrc.cc:1269
void(* CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:346
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
Receive system information block type 1 function.
Definition: lte-ue-rrc.cc:877
void StartConnection()
Start connection function.
Definition: lte-ue-rrc.cc:3103
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:975
void DoNotifyInSync()
Do notify in sync function.
Definition: lte-ue-rrc.cc:3279
uint16_t m_ulBandwidth
Uplink bandwidth in RBs.
Definition: lte-ue-rrc.h:821
LteUeRrc()
create an RRC instance for use within an ue
Definition: lte-ue-rrc.cc:125
uint32_t m_csgWhiteList
List of CSG ID which this UE entity has access to.
Definition: lte-ue-rrc.h:946
uint16_t GetPreviousCellId() const
Get the previous cell id.
Definition: lte-ue-rrc.cc:516
void(* ImsiCidRntiTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:356
static TypeId GetTypeId(void)
Get the type ID.
Definition: lte-ue-rrc.cc:187
void DisposeOldSrb1()
Dispose old SRB1.
Definition: lte-ue-rrc.cc:3188
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
The RandomAccessSuccessful trace source.
Definition: lte-ue-rrc.h:864
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:940
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:380
static const std::string ToString(LteUeRrc::State s)
Definition: lte-ue-rrc.cc:3330
void(* SCarrierConfiguredTracedCallback)(Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)
TracedCallback signature for secondary carrier configuration events.
Definition: lte-ue-rrc.h:390
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:820
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-ue-rrc.h:798
LteAsSapUser * m_asSapUser
AS SAP user.
Definition: lte-ue-rrc.h:769
void SetImsi(uint64_t imsi)
Definition: lte-ue-rrc.cc:426
virtual void DoDispose(void)
Destructor implementation.
Definition: lte-ue-rrc.cc:165
void DoForceCampedOnEnb(uint16_t cellId, uint32_t dlEarfcn)
Force camped on ENB function.
Definition: lte-ue-rrc.cc:763
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:3321
void DoResetSyncIndicationCounter()
Do reset sync indication counter function.
Definition: lte-ue-rrc.cc:3312
void ApplyRadioResourceConfigDedicated(LteRrcSap::RadioResourceConfigDedicated rrcd)
Apply radio resource config dedicated.
Definition: lte-ue-rrc.cc:1393
uint8_t Bid2Drbid(uint8_t bid)
Bid 2 DR bid.
Definition: lte-ue-rrc.cc:3195
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-ue-rrc.h:889
Part of the RRC protocol.
Definition: lte-rrc-sap.h:1001
Part of the RRC protocol.
Definition: lte-rrc-sap.h:917
Template for the implementation of the LteAsSapProvider as a member of an owner class of type C to wh...
Definition: lte-as-sap.h:146
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:1404
A base class which provides memory management and object aggregation.
Definition: object.h:88
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:74
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
a unique identifier for an interface.
Definition: type-id.h:59
UeMemberLteUeCmacSapUser class.
Definition: lte-ue-rrc.cc:54
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition: nstime.h:1260
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:67
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Definition: lte-pdcp-sap.h:78
MasterInformationBlock structure.
Definition: lte-rrc-sap.h:588
MeasConfig structure.
Definition: lte-rrc-sap.h:519
NonCriticalExtensionConfiguration structure.
Definition: lte-rrc-sap.h:830
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:155
QuantityConfig structure.
Definition: lte-rrc-sap.h:296
RadioResourceConfigDedicated structure.
Definition: lte-rrc-sap.h:286
RrcConnectionReconfiguration structure.
Definition: lte-rrc-sap.h:837
RrcConnectionReestablishment structure.
Definition: lte-rrc-sap.h:866
RrcConnectionReestablishmentReject structure.
Definition: lte-rrc-sap.h:879
RrcConnectionReject structure.
Definition: lte-rrc-sap.h:890
RrcConnectionRelease structure.
Definition: lte-rrc-sap.h:884
RrcConnectionSetup structure.
Definition: lte-rrc-sap.h:699
SystemInformationBlockType1 structure.
Definition: lte-rrc-sap.h:595
SystemInformation structure.
Definition: lte-rrc-sap.h:609
UeMeasurementsParameters structure.
Represents a measurement result from a certain cell.
Definition: lte-ue-rrc.h:1060
uint32_t carrierFreq
Measurement object frequency.
Definition: lte-ue-rrc.h:1063
double rsrp
Measured RSRP in dBm.
Definition: lte-ue-rrc.h:1061
double rsrq
Measured RSRQ in dB.
Definition: lte-ue-rrc.h:1062
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
Definition: lte-ue-rrc.h:1110
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Definition: lte-ue-rrc.h:1112
EventId timer
The pending reporting event, scheduled at the end of the time-to-trigger.
Definition: lte-ue-rrc.h:1113
uint8_t measId
The measurement identity which raised the trigger.
Definition: lte-ue-rrc.h:1111
Includes the accumulated configuration of the measurements to be performed by the UE.
Definition: lte-ue-rrc.h:959
std::map< uint8_t, LteRrcSap::ReportConfigToAddMod > reportConfigList
report config list
Definition: lte-ue-rrc.h:962
LteRrcSap::QuantityConfig quantityConfig
quantity config
Definition: lte-ue-rrc.h:963
std::map< uint8_t, LteRrcSap::MeasObjectToAddMod > measObjectList
measure object list
Definition: lte-ue-rrc.h:961
std::map< uint8_t, LteRrcSap::MeasIdToAddMod > measIdList
measure ID list
Definition: lte-ue-rrc.h:960
Represents a single measurement reporting entry., which includes information about a measurement for ...
Definition: lte-ue-rrc.h:984
uint32_t numberOfReportsSent
number of reports sent
Definition: lte-ue-rrc.h:987
std::set< uint16_t > cellsTriggeredList
note: only E-UTRA is supported.
Definition: lte-ue-rrc.h:986
EventId periodicReportTimer
periodic report timer
Definition: lte-ue-rrc.h:988
uint8_t measId
measure ID
Definition: lte-ue-rrc.h:985
CompleteSetupParameters structure.
Definition: lte-rrc-sap.h:1005