7#include "nr-mac-csched-sap.h"
8#include "nr-mac-sched-sap.h"
10#include "ns3/object.h"
15class NrFhSchedSapProvider;
16class NrFhSchedSapUser;
Service Access Point (SAP) offered by the FhControl instance to the MAC Scheduler instance.
Service Access Point (SAP) offered by the MAC Scheduler instance to the FhControl instance.
The SAP interface between MAC and scheduler.
The Interface between Scheduler and MAC.
Interface for all the nr schedulers.
virtual NrFhSchedSapUser * GetNrFhSchedSapUser()=0
NrMacCschedSapProvider * GetMacCschedSapProvider()
Get the MacCschedSapProvider pointer.
virtual void DoSchedDlRachInfoReq(const NrMacSchedSapProvider::SchedDlRachInfoReqParameters ¶ms)=0
RACH information.
virtual void DoSchedDlRlcBufferReq(const NrMacSchedSapProvider::SchedDlRlcBufferReqParameters ¶ms)=0
DoSchedDlRlcBufferReq.
static TypeId GetTypeId()
Get the type id.
virtual void SetNrFhSchedSapProvider(NrFhSchedSapProvider *s)=0
void SetMacCschedSapUser(NrMacCschedSapUser *sap)
SetMacCschedSapUser.
virtual void DoCschedLcReleaseReq(const NrMacCschedSapProvider::CschedLcReleaseReqParameters ¶ms)=0
Release UE's logical channel(s).
virtual void DoCschedCellConfigReq(const NrMacCschedSapProvider::CschedCellConfigReqParameters ¶ms)=0
Configure cell.
NrMacScheduler()
NrMacScheduler constructor.
virtual int64_t AssignStreams(int64_t stream)=0
NrMacSchedSapUser * m_macSchedSapUser
SAP user.
virtual void DoSchedUlSrInfoReq(const NrMacSchedSapProvider::SchedUlSrInfoReqParameters ¶ms)=0
One or more UE asked to be scheduled in UL.
void SetMacSchedSapUser(NrMacSchedSapUser *sap)
Set the MacSchedSapUser pointer.
NrMacSchedSapProvider * m_macSchedSapProvider
SAP Provider.
virtual void DoSchedDlTriggerReq(const NrMacSchedSapProvider::SchedDlTriggerReqParameters ¶ms)=0
Request for scheduling a slot in DL.
virtual void DoSchedSetMcs(uint32_t mcs)=0
Forcefully set a default MCS.
virtual void DoSchedUlMacCtrlInfoReq(const NrMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters ¶ms)=0
Provides mac control information (power headroom, ul buffer status) to the scheduler.
virtual void DoSchedDlCqiInfoReq(const NrMacSchedSapProvider::SchedDlCqiInfoReqParameters ¶ms)=0
Provides CQI measurement report information to the scheduler.
virtual void DoCschedUeConfigReq(const NrMacCschedSapProvider::CschedUeConfigReqParameters ¶ms)=0
Configure single UE.
virtual void DoSchedUlCqiInfoReq(const NrMacSchedSapProvider::SchedUlCqiInfoReqParameters ¶ms)=0
Provides UL CQI measurement information to the scheduler.
virtual void DoCschedUeReleaseReq(const NrMacCschedSapProvider::CschedUeReleaseReqParameters ¶ms)=0
Release UE.
NrMacCschedSapProvider * m_macCschedSapProvider
SAP Provider.
NrMacSchedSapProvider * GetMacSchedSapProvider()
Get the MacSchedSapProvider pointer.
~NrMacScheduler() override
NrMacScheduler deconstructor.
virtual uint8_t GetUlCtrlSyms() const =0
Retrieve the number of UL ctrl symbols configured in the scheduler.
virtual void DoCschedLcConfigReq(const NrMacCschedSapProvider::CschedLcConfigReqParameters ¶ms)=0
Configure UE's logical channel(s).
virtual void DoSchedUlTriggerReq(const NrMacSchedSapProvider::SchedUlTriggerReqParameters ¶ms)=0
Request for scheduling a slot in UL.
NrMacCschedSapUser * m_macCschedSapUser
SAP User.
virtual uint8_t GetDlCtrlSyms() const =0
Retrieve the number of DL ctrl symbols configured in the scheduler.
The SchedDlCqiInfoReqParameters struct.
DL HARQ information to be used when scheduling UL data.
The SchedUlCqiInfoReqParameters struct.
The SchedUlMacCtrlInfoReqParameters struct.
SR received from MAC, to pass to schedulers.
UL HARQ information to be used when scheduling UL data.