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 
98 
99 public:
100 
105  enum State
106  {
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 
333  typedef void (* CellSelectionTracedCallback)
334  (uint64_t imsi, uint16_t cellId);
335 
343  typedef void (* ImsiCidRntiTracedCallback)
344  (uint64_t imsi, uint16_t cellId, uint16_t rnti);
345 
355  typedef void (* MibSibHandoverTracedCallback)
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 
377  typedef void (* SCarrierConfiguredTracedCallback)
378  (Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod>);
379 
390  typedef void (*PhySyncDetectionTracedCallback)
391  (uint64_t imsi, uint16_t rnti, uint16_t cellId, std::string type, uint16_t count);
392 
402  typedef void (* ImsiCidRntiCountTracedCallback)
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 
1285 
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
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
MemberLteUeCcmRrcSapUser class.
uint64_t GetImsi(void) const
Definition: lte-ue-rrc.cc:457
void DoSetNumberOfComponentCarriers(uint16_t noOfComponentCarriers)
RRC CCM SAP USER Method.
Definition: lte-ue-rrc.cc:1215
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
TracedCallback< uint64_t, uint16_t, uint16_t > m_radioLinkFailureTrace
The &#39;RadioLinkFailure&#39; trace source.
Definition: lte-ue-rrc.h:933
void(* SCarrierConfiguredTracedCallback)(Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)
TracedCallback signature for secondary carrier configuration events.
Definition: lte-ue-rrc.h:378
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
Part of the RRC protocol.
Definition: lte-rrc-sap.h:1000
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1026
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 DoRecvMasterInformationBlock(uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
Receive master information block function.
Definition: lte-ue-rrc.cc:846
std::map< uint8_t, LteRrcSap::MeasObjectToAddMod > measObjectList
measure object list
Definition: lte-ue-rrc.h:966
UeMemberLteUeCmacSapUser class.
Definition: lte-ue-rrc.cc:53
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:2613
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
Receive system information block type 1 function.
Definition: lte-ue-rrc.cc:873
static TypeId GetTypeId(void)
Get the type ID.
Definition: lte-ue-rrc.cc:197
std::set< uint16_t > cellsTriggeredList
note: only E-UTRA is supported.
Definition: lte-ue-rrc.h:991
uint8_t GetDlBandwidth() const
Definition: lte-ue-rrc.cc:485
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
Definition: lte-ue-rrc.h:771
EventId periodicReportTimer
periodic report timer
Definition: lte-ue-rrc.h:993
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
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:977
void DoNotifyOutOfSync()
Do notify out of sync function.
Definition: lte-ue-rrc.cc:3319
Template for the implementation of the LteUeCphySapUser as a member of an owner class of type C to wh...
uint8_t m_connEstFailCount
the counter to count T300 timer expiration
Definition: lte-ue-rrc.h:1284
void SetAsSapUser(LteAsSapUser *s)
Set the AS SAP user to interact with the NAS entity.
Definition: lte-ue-rrc.cc:424
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:1868
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1201
bool m_hasReceivedSib2
True if SIB2 was received for the current cell.
Definition: lte-ue-rrc.h:942
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
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-ue-rrc.h:813
void ApplyMeasConfig(LteRrcSap::MeasConfig mc)
Update the current measurement configuration m_varMeasConfig.
Definition: lte-ue-rrc.cc:1592
virtual void DoDispose(void)
Destructor implementation.
Definition: lte-ue-rrc.cc:175
void SetUseRlcSm(bool val)
Definition: lte-ue-rrc.cc:519
uint16_t m_numberOfComponentCarriers
The number of component carriers.
Definition: lte-ue-rrc.h:1343
uint8_t measId
The measurement identity which raised the trigger.
Definition: lte-ue-rrc.h:1116
MeasConfig structure.
Definition: lte-rrc-sap.h:518
Includes the accumulated configuration of the measurements to be performed by the UE...
Definition: lte-ue-rrc.h:963
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
the PDSCH condig dedicated
Definition: lte-ue-rrc.h:823
void DoSetTemporaryCellRnti(uint16_t rnti)
Set temporary cell rnti function.
Definition: lte-ue-rrc.cc:650
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
Definition: lte-ue-rrc.h:1114
EventId m_connectionTimeout
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes ...
Definition: lte-ue-rrc.h:1235
LteUeRrc()
create an RRC instance for use within an ue
Definition: lte-ue-rrc.cc:135
uint8_t m_n311
The &#39;N311&#39; attribute.
Definition: lte-ue-rrc.h:1263
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
std::vector< LteUeCmacSapProvider * > m_cmacSapProvider
UE CMac SAP provider.
Definition: lte-ue-rrc.h:765
virtual ~LteUeRrc()
Destructor.
Definition: lte-ue-rrc.cc:169
uint16_t m_cellId
The CellId attribute.
Definition: lte-ue-rrc.h:794
EventId timer
The pending reporting event, scheduled at the end of the time-to-trigger.
Definition: lte-ue-rrc.h:1118
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:2675
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:41
bool m_hasReceivedMib
True if MIB was received for the current cell.
Definition: lte-ue-rrc.h:938
uint16_t GetPreviousCellId() const
Get the previous cell id.
Definition: lte-ue-rrc.cc:512
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1172
uint8_t GetUlBandwidth() const
Definition: lte-ue-rrc.cc:478
uint32_t m_dlEarfcn
Downlink carrier frequency.
Definition: lte-ue-rrc.h:828
QuantityConfig structure.
Definition: lte-rrc-sap.h:295
uint16_t m_dlBandwidth
Downlink bandwidth in RBs.
Definition: lte-ue-rrc.h:825
bool m_connectionPending
True if a connection request by upper layers is pending.
Definition: lte-ue-rrc.h:936
void DoStartCellSelection(uint32_t dlEarfcn)
Start cell selection function.
Definition: lte-ue-rrc.cc:748
bool m_hasReceivedSib1
True if SIB1 was received for the current cell.
Definition: lte-ue-rrc.h:940
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
Definition: lte-ue-rrc.h:770
TracedCallback< uint64_t, uint16_t, uint16_t > m_srb1CreatedTrace
The Srb1Created trace source.
Definition: lte-ue-rrc.h:916
uint32_t numberOfReportsSent
number of reports sent
Definition: lte-ue-rrc.h:992
uint8_t Bid2Drbid(uint8_t bid)
Bid 2 DR bid.
Definition: lte-ue-rrc.cc:3161
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
SystemInformation structure.
Definition: lte-rrc-sap.h:608
void DoResetSyncIndicationCounter()
Do reset sync indication counter function.
Definition: lte-ue-rrc.cc:3339
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Definition: lte-pdcp-sap.h:76
Time timestamp
Not used.
Definition: lte-ue-rrc.h:1068
LteUeCmacSapUser * GetLteUeCmacSapUser()
This function is overloaded to maintain backward compatibility.
Definition: lte-ue-rrc.cc:375
uint16_t GetRnti() const
Definition: lte-ue-rrc.cc:463
static const Time UE_MEASUREMENT_REPORT_DELAY
Artificial delay of UE measurements procedure.
Definition: lte-ue-rrc.h:67
LteRrcSap::QuantityConfig quantityConfig
quantity config
Definition: lte-ue-rrc.h:968
store information on active data radio bearer instance
std::vector< LteUeCphySapProvider * > m_cphySapProvider
UE CPhy SAP provider.
Definition: lte-ue-rrc.h:762
void SetLteUeRrcSapUser(LteUeRrcSapUser *s)
set the RRC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:389
LteUeRrcSapUser * m_rrcSapUser
RRC SAP user.
Definition: lte-ue-rrc.h:767
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-ue-rrc.h:899
State m_state
The current UE RRC state.
Definition: lte-ue-rrc.h:783
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
Definition: lte-ue-rrc.h:799
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Definition: lte-ue-rrc.h:1117
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > m_sCarrierConfiguredTrace
The SCarrierConfigured trace source.
Definition: lte-ue-rrc.h:910
RrcConnectionReestablishment structure.
Definition: lte-rrc-sap.h:865
Represents a measurement result from a certain cell.
Definition: lte-ue-rrc.h:1064
void DisposeOldSrb1()
Dispose old SRB1.
Definition: lte-ue-rrc.cc:3154
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-ue-rrc.h:894
void DoRecvRrcConnectionReconfiguration(LteRrcSap::RrcConnectionReconfiguration msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1056
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1148
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessErrorTrace
The RandomAccessError trace source.
Definition: lte-ue-rrc.h:874
Service Access Point (SAP) offered by the UE RRC to the UE CCM.
TracedCallback< uint64_t, uint16_t, uint16_t > m_sib2ReceivedTrace
The Sib2Received trace source.
Definition: lte-ue-rrc.h:847
void ConnectionTimeout()
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure ...
Definition: lte-ue-rrc.cc:3123
void EvaluateCellForSelection()
Performs cell selection evaluation to the current serving cell.
Definition: lte-ue-rrc.cc:1268
RrcConnectionReconfiguration structure.
Definition: lte-rrc-sap.h:836
virtual void DoInitialize(void)
Initialize() implementation.
Definition: lte-ue-rrc.cc:527
std::map< uint16_t, MeasValues > m_storedMeasValues
Internal storage of the latest measurement results from all detected detected cells, indexed by the cell ID where the measurement was taken from.
Definition: lte-ue-rrc.h:1084
void StorePreviousCellId(uint16_t cellId)
Store the previous cell id.
Definition: lte-ue-rrc.cc:450
void SetLteCcmRrcSapProvider(LteUeCcmRrcSapProvider *s)
set the Component Carrier Management SAP this RRC should interact with
Definition: lte-ue-rrc.cc:410
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-ue-rrc.h:803
uint8_t measId
measure ID
Definition: lte-ue-rrc.h:990
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 SetLteUeCmacSapProvider(LteUeCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:361
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
Template for the implementation of the LteAsSapProvider as a member of an owner class of type C to wh...
Definition: lte-as-sap.h:147
uint32_t m_csgWhiteList
List of CSG ID which this UE entity has access to.
Definition: lte-ue-rrc.h:951
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
std::map< uint8_t, LteRrcSap::MeasIdToAddMod > measIdList
measure ID list
Definition: lte-ue-rrc.h:965
std::map< uint8_t, uint8_t > m_bid2DrbidMap
bid to DR bid map
Definition: lte-ue-rrc.h:759
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
Definition: lte-ue-rrc.cc:403
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
The InitialCellSelectionEndOk trace source.
Definition: lte-ue-rrc.h:858
RrcConnectionSetup structure.
Definition: lte-rrc-sap.h:698
std::list< LteRrcSap::SCellToAddMod > m_sCellToAddModList
Secondary carriers.
Definition: lte-ue-rrc.h:830
void SetLteUeCphySapProvider(LteUeCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
Definition: lte-ue-rrc.cc:333
void SwitchToState(State s)
Switch the UE RRC to the given state.
Definition: lte-ue-rrc.cc:3176
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
The InitialCellSelectionEndError trace source.
Definition: lte-ue-rrc.h:863
VarMeasConfig m_varMeasConfig
Includes the accumulated configuration of the measurements to be performed by the UE...
Definition: lte-ue-rrc.h:979
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
SystemInformationBlockType1 structure.
Definition: lte-rrc-sap.h:594
std::vector< LteUeCphySapUser * > m_cphySapUser
UE CPhy SAP user.
Definition: lte-ue-rrc.h:761
uint8_t m_connEstFailCountLimit
the counter value for T300 timer expiration received from the eNB
Definition: lte-ue-rrc.h:1282
std::map< uint8_t, LteRrcSap::ReportConfigToAddMod > reportConfigList
report config list
Definition: lte-ue-rrc.h:967
Every class exported by the ns3 library is enclosed in the ns3 namespace.
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_connectionTimeoutTrace
The ConnectionTimeout trace source.
Definition: lte-ue-rrc.h:884
Time m_t310
The &#39;T310&#39; attribute.
Definition: lte-ue-rrc.h:1251
uint16_t m_ulBandwidth
Uplink bandwidth in RBs.
Definition: lte-ue-rrc.h:826
RrcConnectionReject structure.
Definition: lte-rrc-sap.h:889
LteAsSapUser * m_asSapUser
AS SAP user.
Definition: lte-ue-rrc.h:774
Template for the implementation of the LteUeRrcSapProvider as a member of an owner class of type C to...
Definition: lte-rrc-sap.h:1403
TracedCallback< uint64_t, uint16_t, uint16_t, uint8_t > m_drbCreatedTrace
The DrbCreated trace source.
Definition: lte-ue-rrc.h:922
void ResetRlfParams()
Reset radio link failure parameters.
Definition: lte-ue-rrc.cc:3348
void DoNotifyRandomAccessSuccessful()
Notify random access successful function.
Definition: lte-ue-rrc.cc:659
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:3234
void RadioLinkFailureDetected()
Radio link failure detected function.
Definition: lte-ue-rrc.cc:3296
LteUeCcmRrcSapUser * m_ccmRrcSapUser
CCM RRC SAP user.
Definition: lte-ue-rrc.h:780
MasterInformationBlock structure.
Definition: lte-rrc-sap.h:587
store information on active signaling radio bearer instance
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_sib1ReceivedTrace
The Sib1Received trace source.
Definition: lte-ue-rrc.h:842
double rsrq
Measured RSRQ in dB.
Definition: lte-ue-rrc.h:1067
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Send data function.
Definition: lte-ue-rrc.cc:582
uint16_t m_previousCellId
the cell id of the previous cell UE was attached to
Definition: lte-ue-rrc.h:1280
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
void DoForceCampedOnEnb(uint16_t cellId, uint32_t dlEarfcn)
Force camped on ENB function.
Definition: lte-ue-rrc.cc:759
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
Definition: lte-as-sap.h:105
LtePdcpSpecificLtePdcpSapUser class.
Definition: lte-pdcp-sap.h:132
RrcConnectionReestablishmentReject structure.
Definition: lte-rrc-sap.h:878
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1194
double rsrp
Measured RSRP in dBm.
Definition: lte-ue-rrc.h:1066
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:2809
LteUeCcmRrcSapUser * GetLteCcmRrcSapUser()
Get the Component Carrier Management SAP offered by this RRC.
Definition: lte-ue-rrc.cc:417
uint8_t m_n310
The &#39;N310&#39; attribute.
Definition: lte-ue-rrc.h:1257
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteUeComponentCarrierManage instance.
Definition: lte-ue-rrc.h:779
LteUeCphySapUser * GetLteUeCphySapUser()
Definition: lte-ue-rrc.cc:347
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-ue-rrc.h:889
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
SRB1 configuration before RRC connection reconfiguration.
Definition: lte-ue-rrc.h:808
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:105
void StartConnection()
Start connection function.
Definition: lte-ue-rrc.cc:3069
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:1814
Service Access Point (SAP) offered by the UE component carrier manager to the UE RRC...
friend class UeRrcMemberLteEnbCmacSapUser
allow UeRrcMemberLteEnbCmacSapUser class friend access
Definition: lte-ue-rrc.h:87
void DoSetCsgWhiteList(uint32_t csgId)
Set CSG white list function.
Definition: lte-ue-rrc.cc:741
std::vector< LteUeCmacSapUser * > m_cmacSapUser
UE CMac SAP user.
Definition: lte-ue-rrc.h:764
void DoNotifyRandomAccessFailed()
Notify random access failed function.
Definition: lte-ue-rrc.cc:708
An identifier for simulation events.
Definition: event-id.h:53
void DoCompleteSetup(LteUeRrcSapProvider::CompleteSetupParameters params)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:965
LteUeRrcSapProvider * m_rrcSapProvider
RRC SAP provider.
Definition: lte-ue-rrc.h:768
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36.323 Packet Data Convergence Protocol (PDCP) specification.
Definition: lte-pdcp-sap.h:68
void DoConnect()
Connect function.
Definition: lte-ue-rrc.cc:804
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 ApplyRadioResourceConfigDedicated(LteRrcSap::RadioResourceConfigDedicated rrcd)
Apply radio resource config dedicated.
Definition: lte-ue-rrc.cc:1387
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-ue-rrc.h:879
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
LteAsSapProvider * m_asSapProvider
AS SAP provider.
Definition: lte-ue-rrc.h:773
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
The MibReceived trace source.
Definition: lte-ue-rrc.h:836
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-ue-rrc.h:790
uint64_t m_imsi
The unique UE identifier.
Definition: lte-ue-rrc.h:786
void ApplyRadioResourceConfigDedicatedSecondaryCarrier(LteRrcSap::NonCriticalExtensionConfiguration nonCec)
Apply radio resource config dedicated secondary carrier.
Definition: lte-ue-rrc.cc:1349
UeMeasurementsParameters structure.
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
LteAsSapProvider * GetAsSapProvider()
Definition: lte-ue-rrc.cc:430
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:36
void DoReportUeMeasurements(LteUeCphySapUser::UeMeasurementsParameters params)
Report UE measurements function.
Definition: lte-ue-rrc.cc:913
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
Represents a single measurement reporting entry., which includes information about a measurement for ...
Definition: lte-ue-rrc.h:988
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition: nstime.h:1294
CompleteSetupParameters structure.
Definition: lte-rrc-sap.h:1004
void DoNotifyInSync()
Do notify in sync function.
Definition: lte-ue-rrc.cc:3306
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source.
Definition: lte-ue-rrc.h:853
void SendMeasurementReport(uint8_t measId)
Produce a proper measurement report from the given measurement identity&#39;s reporting entry in m_varMea...
Definition: lte-ue-rrc.cc:2889
uint32_t GetDlEarfcn() const
Definition: lte-ue-rrc.cc:492
A base class which provides memory management and object aggregation.
Definition: object.h:87
void SynchronizeToStrongestCell()
Go through the list of measurement results, choose the one with the strongest RSRP, and tell PHY to synchronize to it.
Definition: lte-ue-rrc.cc:1224
void InitializeSap(void)
Initiaize SAP.
Definition: lte-ue-rrc.cc:558
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Receive PDCP SDU function.
Definition: lte-ue-rrc.cc:642
Part of the RRC protocol.
Definition: lte-rrc-sap.h:916
NonCriticalExtensionConfiguration structure.
Definition: lte-rrc-sap.h:829
uint32_t GetUlEarfcn() const
Definition: lte-ue-rrc.cc:498
RrcConnectionRelease structure.
Definition: lte-rrc-sap.h:883
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:154
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
Definition: lte-ue-rrc.cc:396
std::list< uint16_t > ConcernedCells_t
List of cell IDs which are responsible for a certain trigger.
Definition: lte-ue-rrc.h:1006
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
Stored measure values per carrier.
Definition: lte-ue-rrc.h:1089
Time m_t300
The T300 attribute.
Definition: lte-ue-rrc.h:1229
void VarMeasReportListAdd(uint8_t measId, ConcernedCells_t enteringCells)
Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList, and set it up for submission to eNodeB.
Definition: lte-ue-rrc.cc:2737
void DoDisconnect()
Disconnect function.
Definition: lte-ue-rrc.cc:608
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
The RandomAccessSuccessful trace source.
Definition: lte-ue-rrc.h:869
TracedCallback< uint64_t, uint16_t, uint16_t, std::string, uint8_t > m_phySyncDetectionTrace
The &#39;PhySyncDetection&#39; trace source.
Definition: lte-ue-rrc.h:928
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
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE...
Definition: lte-rlc.h:50
a unique identifier for an interface.
Definition: type-id.h:58
void(* CellSelectionTracedCallback)(uint64_t imsi, uint16_t cellId)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:334
void SetImsi(uint64_t imsi)
Definition: lte-ue-rrc.cc:436
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
Definition: lte-ue-rrc.h:821
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
Definition: lte-ue-rrc.cc:2870
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:3080
uint32_t m_ulEarfcn
Uplink carrier frequency.
Definition: lte-ue-rrc.h:829
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
The HandoverEndError trace source.
Definition: lte-ue-rrc.h:904
uint8_t m_noOfSyncIndications
number of in-sync or out-of-sync indications coming from PHY layer
Definition: lte-ue-rrc.h:1276
LteRrcSap::SystemInformationBlockType1 m_lastSib1
Stored content of the last SIB1 received.
Definition: lte-ue-rrc.h:945
State GetState() const
Definition: lte-ue-rrc.cc:505
RadioResourceConfigDedicated structure.
Definition: lte-rrc-sap.h:285
uint16_t GetCellId() const
Definition: lte-ue-rrc.cc:470