5G-LENA nr-v3.3-120-gdac69c56
The 5G/NR module for the ns-3 simulator
Loading...
Searching...
No Matches
nr-mac-scheduler.h
1// Copyright (c) 2019 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
2//
3// SPDX-License-Identifier: GPL-2.0-only
4
5#pragma once
6
7#include "nr-mac-csched-sap.h"
8#include "nr-mac-sched-sap.h"
9
10#include "ns3/object.h"
11
12namespace ns3
13{
14
15class NrFhSchedSapProvider;
16class NrFhSchedSapUser;
17
26class NrMacScheduler : public Object
27{
28 public:
33 static TypeId GetTypeId();
34
39
43 ~NrMacScheduler() override;
44
53
62
71
80
81 // FH Control SAPs
90
96
97 //
98 // Implementation of the CSCHED API primitives
99 // (See 4.1 for description of the primitives)
100 //
101
115
126
137
148
160
161 //
162 // Implementation of the SCHED API primitives
163 // (See 4.2 for description of the primitives)
164 //
165
177
184
191
198
206
214
219 virtual void DoSchedUlSrInfoReq(
221
226 virtual void DoSchedSetMcs(uint32_t mcs) = 0;
227
235
240 virtual uint8_t GetDlCtrlSyms() const = 0;
241
246 virtual uint8_t GetUlCtrlSyms() const = 0;
247
256 virtual int64_t AssignStreams(int64_t stream) = 0;
257
258 protected:
263};
264
265} // namespace ns3
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.
Provides the CSCHED SAP.
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 &params)=0
RACH information.
virtual void DoSchedDlRlcBufferReq(const NrMacSchedSapProvider::SchedDlRlcBufferReqParameters &params)=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 &params)=0
Release UE's logical channel(s).
virtual void DoCschedCellConfigReq(const NrMacCschedSapProvider::CschedCellConfigReqParameters &params)=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 &params)=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 &params)=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 &params)=0
Provides mac control information (power headroom, ul buffer status) to the scheduler.
virtual void DoSchedDlCqiInfoReq(const NrMacSchedSapProvider::SchedDlCqiInfoReqParameters &params)=0
Provides CQI measurement report information to the scheduler.
virtual void DoCschedUeConfigReq(const NrMacCschedSapProvider::CschedUeConfigReqParameters &params)=0
Configure single UE.
virtual void DoSchedUlCqiInfoReq(const NrMacSchedSapProvider::SchedUlCqiInfoReqParameters &params)=0
Provides UL CQI measurement information to the scheduler.
virtual void DoCschedUeReleaseReq(const NrMacCschedSapProvider::CschedUeReleaseReqParameters &params)=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 &params)=0
Configure UE's logical channel(s).
virtual void DoSchedUlTriggerReq(const NrMacSchedSapProvider::SchedUlTriggerReqParameters &params)=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.
DL HARQ information to be used when scheduling UL data.
The SchedUlMacCtrlInfoReqParameters struct.
SR received from MAC, to pass to schedulers.
UL HARQ information to be used when scheduling UL data.