A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ff-mac-scheduler.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Author: Nicola Baldo <nbaldo@cttc.es>
18 * Marco Miozzo <marco.miozzo@cttc.es>
19 */
20
21#ifndef FF_MAC_SCHEDULER_H
22#define FF_MAC_SCHEDULER_H
23
24#include "ff-mac-common.h"
25
26#include <ns3/object.h>
27
28namespace ns3
29{
30
31class FfMacCschedSapUser;
32class FfMacSchedSapUser;
33class FfMacCschedSapProvider;
34class FfMacSchedSapProvider;
35class LteFfrSapProvider;
36class LteFfrSapUser;
37
44using DlHarqProcessesStatus_t = std::vector<uint8_t>;
45
47using DlHarqProcessesTimer_t = std::vector<uint8_t>;
48
50using DlHarqProcessesDciBuffer_t = std::vector<DlDciListElement_s>;
51
53using RlcPduList_t = std::vector<std::vector<RlcPduListElement_s>>;
54
56using DlHarqRlcPduListBuffer_t = std::vector<RlcPduList_t>;
57
59using UlHarqProcessesDciBuffer_t = std::vector<UlDciListElement_s>;
60
62using UlHarqProcessesStatus_t = std::vector<uint8_t>;
63
66constexpr double NO_SINR = -5000;
67
69constexpr uint32_t HARQ_PROC_NUM = 8;
70
73
83class FfMacScheduler : public Object
84{
85 public:
92 {
95 };
96
106 ~FfMacScheduler() override;
107
108 // inherited from Object
109 void DoDispose() override;
114 static TypeId GetTypeId();
115
123
132
138
144
145 // FFR SAPs
154
160
161 protected:
163};
164
165} // namespace ns3
166
167#endif /* FF_MAC_SCHEDULER_H */
Provides the CSCHED SAP.
FfMacCschedSapUser class.
Provides the SCHED SAP.
FfMacSchedSapUser class.
This abstract base class identifies the interface by means of which the helper object can plug on the...
void DoDispose() override
Destructor implementation.
virtual void SetLteFfrSapProvider(LteFfrSapProvider *s)=0
Set the Provider part of the LteFfrSap that this Scheduler will interact with.
~FfMacScheduler() override
destructor
virtual void SetFfMacCschedSapUser(FfMacCschedSapUser *s)=0
set the user part of the FfMacCschedSap that this Scheduler will interact with.
virtual void SetFfMacSchedSapUser(FfMacSchedSapUser *s)=0
set the user part of the FfMacSchedSap that this Scheduler will interact with.
UlCqiFilter_t
The type of UL CQI to be filtered (ALL means accept all the CQI, where a new CQI of any type overwrit...
FfMacScheduler()
constructor
static TypeId GetTypeId()
Get the type ID.
virtual LteFfrSapUser * GetLteFfrSapUser()=0
virtual FfMacCschedSapProvider * GetFfMacCschedSapProvider()=0
UlCqiFilter_t m_ulCqiFilter
UL CQI filter.
virtual FfMacSchedSapProvider * GetFfMacSchedSapProvider()=0
Service Access Point (SAP) offered by the Frequency Reuse algorithm instance to the MAC Scheduler ins...
Definition: lte-ffr-sap.h:40
Service Access Point (SAP) offered by the eNodeB RRC instance to the Frequency Reuse algorithm instan...
Definition: lte-ffr-sap.h:140
A base class which provides memory management and object aggregation.
Definition: object.h:89
a unique identifier for an interface.
Definition: type-id.h:59
Every class exported by the ns3 library is enclosed in the ns3 namespace.
constexpr double NO_SINR
Value for SINR outside the range defined by FF-API, used to indicate that there is no CQI for this el...
std::vector< UlDciListElement_s > UlHarqProcessesDciBuffer_t
UL HARQ process DCI buffer vector.
std::vector< RlcPduList_t > DlHarqRlcPduListBuffer_t
Vector of the 8 HARQ processes per UE.
constexpr uint32_t HARQ_DL_TIMEOUT
HARQ DL timeout.
constexpr uint32_t HARQ_PROC_NUM
Number of HARQ processes.
std::vector< DlDciListElement_s > DlHarqProcessesDciBuffer_t
DL HARQ process DCI buffer vector.
std::vector< uint8_t > UlHarqProcessesStatus_t
UL HARQ process status vector.
std::vector< uint8_t > DlHarqProcessesTimer_t
DL HARQ process timer vector.
std::vector< std::vector< RlcPduListElement_s > > RlcPduList_t
Vector of the LCs and layers per UE.
std::vector< uint8_t > DlHarqProcessesStatus_t
DL HARQ process status vector.