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 
43 #include <map>
44 #include <set>
45 
46 namespace ns3 {
47 
48 class LteRadioBearerInfo;
49 class LteSignalingRadioBearerInfo;
50 class LteDataRadioBearerInfo;
51 class LteEnbRrc;
52 class Packet;
53 
54 
55 
60 class UeManager : public Object
61 {
63 
64 public:
65 
66 
71  enum State
72  {
84  };
85 
86  UeManager ();
87 
97  UeManager (Ptr<LteEnbRrc> rrc, uint16_t rnti, State s);
98 
99  virtual ~UeManager (void);
100 
101  // inherited from Object
102 protected:
103  virtual void DoInitialize ();
104  virtual void DoDispose ();
105 public:
106  static TypeId GetTypeId (void);
107 
115  void SetSource (uint16_t sourceCellId, uint16_t sourceX2apId);
116 
122  void SetImsi (uint64_t imsi);
123 
134  void SetupDataRadioBearer (EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress);
135 
142 
148  void StartDataRadioBearers ();
149 
156  void ReleaseDataRadioBearer (uint8_t drbid);
157 
163 
169  void PrepareHandover (uint16_t cellId);
170 
177 
184 
195 
202  void SendData (uint8_t bid, Ptr<Packet> p);
203 
208  std::vector<EpcX2Sap::ErabToBeSetupItem> GetErabList ();
209 
215  void SendUeContextRelease ();
216 
222  void RecvHandoverPreparationFailure (uint16_t cellId);
223 
230 
237 
238 
239  // METHODS FORWARDED FROM ENB RRC SAP ///////////////////////////////////////
240 
255 
256 
257  // METHODS FORWARDED FROM ENB CMAC SAP //////////////////////////////////////
258 
260 
261  // METHODS FORWARDED FROM ENB PDCP SAP //////////////////////////////////////
262 
264 
270  uint16_t GetRnti (void) const;
271 
276  uint64_t GetImsi (void) const;
277 
282  uint16_t GetSrsConfigurationIndex (void) const;
283 
289  void SetSrsConfigurationIndex (uint16_t srsConfIndex);
290 
295  State GetState () const;
296 
297 
298 private:
299 
307  uint8_t AddDataRadioBearerInfo (Ptr<LteDataRadioBearerInfo> radioBearerInfo);
308 
315 
321  void RemoveDataRadioBearerInfo (uint8_t drbid);
322 
329 
336 
342 
348  uint8_t Lcid2Drbid (uint8_t lcid);
349 
355  uint8_t Drbid2Lcid (uint8_t drbid);
356 
362  uint8_t Lcid2Bid (uint8_t lcid);
363 
369  uint8_t Bid2Lcid (uint8_t bid);
370 
376  uint8_t Drbid2Bid (uint8_t drbid);
377 
383  uint8_t Bid2Drbid (uint8_t bid);
384 
390  void SwitchToState (State s);
391 
392 
393  std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
397  uint16_t m_rnti;
398  uint64_t m_imsi;
405  // imsi cellid rnti old new
407  uint16_t m_sourceX2apId;
408  uint16_t m_sourceCellId;
409  uint16_t m_targetCellId;
410  std::list<uint8_t> m_drbsToBeStarted;
412 
417 
418 };
419 
420 
421 
427 class LteEnbRrc : public Object
428 {
429 
436  friend class UeManager;
437 
438 public:
443  LteEnbRrc ();
444 
448  virtual ~LteEnbRrc ();
449 
450 
451  // inherited from Object
452 protected:
453  virtual void DoDispose (void);
454 public:
455  static TypeId GetTypeId (void);
456 
457 
463 
469 
470 
477 
483 
484 
491 
498 
499 
506 
513 
514 
521 
528 
537 
538 
545 
551 
552 
559 
566 
574  Ptr<UeManager> GetUeManager (uint16_t rnti);
575 
589 
615  void ConfigureCell (uint8_t ulBandwidth,
616  uint8_t dlBandwidth,
617  uint16_t ulEarfcn,
618  uint16_t dlEarfcn,
619  uint16_t cellId);
620 
626  void SetCellId (uint16_t m_cellId);
627 
637  bool SendData (Ptr<Packet> p);
638 
644  void SetForwardUpCallback (Callback <void, Ptr<Packet> > cb);
645 
652  void ConnectionTimeout (uint16_t rnti);
653 
659  void ConnectionRejectedTimeout (uint16_t rnti);
660 
667  void HandoverJoiningTimeout (uint16_t rnti);
668 
675  void HandoverLeavingTimeout (uint16_t rnti);
676 
687  void SendHandoverRequest (uint16_t rnti, uint16_t cellId);
688 
696  PER_BASED = 4};
697 
698 private:
699 
700 
701  // RRC SAP methods
702 
716  void DoRecvMeasurementReport (uint16_t rnti, LteRrcSap::MeasurementReport msg);
717 
718  // S1 SAP methods
719 
722 
723  // X2 SAP methods
724 
733 
734  // CMAC SAP methods
735 
736  uint16_t DoAllocateTemporaryCellRnti ();
737  void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success);
739 
740  // Handover Management SAP methods
741 
743  void DoTriggerHandover (uint16_t rnti, uint16_t targetCellId);
744 
745  // ANR SAP methods
746 
748 
749 
750  // Internal methods
751 
761  uint16_t AddUe (UeManager::State state);
762 
768  void RemoveUe (uint16_t rnti);
769 
770 
777  TypeId GetRlcType (EpsBearer bearer);
778 
779 
780 
781 public:
782 
788  void AddX2Neighbour (uint16_t cellId);
789 
794  void SetSrsPeriodicity (uint32_t p);
795 
800  uint32_t GetSrsPeriodicity () const;
801 
821  void SetCsgId (uint32_t csgId, bool csgIndication);
822 
823 private:
824 
833  uint16_t GetNewSrsConfigurationIndex (void);
834 
843  void RemoveSrsConfigurationIndex (uint16_t srcCi);
844 
845 
846 
854  uint8_t GetLogicalChannelGroup (EpsBearer bearer);
855 
864  uint8_t GetLogicalChannelPriority (EpsBearer bearer);
865 
866 
871  void SendSystemInformation ();
872 
874 
877 
880 
883 
886 
889 
891 
894 
897 
899  uint16_t m_cellId;
900  uint16_t m_dlEarfcn;
901  uint16_t m_ulEarfcn;
902  uint16_t m_dlBandwidth;
903  uint16_t m_ulBandwidth;
905 
908 
909  std::map<uint16_t, Ptr<UeManager> > m_ueMap;
910 
916 
917  std::set<uint8_t> m_handoverMeasIds;
918  std::set<uint8_t> m_anrMeasIds;
919 
920  struct X2uTeidInfo
921  {
922  uint16_t rnti;
923  uint8_t drbid;
924  };
925 
926  // TEID RNTI, DRBID
927  std::map<uint32_t, X2uTeidInfo> m_x2uTeidInfoMap;
928 
930 
932 
934 
935  // SRS related attributes
937  std::set<uint16_t> m_ueSrsConfigurationIndexSet;
940 
941  // Cell selection related attribute
942  int8_t m_qRxLevMin;
943 
944  // Handover related attributes
947 
948  // UE measurements related attributes
951 
952  // timeouts
957 
958  // cellid rnti
960  // imsi cellid rnti
962  // imsi cellid rnti
964  // imsi cellid rnti targetCellId
966  // imsi cellid rnti
968 
969  // imsi cellid rnti
971 
972 };
973 
974 
975 } // namespace ns3
976 
977 #endif // LTE_ENB_RRC_H
Callback< void, Ptr< Packet > > m_forwardUpCallback
Definition: lte-enb-rrc.h:873
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
Definition: lte-enb-rrc.h:406
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
Definition: lte-enb-rrc.h:967
Parameters passed to DataRadioBearerSetupRequest ()
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:79
Ptr< LteSignalingRadioBearerInfo > m_srb1
Definition: lte-enb-rrc.h:395
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:607
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:71
Callback template class.
Definition: callback.h:924
void RecordDataRadioBearersToBeStarted()
Start all configured data radio bearers.
Definition: lte-enb-rrc.cc:413
virtual void DoDispose()
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
Definition: lte-enb-rrc.cc:267
uint16_t m_dlBandwidth
Definition: lte-enb-rrc.h:902
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:750
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:311
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:713
void DoNotifyLcConfigResult(uint16_t rnti, uint8_t lcid, bool success)
void SetCellId(uint16_t m_cellId)
set the cell id of this eNB
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:945
Parameters of the HANDOVER REQUEST message.
Definition: epc-x2-sap.h:225
Part of the RRC protocol.
Definition: lte-rrc-sap.h:840
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:258
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:408
virtual ~LteEnbRrc()
Destructor.
uint16_t m_rnti
Definition: lte-enb-rrc.h:397
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
bool m_needTransmissionModeConfiguration
Definition: lte-enb-rrc.h:411
uint16_t m_lastAllocatedRnti
Definition: lte-enb-rrc.h:904
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:903
uint8_t m_lastRrcTransactionIdentifier
Definition: lte-enb-rrc.h:399
uint16_t m_srsCurrentPeriodicityId
Definition: lte-enb-rrc.h:936
The LTE Radio Resource Control entity at the eNB.
Definition: lte-enb-rrc.h:427
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:398
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:693
Time m_handoverLeavingTimeoutDuration
Definition: lte-enb-rrc.h:956
Time m_connectionRejectedTimeoutDuration
Definition: lte-enb-rrc.h:954
LteMacSapProvider * m_macSapProvider
Definition: lte-enb-rrc.h:890
LteHandoverManagementSapUser * GetLteHandoverManagementSapUser()
Get the Handover Management SAP offered by this RRC.
LteEnbRrcSapProvider * m_rrcSapProvider
Definition: lte-enb-rrc.h:888
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:318
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:690
LteRrcSap::RrcConnectionReconfiguration GetRrcConnectionReconfigurationForHandover()
Definition: lte-enb-rrc.cc:614
void SwitchToState(State s)
Switch the UeManager to the given state.
void RecvRrcConnectionReconfigurationCompleted(LteRrcSap::RrcConnectionReconfigurationCompleted msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReconfigurationComplet...
Definition: lte-enb-rrc.cc:831
void ReleaseDataRadioBearer(uint8_t drbid)
Release a given radio bearer.
Definition: lte-enb-rrc.cc:445
uint8_t AddDataRadioBearerInfo(Ptr< LteDataRadioBearerInfo > radioBearerInfo)
Add a new LteDataRadioBearerInfo structure to the UeManager.
EpcX2SapUser * m_x2SapUser
Definition: lte-enb-rrc.h:875
uint8_t m_rsrqFilterCoefficient
Definition: lte-enb-rrc.h:950
LteEnbRrcSapUser * m_rrcSapUser
Definition: lte-enb-rrc.h:887
uint16_t m_dlEarfcn
Definition: lte-enb-rrc.h:900
Ptr< LteEnbRrc > m_rrc
Definition: lte-enb-rrc.h:401
EpcEnbS1SapProvider * m_s1SapProvider
Definition: lte-enb-rrc.h:892
LteRrcSap::SystemInformationBlockType1 m_sib1
the System Information Block Type 1 that is currently broadcasted over BCH
Definition: lte-enb-rrc.h:907
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:881
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:959
Service Access Point (SAP) offered by the MAC to the RRC See Femto Forum MAC Scheduler Interface Spec...
EventId m_connectionTimeout
Definition: lte-enb-rrc.h:413
LteEnbCmacSapUser * m_cmacSapUser
Definition: lte-enb-rrc.h:878
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:946
int8_t m_qRxLevMin
Definition: lte-enb-rrc.h:942
LtePdcpSapUser * m_drbPdcpSapUser
Definition: lte-enb-rrc.h:403
uint8_t AddUeMeasReportConfig(LteRrcSap::ReportConfigEutra config)
Add a new UE measurement reporting configuration.
EventId m_connectionRejectedTimeout
Definition: lte-enb-rrc.h:414
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration()
Ptr< LteSignalingRadioBearerInfo > m_srb0
Definition: lte-enb-rrc.h:394
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:901
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:961
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:896
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:621
std::set< uint8_t > m_handoverMeasIds
Definition: lte-enb-rrc.h:917
void DoRecvUeContextRelease(EpcX2SapUser::UeContextReleaseParams params)
uint8_t m_lastAllocatedDrbid
Definition: lte-enb-rrc.h:396
uint8_t Bid2Lcid(uint8_t bid)
uint16_t m_sourceX2apId
Definition: lte-enb-rrc.h:407
std::map< uint32_t, X2uTeidInfo > m_x2uTeidInfoMap
Definition: lte-enb-rrc.h:927
TracedCallback< uint64_t, uint16_t, uint16_t, LteRrcSap::MeasurementReport > m_recvMeasurementReportTrace
Definition: lte-enb-rrc.h:970
virtual ~UeManager(void)
Definition: lte-enb-rrc.cc:262
uint8_t m_rsrpFilterCoefficient
Definition: lte-enb-rrc.h:949
Part of the RRC protocol.
Definition: lte-rrc-sap.h:752
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:324
void RemoveDataRadioBearerInfo(uint8_t drbid)
remove the LteDataRadioBearerInfo corresponding to a bearer being released
static TypeId GetTypeId(void)
Definition: lte-enb-rrc.cc:280
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:731
EpcX2SapProvider * m_x2SapProvider
Definition: lte-enb-rrc.h:876
Parameters of the RESOURCE STATUS UPDATE message.
Definition: epc-x2-sap.h:311
void ConnectionTimeout(uint16_t rnti)
Method triggered when a UE is expected to get connected but does not do so in a reasonable time...
Manages all the radio bearer information possessed by the ENB RRC for a single UE.
Definition: lte-enb-rrc.h:60
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated()
EventId m_handoverLeavingTimeout
Definition: lte-enb-rrc.h:416
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:813
std::list< uint8_t > m_drbsToBeStarted
Definition: lte-enb-rrc.h:410
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Definition: lte-enb-rrc.cc:981
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
Definition: lte-enb-rrc.h:965
std::vector< EpcX2Sap::ErabToBeSetupItem > GetErabList()
Definition: lte-enb-rrc.cc:670
void ScheduleRrcConnectionReconfiguration()
schedule an RRC Connection Reconfiguration procedure with the UE
Definition: lte-enb-rrc.cc:471
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:933
LteEnbRrcSapProvider * GetLteEnbRrcSapProvider()
uint8_t m_defaultTransmissionMode
Definition: lte-enb-rrc.h:929
void DoRecvResourceStatusUpdate(EpcX2SapUser::ResourceStatusUpdateParams params)
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:504
uint8_t DoAddUeMeasReportConfigForHandover(LteRrcSap::ReportConfigEutra reportConfig)
uint16_t GetRnti(void) const
Definition: lte-enb-rrc.cc:997
void RecvRrcConnectionReestablishmentComplete(LteRrcSap::RrcConnectionReestablishmentComplete msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvRrcConnectionReestablishmentComplet...
Definition: lte-enb-rrc.cc:913
EpcEnbS1SapUser * m_s1SapUser
Definition: lte-enb-rrc.h:893
std::set< uint16_t > m_ueSrsConfigurationIndexSet
Definition: lte-enb-rrc.h:937
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:884
Template for the implementation of the LteEnbRrcSapProvider as a member of an owner class of type C t...
Definition: lte-rrc-sap.h:1242
bool m_pendingRrcConnectionReconfiguration
Definition: lte-enb-rrc.h:404
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
bool m_reconfigureUes
Definition: lte-enb-rrc.h:939
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:425
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:888
LteEnbCmacSapProvider * m_cmacSapProvider
Definition: lte-enb-rrc.h:879
LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated
Definition: lte-enb-rrc.h:400
std::map< uint16_t, Ptr< UeManager > > m_ueMap
Definition: lte-enb-rrc.h:909
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:769
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:393
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
Definition: lte-enb-rrc.h:963
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:955
uint16_t m_lastAllocatedConfigurationIndex
Definition: lte-enb-rrc.h:938
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:882
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:918
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...
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:964
Parameters of the UE DATA primitive.
Definition: epc-x2-sap.h:325
enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping
Definition: lte-enb-rrc.h:931
void RecvMeasurementReport(LteRrcSap::MeasurementReport msg)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::RecvMeasurementReport interface...
Definition: lte-enb-rrc.cc:920
a unique identifier for an interface.
Definition: type-id.h:49
uint16_t m_targetCellId
Definition: lte-enb-rrc.h:409
uint8_t Bid2Drbid(uint8_t bid)
void SetS1SapProvider(EpcEnbS1SapProvider *s)
Set the S1 SAP Provider.
uint8_t Lcid2Drbid(uint8_t lcid)
LteEnbCphySapUser * m_cphySapUser
Definition: lte-enb-rrc.h:895
LteAnrSapProvider * m_anrSapProvider
Definition: lte-enb-rrc.h:885
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:560
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:415
Time m_connectionTimeoutDuration
Definition: lte-enb-rrc.h:953
void CompleteSetupUe(LteEnbRrcSapProvider::CompleteSetupUeParameters params)
Part of the RRC protocol. Implement the LteEnbRrcSapProvider::CompleteSetupUe interface.
Definition: lte-enb-rrc.cc:761
uint16_t m_cellId
Definition: lte-enb-rrc.h:899
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:915
void DoRecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
void DoRecvHandoverRequest(EpcX2SapUser::HandoverRequestParams params)