182 uint8_t DoGetFhControlMethod()
const;
188 uint16_t DoGetPhysicalCellId()
const;
199 void DoSetActiveUe(uint16_t bwpId, uint16_t rnti, uint32_t bytes);
210 void DoUpdateActiveUesMap(
212 const std::deque<VarTtiAllocInfo>& allocation,
213 const std::unordered_map<uint16_t, std::shared_ptr<NrMacSchedulerUeInfo>>& ueMap);
222 void DoSetActiveHarqUes(uint16_t bwpId, uint16_t rnti);
235 bool DoGetDoesAllocationFit(uint16_t bwpId, uint32_t mcs, uint32_t nRegs, uint8_t dlRank);
248 uint8_t DoGetMaxMcsAssignable(uint16_t bwpId, uint32_t reg, uint32_t rnti, uint8_t dlRank);
261 uint32_t DoGetMaxRegAssignable(uint16_t bwpId, uint32_t mcs, uint32_t rnti, uint8_t dlRank);
273 void DoUpdateTracesBasedOnDroppedData(uint16_t bwpId,
285 void DoNotifyEndSlot(uint16_t bwpId,
SfnSf currentSlot);
297 uint64_t GetFhThr(uint16_t bwpId, uint32_t mcs, uint32_t nRegs, uint8_t dlRank)
const;
305 uint16_t GetNumberActiveBwps()
const;
313 uint16_t GetNumberActiveUes(uint16_t bwpId)
const;
324 uint8_t GetMaxMcs(uint8_t mcsTable, uint16_t modOrder)
const;
326 uint16_t m_physicalCellId;
329 std::map<uint16_t, NrFhPhySapUser*> m_fhPhySapUser;
333 std::map<uint16_t, NrFhSchedSapUser*>
338 uint32_t m_fhCapacity{
340 uint8_t m_overheadDyn{32};
341 uint8_t m_mcsTable{2};
342 std::string m_errorModelType;
343 bool m_enableModComp{
346 std::unordered_map<uint16_t, uint16_t> m_numerologyPerBwp;
347 std::unordered_map<uint32_t, uint32_t>
351 std::unordered_map<uint16_t, std::set<uint16_t>>
355 std::unordered_map<uint16_t, std::set<uint16_t>>
356 m_activeHarqUesPerBwp;
361 uint64_t m_allocThrPerCell{0};
362 std::unordered_map<uint16_t, uint64_t>
365 std::unordered_map<uint16_t, uint64_t>
366 m_reqFhDlThrTracedValuePerBwp;
367 std::unordered_map<uint16_t, uint32_t>
369 std::unordered_map<uint16_t, SfnSf> m_waitingSlotPerBwp;
372 TracedCallback<const SfnSf&, uint16_t, uint16_t, uint64_t>
375 TracedCallback<const SfnSf&, uint16_t, uint16_t, uint32_t>