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 
48 namespace ns3 {
49 
50 
68 
69 
70 class LteRlc;
71 class LteMacSapProvider;
72 class LteUeCmacSapUser;
76 
81 class LteUeRrc : public Object
82 {
83 
91  friend class MemberLteAsSapProvider<LteUeRrc>;
93  friend class MemberLteUeCphySapUser<LteUeRrc>;
95  friend class MemberLteUeRrcSapProvider<LteUeRrc>;
97  friend class MemberLteUeCcmRrcSapUser<LteUeRrc>;
98 
99 public:
100 
105  enum State
106  {
120  NUM_STATES
121  };
122 
123 
128  LteUeRrc ();
129 
130 
134  virtual ~LteUeRrc ();
135 
136 
137  // inherited from Object
138 private:
139  virtual void DoInitialize (void);
140  virtual void DoDispose (void);
141 public:
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 
290  uint8_t GetUlBandwidth () const;
291 
295  uint8_t GetDlBandwidth () const;
296 
300  uint32_t GetDlEarfcn () const;
301 
305  uint32_t GetUlEarfcn () const;
306 
311  State GetState () const;
312 
318  uint16_t GetPreviousCellId () const;
319 
325  void SetUseRlcSm (bool val);
326 
334  (uint64_t imsi, uint16_t cellId);
335 
343  typedef void (* ImsiCidRntiTracedCallback)
344  (uint64_t imsi, uint16_t cellId, uint16_t rnti);
345 
356  (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid);
357 
367  typedef void (* StateTracedCallback)
368  (uint64_t imsi, uint16_t cellId, uint16_t rnti,
369  State oldState, State newState);
370 
378  (Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod>);
379 
391  (uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count);
392 
403  (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint8_t count);
404 
405 
406 private:
407 
408 
409  // PDCP SAP methods
416 
417  // CMAC SAP methods
423  void DoSetTemporaryCellRnti (uint16_t rnti);
428 
429  // LTE AS SAP methods
435  void DoSetCsgWhiteList (uint32_t csgId);
442  void DoForceCampedOnEnb (uint16_t cellId, uint32_t dlEarfcn);
448  void DoStartCellSelection (uint32_t dlEarfcn);
450  void DoConnect ();
457  void DoSendData (Ptr<Packet> packet, uint8_t bid);
459  void DoDisconnect ();
460 
461  // CPHY SAP methods
468  void DoRecvMasterInformationBlock (uint16_t cellId,
476  void DoRecvSystemInformationBlockType1 (uint16_t cellId,
484 
485  // RRC SAP methods
486 
527 
532  void DoSetNumberOfComponentCarriers (uint16_t noOfComponentCarriers);
533 
534 
535  // INTERNAL METHODS
536 
545 
563  void EvaluateCellForSelection ();
564 
619 
642  void SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq,
643  bool useLayer3Filtering);
644 
661  void SaveScellUeMeasurements (uint16_t cellId, double rsrp, double rsrq,
662  bool useLayer3Filtering, uint16_t componentCarrierId);
687  void MeasurementReportTriggering (uint8_t measId);
688 
720  void SendMeasurementReport (uint8_t measId);
721 
733  void StartConnection ();
744  void LeaveConnectedMode ();
746  void DisposeOldSrb1 ();
752  uint8_t Bid2Drbid (uint8_t bid);
757  void SwitchToState (State s);
758 
759  std::map<uint8_t, uint8_t> m_bid2DrbidMap;
760 
761  std::vector<LteUeCphySapUser*> m_cphySapUser;
762  std::vector<LteUeCphySapProvider*> m_cphySapProvider;
763 
764  std::vector<LteUeCmacSapUser*> m_cmacSapUser;
765  std::vector<LteUeCmacSapProvider*> m_cmacSapProvider;
766 
769 
772 
775 
776  // Receive API calls from the LteUeComponentCarrierManager instance.
777  // LteCcmRrcSapUser* m_ccmRrcSapUser;
781 
784 
786  uint64_t m_imsi;
790  uint16_t m_rnti;
794  uint16_t m_cellId;
795 
813  std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
814 
820 
822 
824 
825  uint16_t m_dlBandwidth;
826  uint16_t m_ulBandwidth;
828  uint32_t m_dlEarfcn;
829  uint32_t m_ulEarfcn;
830  std::list<LteRrcSap::SCellToAddMod> m_sCellToAddModList;
910  TracedCallback<Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod> > m_sCarrierConfiguredTrace;
934 
943 
946 
948  std::set<uint16_t> m_acceptableCell;
949 
951  uint32_t m_csgWhiteList;
952 
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,
1047  bool reportOnLeave);
1048 
1059  void VarMeasReportListClear (uint8_t measId);
1060 
1064  struct MeasValues
1065  {
1066  double rsrp;
1067  double rsrq;
1069  };
1070 
1084  std::map<uint16_t, MeasValues> m_storedMeasValues;
1085 
1089  std::map<uint16_t, std::map <uint8_t, MeasValues> > m_storedMeasValuesPerCarrier;
1090 
1107  std::map<uint16_t, MeasValues> m_storedScellMeasValues;
1108 
1115  {
1116  uint8_t measId;
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 
1277 
1279 
1280  uint16_t m_previousCellId;
1281 
1283 
1295  void RadioLinkFailureDetected ();
1296 
1303  void DoNotifyInSync ();
1304 
1311  void DoNotifyOutOfSync ();
1312 
1322 
1337  void ResetRlfParams ();
1338 
1339 public:
1344 
1345 }; // end of class LteUeRrc
1346 
1347 
1348 } // namespace ns3
1349 
1350 #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:1055
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
Definition: lte-ue-rrc.h:821
bool m_connectionPending
True if a connection request by upper layers is pending.
Definition: lte-ue-rrc.h:936
bool m_hasReceivedSib1
True if SIB1 was received for the current cell.
Definition: lte-ue-rrc.h:940
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:2884
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:964
void DoNotifyOutOfSync()
Do notify out of sync function.
Definition: lte-ue-rrc.cc:3314
LteUeCcmRrcSapUser * GetLteCcmRrcSapUser()
Get the Component Carrier Management SAP offered by this RRC.
Definition: lte-ue-rrc.cc:416
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1196
uint16_t m_previousCellId
the cell id of the previous cell UE was attached to
Definition: lte-ue-rrc.h:1280
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
SRB1 configuration before RRC connection reconfiguration.
Definition: lte-ue-rrc.h:808
void SwitchToState(State s)
Switch the UE RRC to the given state.
Definition: lte-ue-rrc.cc:3171
uint16_t GetRnti() const
Definition: lte-ue-rrc.cc:462
void DoDisconnect()
Disconnect function.
Definition: lte-ue-rrc.cc:607
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
Definition: lte-ue-rrc.h:770
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:403
void DoNotifyRandomAccessFailed()
Notify random access failed function.
Definition: lte-ue-rrc.cc:707
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
The MibReceived trace source.
Definition: lte-ue-rrc.h:836
LteUeCmacSapUser * GetLteUeCmacSapUser()
This function is overloaded to maintain backward compatibility.
Definition: lte-ue-rrc.cc:374
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:1107
void SetLteUeCmacSapProvider(LteUeCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:360
uint64_t m_imsi
The unique UE identifier.
Definition: lte-ue-rrc.h:786
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:799
uint8_t m_connEstFailCountLimit
the counter value for T300 timer expiration received from the eNB
Definition: lte-ue-rrc.h:1282
LteUeCphySapUser * GetLteUeCphySapUser()
Definition: lte-ue-rrc.cc:346
void DoConnect()
Connect function.
Definition: lte-ue-rrc.cc:803
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
The HandoverEndError trace source.
Definition: lte-ue-rrc.h:904
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:853
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:1587
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
the PDSCH condig dedicated
Definition: lte-ue-rrc.h:823
uint8_t m_n310
The 'N310' attribute.
Definition: lte-ue-rrc.h:1257
void SetUseRlcSm(bool val)
Definition: lte-ue-rrc.cc:518
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
The InitialCellSelectionEndError trace source.
Definition: lte-ue-rrc.h:863
EventId m_radioLinkFailureDetected
Time limit (given by m_t310) before the radio link is considered to have failed.
Definition: lte-ue-rrc.h:1274
virtual void DoInitialize(void)
Initialize() implementation.
Definition: lte-ue-rrc.cc:526
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1167
void DoNotifyRandomAccessSuccessful()
Notify random access successful function.
Definition: lte-ue-rrc.cc:658
LteUeRrcSapProvider * m_rrcSapProvider
RRC SAP provider.
Definition: lte-ue-rrc.h:768
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:2804
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1025
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:2670
void InitializeSap(void)
Initiaize SAP.
Definition: lte-ue-rrc.cc:557
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:1278
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1143
bool m_hasReceivedSib2
True if SIB2 was received for the current cell.
Definition: lte-ue-rrc.h:942
void SynchronizeToStrongestCell()
Go through the list of measurement results, choose the one with the strongest RSRP,...
Definition: lte-ue-rrc.cc:1219
std::map< uint8_t, uint8_t > m_bid2DrbidMap
bid to DR bid map
Definition: lte-ue-rrc.h:759
void SetLteUeCphySapProvider(LteUeCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
Definition: lte-ue-rrc.cc:332
std::vector< LteUeCmacSapProvider * > m_cmacSapProvider
UE CMac SAP provider.
Definition: lte-ue-rrc.h:765
State GetState() const
Definition: lte-ue-rrc.cc:504
uint32_t m_dlEarfcn
Downlink carrier frequency.
Definition: lte-ue-rrc.h:828
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteUeComponentCarrierManage instance.
Definition: lte-ue-rrc.h:779
void DoSetCsgWhiteList(uint32_t csgId)
Set CSG white list function.
Definition: lte-ue-rrc.cc:740
void ApplyRadioResourceConfigDedicatedSecondaryCarrier(LteRrcSap::NonCriticalExtensionConfiguration nonCec)
Apply radio resource config dedicated secondary carrier.
Definition: lte-ue-rrc.cc:1344
LteAsSapProvider * GetAsSapProvider()
Definition: lte-ue-rrc.cc:429
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:402
TracedCallback< uint64_t, uint16_t, uint16_t > m_radioLinkFailureTrace
The 'RadioLinkFailure' trace source.
Definition: lte-ue-rrc.h:933
uint32_t m_ulEarfcn
Uplink carrier frequency.
Definition: lte-ue-rrc.h:829
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-ue-rrc.h:879
friend class UeRrcMemberLteEnbCmacSapUser
allow UeRrcMemberLteEnbCmacSapUser class friend access
Definition: lte-ue-rrc.h:87
uint8_t GetDlBandwidth() const
Definition: lte-ue-rrc.cc:484
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_sib1ReceivedTrace
The Sib1Received trace source.
Definition: lte-ue-rrc.h:842
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessErrorTrace
The RandomAccessError trace source.
Definition: lte-ue-rrc.h:874
uint32_t GetDlEarfcn() const
Definition: lte-ue-rrc.cc:491
std::list< LteRrcSap::SCellToAddMod > m_sCellToAddModList
Secondary carriers.
Definition: lte-ue-rrc.h:830
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
Definition: lte-ue-rrc.h:771
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > m_sCarrierConfiguredTrace
The SCarrierConfigured trace source.
Definition: lte-ue-rrc.h:910
void DoStartCellSelection(uint32_t dlEarfcn)
Start cell selection function.
Definition: lte-ue-rrc.cc:747
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:819
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-ue-rrc.h:899
TracedCallback< uint64_t, uint16_t, uint16_t, std::string, uint8_t > m_phySyncDetectionTrace
The 'PhySyncDetection' trace source.
Definition: lte-ue-rrc.h:928
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:391
Time m_t310
The 'T310' attribute.
Definition: lte-ue-rrc.h:1251
void RadioLinkFailureDetected()
Radio link failure detected function.
Definition: lte-ue-rrc.cc:3291
State m_state
The current UE RRC state.
Definition: lte-ue-rrc.h:783
std::vector< LteUeCphySapProvider * > m_cphySapProvider
UE CPhy SAP provider.
Definition: lte-ue-rrc.h:762
LteUeCcmRrcSapUser * m_ccmRrcSapUser
CCM RRC SAP user.
Definition: lte-ue-rrc.h:780
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
The DrbCreated trace source.
Definition: lte-ue-rrc.h:922
uint16_t m_numberOfComponentCarriers
The number of component carriers.
Definition: lte-ue-rrc.h:1343
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
Stored measure values per carrier.
Definition: lte-ue-rrc.h:1089
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:764
TracedCallback< uint64_t, uint16_t, uint16_t > m_srb1CreatedTrace
The Srb1Created trace source.
Definition: lte-ue-rrc.h:916
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
The InitialCellSelectionEndOk trace source.
Definition: lte-ue-rrc.h:858
uint8_t GetUlBandwidth() const
Definition: lte-ue-rrc.cc:477
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Send data function.
Definition: lte-ue-rrc.cc:581
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:356
LteAsSapProvider * m_asSapProvider
AS SAP provider.
Definition: lte-ue-rrc.h:773
void SaveUeMeasurements(uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering)
Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functio...
Definition: lte-ue-rrc.cc:1809
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-ue-rrc.h:790
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:469
void DoSetNumberOfComponentCarriers(uint16_t noOfComponentCarriers)
RRC CCM SAP USER Method.
Definition: lte-ue-rrc.cc:1210
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:2608
virtual ~LteUeRrc()
Destructor.
Definition: lte-ue-rrc.cc:168
std::map< uint16_t, MeasValues > m_storedMeasValues
Internal storage of the latest measurement results from all detected detected cells,...
Definition: lte-ue-rrc.h:1084
void SaveScellUeMeasurements(uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering, uint16_t componentCarrierId)
keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functio...
Definition: lte-ue-rrc.cc:3229
void DoReportUeMeasurements(LteUeCphySapUser::UeMeasurementsParameters params)
Report UE measurements function.
Definition: lte-ue-rrc.cc:912
LteUeRrcSapUser * m_rrcSapUser
RRC SAP user.
Definition: lte-ue-rrc.h:767
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-ue-rrc.h:889
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:1863
void SetLteCcmRrcSapProvider(LteUeCcmRrcSapProvider *s)
set the Component Carrier Management SAP this RRC should interact with
Definition: lte-ue-rrc.cc:409
TracedCallback< uint64_t, uint16_t, uint16_t > m_sib2ReceivedTrace
The Sib2Received trace source.
Definition: lte-ue-rrc.h:847
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:3075
uint32_t GetUlEarfcn() const
Definition: lte-ue-rrc.cc:497
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
Definition: lte-ue-rrc.cc:2865
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
Definition: lte-ue-rrc.cc:395
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-ue-rrc.h:813
uint16_t m_cellId
The CellId attribute.
Definition: lte-ue-rrc.h:794
uint8_t m_connEstFailCount
the counter to count T300 timer expiration
Definition: lte-ue-rrc.h:1284
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:641
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_connectionTimeoutTrace
The ConnectionTimeout trace source.
Definition: lte-ue-rrc.h:884
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:948
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:2732
std::vector< LteUeCphySapUser * > m_cphySapUser
UE CPhy SAP user.
Definition: lte-ue-rrc.h:761
uint64_t GetImsi(void) const
Definition: lte-ue-rrc.cc:456
void ConnectionTimeout()
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure ...
Definition: lte-ue-rrc.cc:3118
bool m_hasReceivedMib
True if MIB was received for the current cell.
Definition: lte-ue-rrc.h:938
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1189
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:1263
void(* CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:334
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
Receive system information block type 1 function.
Definition: lte-ue-rrc.cc:872
void StartConnection()
Start connection function.
Definition: lte-ue-rrc.cc:3064
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:976
void DoNotifyInSync()
Do notify in sync function.
Definition: lte-ue-rrc.cc:3301
uint16_t m_ulBandwidth
Uplink bandwidth in RBs.
Definition: lte-ue-rrc.h:826
LteUeRrc()
create an RRC instance for use within an ue
Definition: lte-ue-rrc.cc:134
uint32_t m_csgWhiteList
List of CSG ID which this UE entity has access to.
Definition: lte-ue-rrc.h:951
uint16_t GetPreviousCellId() const
Get the previous cell id.
Definition: lte-ue-rrc.cc:511
void(* ImsiCidRntiTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:344
static TypeId GetTypeId(void)
Get the type ID.
Definition: lte-ue-rrc.cc:196
void DisposeOldSrb1()
Dispose old SRB1.
Definition: lte-ue-rrc.cc:3149
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
The RandomAccessSuccessful trace source.
Definition: lte-ue-rrc.h:869
LteRrcSap::SystemInformationBlockType1 m_lastSib1
Stored content of the last SIB1 received.
Definition: lte-ue-rrc.h:945
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:368
void(* SCarrierConfiguredTracedCallback)(Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)
TracedCallback signature for secondary carrier configuration events.
Definition: lte-ue-rrc.h:378
void SetAsSapUser(LteAsSapUser *s)
Set the AS SAP user to interact with the NAS entity.
Definition: lte-ue-rrc.cc:423
void SetLteUeRrcSapUser(LteUeRrcSapUser *s)
set the RRC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:388
uint16_t m_dlBandwidth
Downlink bandwidth in RBs.
Definition: lte-ue-rrc.h:825
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-ue-rrc.h:803
LteAsSapUser * m_asSapUser
AS SAP user.
Definition: lte-ue-rrc.h:774
void SetImsi(uint64_t imsi)
Definition: lte-ue-rrc.cc:435
virtual void DoDispose(void)
Destructor implementation.
Definition: lte-ue-rrc.cc:174
void DoForceCampedOnEnb(uint16_t cellId, uint32_t dlEarfcn)
Force camped on ENB function.
Definition: lte-ue-rrc.cc:758
void StorePreviousCellId(uint16_t cellId)
Store the previous cell id.
Definition: lte-ue-rrc.cc:449
void ResetRlfParams()
Reset radio link failure parameters.
Definition: lte-ue-rrc.cc:3343
void DoResetSyncIndicationCounter()
Do reset sync indication counter function.
Definition: lte-ue-rrc.cc:3334
void ApplyRadioResourceConfigDedicated(LteRrcSap::RadioResourceConfigDedicated rrcd)
Apply radio resource config dedicated.
Definition: lte-ue-rrc.cc:1382
uint8_t Bid2Drbid(uint8_t bid)
Bid 2 DR bid.
Definition: lte-ue-rrc.cc:3156
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-ue-rrc.h:894
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:104
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:1305
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:1065
double rsrp
Measured RSRP in dBm.
Definition: lte-ue-rrc.h:1066
double rsrq
Measured RSRQ in dB.
Definition: lte-ue-rrc.h:1067
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
Definition: lte-ue-rrc.h:1115
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Definition: lte-ue-rrc.h:1117
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:1116
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:1005