AmcPilotAuto.h Source File

Simu5G: AmcPilotAuto.h Source File
Simu5G
AmcPilotAuto.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_AMCPILOTAUTO_H_
14#define _LTE_AMCPILOTAUTO_H_
15
16#include "simu5g/stack/mac/amc/AmcPilot.h"
17
18namespace simu5g {
19
32class AmcPilotAuto : public AmcPilot
33{
34 public:
35
40 AmcPilotAuto(Binder *binder, LteAmc *amc) :
41 AmcPilot(binder, amc)
42 {
43 mode_ = AVG_CQI;//MAX_CQI;//MIN_CQI;
44 name_ = "Auto";
45 }
46
53 const UserTxParams& computeTxParams(MacNodeId id, const Direction dir, GHz carrierFrequency) override;
54
55 /*
56 * Defines a subset of bands that will be used in AMC operation.
57 * e.g. limit the set of bands that will be considered in the "computeTxParams" function.
58 * Note that the id can be either a UE or an eNodeB.
59 */
60 void setUsableBands(MacNodeId id, UsableBands usableBands) override;
61
62 /*
63 * Returns the subset of bands that will be used in scheduling operation.
64 * e.g. limit the set of bands that will be considered in the "scheduleGrant" function.
65 * If the node id refers to a UE and usable bands are not defined for it, then
66 * usable bands corresponding to the id of its serving eNB are returned. If usable
67 * bands for the eNB are missing too, then the function returns a nullptr (i.e.,
68 * bands will not be limited).
69 * The method returns nullptr if ALL bands are usable (hence, ignore the pointer), otherwise returns usable bands.
70 */
71 UsableBands *getUsableBands(MacNodeId id) override;
72
73 // Returns a vector with one CQI for each band (for the given user).
74 std::vector<Cqi> getMultiBandCqi(MacNodeId id, const Direction dir, GHz carrierFrequency) override;
75};
76
77} //namespace
78
79#endif
80
const UserTxParams & computeTxParams(MacNodeId id, const Direction dir, GHz carrierFrequency) override
AmcPilotAuto(Binder *binder, LteAmc *amc)
Definition AmcPilotAuto.h:40
std::string name_
Pilot Name.
Definition AmcPilot.h:43
AmcPilot(Binder *binder, LteAmc *amc)
Definition AmcPilot.h:57
Definition Binder.h:48
Lte AMC module for Omnet++ simulator.
Definition LteAmc.h:45
Definition AlertReceiver.h:24