26 #include <ns3/nstime.h>
27 #include <ns3/object.h>
28 #include <ns3/packet.h>
29 #include <ns3/lte-enb-cmac-sap.h>
30 #include <ns3/lte-mac-sap.h>
31 #include <ns3/ff-mac-sched-sap.h>
32 #include <ns3/lte-pdcp-sap.h>
33 #include <ns3/epc-x2-sap.h>
34 #include <ns3/epc-enb-s1-sap.h>
35 #include <ns3/lte-enb-cphy-sap.h>
36 #include <ns3/lte-rrc-sap.h>
37 #include <ns3/traced-callback.h>
38 #include <ns3/event-id.h>
45 class LteRadioBearerInfo;
46 class LteSignalingRadioBearerInfo;
47 class LteDataRadioBearerInfo;
48 class EpcEnbS1SapUser;
49 class EpcEnbS1SapProvider;
70 INITIAL_RANDOM_ACCESS = 0,
74 CONNECTION_RECONFIGURATION,
75 CONNECTION_REESTABLISHMENT,
96 virtual ~UeManager (
void);
103 static TypeId GetTypeId (
void);
112 void SetSource (uint16_t sourceCellId, uint16_t sourceX2apId);
205 std::vector<EpcX2Sap::ErabToBeSetupItem>
GetErabList ();
375 std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
378 uint8_t m_lastAllocatedDrbid;
381 uint8_t m_lastRrcTransactionIdentifier;
386 bool m_pendingRrcConnectionReconfiguration;
389 uint16_t m_sourceX2apId;
390 uint16_t m_sourceCellId;
391 uint16_t m_targetCellId;
392 std::list<uint8_t> m_drbsToBeStarted;
393 bool m_needTransmissionModeConfiguration;
429 static TypeId GetTypeId (
void);
619 uint16_t DoAllocateTemporaryCellRnti ();
620 void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid,
bool success);
741 uint16_t m_dlBandwidth;
742 uint16_t m_ulBandwidth;
743 uint16_t m_lastAllocatedRnti;
745 std::map<uint16_t, Ptr<UeManager> > m_ueMap;
754 std::map<uint32_t, X2uTeidInfo> m_x2uTeidInfoMap;
756 uint8_t m_defaultTransmissionMode;
760 Time m_systemInformationPeriodicity;
763 uint16_t m_srsCurrentPeriodicityId;
764 std::set<uint16_t> m_ueSrsConfigurationIndexSet;
765 uint16_t m_lastAllocatedConfigurationIndex;
766 bool m_reconfigureUes;
768 bool m_admitHandoverRequest;
769 bool m_admitRrcConnectionRequest;
787 #endif // LTE_ENB_RRC_H
void SetEpcX2SapProvider(EpcX2SapProvider *s)
void SendHandoverRequest(uint16_t rnti, uint16_t cellId)
void SendSystemInformation()
LteRrcSap::RadioResourceConfigDedicated GetRadioResourceConfigForHandoverPreparationInfo()
smart pointer class similar to boost::intrusive_ptr
uint16_t AddUe(UeManager::State state)
void RecordDataRadioBearersToBeStarted()
void SetSource(uint16_t sourceCellId, uint16_t sourceX2apId)
void RecvHandoverPreparationFailure(uint16_t cellId)
void SetCellId(uint16_t m_cellId)
uint8_t GetLogicalChannelGroup(EpsBearer bearer)
uint8_t Drbid2Bid(uint8_t drbid)
Parameters of the HANDOVER REQUEST message.
uint8_t Lcid2Bid(uint8_t lcid)
EpcX2SapUser * GetEpcX2SapUser()
void SetLteEnbCphySapProvider(LteEnbCphySapProvider *s)
uint16_t GetNewSrsConfigurationIndex(void)
LteEnbCmacSapUser * GetLteEnbCmacSapUser()
void SetLteEnbRrcSapUser(LteEnbRrcSapUser *s)
void SetLteEnbCmacSapProvider(LteEnbCmacSapProvider *s)
LteEpsBearerToRlcMapping_t
void RemoveSrsConfigurationIndex(uint16_t srcCi)
void SetImsi(uint64_t imsi)
void SetLteMacSapProvider(LteMacSapProvider *s)
void SendUeContextRelease()
LteRrcSap::RrcConnectionReconfiguration GetRrcConnectionReconfigurationForHandover()
void SwitchToState(State s)
void ReleaseDataRadioBearer(uint8_t drbid)
uint8_t AddDataRadioBearerInfo(Ptr< LteDataRadioBearerInfo > radioBearerInfo)
void SetForwardUpCallback(Callback< void, Ptr< Packet > > cb)
Ptr< UeManager > GetUeManager(uint16_t rnti)
uint16_t GetSrsConfigurationIndex(void)
LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration()
void SetSrsConfigurationIndex(uint16_t srsConfIndex)
Parameters of the HANDOVER PREPARATION FAILURE message.
Parameters of the SN STATUS TRANSFER message.
uint8_t Drbid2Lcid(uint8_t drbid)
void SendData(uint8_t bid, Ptr< Packet > p)
uint8_t Bid2Lcid(uint8_t bid)
void SetupDataRadioBearer(EpsBearer bearer, uint8_t bearerId, uint32_t gtpTeid, Ipv4Address transportLayerAddress)
void RemoveDataRadioBearerInfo(uint8_t drbid)
void RecvSnStatusTransfer(EpcX2SapUser::SnStatusTransferParams params)
Parameters of the RESOURCE STATUS UPDATE message.
void ConnectionTimeout(uint16_t rnti)
LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated()
Parameters of the UE CONTEXT RELEASE message.
Parameters of the HANDOVER REQUEST ACKNOWLEDGE message.
std::vector< EpcX2Sap::ErabToBeSetupItem > GetErabList()
void ScheduleRrcConnectionReconfiguration()
Parameters for [re]configuring the UE.
LteEnbRrcSapProvider * GetLteEnbRrcSapProvider()
void PrepareHandover(uint16_t cellId)
void SetSrsPeriodicity(uint32_t p)
virtual void DoDispose(void)
TypeId GetRlcType(EpsBearer bearer)
Ipv4 addresses are stored in host order in this class.
an identifier for simulation events.
void StartDataRadioBearers()
EpcEnbS1SapUser * GetS1SapUser()
uint8_t GetLogicalChannelPriority(EpsBearer bearer)
uint8_t GetNewRrcTransactionIdentifier()
LteEnbCphySapUser * GetLteEnbCphySapUser()
uint32_t GetSrsPeriodicity() const
Ptr< LteDataRadioBearerInfo > GetDataRadioBearerInfo(uint8_t drbid)
a base class which provides memory management and object aggregation
void ConfigureCell(uint8_t ulBandwidth, uint8_t dlBandwidth, uint16_t ulEarfcn, uint16_t dlEarfcn, uint16_t cellId)
void RemoveUe(uint16_t rnti)
Parameters of the UE DATA primitive.
a unique identifier for an interface.
uint8_t Bid2Drbid(uint8_t bid)
void SetS1SapProvider(EpcEnbS1SapProvider *s)
uint8_t Lcid2Drbid(uint8_t lcid)
void RecvHandoverRequestAck(EpcX2SapUser::HandoverRequestAckParams params)
bool SendData(Ptr< Packet > p)
virtual void DoInitialize()