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  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Nicola Baldo <nbaldo@cttc.es>
19  * Budiarto Herman <budiarto.herman@magister.fi>
20  * Modified by:
21  * Danilo Abrignani <danilo.abrignani@unibo.it> (Carrier Aggregation - GSoC 2015)
22  * Biljana Bojovic <biljana.bojovic@cttc.es> (Carrier Aggregation)
23  */
24 
25 #ifndef LTE_UE_RRC_H
26 #define LTE_UE_RRC_H
27 
28 #include <ns3/object.h>
29 #include <ns3/packet.h>
30 #include <ns3/lte-ue-cmac-sap.h>
31 #include <ns3/lte-pdcp-sap.h>
32 #include <ns3/lte-as-sap.h>
33 #include <ns3/lte-ue-cphy-sap.h>
34 #include <ns3/lte-rrc-sap.h>
35 #include <ns3/traced-callback.h>
36 #include "ns3/component-carrier-ue.h"
37 #include <ns3/lte-ue-ccm-rrc-sap.h>
38 #include <vector>
39 
40 #include <map>
41 #include <set>
42 
43 #define MIN_NO_CC 1
44 #define MAX_NO_CC 5 // this is the maximum number of carrier components allowed by 3GPP up to R13
45 
46 namespace ns3 {
47 
48 
66 
67 
68 class LteRlc;
69 class LteMacSapProvider;
70 class LteUeCmacSapUser;
74 
79 class LteUeRrc : public Object
80 {
81 
96 
97 public:
98 
103  enum State
104  {
119  };
120 
121 
126  LteUeRrc ();
127 
128 
132  virtual ~LteUeRrc ();
133 
134 
135  // inherited from Object
136 private:
137  virtual void DoInitialize (void);
138  virtual void DoDispose (void);
139 public:
144  static TypeId GetTypeId (void);
145 
147  void InitializeSap (void);
148 
161  void SetLteUeCphySapProvider (LteUeCphySapProvider * s, uint8_t index);
162 
174  LteUeCphySapUser* GetLteUeCphySapUser (uint8_t index);
175 
188  void SetLteUeCmacSapProvider (LteUeCmacSapProvider * s, uint8_t index);
189 
200  LteUeCmacSapUser* GetLteUeCmacSapUser (uint8_t index);
201 
202 
209 
216 
225 
231  void SetAsSapUser (LteAsSapUser* s);
232 
239 
246 
253 
258  void SetImsi (uint64_t imsi);
259 
264  uint64_t GetImsi (void) const;
265 
270  uint16_t GetRnti () const;
271 
276  uint16_t GetCellId () const;
277 
281  uint8_t GetUlBandwidth () const;
282 
286  uint8_t GetDlBandwidth () const;
287 
291  uint32_t GetDlEarfcn () const;
292 
296  uint32_t GetUlEarfcn () const;
297 
302  State GetState () const;
303 
309  void SetUseRlcSm (bool val);
310 
317  typedef void (* CellSelectionTracedCallback)
318  (uint64_t imsi, uint16_t cellId);
319 
327  typedef void (* ImsiCidRntiTracedCallback)
328  (uint64_t imsi, uint16_t cellId, uint16_t rnti);
329 
339  typedef void (* MibSibHandoverTracedCallback)
340  (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t otherCid);
341 
351  typedef void (* StateTracedCallback)
352  (uint64_t imsi, uint16_t cellId, uint16_t rnti,
353  State oldState, State newState);
354 
355 
356 private:
357 
358 
359  // PDCP SAP methods
366 
367  // CMAC SAP methods
373  void DoSetTemporaryCellRnti (uint16_t rnti);
378 
379  // LTE AS SAP methods
385  void DoSetCsgWhiteList (uint32_t csgId);
392  void DoForceCampedOnEnb (uint16_t cellId, uint32_t dlEarfcn);
398  void DoStartCellSelection (uint32_t dlEarfcn);
400  void DoConnect ();
407  void DoSendData (Ptr<Packet> packet, uint8_t bid);
409  void DoDisconnect ();
410 
411  // CPHY SAP methods
418  void DoRecvMasterInformationBlock (uint16_t cellId,
426  void DoRecvSystemInformationBlockType1 (uint16_t cellId,
434 
435  // RRC SAP methods
436 
477 
482  void DoComponentCarrierEnabling (std::vector<uint8_t> res);
483 
484 
485  // INTERNAL METHODS
486 
495 
513  void EvaluateCellForSelection ();
514 
569 
592  void SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq,
593  bool useLayer3Filtering);
594 
611  void SaveScellUeMeasurements (uint16_t cellId, double rsrp, double rsrq,
612  bool useLayer3Filtering, uint16_t componentCarrierId);
637  void MeasurementReportTriggering (uint8_t measId);
638 
670  void SendMeasurementReport (uint8_t measId);
671 
683  void StartConnection ();
685  void LeaveConnectedMode ();
687  void DisposeOldSrb1 ();
693  uint8_t Bid2Drbid (uint8_t bid);
698  void SwitchToState (State s);
699 
700  std::map<uint8_t, uint8_t> m_bid2DrbidMap;
701 
702  std::vector<LteUeCphySapUser*> m_cphySapUser;
703  std::vector<LteUeCphySapProvider*> m_cphySapProvider;
704 
705  std::vector<LteUeCmacSapUser*> m_cmacSapUser;
706  std::vector<LteUeCmacSapProvider*> m_cmacSapProvider;
707 
710 
713 
716 
717  // Receive API calls from the LteUeComponentCarrierManager instance.
718  // LteCcmRrcSapUser* m_ccmRrcSapUser;
722 
725 
727  uint64_t m_imsi;
731  uint16_t m_rnti;
735  uint16_t m_cellId;
736 
754  std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
755 
761 
763 
765 
766  uint8_t m_dlBandwidth;
767  uint8_t m_ulBandwidth;
769  uint32_t m_dlEarfcn;
770  uint32_t m_ulEarfcn;
845 
854 
857 
859  std::set<uint16_t> m_acceptableCell;
860 
862  uint32_t m_csgWhiteList;
863 
864 
865  // INTERNAL DATA STRUCTURE RELATED TO UE MEASUREMENTS
866 
875  {
876  std::map<uint8_t, LteRrcSap::MeasIdToAddMod> measIdList;
877  std::map<uint8_t, LteRrcSap::MeasObjectToAddMod> measObjectList;
878  std::map<uint8_t, LteRrcSap::ReportConfigToAddMod> reportConfigList;
880  double aRsrp;
881  double aRsrq;
882  };
883 
891 
900  {
901  uint8_t measId;
902  std::set<uint16_t> cellsTriggeredList;
905  };
906 
912  std::map<uint8_t, VarMeasReport> m_varMeasReportList;
913 
917  typedef std::list<uint16_t> ConcernedCells_t;
918 
937  void VarMeasReportListAdd (uint8_t measId, ConcernedCells_t enteringCells);
938 
957  void VarMeasReportListErase (uint8_t measId, ConcernedCells_t leavingCells,
958  bool reportOnLeave);
959 
970  void VarMeasReportListClear (uint8_t measId);
971 
975  struct MeasValues
976  {
977  double rsrp;
978  double rsrq;
980  };
981 
995  std::map<uint16_t, MeasValues> m_storedMeasValues;
996 
1000  std::map<uint16_t, std::map <uint8_t, MeasValues> > m_storedMeasValuesPerCarrier;
1001 
1018  std::map<uint16_t, MeasValues> m_storedScellMeasValues;
1019 
1026  {
1027  uint8_t measId;
1028  ConcernedCells_t concernedCells;
1030  };
1031 
1041  std::map<uint8_t, std::list<PendingTrigger_t> > m_enteringTriggerQueue;
1042 
1053  std::map<uint8_t, std::list<PendingTrigger_t> > m_leavingTriggerQueue;
1054 
1072  void CancelEnteringTrigger (uint8_t measId);
1073 
1093  void CancelEnteringTrigger (uint8_t measId, uint16_t cellId);
1094 
1112  void CancelLeavingTrigger (uint8_t measId);
1113 
1133  void CancelLeavingTrigger (uint8_t measId, uint16_t cellId);
1134 
1141 
1147 
1152  void ConnectionTimeout ();
1153 
1154 public:
1159 
1160 }; // end of class LteUeRrc
1161 
1162 
1163 } // namespace ns3
1164 
1165 #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:1018
MemberLteUeCcmRrcSapUser class.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
Part of the RRC protocol.
Definition: lte-rrc-sap.h:982
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:951
void DoRecvMasterInformationBlock(uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
Receive master information block function.
Definition: lte-ue-rrc.cc:776
std::map< uint8_t, LteRrcSap::MeasObjectToAddMod > measObjectList
measure object list
Definition: lte-ue-rrc.h:877
UeMemberLteUeCmacSapUser class.
Definition: lte-ue-rrc.cc:51
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:2468
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
Receive system information block type 1 function.
Definition: lte-ue-rrc.cc:803
void DoComponentCarrierEnabling(std::vector< uint8_t > res)
RRC CCM SAP USER Method.
Definition: lte-ue-rrc.cc:3030
static TypeId GetTypeId(void)
Get the type ID.
Definition: lte-ue-rrc.cc:190
std::set< uint16_t > cellsTriggeredList
note: only E-UTRA is supported.
Definition: lte-ue-rrc.h:902
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
Definition: lte-ue-rrc.h:712
EventId periodicReportTimer
periodic report timer
Definition: lte-ue-rrc.h:904
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:340
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:907
Template for the implementation of the LteUeCphySapUser as a member of an owner class of type C to wh...
void SetAsSapUser(LteAsSapUser *s)
Set the AS SAP user to interact with the NAS entity.
Definition: lte-ue-rrc.cc:377
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:1723
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1106
bool m_hasReceivedSib2
True if SIB2 was received for the current cell.
Definition: lte-ue-rrc.h:853
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-ue-rrc.h:754
void ApplyMeasConfig(LteRrcSap::MeasConfig mc)
Update the current measurement configuration m_varMeasConfig.
Definition: lte-ue-rrc.cc:1452
virtual void DoDispose(void)
Destructor implementation.
Definition: lte-ue-rrc.cc:168
void SetUseRlcSm(bool val)
Definition: lte-ue-rrc.cc:451
uint16_t m_numberOfComponentCarriers
The number of component carriers.
Definition: lte-ue-rrc.h:1158
uint8_t measId
The measurement identity which raised the trigger.
Definition: lte-ue-rrc.h:1027
MeasConfig structure.
Definition: lte-rrc-sap.h:511
Includes the accumulated configuration of the measurements to be performed by the UE...
Definition: lte-ue-rrc.h:874
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
the PDSCH condig dedicated
Definition: lte-ue-rrc.h:764
void DoSetTemporaryCellRnti(uint16_t rnti)
Set temporary cell rnti function.
Definition: lte-ue-rrc.cc:581
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
Definition: lte-ue-rrc.h:1025
EventId m_connectionTimeout
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes ...
Definition: lte-ue-rrc.h:1146
LteUeRrc()
create an RRC instance for use within an ue
Definition: lte-ue-rrc.cc:133
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:706
virtual ~LteUeRrc()
Destructor.
Definition: lte-ue-rrc.cc:162
uint16_t m_cellId
The CellId attribute.
Definition: lte-ue-rrc.h:735
EventId timer
The pending reporting event, scheduled at the end of the time-to-trigger.
Definition: lte-ue-rrc.h:1029
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:2530
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:849
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1077
uint32_t m_dlEarfcn
Downlink carrier frequency.
Definition: lte-ue-rrc.h:769
QuantityConfig structure.
Definition: lte-rrc-sap.h:288
bool m_connectionPending
True if a connection request by upper layers is pending.
Definition: lte-ue-rrc.h:847
void DoStartCellSelection(uint32_t dlEarfcn)
Start cell selection function.
Definition: lte-ue-rrc.cc:678
bool m_hasReceivedSib1
True if SIB1 was received for the current cell.
Definition: lte-ue-rrc.h:851
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
Definition: lte-ue-rrc.h:711
uint32_t numberOfReportsSent
number of reports sent
Definition: lte-ue-rrc.h:903
uint8_t Bid2Drbid(uint8_t bid)
Bid 2 DR bid.
Definition: lte-ue-rrc.cc:2965
void(* ImsiCidRntiTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti)
TracedCallback signature for imsi, cellId and rnti events.
Definition: lte-ue-rrc.h:328
SystemInformation structure.
Definition: lte-rrc-sap.h:601
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Definition: lte-pdcp-sap.h:76
Time timestamp
Not used.
Definition: lte-ue-rrc.h:979
LteUeCmacSapUser * GetLteUeCmacSapUser()
This function is overloaded to maintain backward compatibility.
Definition: lte-ue-rrc.cc:328
static const Time UE_MEASUREMENT_REPORT_DELAY
Artificial delay of UE measurements procedure.
Definition: lte-ue-rrc.h:65
LteRrcSap::QuantityConfig quantityConfig
quantity config
Definition: lte-ue-rrc.h:879
store information on active data radio bearer instance
std::vector< LteUeCphySapProvider * > m_cphySapProvider
UE CPhy SAP provider.
Definition: lte-ue-rrc.h:703
void SetLteUeRrcSapUser(LteUeRrcSapUser *s)
set the RRC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:342
LteUeRrcSapUser * m_rrcSapUser
RRC SAP user.
Definition: lte-ue-rrc.h:708
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-ue-rrc.h:839
State m_state
The current UE RRC state.
Definition: lte-ue-rrc.h:724
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
Definition: lte-ue-rrc.h:740
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Definition: lte-ue-rrc.h:1028
RrcConnectionReestablishment structure.
Definition: lte-rrc-sap.h:858
Represents a measurement result from a certain cell.
Definition: lte-ue-rrc.h:975
void DisposeOldSrb1()
Dispose old SRB1.
Definition: lte-ue-rrc.cc:2958
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-ue-rrc.h:834
void DoRecvRrcConnectionReconfiguration(LteRrcSap::RrcConnectionReconfiguration msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:976
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1053
uint8_t m_dlBandwidth
Downlink bandwidth in RBs.
Definition: lte-ue-rrc.h:766
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:814
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:787
void ConnectionTimeout()
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure ...
Definition: lte-ue-rrc.cc:2947
void EvaluateCellForSelection()
Performs cell selection evaluation to the current serving cell.
Definition: lte-ue-rrc.cc:1163
RrcConnectionReconfiguration structure.
Definition: lte-rrc-sap.h:829
virtual void DoInitialize(void)
Initialize() implementation.
Definition: lte-ue-rrc.cc:459
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:995
void SetLteCcmRrcSapProvider(LteUeCcmRrcSapProvider *s)
set the Component Carrier Management SAP this RRC should interact with
Definition: lte-ue-rrc.cc:363
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-ue-rrc.h:744
uint8_t measId
measure ID
Definition: lte-ue-rrc.h:901
uint8_t GetUlBandwidth() const
Definition: lte-ue-rrc.cc:417
void SetLteUeCmacSapProvider(LteUeCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:314
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:760
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:862
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:876
std::map< uint8_t, uint8_t > m_bid2DrbidMap
bid to DR bid map
Definition: lte-ue-rrc.h:700
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
Definition: lte-ue-rrc.cc:356
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
The InitialCellSelectionEndOk trace source.
Definition: lte-ue-rrc.h:798
RrcConnectionSetup structure.
Definition: lte-rrc-sap.h:691
void SetLteUeCphySapProvider(LteUeCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
Definition: lte-ue-rrc.cc:286
void SwitchToState(State s)
Switch the UE RRC to the given state.
Definition: lte-ue-rrc.cc:2980
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
The InitialCellSelectionEndError trace source.
Definition: lte-ue-rrc.h:803
VarMeasConfig m_varMeasConfig
Includes the accumulated configuration of the measurements to be performed by the UE...
Definition: lte-ue-rrc.h:890
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:1053
SystemInformationBlockType1 structure.
Definition: lte-rrc-sap.h:587
std::vector< LteUeCphySapUser * > m_cphySapUser
UE CPhy SAP user.
Definition: lte-ue-rrc.h:702
std::map< uint8_t, LteRrcSap::ReportConfigToAddMod > reportConfigList
report config list
Definition: lte-ue-rrc.h:878
Every class exported by the ns3 library is enclosed in the ns3 namespace.
RrcConnectionReject structure.
Definition: lte-rrc-sap.h:882
LteAsSapUser * m_asSapUser
AS SAP user.
Definition: lte-ue-rrc.h:715
Template for the implementation of the LteUeRrcSapProvider as a member of an owner class of type C to...
Definition: lte-rrc-sap.h:1366
uint32_t GetUlEarfcn() const
Definition: lte-ue-rrc.cc:437
void DoNotifyRandomAccessSuccessful()
Notify random access successful function.
Definition: lte-ue-rrc.cc:590
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:3036
uint8_t GetDlBandwidth() const
Definition: lte-ue-rrc.cc:424
LteUeCcmRrcSapUser * m_ccmRrcSapUser
CCM RRC SAP user.
Definition: lte-ue-rrc.h:721
MasterInformationBlock structure.
Definition: lte-rrc-sap.h:580
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:782
double rsrq
Measured RSRQ in dB.
Definition: lte-ue-rrc.h:978
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Send data function.
Definition: lte-ue-rrc.cc:513
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:689
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:871
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1099
double rsrp
Measured RSRP in dBm.
Definition: lte-ue-rrc.h:977
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:2659
LteUeCcmRrcSapUser * GetLteCcmRrcSapUser()
Get the Component Carrier Management SAP offered by this RRC.
Definition: lte-ue-rrc.cc:370
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteUeComponentCarrierManage instance.
Definition: lte-ue-rrc.h:720
uint8_t m_ulBandwidth
Uplink bandwidth in RBs.
Definition: lte-ue-rrc.h:767
LteUeCphySapUser * GetLteUeCphySapUser()
Definition: lte-ue-rrc.cc:300
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-ue-rrc.h:829
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
SRB1 configuration before RRC connection reconfiguration.
Definition: lte-ue-rrc.h:749
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:103
uint64_t GetImsi(void) const
Definition: lte-ue-rrc.cc:396
void StartConnection()
Start connetion function.
Definition: lte-ue-rrc.cc:2919
uint16_t GetRnti() const
Definition: lte-ue-rrc.cc:402
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:1669
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:85
void DoSetCsgWhiteList(uint32_t csgId)
Set CSG white list function.
Definition: lte-ue-rrc.cc:671
std::vector< LteUeCmacSapUser * > m_cmacSapUser
UE CMac SAP user.
Definition: lte-ue-rrc.h:705
void DoNotifyRandomAccessFailed()
Notify random access failed function.
Definition: lte-ue-rrc.cc:638
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:895
LteUeRrcSapProvider * m_rrcSapProvider
RRC SAP provider.
Definition: lte-ue-rrc.h:709
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:734
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:352
void ApplyRadioResourceConfigDedicated(LteRrcSap::RadioResourceConfigDedicated rrcd)
Apply radio resoure config dedicated.
Definition: lte-ue-rrc.cc:1264
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-ue-rrc.h:819
uint16_t GetCellId() const
Definition: lte-ue-rrc.cc:409
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:912
LteAsSapProvider * m_asSapProvider
AS SAP provider.
Definition: lte-ue-rrc.h:714
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
The MibReceived trace source.
Definition: lte-ue-rrc.h:776
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-ue-rrc.h:731
uint64_t m_imsi
The unique UE identifier.
Definition: lte-ue-rrc.h:727
void ApplyRadioResourceConfigDedicatedSecondaryCarrier(LteRrcSap::NonCriticalExtensionConfiguration nonCec)
Apply radio resoure config dedicated secondary carrier.
Definition: lte-ue-rrc.cc:1230
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:859
LteAsSapProvider * GetAsSapProvider()
Definition: lte-ue-rrc.cc:383
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:843
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionTimeoutTrace
The ConnectionTimeout trace source.
Definition: lte-ue-rrc.h:824
Represents a single measurement reporting entry., which includes information about a measurement for ...
Definition: lte-ue-rrc.h:899
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition: nstime.h:1009
CompleteSetupParameters structure.
Definition: lte-rrc-sap.h:986
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source.
Definition: lte-ue-rrc.h:793
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:2739
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:1120
void InitializeSap(void)
Initiaize SAP.
Definition: lte-ue-rrc.cc:489
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Receive PDCP SDU function.
Definition: lte-ue-rrc.cc:573
Part of the RRC protocol.
Definition: lte-rrc-sap.h:909
NonCriticalExtensionConfiguration structure.
Definition: lte-rrc-sap.h:822
uint32_t GetDlEarfcn() const
Definition: lte-ue-rrc.cc:431
RrcConnectionRelease structure.
Definition: lte-rrc-sap.h:876
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:154
State GetState() const
Definition: lte-ue-rrc.cc:444
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
Definition: lte-ue-rrc.cc:349
std::list< uint16_t > ConcernedCells_t
List of cell IDs which are responsible for a certain trigger.
Definition: lte-ue-rrc.h:917
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
Stored measure values per carrier.
Definition: lte-ue-rrc.h:1000
Time m_t300
The T300 attribute.
Definition: lte-ue-rrc.h:1140
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:2592
void DoDisconnect()
Disconnect function.
Definition: lte-ue-rrc.cc:539
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
The RandomAccessSuccessful trace source.
Definition: lte-ue-rrc.h:809
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:1041
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:318
void SetImsi(uint64_t imsi)
Definition: lte-ue-rrc.cc:389
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
Definition: lte-ue-rrc.h:762
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
Definition: lte-ue-rrc.cc:2720
void LeaveConnectedMode()
Leave connected mode.
Definition: lte-ue-rrc.cc:2930
uint32_t m_ulEarfcn
Uplink carrier frequency.
Definition: lte-ue-rrc.h:770
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
The HandoverEndError trace source.
Definition: lte-ue-rrc.h:844
LteRrcSap::SystemInformationBlockType1 m_lastSib1
Stored content of the last SIB1 received.
Definition: lte-ue-rrc.h:856
RadioResourceConfigDedicated structure.
Definition: lte-rrc-sap.h:278