5#ifndef NR_MAC_SCHED_SAP_PROVIDER_H
6#define NR_MAC_SCHED_SAP_PROVIDER_H
8#include "nr-control-messages.h"
9#include "nr-phy-mac-common.h"
124 std::vector<struct nr::VendorSpecificListElement_s>
154 virtual void SchedSetMcs(uint32_t mcs) = 0;
The SAP interface between MAC and scheduler.
virtual void SchedDlRachInfoReq(const SchedDlRachInfoReqParameters ¶ms)=0
SCHED_DL_RACH_INFO_REQ.
virtual uint8_t GetDlCtrlSyms() const =0
Retrieve the number of DL ctrl symbols configured in the scheduler.
virtual ~NrMacSchedSapProvider()=default
virtual void SchedUlSrInfoReq(const SchedUlSrInfoReqParameters ¶ms)=0
Provides scheduling request reception information to the scheduler.
virtual void SchedUlTriggerReq(const struct SchedUlTriggerReqParameters ¶ms)=0
Starts the UL MAC scheduler for this subframe.
virtual void SchedDlTriggerReq(const struct SchedDlTriggerReqParameters ¶ms)=0
Starts the DL MAC scheduler for this subframe.
NrMacSchedSapProvider(const NrMacSchedSapProvider &o)=delete
NrMacSchedSapProvider copy constructor (deleted)
virtual uint8_t GetUlCtrlSyms() const =0
Retrieve the number of UL ctrl symbols configured in the scheduler.
NrMacSchedSapProvider()=default
constructor
The Interface between Scheduler and MAC.
virtual uint32_t GetNumRbPerRbg() const =0
Get the number of RB per RBG.
virtual Time GetSlotPeriod() const =0
Get the slot period.
virtual uint16_t GetBwpId() const =0
Get the BWP ID.
virtual uint32_t GetSymbolsPerSlot() const =0
Get the Symbol per slot.
virtual ~NrMacSchedSapUser()=default
~NrMacSchedSapUser
virtual void SchedConfigInd(const struct SchedConfigIndParameters ¶ms)=0
Install a scheduling decision.
virtual uint16_t GetCellId() const =0
Get the Cell ID.
virtual Ptr< const SpectrumModel > GetSpectrumModel() const =0
Get the SpectrumModel.
virtual void BuildRarList(SlotAllocInfo &slotAllocInfo)=0
Build RAR list from allocations and assign preamble IDs.
virtual uint8_t GetNumHarqProcess() const =0
Get the number of HARQ process.
LteNrTddSlotType
Available TDD slot types. Ordering is important.
@ F
DL CTRL + DL DATA + UL DATA + UL CTRL.
The SchedDlCqiInfoReqParameters struct.
std::vector< struct DlCqiInfo > m_cqiList
cqi list
std::vector< struct nr::VendorSpecificListElement_s > m_vendorSpecificList
vendor specific list
std::vector< struct nr::RachListElement_s > m_rachList
RACH list.
uint16_t m_rnti
The RNTI identifying the UE.
uint16_t m_rlcTransmissionQueueHolDelay
Head of line delay of new transmissions in ms.
uint8_t m_logicalChannelIdentity
The logical channel ID, range: 0..10.
uint16_t m_rlcRetransmissionHolDelay
Head of line delay of retransmissions in ms.
uint32_t m_rlcRetransmissionQueueSize
The current size of the retransmission queue in byte.
uint16_t m_rlcStatusPduSize
The current size of the pending STATUS message in byte.
uint32_t m_rlcTransmissionQueueSize
The current size of the new transmission queue in byte.
DL HARQ information to be used when scheduling UL data.
std::vector< struct DlHarqInfo > m_dlHarqInfoList
DL HARQ info list.
LteNrTddSlotType m_slotType
Indicate the type of slot requested.
The SchedUlCqiInfoReqParameters struct.
struct UlCqiInfo m_ulCqi
UL CQI.
uint8_t m_symStart
Sym start of the transmission to which this CQI refers to.
The SchedUlMacCtrlInfoReqParameters struct.
std::vector< struct MacCeElement > m_macCeList
MacCeElement list.
SR received from MAC, to pass to schedulers.
std::vector< uint16_t > m_srList
List of RNTI which asked for a SR.
SfnSf m_snfSf
SnfSf in which the sr where received.
UL HARQ information to be used when scheduling UL data.
std::vector< struct UlHarqInfo > m_ulHarqInfoList
UL HARQ info list.
LteNrTddSlotType m_slotType
Indicate the type of slot requested.
The SchedConfigIndParameters struct.
SchedConfigIndParameters(const SfnSf sfnSf)
SchedConfigIndParameters.
const SfnSf m_sfnSf
The SfnSf.
SlotAllocInfo m_slotAllocInfo
The allocation info.
The SlotAllocInfo struct.