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 
361  typedef void (* SCarrierConfiguredTracedCallback)
362  (Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod>);
363 
364 
365 private:
366 
367 
368  // PDCP SAP methods
375 
376  // CMAC SAP methods
382  void DoSetTemporaryCellRnti (uint16_t rnti);
387 
388  // LTE AS SAP methods
394  void DoSetCsgWhiteList (uint32_t csgId);
401  void DoForceCampedOnEnb (uint16_t cellId, uint32_t dlEarfcn);
407  void DoStartCellSelection (uint32_t dlEarfcn);
409  void DoConnect ();
416  void DoSendData (Ptr<Packet> packet, uint8_t bid);
418  void DoDisconnect ();
419 
420  // CPHY SAP methods
427  void DoRecvMasterInformationBlock (uint16_t cellId,
435  void DoRecvSystemInformationBlockType1 (uint16_t cellId,
443 
444  // RRC SAP methods
445 
486 
491  void DoComponentCarrierEnabling (std::vector<uint8_t> res);
492 
493 
494  // INTERNAL METHODS
495 
504 
522  void EvaluateCellForSelection ();
523 
578 
601  void SaveUeMeasurements (uint16_t cellId, double rsrp, double rsrq,
602  bool useLayer3Filtering);
603 
620  void SaveScellUeMeasurements (uint16_t cellId, double rsrp, double rsrq,
621  bool useLayer3Filtering, uint16_t componentCarrierId);
646  void MeasurementReportTriggering (uint8_t measId);
647 
679  void SendMeasurementReport (uint8_t measId);
680 
692  void StartConnection ();
694  void LeaveConnectedMode ();
696  void DisposeOldSrb1 ();
702  uint8_t Bid2Drbid (uint8_t bid);
707  void SwitchToState (State s);
708 
709  std::map<uint8_t, uint8_t> m_bid2DrbidMap;
710 
711  std::vector<LteUeCphySapUser*> m_cphySapUser;
712  std::vector<LteUeCphySapProvider*> m_cphySapProvider;
713 
714  std::vector<LteUeCmacSapUser*> m_cmacSapUser;
715  std::vector<LteUeCmacSapProvider*> m_cmacSapProvider;
716 
719 
722 
725 
726  // Receive API calls from the LteUeComponentCarrierManager instance.
727  // LteCcmRrcSapUser* m_ccmRrcSapUser;
731 
734 
736  uint64_t m_imsi;
740  uint16_t m_rnti;
744  uint16_t m_cellId;
745 
763  std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
764 
770 
772 
774 
775  uint8_t m_dlBandwidth;
776  uint8_t m_ulBandwidth;
778  uint32_t m_dlEarfcn;
779  uint32_t m_ulEarfcn;
780  std::list<LteRrcSap::SCellToAddMod> m_sCellToAddModList;
860  TracedCallback<Ptr<LteUeRrc>, std::list<LteRrcSap::SCellToAddMod> > m_sCarrierConfiguredTrace;
861 
870 
873 
875  std::set<uint16_t> m_acceptableCell;
876 
878  uint32_t m_csgWhiteList;
879 
880 
881  // INTERNAL DATA STRUCTURE RELATED TO UE MEASUREMENTS
882 
891  {
892  std::map<uint8_t, LteRrcSap::MeasIdToAddMod> measIdList;
893  std::map<uint8_t, LteRrcSap::MeasObjectToAddMod> measObjectList;
894  std::map<uint8_t, LteRrcSap::ReportConfigToAddMod> reportConfigList;
896  double aRsrp;
897  double aRsrq;
898  };
899 
907 
916  {
917  uint8_t measId;
918  std::set<uint16_t> cellsTriggeredList;
921  };
922 
928  std::map<uint8_t, VarMeasReport> m_varMeasReportList;
929 
933  typedef std::list<uint16_t> ConcernedCells_t;
934 
953  void VarMeasReportListAdd (uint8_t measId, ConcernedCells_t enteringCells);
954 
973  void VarMeasReportListErase (uint8_t measId, ConcernedCells_t leavingCells,
974  bool reportOnLeave);
975 
986  void VarMeasReportListClear (uint8_t measId);
987 
991  struct MeasValues
992  {
993  double rsrp;
994  double rsrq;
996  };
997 
1011  std::map<uint16_t, MeasValues> m_storedMeasValues;
1012 
1016  std::map<uint16_t, std::map <uint8_t, MeasValues> > m_storedMeasValuesPerCarrier;
1017 
1034  std::map<uint16_t, MeasValues> m_storedScellMeasValues;
1035 
1042  {
1043  uint8_t measId;
1046  };
1047 
1057  std::map<uint8_t, std::list<PendingTrigger_t> > m_enteringTriggerQueue;
1058 
1069  std::map<uint8_t, std::list<PendingTrigger_t> > m_leavingTriggerQueue;
1070 
1088  void CancelEnteringTrigger (uint8_t measId);
1089 
1109  void CancelEnteringTrigger (uint8_t measId, uint16_t cellId);
1110 
1128  void CancelLeavingTrigger (uint8_t measId);
1129 
1149  void CancelLeavingTrigger (uint8_t measId, uint16_t cellId);
1150 
1157 
1163 
1168  void ConnectionTimeout ();
1169 
1170 public:
1175 
1176 }; // end of class LteUeRrc
1177 
1178 
1179 } // namespace ns3
1180 
1181 #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:1034
MemberLteUeCcmRrcSapUser class.
uint64_t GetImsi(void) const
Definition: lte-ue-rrc.cc:400
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
void(* SCarrierConfiguredTracedCallback)(Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod >)
TracedCallback signature for secondary carrier configuration events.
Definition: lte-ue-rrc.h:362
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
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:955
void DoRecvMasterInformationBlock(uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
Receive master information block function.
Definition: lte-ue-rrc.cc:780
std::map< uint8_t, LteRrcSap::MeasObjectToAddMod > measObjectList
measure object list
Definition: lte-ue-rrc.h:893
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:2476
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
Receive system information block type 1 function.
Definition: lte-ue-rrc.cc:807
void DoComponentCarrierEnabling(std::vector< uint8_t > res)
RRC CCM SAP USER Method.
Definition: lte-ue-rrc.cc:3038
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:918
uint8_t GetDlBandwidth() const
Definition: lte-ue-rrc.cc:428
LtePdcpSapUser * m_drbPdcpSapUser
DRB PDCP SAP user.
Definition: lte-ue-rrc.h:721
EventId periodicReportTimer
periodic report timer
Definition: lte-ue-rrc.h:920
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:911
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:381
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:1731
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1110
bool m_hasReceivedSib2
True if SIB2 was received for the current cell.
Definition: lte-ue-rrc.h:869
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-ue-rrc.h:763
void ApplyMeasConfig(LteRrcSap::MeasConfig mc)
Update the current measurement configuration m_varMeasConfig.
Definition: lte-ue-rrc.cc:1460
virtual void DoDispose(void)
Destructor implementation.
Definition: lte-ue-rrc.cc:168
void SetUseRlcSm(bool val)
Definition: lte-ue-rrc.cc:455
uint16_t m_numberOfComponentCarriers
The number of component carriers.
Definition: lte-ue-rrc.h:1174
uint8_t measId
The measurement identity which raised the trigger.
Definition: lte-ue-rrc.h:1043
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:890
LteRrcSap::PdschConfigDedicated m_pdschConfigDedicated
the PDSCH condig dedicated
Definition: lte-ue-rrc.h:773
void DoSetTemporaryCellRnti(uint16_t rnti)
Set temporary cell rnti function.
Definition: lte-ue-rrc.cc:585
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
Definition: lte-ue-rrc.h:1041
EventId m_connectionTimeout
Invokes ConnectionEstablishmentTimeout() if RRC connection establishment procedure for this UE takes ...
Definition: lte-ue-rrc.h:1162
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:715
virtual ~LteUeRrc()
Destructor.
Definition: lte-ue-rrc.cc:162
uint16_t m_cellId
The CellId attribute.
Definition: lte-ue-rrc.h:744
EventId timer
The pending reporting event, scheduled at the end of the time-to-trigger.
Definition: lte-ue-rrc.h:1045
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:2538
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:865
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1081
uint8_t GetUlBandwidth() const
Definition: lte-ue-rrc.cc:421
uint32_t m_dlEarfcn
Downlink carrier frequency.
Definition: lte-ue-rrc.h:778
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:863
void DoStartCellSelection(uint32_t dlEarfcn)
Start cell selection function.
Definition: lte-ue-rrc.cc:682
bool m_hasReceivedSib1
True if SIB1 was received for the current cell.
Definition: lte-ue-rrc.h:867
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
Definition: lte-ue-rrc.h:720
uint32_t numberOfReportsSent
number of reports sent
Definition: lte-ue-rrc.h:919
uint8_t Bid2Drbid(uint8_t bid)
Bid 2 DR bid.
Definition: lte-ue-rrc.cc:2973
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:995
LteUeCmacSapUser * GetLteUeCmacSapUser()
This function is overloaded to maintain backward compatibility.
Definition: lte-ue-rrc.cc:332
uint16_t GetRnti() const
Definition: lte-ue-rrc.cc:406
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:895
store information on active data radio bearer instance
std::vector< LteUeCphySapProvider * > m_cphySapProvider
UE CPhy SAP provider.
Definition: lte-ue-rrc.h:712
void SetLteUeRrcSapUser(LteUeRrcSapUser *s)
set the RRC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:346
LteUeRrcSapUser * m_rrcSapUser
RRC SAP user.
Definition: lte-ue-rrc.h:717
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-ue-rrc.h:849
State m_state
The current UE RRC state.
Definition: lte-ue-rrc.h:733
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
Definition: lte-ue-rrc.h:749
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Definition: lte-ue-rrc.h:1044
TracedCallback< Ptr< LteUeRrc >, std::list< LteRrcSap::SCellToAddMod > > m_sCarrierConfiguredTrace
The SCarrierConfigured trace source.
Definition: lte-ue-rrc.h:860
RrcConnectionReestablishment structure.
Definition: lte-rrc-sap.h:858
Represents a measurement result from a certain cell.
Definition: lte-ue-rrc.h:991
void DisposeOldSrb1()
Dispose old SRB1.
Definition: lte-ue-rrc.cc:2966
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-ue-rrc.h:844
void DoRecvRrcConnectionReconfiguration(LteRrcSap::RrcConnectionReconfiguration msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:980
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol.
Definition: lte-ue-rrc.cc:1057
uint8_t m_dlBandwidth
Downlink bandwidth in RBs.
Definition: lte-ue-rrc.h:775
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:824
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:797
void ConnectionTimeout()
Invoked after timer T300 expires, notifying upper layers that RRC connection establishment procedure ...
Definition: lte-ue-rrc.cc:2955
void EvaluateCellForSelection()
Performs cell selection evaluation to the current serving cell.
Definition: lte-ue-rrc.cc:1167
RrcConnectionReconfiguration structure.
Definition: lte-rrc-sap.h:829
virtual void DoInitialize(void)
Initialize() implementation.
Definition: lte-ue-rrc.cc:463
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:1011
void SetLteCcmRrcSapProvider(LteUeCcmRrcSapProvider *s)
set the Component Carrier Management SAP this RRC should interact with
Definition: lte-ue-rrc.cc:367
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-ue-rrc.h:753
uint8_t measId
measure ID
Definition: lte-ue-rrc.h:917
void SetLteUeCmacSapProvider(LteUeCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
Definition: lte-ue-rrc.cc:318
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:769
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:878
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:892
std::map< uint8_t, uint8_t > m_bid2DrbidMap
bid to DR bid map
Definition: lte-ue-rrc.h:709
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
Definition: lte-ue-rrc.cc:360
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
The InitialCellSelectionEndOk trace source.
Definition: lte-ue-rrc.h:808
RrcConnectionSetup structure.
Definition: lte-rrc-sap.h:691
std::list< LteRrcSap::SCellToAddMod > m_sCellToAddModList
Secondary carriers.
Definition: lte-ue-rrc.h:780
void SetLteUeCphySapProvider(LteUeCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
Definition: lte-ue-rrc.cc:290
void SwitchToState(State s)
Switch the UE RRC to the given state.
Definition: lte-ue-rrc.cc:2988
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
The InitialCellSelectionEndError trace source.
Definition: lte-ue-rrc.h:813
VarMeasConfig m_varMeasConfig
Includes the accumulated configuration of the measurements to be performed by the UE...
Definition: lte-ue-rrc.h:906
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:1069
SystemInformationBlockType1 structure.
Definition: lte-rrc-sap.h:587
std::vector< LteUeCphySapUser * > m_cphySapUser
UE CPhy SAP user.
Definition: lte-ue-rrc.h:711
std::map< uint8_t, LteRrcSap::ReportConfigToAddMod > reportConfigList
report config list
Definition: lte-ue-rrc.h:894
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:724
Template for the implementation of the LteUeRrcSapProvider as a member of an owner class of type C to...
Definition: lte-rrc-sap.h:1366
void DoNotifyRandomAccessSuccessful()
Notify random access successful function.
Definition: lte-ue-rrc.cc:594
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:3044
LteUeCcmRrcSapUser * m_ccmRrcSapUser
CCM RRC SAP user.
Definition: lte-ue-rrc.h:730
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:792
double rsrq
Measured RSRQ in dB.
Definition: lte-ue-rrc.h:994
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Send data function.
Definition: lte-ue-rrc.cc:517
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:693
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:1103
double rsrp
Measured RSRP in dBm.
Definition: lte-ue-rrc.h:993
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:2667
LteUeCcmRrcSapUser * GetLteCcmRrcSapUser()
Get the Component Carrier Management SAP offered by this RRC.
Definition: lte-ue-rrc.cc:374
LteUeCcmRrcSapProvider * m_ccmRrcSapProvider
Interface to the LteUeComponentCarrierManage instance.
Definition: lte-ue-rrc.h:729
uint8_t m_ulBandwidth
Uplink bandwidth in RBs.
Definition: lte-ue-rrc.h:776
LteUeCphySapUser * GetLteUeCphySapUser()
Definition: lte-ue-rrc.cc:304
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-ue-rrc.h:839
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
SRB1 configuration before RRC connection reconfiguration.
Definition: lte-ue-rrc.h:758
State
The states of the UE RRC entity.
Definition: lte-ue-rrc.h:103
void StartConnection()
Start connetion function.
Definition: lte-ue-rrc.cc:2927
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:1677
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:675
std::vector< LteUeCmacSapUser * > m_cmacSapUser
UE CMac SAP user.
Definition: lte-ue-rrc.h:714
void DoNotifyRandomAccessFailed()
Notify random access failed function.
Definition: lte-ue-rrc.cc:642
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:899
LteUeRrcSapProvider * m_rrcSapProvider
RRC SAP provider.
Definition: lte-ue-rrc.h:718
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:738
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 resource config dedicated.
Definition: lte-ue-rrc.cc:1272
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-ue-rrc.h:829
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:928
LteAsSapProvider * m_asSapProvider
AS SAP provider.
Definition: lte-ue-rrc.h:723
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
The MibReceived trace source.
Definition: lte-ue-rrc.h:786
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-ue-rrc.h:740
uint64_t m_imsi
The unique UE identifier.
Definition: lte-ue-rrc.h:736
void ApplyRadioResourceConfigDedicatedSecondaryCarrier(LteRrcSap::NonCriticalExtensionConfiguration nonCec)
Apply radio resource config dedicated secondary carrier.
Definition: lte-ue-rrc.cc:1234
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:875
LteAsSapProvider * GetAsSapProvider()
Definition: lte-ue-rrc.cc:387
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:847
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionTimeoutTrace
The ConnectionTimeout trace source.
Definition: lte-ue-rrc.h:834
Represents a single measurement reporting entry., which includes information about a measurement for ...
Definition: lte-ue-rrc.h:915
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition: nstime.h:1030
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:803
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:2747
uint32_t GetDlEarfcn() const
Definition: lte-ue-rrc.cc:435
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:1124
void InitializeSap(void)
Initiaize SAP.
Definition: lte-ue-rrc.cc:493
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Receive PDCP SDU function.
Definition: lte-ue-rrc.cc:577
Part of the RRC protocol.
Definition: lte-rrc-sap.h:909
NonCriticalExtensionConfiguration structure.
Definition: lte-rrc-sap.h:822
uint32_t GetUlEarfcn() const
Definition: lte-ue-rrc.cc:441
RrcConnectionRelease structure.
Definition: lte-rrc-sap.h:876
PdschConfigDedicated structure.
Definition: lte-rrc-sap.h:154
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
Definition: lte-ue-rrc.cc:353
std::list< uint16_t > ConcernedCells_t
List of cell IDs which are responsible for a certain trigger.
Definition: lte-ue-rrc.h:933
std::map< uint16_t, std::map< uint8_t, MeasValues > > m_storedMeasValuesPerCarrier
Stored measure values per carrier.
Definition: lte-ue-rrc.h:1016
Time m_t300
The T300 attribute.
Definition: lte-ue-rrc.h:1156
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:2600
void DoDisconnect()
Disconnect function.
Definition: lte-ue-rrc.cc:543
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
The RandomAccessSuccessful trace source.
Definition: lte-ue-rrc.h:819
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:1057
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:393
uint8_t m_lastRrcTransactionIdentifier
last RRC transaction identifier
Definition: lte-ue-rrc.h:771
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
Definition: lte-ue-rrc.cc:2728
void LeaveConnectedMode()
Leave connected mode.
Definition: lte-ue-rrc.cc:2938
uint32_t m_ulEarfcn
Uplink carrier frequency.
Definition: lte-ue-rrc.h:779
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
The HandoverEndError trace source.
Definition: lte-ue-rrc.h:854
LteRrcSap::SystemInformationBlockType1 m_lastSib1
Stored content of the last SIB1 received.
Definition: lte-ue-rrc.h:872
State GetState() const
Definition: lte-ue-rrc.cc:448
RadioResourceConfigDedicated structure.
Definition: lte-rrc-sap.h:278
uint16_t GetCellId() const
Definition: lte-ue-rrc.cc:413