5#ifndef NR_FH_SCHED_SAP_H
6#define NR_FH_SCHED_SAP_H
8#include "nr-mac-scheduler-ns3.h"
9#include "nr-mac-scheduler-ue-info.h"
29 virtual bool DoesAllocationFit(uint16_t bwpId,
33 virtual uint8_t GetFhControlMethod() = 0;
34 virtual uint16_t GetNrFhPhysicalCellId() = 0;
35 virtual void SetActiveUe(uint16_t bwpId, uint16_t rnti, uint32_t bytes) = 0;
36 virtual void SetActiveHarqUes(uint16_t bwpId, uint16_t rnti) = 0;
37 virtual void UpdateActiveUesMap(
39 const std::deque<VarTtiAllocInfo>& allocation,
40 const std::unordered_map<uint16_t, std::shared_ptr<NrMacSchedulerUeInfo>>& ueMap) = 0;
41 virtual uint8_t GetMaxMcsAssignable(uint16_t bwpId,
45 virtual uint32_t GetMaxRegAssignable(uint16_t bwpId,
64 virtual uint64_t GetNumRbPerRbgFromSched() = 0;
85 bool DoesAllocationFit(uint16_t bwpId, uint32_t mcs, uint32_t nRegs, uint8_t dlRank)
override;
86 uint8_t GetFhControlMethod()
override;
87 uint16_t GetNrFhPhysicalCellId()
override;
88 void SetActiveUe(uint16_t bwpId, uint16_t rnti, uint32_t bytes)
override;
89 void SetActiveHarqUes(uint16_t bwpId, uint16_t rnti)
override;
90 void UpdateActiveUesMap(
92 const std::deque<VarTtiAllocInfo>& allocation,
93 const std::unordered_map<uint16_t, std::shared_ptr<NrMacSchedulerUeInfo>>& ueMap)
override;
94 uint8_t GetMaxMcsAssignable(uint16_t bwpId,
97 uint8_t dlRank)
override;
98 uint32_t GetMaxRegAssignable(uint16_t bwpId,
101 uint8_t dlRank)
override;
121 return m_owner->DoGetDoesAllocationFit(bwpId, mcs, nRegs, dlRank);
126MemberNrFhSchedSapProvider<C>::GetFhControlMethod()
128 return m_owner->DoGetFhControlMethod();
133MemberNrFhSchedSapProvider<C>::GetNrFhPhysicalCellId()
135 return m_owner->DoGetPhysicalCellId();
140MemberNrFhSchedSapProvider<C>::SetActiveUe(uint16_t bwpId, uint16_t rnti, uint32_t bytes)
142 return m_owner->DoSetActiveUe(bwpId, rnti, bytes);
147MemberNrFhSchedSapProvider<C>::SetActiveHarqUes(uint16_t bwpId, uint16_t rnti)
149 return m_owner->DoSetActiveHarqUes(bwpId, rnti);
154MemberNrFhSchedSapProvider<C>::UpdateActiveUesMap(
156 const std::deque<VarTtiAllocInfo>& allocation,
157 const std::unordered_map<uint16_t, std::shared_ptr<NrMacSchedulerUeInfo>>& ueMap)
159 return m_owner->DoUpdateActiveUesMap(bwpId, allocation, ueMap);
164MemberNrFhSchedSapProvider<C>::GetMaxMcsAssignable(uint16_t bwpId,
169 return m_owner->DoGetMaxMcsAssignable(bwpId, reg, rnti, dlRank);
174MemberNrFhSchedSapProvider<C>::GetMaxRegAssignable(uint16_t bwpId,
179 return m_owner->DoGetMaxRegAssignable(bwpId, mcs, rnti, dlRank);
200 uint64_t GetNumRbPerRbgFromSched()
override;
217 return m_owner->GetNumRbPerRbg();
Template for the implementation of the NrFhSchedSapProvider as a member of an owner class of type C t...
Template for the implementation of the NrFhSchedSapUser as a member of an owner class of type C to wh...
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.