A Discrete-Event Network Simulator
API
lte-enb-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, 2012 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  * Authors: Nicola Baldo <nbaldo@cttc.es>
19  * Marco Miozzo <mmiozzo@cttc.es>
20  * Manuel Requena <manuel.requena@cttc.es>
21  */
22 
23 #ifndef LTE_ENB_RRC_H
24 #define LTE_ENB_RRC_H
25 
26 #include <ns3/nstime.h>
27 #include <ns3/object.h>
28 #include <ns3/traced-callback.h>
29 #include <ns3/event-id.h>
30 
31 #include <ns3/lte-enb-cmac-sap.h>
32 #include <ns3/lte-mac-sap.h>
33 #include <ns3/ff-mac-sched-sap.h>
34 #include <ns3/ff-mac-csched-sap.h>
35 #include <ns3/lte-pdcp-sap.h>
36 #include <ns3/epc-x2-sap.h>
37 #include <ns3/epc-enb-s1-sap.h>
38 #include <ns3/lte-handover-management-sap.h>
39 #include <ns3/lte-enb-cphy-sap.h>
40 #include <ns3/lte-rrc-sap.h>
41 #include <ns3/lte-anr-sap.h>
42 #include <ns3/lte-ffr-rrc-sap.h>
43 
44 #include <map>
45 #include <set>
46 
47 namespace ns3 {
48 
49 class LteRadioBearerInfo;
50 class LteSignalingRadioBearerInfo;
51 class LteDataRadioBearerInfo;
52 class LteEnbRrc;
53 class Packet;
54 
55 
56 
62 class UeManager : public Object
63 {
65 
66 public:
67 
68 
73  enum State
74  {
86  };
87 
88  UeManager ();
89 
99  UeManager (Ptr<LteEnbRrc> rrc, uint16_t rnti, State s);
100 
101  virtual ~UeManager (void);
102 
103  // inherited from Object
104 protected:
105  virtual void DoInitialize ();
106  virtual void DoDispose ();
107 public:
108  static TypeId GetTypeId (void);
109 
117  void SetSource (uint16_t sourceCellId, uint16_t sourceX2apId);
118 
124  void SetImsi (uint64_t imsi);
125 
136  void SetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress);
137 
144 
150  void StartDataRadioBearers ();
151 
158  void ReleaseDataRadioBearer (uint8_t drbid);
159 
165 
171  void PrepareHandover (uint16_t cellId);
172 
179 
186 
197 
204  void SendData (uint8_t bid, Ptr<Packet> p);
205 
210  std::vector<EpcX2Sap::ErabToBeSetupItem> GetErabList ();
211 
217  void SendUeContextRelease ();
218 
224  void RecvHandoverPreparationFailure (uint16_t cellId);
225 
232 
239 
240 
241  // METHODS FORWARDED FROM ENB RRC SAP ///////////////////////////////////////
242 
257 
258 
259  // METHODS FORWARDED FROM ENB CMAC SAP //////////////////////////////////////
260 
262 
263  // METHODS FORWARDED FROM ENB PDCP SAP //////////////////////////////////////
264 
266 
272  uint16_t GetRnti (void) const;
273 
278  uint64_t GetImsi (void) const;
279 
284  uint16_t GetSrsConfigurationIndex (void) const;
285 
291  void SetSrsConfigurationIndex (uint16_t srsConfIndex);
292 
297  State GetState () const;
298 
305  void SetPdschConfigDedicated (LteRrcSap::PdschConfigDedicated pdschConfigDedicated);
306 
316  typedef void (* StateTracedCallback)
317  (uint64_t imsi, uint16_t cellId, uint16_t rnti,
318  State oldState, State newState);
319 
320 private:
321 
329  uint8_t AddDataRadioBearerInfo (Ptr<LteDataRadioBearerInfo> radioBearerInfo);
330 
337 
343  void RemoveDataRadioBearerInfo (uint8_t drbid);
344 
351 
358 
364 
370  uint8_t Lcid2Drbid (uint8_t lcid);
371 
377  uint8_t Drbid2Lcid (uint8_t drbid);
378 
384  uint8_t Lcid2Bid (uint8_t lcid);
385 
391  uint8_t Bid2Lcid (uint8_t bid);
392 
398  uint8_t Drbid2Bid (uint8_t drbid);
399 
405  uint8_t Bid2Drbid (uint8_t bid);
406 
412  void SwitchToState (State s);
413 
415 
420  std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
421 
430 
434  uint16_t m_rnti;
439  uint64_t m_imsi;
452 
459 
460  uint16_t m_sourceX2apId;
461  uint16_t m_sourceCellId;
462  uint16_t m_targetCellId;
463  std::list<uint8_t> m_drbsToBeStarted;
465 
499 
500 }; // end of `class UeManager`
501 
502 
503 
509 class LteEnbRrc : public Object
510 {
511 
519  friend class UeManager;
520 
521 public:
526  LteEnbRrc ();
527 
531  virtual ~LteEnbRrc ();
532 
533 
534  // inherited from Object
535 protected:
536  virtual void DoDispose (void);
537 public:
538  static TypeId GetTypeId (void);
539 
540 
546 
552 
553 
560 
566 
567 
574 
581 
582 
589 
596 
597 
598 
605 
612 
619 
626 
635 
636 
643 
649 
650 
657 
664 
672  bool HasUeManager (uint16_t rnti) const;
673 
681  Ptr<UeManager> GetUeManager (uint16_t rnti);
682 
696 
722  void ConfigureCell (uint8_t ulBandwidth,
723  uint8_t dlBandwidth,
724  uint16_t ulEarfcn,
725  uint16_t dlEarfcn,
726  uint16_t cellId);
727 
733  void SetCellId (uint16_t m_cellId);
734 
744  bool SendData (Ptr<Packet> p);
745 
751  void SetForwardUpCallback (Callback <void, Ptr<Packet> > cb);
752 
759  void ConnectionRequestTimeout (uint16_t rnti);
760 
768  void ConnectionSetupTimeout (uint16_t rnti);
769 
776  void ConnectionRejectedTimeout (uint16_t rnti);
777 
785  void HandoverJoiningTimeout (uint16_t rnti);
786 
794  void HandoverLeavingTimeout (uint16_t rnti);
795 
804  void SendHandoverRequest (uint16_t rnti, uint16_t cellId);
805 
812  void DoSendReleaseDataRadioBearer (uint64_t imsi, uint16_t rnti, uint8_t bearerId);
813 
821  PER_BASED = 4};
822 
829  typedef void (* NewUeContextTracedCallback)
830  (uint16_t cellId, uint16_t rnti);
831 
839  typedef void (* ConnectionHandoverTracedCallback)
840  (uint64_t imsi, uint16_t cellId, uint16_t rnti);
841 
850  typedef void (* HandoverStartTracedCallback)
851  (uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t targetCid);
852 
863  typedef void (* ReceiveReportTracedCallback)
864  (uint64_t imsi, uint16_t cellId, uint16_t rnti,
866 
867 private:
868 
869 
870  // RRC SAP methods
871 
885  void DoRecvMeasurementReport (uint16_t rnti, LteRrcSap::MeasurementReport msg);
886 
887  // S1 SAP methods
888 
891 
892  // X2 SAP methods
893 
902 
903  // CMAC SAP methods
904 
905  uint16_t DoAllocateTemporaryCellRnti ();
906  void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success);
908 
909  // Handover Management SAP methods
910 
912  void DoTriggerHandover (uint16_t rnti, uint16_t targetCellId);
913 
914  // ANR SAP methods
915 
917 
918  // FFR RRC SAP methods
922 
923  // Internal methods
924 
934  uint16_t AddUe (UeManager::State state);
935 
941  void RemoveUe (uint16_t rnti);
942 
943 
950  TypeId GetRlcType (EpsBearer bearer);
951 
952 
953 
954 public:
955 
961  void AddX2Neighbour (uint16_t cellId);
962 
967  void SetSrsPeriodicity (uint32_t p);
968 
973  uint32_t GetSrsPeriodicity () const;
974 
994  void SetCsgId (uint32_t csgId, bool csgIndication);
995 
996 private:
997 
1006  uint16_t GetNewSrsConfigurationIndex (void);
1007 
1016  void RemoveSrsConfigurationIndex (uint16_t srcCi);
1017 
1018 
1019 
1027  uint8_t GetLogicalChannelGroup (EpsBearer bearer);
1028 
1037  uint8_t GetLogicalChannelPriority (EpsBearer bearer);
1038 
1039 
1044  void SendSystemInformation ();
1045 
1047 
1052 
1057 
1062 
1067 
1072 
1077 
1080 
1085 
1090 
1094  uint16_t m_cellId;
1096  uint16_t m_dlEarfcn;
1098  uint16_t m_ulEarfcn;
1100  uint16_t m_dlBandwidth;
1102  uint16_t m_ulBandwidth;
1105 
1108 
1112  std::map<uint16_t, Ptr<UeManager> > m_ueMap;
1113 
1119 
1121  std::set<uint8_t> m_handoverMeasIds;
1123  std::set<uint8_t> m_anrMeasIds;
1125  std::set<uint8_t> m_ffrMeasIds;
1126 
1128  {
1129  uint16_t rnti;
1130  uint8_t drbid;
1131  };
1132 
1133  // TEID RNTI, DRBID
1134  std::map<uint32_t, X2uTeidInfo> m_x2uTeidInfoMap;
1135 
1155  std::set<uint16_t> m_ueSrsConfigurationIndexSet;
1158 
1164  int8_t m_qRxLevMin;
1221 
1252 
1253 }; // end of `class LteEnbRrc`
1254 
1255 
1256 } // namespace ns3
1257 
1258 #endif // LTE_ENB_RRC_H
Callback< void, Ptr< Packet > > m_forwardUpCallback
Definition: lte-enb-rrc.h:1046
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
The StateTransition trace source.
Definition: lte-enb-rrc.h:458
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
The HandoverEndOk trace source.
Definition: lte-enb-rrc.h:1246
void ConnectionRequestTimeout(uint16_t rnti)
Method triggered when a UE is expected to request for connection but does not do so in a reasonable t...
bool HasUeManager(uint16_t rnti) const
Parameters passed to DataRadioBearerSetupRequest ()
void ConnectionSetupTimeout(uint16_t rnti)
Method triggered when a UE is expected to complete a connection setup procedure but does not do so in...
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the eNodeB RRC instan...
void SetEpcX2SapProvider(EpcX2SapProvider *s)
Set the X2 SAP this RRC should interact with.
Template for the implementation of the EpcEnbS1SapUser as a member of an owner class of type C to whi...
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication...
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
Ptr< LteSignalingRadioBearerInfo > m_srb1
The Srb1 attribute.
Definition: lte-enb-rrc.h:429
void SendHandoverRequest(uint16_t rnti, uint16_t cellId)
Send a HandoverRequest through the X2 SAP interface.
void SendSystemInformation()
method used to periodically send System Information
LteRrcSap::RadioResourceConfigDedicated GetRadioResourceConfigForHandoverPreparationInfo()
Definition: lte-enb-rrc.cc:629
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
These service primitives of this part of the X2 SAP are provided by the X2 entity and issued by RRC e...
Definition: epc-x2-sap.h:340
LteEnbRrc()
create an RRC instance for use within an eNB
uint16_t AddUe(UeManager::State state)
Allocate a new RNTI for a new UE.
Callback template class.
Definition: callback.h:1176
void RecordDataRadioBearersToBeStarted()
Start all configured data radio bearers.
Definition: lte-enb-rrc.cc:420
virtual void DoDispose()
Destructor implementation.
Definition: lte-enb-rrc.cc:272
uint16_t m_dlBandwidth
Downlink transmission bandwidth configuration in number of Resource Blocks.
Definition: lte-enb-rrc.h:1100
void RecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
Take the necessary actions in response to the reception of an X2 UE CONTEXT RELEASE message...
Definition: lte-enb-rrc.cc:781
This class implements the Service Access Point (SAP) between the LteEnbRrc and the EpcEnbApplication...
void SetSource(uint16_t sourceCellId, uint16_t sourceX2apId)
Set the identifiers of the source eNB for the case where a UE joins the current eNB as part of a hand...
Definition: lte-enb-rrc.cc:318
void RecvHandoverPreparationFailure(uint16_t cellId)
Take the necessary actions in response to the reception of an X2 HO preparation failure message...
Definition: lte-enb-rrc.cc:744
void DoNotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)
LteFfrRrcSapProvider * m_ffrRrcSapProvider
Interface to the FFR algorithm instance.
Definition: lte-enb-rrc.h:1071
void SetCellId(uint16_t m_cellId)
set the cell id of this eNB
LteFfrRrcSapUser * m_ffrRrcSapUser
Receive API calls from the FFR algorithm instance.
Definition: lte-enb-rrc.h:1069
uint8_t GetLogicalChannelGroup(EpsBearer bearer)
void AddX2Neighbour(uint16_t cellId)
Add a neighbour with an X2 interface.
uint8_t Drbid2Bid(uint8_t drbid)
bool m_admitHandoverRequest
The AdmitHandoverRequest attribute.
Definition: lte-enb-rrc.h:1169
Parameters of the HANDOVER REQUEST message.
Definition: epc-x2-sap.h:225
Part of the RRC protocol.
Definition: lte-rrc-sap.h:903
void DoRecvRrcConnectionReconfigurationCompleted(uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationCompleted ...
Template for the implementation of the LteHandoverManagementSapUser as a member of an owner class of ...
Class for forwarding CMAC SAP User functions.
Definition: lte-enb-rrc.cc:58
Specifies criteria for triggering of an E-UTRA measurement reporting event.
Definition: lte-rrc-sap.h:321
void SetCsgId(uint32_t csgId, bool csgIndication)
Associate this RRC entity with a particular CSG information.
uint16_t GetSrsConfigurationIndex(void) const
static TypeId GetTypeId(void)
uint16_t m_sourceCellId
Definition: lte-enb-rrc.h:461
virtual ~LteEnbRrc()
Destructor.
uint16_t m_rnti
The C-RNTI attribute.
Definition: lte-enb-rrc.h:434
uint8_t Lcid2Bid(uint8_t lcid)
void SetLteHandoverManagementSapProvider(LteHandoverManagementSapProvider *s)
set the Handover Management SAP this RRC should interact with
EpcX2SapUser * GetEpcX2SapUser()
Get the X2 SAP offered by this RRC.
void SetLteEnbCphySapProvider(LteEnbCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
uint16_t m_lastAllocatedRnti
Definition: lte-enb-rrc.h:1104
uint16_t GetNewSrsConfigurationIndex(void)
Allocate a new SRS configuration index for a new UE.
LteEnbCmacSapUser * GetLteEnbCmacSapUser()
Get the CMAC SAP offered by this RRC.
uint16_t m_ulBandwidth
Uplink transmission bandwidth configuration in number of Resource Blocks.
Definition: lte-enb-rrc.h:1102
uint8_t m_lastRrcTransactionIdentifier
Definition: lte-enb-rrc.h:441
uint16_t m_srsCurrentPeriodicityId
The SrsPeriodicity attribute.
Definition: lte-enb-rrc.h:1154
The LTE Radio Resource Control entity at the eNB.
Definition: lte-enb-rrc.h:509
void SetLteEnbRrcSapUser(LteEnbRrcSapUser *s)
set the RRC SAP this RRC should interact with
void SetLteEnbCmacSapProvider(LteEnbCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
uint16_t DoAllocateTemporaryCellRnti()
uint64_t m_imsi
International Mobile Subscriber Identity assigned to this UE.
Definition: lte-enb-rrc.h:439
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
Time m_handoverLeavingTimeoutDuration
The HandoverLeavingTimeoutDuration attribute.
Definition: lte-enb-rrc.h:1220
Time m_connectionRejectedTimeoutDuration
The ConnectionRejectedTimeoutDuration attribute.
Definition: lte-enb-rrc.h:1205
LteMacSapProvider * m_macSapProvider
Interface to the eNodeB MAC instance, to be used by RLC instances.
Definition: lte-enb-rrc.h:1079
LteHandoverManagementSapUser * GetLteHandoverManagementSapUser()
Get the Handover Management SAP offered by this RRC.
LteEnbRrcSapProvider * m_rrcSapProvider
Interface to receive messages from UE over the RRC protocol.
Definition: lte-enb-rrc.h:1076
void RemoveSrsConfigurationIndex(uint16_t srcCi)
remove a previously allocated SRS configuration index
State GetState() const
void SetImsi(uint64_t imsi)
Set the IMSI.
Definition: lte-enb-rrc.cc:325
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
void SendUeContextRelease()
send the UE CONTEXT RELEASE X2 message to the source eNB, thus successfully terminating an X2 handove...
Definition: lte-enb-rrc.cc:721
LteRrcSap::RrcConnectionReconfiguration GetRrcConnectionReconfigurationForHandover()
Definition: lte-enb-rrc.cc:636
void(* StateTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, State oldState, State newState)
TracedCallback signature for state transition events.
Definition: lte-enb-rrc.h:317
void SwitchToState(State s)
Switch the UeManager to the given state.
Time m_connectionSetupTimeoutDuration
The ConnectionSetupTimeoutDuration attribute.
Definition: lte-enb-rrc.h:1200
void RecvRrcConnectionReconfigurationCompleted(LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationComplet...
Definition: lte-enb-rrc.cc:872
void ReleaseDataRadioBearer(uint8_t drbid)
Release a given radio bearer.
Definition: lte-enb-rrc.cc:452
uint8_t AddDataRadioBearerInfo(Ptr< LteDataRadioBearerInfo > radioBearerInfo)
Add a new LteDataRadioBearerInfo structure to the UeManager.
EpcX2SapUser * m_x2SapUser
Interface to receive messages from neighbour eNodeB over the X2 interface.
Definition: lte-enb-rrc.h:1049
uint8_t m_rsrqFilterCoefficient
The RsrqFilterCoefficient attribute.
Definition: lte-enb-rrc.h:1186
LteEnbRrcSapUser * m_rrcSapUser
Interface to send messages to UE over the RRC protocol.
Definition: lte-enb-rrc.h:1074
uint16_t m_dlEarfcn
Downlink E-UTRA Absolute Radio Frequency Channel Number.
Definition: lte-enb-rrc.h:1096
bool m_needPhyMacConfiguration
Definition: lte-enb-rrc.h:464
Ptr< LteEnbRrc > m_rrc
Pointer to the parent eNodeB RRC.
Definition: lte-enb-rrc.h:445
EpcEnbS1SapProvider * m_s1SapProvider
Interface to send messages to core network over the S1 protocol.
Definition: lte-enb-rrc.h:1082
LteRrcSap::SystemInformationBlockType1 m_sib1
The System Information Block Type 1 that is currently broadcasted over BCH.
Definition: lte-enb-rrc.h:1107
Time m_connectionRequestTimeoutDuration
The ConnectionRequestTimeoutDuration attribute.
Definition: lte-enb-rrc.h:1193
void SetForwardUpCallback(Callback< void, Ptr< Packet > > cb)
set the callback used to forward data packets up the stack
void DoRecvRrcConnectionSetupCompleted(uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interface ...
void DoRecvRrcConnectionReestablishmentComplete(uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplete i...
LteHandoverManagementSapUser * m_handoverManagementSapUser
Receive API calls from the handover algorithm instance.
Definition: lte-enb-rrc.h:1059
void DoCompleteSetupUe(uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::CompleteSetupUe interface to UeManager::Co...
TracedCallback< uint16_t, uint16_t > m_newUeContextTrace
The NewUeContext trace source.
Definition: lte-enb-rrc.h:1226
Service Access Point (SAP) offered by the MAC to the RRC See Femto Forum MAC Scheduler Interface Spec...
Template for the implementation of the LteFfrRrcSapUser as a member of an owner class of type C to wh...
LteEnbCmacSapUser * m_cmacSapUser
Receive API calls from the eNodeB MAC instance.
Definition: lte-enb-rrc.h:1054
Ptr< UeManager > GetUeManager(uint16_t rnti)
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
Definition: lte-pdcp-sap.h:76
This class contains the specification of EPS Bearers.
Definition: eps-bearer.h:71
bool m_admitRrcConnectionRequest
The AdmitRrcConnectionRequest attribute.
Definition: lte-enb-rrc.h:1174
int8_t m_qRxLevMin
The QRxLevMin attribute.
Definition: lte-enb-rrc.h:1164
LtePdcpSapUser * m_drbPdcpSapUser
Definition: lte-enb-rrc.h:449
uint8_t AddUeMeasReportConfig(LteRrcSap::ReportConfigEutra config)
Add a new UE measurement reporting configuration.
EventId m_connectionRejectedTimeout
The delay before a connection rejected timeout occurs.
Definition: lte-enb-rrc.h:484
void SetLteFfrRrcSapProvider(LteFfrRrcSapProvider *s)
set the FFR SAP this RRC should interact with
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration()
Ptr< LteSignalingRadioBearerInfo > m_srb0
The Srb0 attribute.
Definition: lte-enb-rrc.h:425
void DoRecvRrcConnectionRequest(uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionRequest interface to UeMa...
uint16_t m_ulEarfcn
Uplink E-UTRA Absolute Radio Frequency Channel Number.
Definition: lte-enb-rrc.h:1098
void SetSrsConfigurationIndex(uint16_t srsConfIndex)
Set the SRS configuration index and do the necessary reconfiguration.
void DoTriggerHandover(uint16_t rnti, uint16_t targetCellId)
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
The ConnectionEstablished trace source.
Definition: lte-enb-rrc.h:1231
Parameters of the HANDOVER PREPARATION FAILURE message.
Definition: epc-x2-sap.h:259
void DoPathSwitchRequestAcknowledge(EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters params)
Parameters of the SN STATUS TRANSFER message.
Definition: epc-x2-sap.h:273
LteEnbCphySapProvider * m_cphySapProvider
Interface to the eNodeB PHY instance.
Definition: lte-enb-rrc.h:1089
std::set< uint8_t > m_ffrMeasIds
List of measurement identities which are intended for FFR purpose.
Definition: lte-enb-rrc.h:1125
Service Access Point (SAP) offered by the eNodeB RRC instance to the ANR instance.
Definition: lte-anr-sap.h:97
uint8_t Drbid2Lcid(uint8_t drbid)
void SendData(uint8_t bid, Ptr< Packet > p)
Send a data packet over the appropriate Data Radio Bearer.
Definition: lte-enb-rrc.cc:643
std::set< uint8_t > m_handoverMeasIds
List of measurement identities which are intended for handover purpose.
Definition: lte-enb-rrc.h:1121
void DoRecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
uint8_t m_lastAllocatedDrbid
Definition: lte-enb-rrc.h:414
uint8_t Bid2Lcid(uint8_t bid)
uint16_t m_sourceX2apId
Definition: lte-enb-rrc.h:460
std::map< uint32_t, X2uTeidInfo > m_x2uTeidInfoMap
Definition: lte-enb-rrc.h:1134
TracedCallback< uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport > m_recvMeasurementReportTrace
The RecvMeasurementReport trace source.
Definition: lte-enb-rrc.h:1251
virtual ~UeManager(void)
Definition: lte-enb-rrc.cc:267
uint8_t m_rsrpFilterCoefficient
The RsrpFilterCoefficient attribute.
Definition: lte-enb-rrc.h:1180
Part of the RRC protocol.
Definition: lte-rrc-sap.h:815
uint8_t DoAddUeMeasReportConfigForAnr(LteRrcSap::ReportConfigEutra reportConfig)
void SetupDataRadioBearer(EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress)
Setup a new data radio bearer, including both the configuration within the eNB and the necessary RRC ...
Definition: lte-enb-rrc.cc:331
void RemoveDataRadioBearerInfo(uint8_t drbid)
remove the LteDataRadioBearerInfo corresponding to a bearer being released
static TypeId GetTypeId(void)
Definition: lte-enb-rrc.cc:285
void RecvSnStatusTransfer(EpcX2SapUser::SnStatusTransferParams params)
Take the necessary actions in response to the reception of an X2 SN STATUS TRANSFER message...
Definition: lte-enb-rrc.cc:762
EpcX2SapProvider * m_x2SapProvider
Interface to send messages to neighbour eNodeB over the X2 interface.
Definition: lte-enb-rrc.h:1051
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Parameters of the RESOURCE STATUS UPDATE message.
Definition: epc-x2-sap.h:311
Manages all the radio bearer information possessed by the ENB RRC for a single UE.
Definition: lte-enb-rrc.h:62
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated()
State
The state of the UeManager at the eNB RRC.
Definition: lte-enb-rrc.h:73
EventId m_handoverLeavingTimeout
Time limit before a handover leaving timeout occurs.
Definition: lte-enb-rrc.h:498
void SetLteAnrSapProvider(LteAnrSapProvider *s)
set the ANR SAP this RRC should interact with
Parameters of the UE CONTEXT RELEASE message.
Definition: epc-x2-sap.h:287
void(* ReceiveReportTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, LteRrcSap::MeasurementReport report)
TracedCallback signature for receive measurement report events.
Definition: lte-enb-rrc.h:864
Parameters of the HANDOVER REQUEST ACKNOWLEDGE message.
Definition: epc-x2-sap.h:243
void RecvRrcConnectionSetupCompleted(LteRrcSap::RrcConnectionSetupCompleted msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionSetupCompleted interfa...
Definition: lte-enb-rrc.cc:853
void(* NewUeContextTracedCallback)(uint16_t cellId, uint16_t rnti)
TracedCallback signature for new Ue Context events.
Definition: lte-enb-rrc.h:830
std::list< uint8_t > m_drbsToBeStarted
Definition: lte-enb-rrc.h:463
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
The HandoverStart trace source.
Definition: lte-enb-rrc.h:1241
std::vector< EpcX2Sap::ErabToBeSetupItem > GetErabList()
Definition: lte-enb-rrc.cc:701
void ScheduleRrcConnectionReconfiguration()
schedule an RRC Connection Reconfiguration procedure with the UE
Definition: lte-enb-rrc.cc:493
These service primitives of this part of the X2 SAP are provided by the RRC entity and issued by the ...
Definition: epc-x2-sap.h:371
LteAnrSapUser * GetLteAnrSapUser()
Get the ANR SAP offered by this RRC.
Parameters for [re]configuring the UE.
Time m_systemInformationPeriodicity
The SystemInformationPeriodicity attribute.
Definition: lte-enb-rrc.h:1150
LteEnbRrcSapProvider * GetLteEnbRrcSapProvider()
uint8_t m_defaultTransmissionMode
The DefaultTransmissionMode attribute.
Definition: lte-enb-rrc.h:1140
void DoRecvResourceStatusUpdate(EpcX2SapUser::ResourceStatusUpdateParams params)
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
void DoRecvUeData(EpcX2SapUser::UeDataParams params)
uint64_t GetImsi(void) const
void PrepareHandover(uint16_t cellId)
Start the handover preparation and send the handover request.
Definition: lte-enb-rrc.cc:526
void DoSendReleaseDataRadioBearer(uint64_t imsi, uint16_t rnti, uint8_t bearerId)
This function acts as an interface to trigger Release indication messages towards eNB and EPC...
Definition: lte-enb-rrc.cc:483
uint8_t DoAddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)
uint16_t GetRnti(void) const
void RecvRrcConnectionReestablishmentComplete(LteRrcSap::RrcConnectionReestablishmentComplete msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplet...
Definition: lte-enb-rrc.cc:962
EpcEnbS1SapUser * m_s1SapUser
Interface to receive messages from core network over the S1 protocol.
Definition: lte-enb-rrc.h:1084
std::set< uint16_t > m_ueSrsConfigurationIndexSet
Definition: lte-enb-rrc.h:1155
void SetSrsPeriodicity(uint32_t p)
virtual void DoDispose(void)
Destructor implementation.
TypeId GetRlcType(EpsBearer bearer)
bool m_configured
True if ConfigureCell() has been completed.
Definition: lte-enb-rrc.h:1092
void HandoverJoiningTimeout(uint16_t rnti)
Method triggered when a UE is expected to join the cell for a handover but does not do so in a reason...
Ipv4 addresses are stored in host order in this class.
Definition: ipv4-address.h:40
LteAnrSapUser * m_anrSapUser
Receive API calls from the ANR instance.
Definition: lte-enb-rrc.h:1064
EventId m_connectionSetupTimeout
Time limit before a connection setup timeout occurs.
Definition: lte-enb-rrc.h:478
Template for the implementation of the LteEnbRrcSapProvider as a member of an owner class of type C t...
Definition: lte-rrc-sap.h:1305
bool m_pendingRrcConnectionReconfiguration
Definition: lte-enb-rrc.h:451
Service Access Point (SAP) offered by the ANR instance to the eNodeB RRC instance.
Definition: lte-anr-sap.h:37
void DoRrcConfigurationUpdateInd(LteEnbCmacSapUser::UeConfig params)
An identifier for simulation events.
Definition: event-id.h:53
void DoSetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pa)
LteEpsBearerToRlcMapping_t
Identifies how EPS Bearer parameters are mapped to different RLC types.
Definition: lte-enb-rrc.h:818
uint8_t DoAddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig)
void DoRecvHandoverPreparationFailure(EpcX2SapUser::HandoverPreparationFailureParams params)
Service Access Point (SAP) offered by the handover algorithm instance to the eNodeB RRC instance...
void StartDataRadioBearers()
Start the data radio bearers that have been previously recorded to be started using RecordDataRadioBe...
Definition: lte-enb-rrc.cc:432
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
EpcEnbS1SapUser * GetS1SapUser()
void RecvRrcConnectionReestablishmentRequest(LteRrcSap::RrcConnectionReestablishmentRequest msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest...
Definition: lte-enb-rrc.cc:937
LteEnbCmacSapProvider * m_cmacSapProvider
Interface to the eNodeB MAC instance.
Definition: lte-enb-rrc.h:1056
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated
Definition: lte-enb-rrc.h:443
std::map< uint16_t, Ptr< UeManager > > m_ueMap
The UeMap attribute.
Definition: lte-enb-rrc.h:1112
LteFfrRrcSapUser * GetLteFfrRrcSapUser()
Get the FFR SAP offered by this RRC.
void(* HandoverStartTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti, uint16_t targetCid)
TracedCallback signature for handover start events.
Definition: lte-enb-rrc.h:851
Parameters of the LOAD INFORMATION message.
Definition: epc-x2-sap.h:300
void RecvRrcConnectionRequest(LteRrcSap::RrcConnectionRequest msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionRequest interface...
Definition: lte-enb-rrc.cc:800
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Definition: lte-mac-sap.h:36
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
The DataRadioBearerMap attribute.
Definition: lte-enb-rrc.h:420
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
The ConnectionReconfiguration trace source.
Definition: lte-enb-rrc.h:1236
uint8_t GetLogicalChannelPriority(EpsBearer bearer)
uint8_t GetNewRrcTransactionIdentifier()
void DoRecvSnStatusTransfer(EpcX2SapUser::SnStatusTransferParams params)
LteEnbCphySapUser * GetLteEnbCphySapUser()
void ConnectionRejectedTimeout(uint16_t rnti)
Method triggered a while after sending RRC Connection Rejected.
uint32_t GetSrsPeriodicity() const
Ptr< LteDataRadioBearerInfo > GetDataRadioBearerInfo(uint8_t drbid)
Template for the implementation of the LteAnrSapUser as a member of an owner class of type C to which...
Definition: lte-anr-sap.h:200
Time m_handoverJoiningTimeoutDuration
The HandoverJoiningTimeoutDuration attribute.
Definition: lte-enb-rrc.h:1214
uint16_t m_lastAllocatedConfigurationIndex
Definition: lte-enb-rrc.h:1156
void HandoverLeavingTimeout(uint16_t rnti)
Method triggered when a UE is expected to leave a cell for a handover but no feedback is received in ...
LteHandoverManagementSapProvider * m_handoverManagementSapProvider
Interface to the handover algorithm instance.
Definition: lte-enb-rrc.h:1061
A base class which provides memory management and object aggregation.
Definition: object.h:87
std::set< uint8_t > m_anrMeasIds
List of measurement identities which are intended for ANR purpose.
Definition: lte-enb-rrc.h:1123
void ConfigureCell(uint8_t ulBandwidth, uint8_t dlBandwidth, uint16_t ulEarfcn, uint16_t dlEarfcn, uint16_t cellId)
Configure cell-specific parameters.
void DoRecvRrcConnectionReestablishmentRequest(uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentRequest in...
void SetPdschConfigDedicated(LteRrcSap::PdschConfigDedicated pdschConfigDedicated)
Configure PdschConfigDedicated (i.e.
Service Access Point (SAP) offered by the eNB MAC to the eNB RRC See Femto Forum MAC Scheduler Interf...
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
void RemoveUe(uint16_t rnti)
remove a UE from the cell
State m_state
The current UeManager state.
Definition: lte-enb-rrc.h:447
void DoRecvMeasurementReport(uint16_t rnti, LteRrcSap::MeasurementReport msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvMeasurementReport interface to UeManag...
void CmacUeConfigUpdateInd(LteEnbCmacSapUser::UeConfig cmacParams)
Parameters of the UE DATA primitive.
Definition: epc-x2-sap.h:325
enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping
The EpsBearerToRlcMapping attribute.
Definition: lte-enb-rrc.h:1145
void DoSendLoadInformation(EpcX2Sap::LoadInformationParams params)
void RecvMeasurementReport(LteRrcSap::MeasurementReport msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface...
Definition: lte-enb-rrc.cc:969
a unique identifier for an interface.
Definition: type-id.h:58
uint16_t m_targetCellId
Definition: lte-enb-rrc.h:462
uint8_t Bid2Drbid(uint8_t bid)
void SetS1SapProvider(EpcEnbS1SapProvider *s)
Set the S1 SAP Provider.
uint8_t Lcid2Drbid(uint8_t lcid)
EventId m_connectionRequestTimeout
Time limit before a connection request timeout occurs.
Definition: lte-enb-rrc.h:472
LteEnbCphySapUser * m_cphySapUser
Receive API calls from the eNodeB PHY instance.
Definition: lte-enb-rrc.h:1087
LteAnrSapProvider * m_anrSapProvider
Interface to the ANR instance.
Definition: lte-enb-rrc.h:1066
Service Access Point (SAP) offered by the eNodeB RRC instance to the handover algorithm instance...
void DoDataRadioBearerSetupRequest(EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params)
void DoRecvLoadInformation(EpcX2SapUser::LoadInformationParams params)
void RecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
take the necessary actions in response to the reception of an X2 HANDOVER REQUEST ACK message ...
Definition: lte-enb-rrc.cc:582
void(* ConnectionHandoverTracedCallback)(uint64_t imsi, uint16_t cellId, uint16_t rnti)
TracedCallback signature for connection and handover end events.
Definition: lte-enb-rrc.h:840
bool SendData(Ptr< Packet > p)
Enqueue an IP data packet on the proper bearer for downlink transmission.
EventId m_handoverJoiningTimeout
Time limit before a handover joining timeout occurs.
Definition: lte-enb-rrc.h:491
void CompleteSetupUe(LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.
Definition: lte-enb-rrc.cc:792
uint16_t m_cellId
Cell identifier. Must be unique across the simulation.
Definition: lte-enb-rrc.h:1094
virtual void DoInitialize()
Initialize() implementation.
Definition: lte-enb-rrc.cc:151
LteRrcSap::MeasConfig m_ueMeasConfig
List of measurement configuration which are active in every UE attached to this eNodeB instance...
Definition: lte-enb-rrc.h:1118
void DoRecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
void DoRecvHandoverRequest(EpcX2SapUser::HandoverRequestParams params)