LteSchedulerEnbDl.h Source File

Simu5G: LteSchedulerEnbDl.h Source File
Simu5G
LteSchedulerEnbDl.h
1//
2// Simu5G
3//
4// Copyright (C) 2012-2021 Giovanni Nardini, Giovanni Stea, Antonio Virdis et al. (University of Pisa)
5// Copyright (C) 2022-2026 Giovanni Nardini, Giovanni Stea et al. (University of Pisa)
6//
7// This file is part of a software released under the license included in file
8// "license.pdf". Please read LICENSE and README files before using it.
9// The above files and the present reference are part of the software itself,
10// and cannot be removed from it.
11//
12
13#ifndef _LTE_LTE_SCHEDULER_ENB_DL_H_
14#define _LTE_LTE_SCHEDULER_ENB_DL_H_
15
16#include "simu5g/stack/mac/scheduler/LteSchedulerEnb.h"
17#include "simu5g/common/LteCommon.h"
18#include "simu5g/stack/mac/amc/LteAmc.h"
19#include "simu5g/stack/mac/amc/UserTxParams.h"
20
21namespace simu5g {
22
26class LteSchedulerEnbDl : public LteSchedulerEnb
27{
28 // XXX debug: to call grant from MAC
29 friend class LteMacEnb;
30
31 protected:
32
33 Direction getDirection() const override { return DL; }
34
43 bool checkEligibility(MacNodeId id, Codeword& cw, GHz carrierFrequency) override;
44
45 bool racschedule(GHz carrierFrequency, BandLimitVector *bandLim = nullptr) override { return false; }
46
51 bool rtxschedule(GHz carrierFrequency, BandLimitVector *bandLim = nullptr) override;
52
57
69 unsigned int schedulePerAcidRtx(MacNodeId nodeId, GHz carrierFrequency, Codeword cw, unsigned char acid,
70 std::vector<BandLimit> *bandLim = nullptr, Remote antenna = MACRO, bool limitBl = false) override;
71
72
73 virtual bool getBandLimit(std::vector<BandLimit> *bandLimit, MacNodeId ueId);
74
75};
76
77} //namespace
78
79#endif // _LTE_LTE_SCHEDULER_ENB_DL_H_
80
Definition LteSchedulerEnbDl.h:27
bool rtxschedule(GHz carrierFrequency, BandLimitVector *bandLim=nullptr) override
bool checkEligibility(MacNodeId id, Codeword &cw, GHz carrierFrequency) override
unsigned int schedulePerAcidRtx(MacNodeId nodeId, GHz carrierFrequency, Codeword cw, unsigned char acid, std::vector< BandLimit > *bandLim=nullptr, Remote antenna=MACRO, bool limitBl=false) override
Definition AlertReceiver.h:24
unsigned short Codeword
Codeword.
Definition LteCommon.h:202