25 #include <ns3/object.h>
26 #include <ns3/packet.h>
27 #include <ns3/lte-ue-cmac-sap.h>
28 #include <ns3/lte-pdcp-sap.h>
29 #include <ns3/lte-as-sap.h>
30 #include <ns3/lte-ue-cphy-sap.h>
31 #include <ns3/lte-rrc-sap.h>
32 #include <ns3/traced-callback.h>
404 bool useLayer3Filtering);
498 std::map <uint8_t, Ptr<LteDataRadioBearerInfo> >
m_drbMap;
804 #endif // LTE_UE_RRC_H
keep track of time values and allow control of global simulation resolution
Part of the RRC protocol.
void DoRecvRrcConnectionSetup(LteRrcSap::RrcConnectionSetup msg)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionSetup interface...
void DoRecvMasterInformationBlock(uint16_t cellId, LteRrcSap::MasterInformationBlock msg)
std::map< uint8_t, LteRrcSap::MeasObjectToAddMod > measObjectList
void CancelEnteringTrigger(uint8_t measId)
Clear all the waiting triggers in m_enteringTriggerQueue which are associated with the given measurem...
void DoRecvSystemInformationBlockType1(uint16_t cellId, LteRrcSap::SystemInformationBlockType1 msg)
static TypeId GetTypeId(void)
std::set< uint16_t > cellsTriggeredList
LtePdcpSapUser * m_drbPdcpSapUser
EventId periodicReportTimer
void DoRecvSystemInformation(LteRrcSap::SystemInformation msg)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvSystemInformation interface...
Template for the implementation of the LteUeCphySapUser as a member of an owner class of type C to wh...
void SetAsSapUser(LteAsSapUser *s)
Set the AS SAP user to interact with the NAS entity.
void MeasurementReportTriggering(uint8_t measId)
Evaluate the reporting criteria of a measurement identity and invoke some reporting actions based on ...
void DoRecvRrcConnectionReject(LteRrcSap::RrcConnectionReject msg)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReject interface...
bool m_hasReceivedSib2
true if SIB2 was received for the current cell
std::map< uint8_t, Ptr< LteDataRadioBearerInfo > > m_drbMap
void ApplyMeasConfig(LteRrcSap::MeasConfig mc)
Update the current measurement configuration m_varMeasConfig.
virtual void DoDispose(void)
This method is called by Object::Dispose or by the object's destructor, whichever comes first...
void SetUseRlcSm(bool val)
uint8_t measId
The measurement identity which raised the trigger.
Includes the accumulated configuration of the measurements to be performed by the UE...
void DoSetTemporaryCellRnti(uint16_t rnti)
Represents a single triggered event from a measurement identity which reporting criteria have been fu...
LteUeRrc()
create an RRC instance for use within an ue
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
virtual ~LteUeRrc()
Destructor.
EventId timer
The pending reporting event, scheduled at the end of the time-to-trigger.
void CancelLeavingTrigger(uint8_t measId)
Clear all the waiting triggers in m_leavingTriggerQueue which are associated with the given measureme...
uint16_t GetUlEarfcn() const
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
bool m_hasReceivedMib
true if MIB was received for the current cell
void DoRecvRrcConnectionReestablishmentReject(LteRrcSap::RrcConnectionReestablishmentReject msg)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishmentReject i...
bool m_connectionPending
true if a connection request by upper layers is pending
bool m_hasReceivedSib1
true if SIB1 was received for the current cell
LteMacSapProvider * m_macSapProvider
uint32_t numberOfReportsSent
uint8_t Bid2Drbid(uint8_t bid)
Parameters for LtePdcpSapUser::ReceivePdcpSdu.
LteUeCmacSapUser * GetLteUeCmacSapUser()
static const Time UE_MEASUREMENT_REPORT_DELAY
Artificial delay of UE measurements procedure.
LteRrcSap::QuantityConfig quantityConfig
store information on active data radio bearer instance
void SetLteUeRrcSapUser(LteUeRrcSapUser *s)
set the RRC SAP this RRC should interact with
LteUeRrcSapUser * m_rrcSapUser
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndOkTrace
uint16_t m_dlEarfcn
downlink carrier frequency
Ptr< LteSignalingRadioBearerInfo > m_srb0
ConcernedCells_t concernedCells
The list of cells responsible for this trigger.
Represents a measurement result from a certain cell.
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_handoverStartTrace
void DoRecvRrcConnectionReconfiguration(LteRrcSap::RrcConnectionReconfiguration msg)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReconfiguration interfa...
void DoRecvRrcConnectionReestablishment(LteRrcSap::RrcConnectionReestablishment msg)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionReestablishment interfa...
uint8_t m_dlBandwidth
downlink bandwidth in RBs
Service Access Point (SAP) offered by the UE PHY to the UE RRC for control purposes.
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessErrorTrace
TracedCallback< uint64_t, uint16_t, uint16_t > m_sib2ReceivedTrace
void EvaluateCellForSelection()
Performs cell selection evaluation to the current serving cell.
virtual void DoInitialize(void)
This method is called only once by Object::Initialize.
std::map< uint16_t, MeasValues > m_storedMeasValues
Internal storage of the latest measurement results from all detected detected cells, indexed by the cell ID where the measurement was taken from.
Ptr< LteSignalingRadioBearerInfo > m_srb1
LteUeCphySapProvider * m_cphySapProvider
uint8_t GetUlBandwidth() const
void SetLteUeCmacSapProvider(LteUeCmacSapProvider *s)
set the CMAC SAP this RRC should interact with
Template for the implementation of the LteAsSapProvider as a member of an owner class of type C to wh...
uint32_t m_csgWhiteList
List of CSG ID which this UE entity has access to.
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
std::map< uint8_t, LteRrcSap::MeasIdToAddMod > measIdList
std::map< uint8_t, uint8_t > m_bid2DrbidMap
void SetLteMacSapProvider(LteMacSapProvider *s)
set the MAC SAP provider.
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndOkTrace
void SetLteUeCphySapProvider(LteUeCphySapProvider *s)
set the CPHY SAP this RRC should use to interact with the PHY
void SwitchToState(State s)
TracedCallback< uint64_t, uint16_t > m_initialCellSelectionEndErrorTrace
VarMeasConfig m_varMeasConfig
Includes the accumulated configuration of the measurements to be performed by the UE...
std::map< uint8_t, std::list< PendingTrigger_t > > m_leavingTriggerQueue
List of triggers that were raised because leaving condition have been true, but are still delayed fro...
std::map< uint8_t, LteRrcSap::ReportConfigToAddMod > reportConfigList
LteUeCphySapUser * m_cphySapUser
LteAsSapUser * m_asSapUser
Template for the implementation of the LteUeRrcSapProvider as a member of an owner class of type C to...
void DoNotifyRandomAccessSuccessful()
uint8_t GetDlBandwidth() const
uint16_t GetDlEarfcn() const
store information on active signaling radio bearer instance
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_sib1ReceivedTrace
double rsrq
Measured RSRQ in dB.
void DoSendData(Ptr< Packet > packet, uint8_t bid)
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
This class implements the Access Stratum (AS) Service Access Point (SAP), i.e., the interface between...
uint16_t m_ulEarfcn
uplink carrier frequency
void DoRecvRrcConnectionRelease(LteRrcSap::RrcConnectionRelease msg)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::RecvRrcConnectionRelease interface...
double rsrp
Measured RSRP in dBm.
void VarMeasReportListErase(uint8_t measId, ConcernedCells_t leavingCells, bool reportOnLeave)
Remove some cells from an existing reporting entry in m_varMeasReportList.
uint8_t m_ulBandwidth
uplink bandwidth in RBs
LteUeCphySapUser * GetLteUeCphySapUser()
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionReconfigurationTrace
Ptr< LteSignalingRadioBearerInfo > m_srb1Old
State
The states of the UE RRC entity.
uint64_t GetImsi(void) const
void SaveUeMeasurements(uint16_t cellId, double rsrp, double rsrq, bool useLayer3Filtering)
Keep the given measurement result as the latest measurement figures, to be utilised by UE RRC functio...
friend class UeRrcMemberLteEnbCmacSapUser
void DoSetCsgWhiteList(uint32_t csgId)
void DoNotifyRandomAccessFailed()
an identifier for simulation events.
void DoCompleteSetup(LteUeRrcSapProvider::CompleteSetupParameters params)
Part of the RRC protocol. Implement the LteUeRrcSapProvider::CompleteSetup interface.
LteUeRrcSapProvider * m_rrcSapProvider
Service Access Point (SAP) offered by the PDCP entity to the RRC entity See 3GPP 36.323 Packet Data Convergence Protocol (PDCP) specification.
void ApplyRadioResourceConfigDedicated(LteRrcSap::RadioResourceConfigDedicated rrcd)
TracedCallback< uint64_t, uint16_t, uint16_t > m_connectionEstablishedTrace
uint16_t GetCellId() const
std::map< uint8_t, VarMeasReport > m_varMeasReportList
The list of active reporting entries, indexed by the measurement identity which triggered the reporti...
LteAsSapProvider * m_asSapProvider
TracedCallback< uint64_t, uint16_t, uint16_t, uint16_t > m_mibReceivedTrace
LteUeCmacSapProvider * m_cmacSapProvider
std::set< uint16_t > m_acceptableCell
List of cell ID of acceptable cells for cell selection that have been detected.
LteAsSapProvider * GetAsSapProvider()
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
void DoReportUeMeasurements(LteUeCphySapUser::UeMeasurementsParameters params)
void DoStartCellSelection(uint16_t dlEarfcn)
Represents a single measurement reporting entry., which includes information about a measurement for ...
TracedCallback< uint64_t, uint16_t, uint16_t, State, State > m_stateTransitionTrace
void SendMeasurementReport(uint8_t measId)
Produce a proper measurement report from the given measurement identity's reporting entry in m_varMea...
a base class which provides memory management and object aggregation
void SynchronizeToStrongestCell()
Go through the list of measurement results, choose the one with the strongest RSRP, and tell PHY to synchronize to it.
void DoReceivePdcpSdu(LtePdcpSapUser::ReceivePdcpSduParameters params)
Part of the RRC protocol.
LteUeRrcSapProvider * GetLteUeRrcSapProvider()
std::list< uint16_t > ConcernedCells_t
List of cell IDs which are responsible for a certain trigger.
void VarMeasReportListAdd(uint8_t measId, ConcernedCells_t enteringCells)
Compose a new reporting entry of the given measurement identity, insert it into m_varMeasReportList, and set it up for submission to eNodeB.
TracedCallback< uint64_t, uint16_t, uint16_t > m_randomAccessSuccessfulTrace
std::map< uint8_t, std::list< PendingTrigger_t > > m_enteringTriggerQueue
List of triggers that were raised because entering condition have been true, but are still delayed fr...
This abstract base class defines the API to interact with the Radio Link Control (LTE_RLC) in LTE...
a unique identifier for an interface.
void SetImsi(uint64_t imsi)
uint8_t m_lastRrcTransactionIdentifier
void VarMeasReportListClear(uint8_t measId)
Remove the reporting entry of the given measurement identity from m_varMeasReportList.
void LeaveConnectedMode()
TracedCallback< uint64_t, uint16_t, uint16_t > m_handoverEndErrorTrace
LteRrcSap::SystemInformationBlockType1 m_lastSib1
Stored content of the last SIB1 received.
LteUeCmacSapUser * m_cmacSapUser
void DoForceCampedOnEnb(uint16_t cellId, uint16_t dlEarfcn)