A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
61 class UeManager : public Object
62 {
64 
65 public:
66 
67 
72  enum State
73  {
85  };
86 
87  UeManager ();
88 
98  UeManager (Ptr<LteEnbRrc> rrc, uint16_t rnti, State s);
99 
100  virtual ~UeManager (void);
101 
102  // inherited from Object
103 protected:
104  virtual void DoInitialize ();
105  virtual void DoDispose ();
106 public:
107  static TypeId GetTypeId (void);
108 
116  void SetSource (uint16_t sourceCellId, uint16_t sourceX2apId);
117 
123  void SetImsi (uint64_t imsi);
124 
135  void SetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress);
136 
143 
149  void StartDataRadioBearers ();
150 
157  void ReleaseDataRadioBearer (uint8_t drbid);
158 
164 
170  void PrepareHandover (uint16_t cellId);
171 
178 
185 
196 
203  void SendData (uint8_t bid, Ptr<Packet> p);
204 
209  std::vector<EpcX2Sap::ErabToBeSetupItem> GetErabList ();
210 
216  void SendUeContextRelease ();
217 
223  void RecvHandoverPreparationFailure (uint16_t cellId);
224 
231 
238 
239 
240  // METHODS FORWARDED FROM ENB RRC SAP ///////////////////////////////////////
241 
256 
257 
258  // METHODS FORWARDED FROM ENB CMAC SAP //////////////////////////////////////
259 
261 
262  // METHODS FORWARDED FROM ENB PDCP SAP //////////////////////////////////////
263 
265 
271  uint16_t GetRnti (void) const;
272 
277  uint64_t GetImsi (void) const;
278 
283  uint16_t GetSrsConfigurationIndex (void) const;
284 
290  void SetSrsConfigurationIndex (uint16_t srsConfIndex);
291 
296  State GetState () const;
297 
304  void SetPdschConfigDedicated (LteRrcSap::PdschConfigDedicated pdschConfigDedicated);
305 
306 private:
307 
315  uint8_t AddDataRadioBearerInfo (Ptr<LteDataRadioBearerInfo> radioBearerInfo);
316 
323 
329  void RemoveDataRadioBearerInfo (uint8_t drbid);
330 
337 
344 
350 
356  uint8_t Lcid2Drbid (uint8_t lcid);
357 
363  uint8_t Drbid2Lcid (uint8_t drbid);
364 
370  uint8_t Lcid2Bid (uint8_t lcid);
371 
377  uint8_t Bid2Lcid (uint8_t bid);
378 
384  uint8_t Drbid2Bid (uint8_t drbid);
385 
391  uint8_t Bid2Drbid (uint8_t bid);
392 
398  void SwitchToState (State s);
399 
400 
401  std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
405  uint16_t m_rnti;
406  uint64_t m_imsi;
413  // imsi cellid rnti old new
415  uint16_t m_sourceX2apId;
416  uint16_t m_sourceCellId;
417  uint16_t m_targetCellId;
418  std::list<uint8_t> m_drbsToBeStarted;
420 
426 
427 };
428 
429 
430 
436 class LteEnbRrc : public Object
437 {
438 
446  friend class UeManager;
447 
448 public:
453  LteEnbRrc ();
454 
458  virtual ~LteEnbRrc ();
459 
460 
461  // inherited from Object
462 protected:
463  virtual void DoDispose (void);
464 public:
465  static TypeId GetTypeId (void);
466 
467 
473 
479 
480 
487 
493 
494 
501 
508 
509 
516 
523 
524 
525 
532 
539 
546 
553 
562 
563 
570 
576 
577 
584 
591 
599  bool HasUeManager (uint16_t rnti) const;
600 
608  Ptr<UeManager> GetUeManager (uint16_t rnti);
609 
623 
649  void ConfigureCell (uint8_t ulBandwidth,
650  uint8_t dlBandwidth,
651  uint16_t ulEarfcn,
652  uint16_t dlEarfcn,
653  uint16_t cellId);
654 
660  void SetCellId (uint16_t m_cellId);
661 
671  bool SendData (Ptr<Packet> p);
672 
678  void SetForwardUpCallback (Callback <void, Ptr<Packet> > cb);
679 
686  void ConnectionRequestTimeout (uint16_t rnti);
687 
694  void ConnectionSetupTimeout (uint16_t rnti);
695 
701  void ConnectionRejectedTimeout (uint16_t rnti);
702 
709  void HandoverJoiningTimeout (uint16_t rnti);
710 
717  void HandoverLeavingTimeout (uint16_t rnti);
718 
729  void SendHandoverRequest (uint16_t rnti, uint16_t cellId);
730 
738  PER_BASED = 4};
739 
740 private:
741 
742 
743  // RRC SAP methods
744 
758  void DoRecvMeasurementReport (uint16_t rnti, LteRrcSap::MeasurementReport msg);
759 
760  // S1 SAP methods
761 
764 
765  // X2 SAP methods
766 
775 
776  // CMAC SAP methods
777 
778  uint16_t DoAllocateTemporaryCellRnti ();
779  void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success);
781 
782  // Handover Management SAP methods
783 
785  void DoTriggerHandover (uint16_t rnti, uint16_t targetCellId);
786 
787  // ANR SAP methods
788 
790 
791  // FFR RRC SAP methods
795 
796  // Internal methods
797 
807  uint16_t AddUe (UeManager::State state);
808 
814  void RemoveUe (uint16_t rnti);
815 
816 
823  TypeId GetRlcType (EpsBearer bearer);
824 
825 
826 
827 public:
828 
834  void AddX2Neighbour (uint16_t cellId);
835 
840  void SetSrsPeriodicity (uint32_t p);
841 
846  uint32_t GetSrsPeriodicity () const;
847 
867  void SetCsgId (uint32_t csgId, bool csgIndication);
868 
869 private:
870 
879  uint16_t GetNewSrsConfigurationIndex (void);
880 
889  void RemoveSrsConfigurationIndex (uint16_t srcCi);
890 
891 
892 
900  uint8_t GetLogicalChannelGroup (EpsBearer bearer);
901 
910  uint8_t GetLogicalChannelPriority (EpsBearer bearer);
911 
912 
917  void SendSystemInformation ();
918 
920 
923 
926 
929 
932 
935 
938 
940 
943 
946 
948  uint16_t m_cellId;
949  uint16_t m_dlEarfcn;
950  uint16_t m_ulEarfcn;
951  uint16_t m_dlBandwidth;
952  uint16_t m_ulBandwidth;
954 
957 
958  std::map<uint16_t, Ptr<UeManager> > m_ueMap;
959 
965 
966  std::set<uint8_t> m_handoverMeasIds;
967  std::set<uint8_t> m_anrMeasIds;
968  std::set<uint8_t> m_ffrMeasIds;
969 
970  struct X2uTeidInfo
971  {
972  uint16_t rnti;
973  uint8_t drbid;
974  };
975 
976  // TEID RNTI, DRBID
977  std::map<uint32_t, X2uTeidInfo> m_x2uTeidInfoMap;
978 
980 
982 
984 
985  // SRS related attributes
987  std::set<uint16_t> m_ueSrsConfigurationIndexSet;
990 
991  // Cell selection related attribute
992  int8_t m_qRxLevMin;
993 
994  // Handover related attributes
997 
998  // UE measurements related attributes
1001 
1002  // timeouts
1008 
1009  // cellid rnti
1011  // imsi cellid rnti
1013  // imsi cellid rnti
1015  // imsi cellid rnti targetCellId
1017  // imsi cellid rnti
1019 
1020  // imsi cellid rnti
1022 
1023 };
1024 
1025 
1026 } // namespace ns3
1027 
1028 #endif // LTE_ENB_RRC_H
Callback< void, Ptr< Packet > > m_forwardUpCallback
Definition: lte-enb-rrc.h:919
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
Definition: lte-enb-rrc.h:414
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
Definition: lte-enb-rrc.h:1018
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:95
Ptr< LteSignalingRadioBearerInfo > m_srb1
Definition: lte-enb-rrc.h:403
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:609
smart pointer class similar to boost::intrusive_ptr
Definition: ptr.h:60
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.
State
The state of the UeManager at the eNB RRC.
Definition: lte-enb-rrc.h:72
Callback template class.
Definition: callback.h:972
void RecordDataRadioBearersToBeStarted()
Start all configured data radio bearers.
Definition: lte-enb-rrc.cc:415
virtual void DoDispose()
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
Definition: lte-enb-rrc.cc:269
uint16_t m_dlBandwidth
Definition: lte-enb-rrc.h:951
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:752
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:313
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:715
void DoNotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)
LteFfrRrcSapProvider * m_ffrRrcSapProvider
Definition: lte-enb-rrc.h:934
void SetCellId(uint16_t m_cellId)
set the cell id of this eNB
LteFfrRrcSapUser * m_ffrRrcSapUser
Definition: lte-enb-rrc.h:933
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
Definition: lte-enb-rrc.h:995
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:60
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:416
virtual ~LteEnbRrc()
Destructor.
uint16_t m_rnti
Definition: lte-enb-rrc.h:405
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:953
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
Definition: lte-enb-rrc.h:952
uint8_t m_lastRrcTransactionIdentifier
Definition: lte-enb-rrc.h:407
uint16_t m_srsCurrentPeriodicityId
Definition: lte-enb-rrc.h:986
The LTE Radio Resource Control entity at the eNB.
Definition: lte-enb-rrc.h:436
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
Definition: lte-enb-rrc.h:406
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
LteEpsBearerToRlcMapping_t
Identifies how EPS Bearer parameters are mapped to different RLC types.
Definition: lte-enb-rrc.h:735
Time m_handoverLeavingTimeoutDuration
Definition: lte-enb-rrc.h:1007
Time m_connectionRejectedTimeoutDuration
Definition: lte-enb-rrc.h:1005
LteMacSapProvider * m_macSapProvider
Definition: lte-enb-rrc.h:939
LteHandoverManagementSapUser * GetLteHandoverManagementSapUser()
Get the Handover Management SAP offered by this RRC.
LteEnbRrcSapProvider * m_rrcSapProvider
Definition: lte-enb-rrc.h:937
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:320
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:692
LteRrcSap::RrcConnectionReconfiguration GetRrcConnectionReconfigurationForHandover()
Definition: lte-enb-rrc.cc:616
void SwitchToState(State s)
Switch the UeManager to the given state.
Time m_connectionSetupTimeoutDuration
Definition: lte-enb-rrc.h:1004
void RecvRrcConnectionReconfigurationCompleted(LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationComplet...
Definition: lte-enb-rrc.cc:843
void ReleaseDataRadioBearer(uint8_t drbid)
Release a given radio bearer.
Definition: lte-enb-rrc.cc:447
uint8_t AddDataRadioBearerInfo(Ptr< LteDataRadioBearerInfo > radioBearerInfo)
Add a new LteDataRadioBearerInfo structure to the UeManager.
EpcX2SapUser * m_x2SapUser
Definition: lte-enb-rrc.h:921
uint8_t m_rsrqFilterCoefficient
Definition: lte-enb-rrc.h:1000
LteEnbRrcSapUser * m_rrcSapUser
Definition: lte-enb-rrc.h:936
uint16_t m_dlEarfcn
Definition: lte-enb-rrc.h:949
bool m_needPhyMacConfiguration
Definition: lte-enb-rrc.h:419
Ptr< LteEnbRrc > m_rrc
Definition: lte-enb-rrc.h:409
EpcEnbS1SapProvider * m_s1SapProvider
Definition: lte-enb-rrc.h:941
LteRrcSap::SystemInformationBlockType1 m_sib1
the System Information Block Type 1 that is currently broadcasted over BCH
Definition: lte-enb-rrc.h:956
Time m_connectionRequestTimeoutDuration
Definition: lte-enb-rrc.h:1003
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
Definition: lte-enb-rrc.h:927
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
Definition: lte-enb-rrc.h:1010
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
Definition: lte-enb-rrc.h:924
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
Definition: lte-enb-rrc.h:996
int8_t m_qRxLevMin
Definition: lte-enb-rrc.h:992
LtePdcpSapUser * m_drbPdcpSapUser
Definition: lte-enb-rrc.h:411
uint8_t AddUeMeasReportConfig(LteRrcSap::ReportConfigEutra config)
Add a new UE measurement reporting configuration.
EventId m_connectionRejectedTimeout
Definition: lte-enb-rrc.h:423
void SetLteFfrRrcSapProvider(LteFfrRrcSapProvider *s)
set the FFR SAP this RRC should interact with
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration()
Ptr< LteSignalingRadioBearerInfo > m_srb0
Definition: lte-enb-rrc.h:402
void DoRecvRrcConnectionRequest(uint16_t rnti, LteRrcSap::RrcConnectionRequest msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvRrcConnectionRequest interface to UeMa...
uint16_t m_ulEarfcn
Definition: lte-enb-rrc.h:950
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
Definition: lte-enb-rrc.h:1012
Parameters of the HANDOVER PREPARATION FAILURE message.
Definition: epc-x2-sap.h:259
Ptr< SampleEmitter > s
void DoPathSwitchRequestAcknowledge(EpcEnbS1SapUser::PathSwitchRequestAcknowledgeParameters params)
Parameters of the SN STATUS TRANSFER message.
Definition: epc-x2-sap.h:273
LteEnbCphySapProvider * m_cphySapProvider
Definition: lte-enb-rrc.h:945
std::set< uint8_t > m_ffrMeasIds
Definition: lte-enb-rrc.h:968
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:623
std::set< uint8_t > m_handoverMeasIds
Definition: lte-enb-rrc.h:966
void DoRecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
uint8_t m_lastAllocatedDrbid
Definition: lte-enb-rrc.h:404
uint8_t Bid2Lcid(uint8_t bid)
uint16_t m_sourceX2apId
Definition: lte-enb-rrc.h:415
std::map< uint32_t, X2uTeidInfo > m_x2uTeidInfoMap
Definition: lte-enb-rrc.h:977
TracedCallback< uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport > m_recvMeasurementReportTrace
Definition: lte-enb-rrc.h:1021
virtual ~UeManager(void)
Definition: lte-enb-rrc.cc:264
uint8_t m_rsrpFilterCoefficient
Definition: lte-enb-rrc.h:999
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:326
void RemoveDataRadioBearerInfo(uint8_t drbid)
remove the LteDataRadioBearerInfo corresponding to a bearer being released
static TypeId GetTypeId(void)
Definition: lte-enb-rrc.cc:282
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:733
EpcX2SapProvider * m_x2SapProvider
Definition: lte-enb-rrc.h:922
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:61
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated()
EventId m_handoverLeavingTimeout
Definition: lte-enb-rrc.h:425
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
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:824
std::list< uint8_t > m_drbsToBeStarted
Definition: lte-enb-rrc.h:418
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
Definition: lte-enb-rrc.h:1016
std::vector< EpcX2Sap::ErabToBeSetupItem > GetErabList()
Definition: lte-enb-rrc.cc:672
void ScheduleRrcConnectionReconfiguration()
schedule an RRC Connection Reconfiguration procedure with the UE
Definition: lte-enb-rrc.cc:473
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
Definition: lte-enb-rrc.h:983
LteEnbRrcSapProvider * GetLteEnbRrcSapProvider()
uint8_t m_defaultTransmissionMode
Definition: lte-enb-rrc.h:979
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:506
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:928
EpcEnbS1SapUser * m_s1SapUser
Definition: lte-enb-rrc.h:942
std::set< uint16_t > m_ueSrsConfigurationIndexSet
Definition: lte-enb-rrc.h:987
void SetSrsPeriodicity(uint32_t p)
virtual void DoDispose(void)
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
TypeId GetRlcType(EpsBearer bearer)
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:38
LteAnrSapUser * m_anrSapUser
Definition: lte-enb-rrc.h:930
EventId m_connectionSetupTimeout
Definition: lte-enb-rrc.h:422
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:412
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:46
void DoSetPdschConfigDedicated(uint16_t rnti, LteRrcSap::PdschConfigDedicated pa)
uint8_t DoAddUeMeasReportConfigForFfr(LteRrcSap::ReportConfigEutra reportConfig)
bool m_reconfigureUes
Definition: lte-enb-rrc.h:989
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:427
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:903
LteEnbCmacSapProvider * m_cmacSapProvider
Definition: lte-enb-rrc.h:925
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated
Definition: lte-enb-rrc.h:408
std::map< uint16_t, Ptr< UeManager > > m_ueMap
Definition: lte-enb-rrc.h:958
LteFfrRrcSapUser * GetLteFfrRrcSapUser()
Get the FFR SAP offered by this RRC.
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:771
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
Definition: lte-enb-rrc.h:401
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
Definition: lte-enb-rrc.h:1014
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
Definition: lte-enb-rrc.h:1006
uint16_t m_lastAllocatedConfigurationIndex
Definition: lte-enb-rrc.h:988
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
Definition: lte-enb-rrc.h:928
a base class which provides memory management and object aggregation
Definition: object.h:64
std::set< uint8_t > m_anrMeasIds
Definition: lte-enb-rrc.h:967
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
void DoRecvMeasurementReport(uint16_t rnti, LteRrcSap::MeasurementReport msg)
Part of the RRC protocol. Forwarding LteEnbRrcSapProvider::RecvMeasurementReport interface to UeManag...
void CmacUeConfigUpdateInd(LteEnbCmacSapUser::UeConfig cmacParams)
Definition: lte-enb-rrc.cc:986
Parameters of the UE DATA primitive.
Definition: epc-x2-sap.h:325
enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping
Definition: lte-enb-rrc.h:981
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:935
a unique identifier for an interface.
Definition: type-id.h:49
uint16_t m_targetCellId
Definition: lte-enb-rrc.h:417
uint8_t Bid2Drbid(uint8_t bid)
void SetS1SapProvider(EpcEnbS1SapProvider *s)
Set the S1 SAP Provider.
uint8_t Lcid2Drbid(uint8_t lcid)
EventId m_connectionRequestTimeout
Definition: lte-enb-rrc.h:421
LteEnbCphySapUser * m_cphySapUser
Definition: lte-enb-rrc.h:944
LteAnrSapProvider * m_anrSapProvider
Definition: lte-enb-rrc.h:931
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:562
bool SendData(Ptr< Packet > p)
Enqueue an IP data packet on the proper bearer for downlink transmission.
EventId m_handoverJoiningTimeout
Definition: lte-enb-rrc.h:424
void CompleteSetupUe(LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.
Definition: lte-enb-rrc.cc:763
uint16_t m_cellId
Definition: lte-enb-rrc.h:948
virtual void DoInitialize()
This method is called only once by Object::Initialize.
Definition: lte-enb-rrc.cc:148
LteRrcSap::MeasConfig m_ueMeasConfig
List of measurement configuration which are active in every UE attached to this eNodeB instance...
Definition: lte-enb-rrc.h:964
void DoRecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
void DoRecvHandoverRequest(EpcX2SapUser::HandoverRequestParams params)