NrSchedulerGnbUlD2D.h Source File

Simu5G: NrSchedulerGnbUlD2D.h Source File
Simu5G
NrSchedulerGnbUlD2D.h
1//
2// Simu5G
3//
4// Copyright (C) 2019-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 _NRSCHEDULER_GNB_UL_D2D_H_
14#define _NRSCHEDULER_GNB_UL_D2D_H_
15
16#include "simu5g/stack/mac/scheduler/NrSchedulerGnbUl.h"
17#include "simu5g/stack/d2d/mac/scheduler/D2dRtxScheduling.h"
18
19namespace simu5g {
20
21class ID2dMacEnb;
22
31class NrSchedulerGnbUlD2D : public NrSchedulerGnbUl
32{
33 protected:
34 // D2D facet of the owning MAC, resolved once at initialize()
35 ID2dMacEnb *d2dMac_ = nullptr;
36
37 // shared per-acid D2D retransmission logic (shared with the LTE variant)
38 D2dRtxScheduling d2dRtxScheduling_;
39
40 void initialize(int stage) override;
41
46 unsigned int scheduleAdditionalRetransmissions(GHz carrierFrequency, BandLimitVector *bandLim = nullptr) override;
47
49 LteScheduler *getScheduler(SchedDiscipline discipline) override;
50
51 public:
52 NrSchedulerGnbUlD2D() : d2dRtxScheduling_(this) {}
53};
54
55} //namespace
56
57#endif // _NRSCHEDULER_GNB_UL_D2D_H_
unsigned int scheduleAdditionalRetransmissions(GHz carrierFrequency, BandLimitVector *bandLim=nullptr) override
LteScheduler * getScheduler(SchedDiscipline discipline) override
The D2D uplink scheduler owns the ALLOCATOR_BESTFIT frequency-reuse discipline.
Definition NrSchedulerGnbUl.h:24
Definition AlertReceiver.h:24