10#ifndef LTE_UE_MAC_ENTITY_H
11#define LTE_UE_MAC_ENTITY_H
18#include <ns3/event-id.h>
19#include <ns3/nstime.h>
20#include <ns3/packet-burst.h>
21#include <ns3/packet.h>
22#include <ns3/traced-callback.h>
30class UniformRandomVariable;
64 uint8_t preambleTxCounter,
65 uint8_t maxPreambleTxLimit);
256 std::map<uint8_t, LteMacSapProvider::ReportBufferStatusParameters>
265 std::vector<Ptr<PacketBurst>>
An identifier for simulation events.
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Service Access Point (SAP) offered by the MAC to the RLC See Femto Forum MAC Scheduler Interface Spec...
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
Service Access Point (SAP) offered by the UE MAC to the UE RRC.
std::vector< Ptr< PacketBurst > > m_miUlHarqProcessesPacket
Packets under transmission of the UL HARQ processes.
LteUePhySapUser * m_uePhySapUser
UE Phy SAP user.
uint8_t m_componentCarrierId
component carrier Id --> used to address sap
void RaResponseTimeout(bool contention)
RA response timeout function.
LteUeCmacSapProvider::RachConfig m_rachConfig
RACH configuration.
uint32_t m_frameNo
frame number
void DoSubframeIndication(uint32_t frameNo, uint32_t subframeNo)
Forwarded from LteUePhySapUser: trigger the start from a new frame.
void SendReportBufferStatus()
Send report buffer status.
void DoReportBufferStatus(LteMacSapProvider::ReportBufferStatusParameters params)
Report buffers status function.
TracedCallback< uint64_t, bool, uint8_t, uint8_t > m_raResponseTimeoutTrace
The RaResponseTimeout trace source.
LteUePhySapProvider * m_uePhySapProvider
UE Phy SAP provider.
void SetLteUePhySapProvider(LteUePhySapProvider *s)
Set the PHY SAP Provider.
Time m_bsrPeriodicity
BSR periodicity.
void RefreshHarqProcessesPacketBuffer()
Refresh HARQ processes packet buffer function.
EventId m_noRaResponseReceivedEvent
no RA response received event ID
LteUeCmacSapProvider * m_cmacSapProvider
CMAC SAP provider.
uint8_t m_preambleTransmissionCounter
preamble tranamission counter
Ptr< UniformRandomVariable > m_raPreambleUniformVariable
RA preamble random variable.
void SetComponentCarrierId(uint8_t index)
Set the component carried ID.
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model.
void DoConfigureRach(LteUeCmacSapProvider::RachConfig rc)
Configure RACH function.
LteUePhySapUser * GetLteUePhySapUser()
Get the PHY SAP user.
bool m_rachConfigured
is RACH configured?
void DoRemoveLc(uint8_t lcId)
Remove LC function.
void RecvRaResponse(BuildRarListElement_s raResponse)
Receive the RA response function.
void DoReceivePhyPdu(Ptr< Packet > p)
Receive Phy PDU function.
uint8_t m_raPreambleId
RA preamble ID.
void DoNotifyConnectionSuccessful()
Notify MAC about the successful RRC connection establishment.
std::vector< uint8_t > m_miUlHarqProcessesPacketTimer
timer for packet life in the buffer
void DoReceiveLteControlMessage(Ptr< LteControlMessage > msg)
Receive LTE control message function.
static TypeId GetTypeId()
Get the type ID.
void DoTransmitPdu(LteMacSapProvider::TransmitPduParameters params)
Transmit PDU function.
uint32_t m_subframeNo
subframe number
std::map< uint8_t, LteMacSapProvider::ReportBufferStatusParameters > m_ulBsrReceived
BSR received from RLC (the last one)
void DoDispose() override
Destructor implementation.
void DoReset()
Reset function.
LteUeCmacSapUser * m_cmacSapUser
CMAC SAP user.
bool m_freshUlBsr
true when a BSR has been received in the last TTI
LteMacSapProvider * GetLteMacSapProvider()
Get the LTE MAC SAP provider.
void DoStartNonContentionBasedRandomAccessProcedure(uint16_t rnti, uint8_t rapId, uint8_t prachMask)
Start non contention based random access procedure function.
LteUeCmacSapProvider * GetLteUeCmacSapProvider()
Get the LTE CMAC SAP provider.
bool m_waitingForRaResponse
waiting for RA response
void DoAddLc(uint8_t lcId, LteUeCmacSapProvider::LogicalChannelConfig lcConfig, LteMacSapUser *msu)
Add LC function.
uint8_t m_harqProcessId
HARQ process ID.
LteMacSapProvider * m_macSapProvider
MAC SAP provider.
void RandomlySelectAndSendRaPreamble()
Randomly select and send RA preamble function.
void DoStartContentionBasedRandomAccessProcedure()
Start contention based random access procedure function.
void(* RaResponseTimeoutTracedCallback)(uint64_t imsi, bool contention, uint8_t preambleTxCounter, uint8_t maxPreambleTxLimit)
TracedCallback signature for RA response timeout events exporting IMSI, contention flag,...
uint16_t m_backoffParameter
backoff parameter
void StartWaitingForRaResponse()
Start waiting for RA response function.
void DoSetRnti(uint16_t rnti)
Set RNTI.
void DoSetImsi(uint64_t imsi)
Set IMSI.
void SendRaPreamble(bool contention)
Send RA preamble function.
void SetLteUeCmacSapUser(LteUeCmacSapUser *s)
Set the LTE UE CMAC SAP user.
std::map< uint8_t, LcInfo > m_lcInfoMap
logical channel info map
Service Access Point (SAP) offered by the UE-PHY to the UE-MAC.
Service Access Point (SAP) offered by the PHY to the MAC.
A base class which provides memory management and object aggregation.
Smart pointer class similar to boost::intrusive_ptr.
Simulation virtual time values and global simulation resolution.
Forward calls to a chain of Callback.
a unique identifier for an interface.
UeMemberLteMacSapProvider class.
UeMemberLteUeCmacSapProvider class.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
See section 4.3.10 buildRARListElement.
Parameters for LteMacSapProvider::ReportBufferStatus.
Parameters for LteMacSapProvider::TransmitPdu.
LogicalChannelConfig structure.
LteUeCmacSapProvider::LogicalChannelConfig lcConfig
logical channel config
LteMacSapUser * macSapUser
MAC SAP user.