src/lte/model/pf-ff-mac-scheduler.h
author Marco Miozzo <marco.miozzo@cttc.es>
Tue, 06 Nov 2012 17:42:40 +0100
changeset 9374 77f6eab81eac
parent 9359 55dee31410ac
child 9394 3cefef4eb74a
child 9460 0674e66ee483
permissions -rw-r--r--
Run check-style and polish logs on RR and PF schedulers
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     2
/*
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     3
 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     4
 *
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     8
 *
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    12
 * GNU General Public License for more details.
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    13
 *
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    17
 *
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    18
 * Author: Marco Miozzo <marco.miozzo@cttc.es>
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    19
 */
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    20
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    21
#ifndef PF_FF_MAC_SCHEDULER_H
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    22
#define PF_FF_MAC_SCHEDULER_H
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    23
7940
50dd9246e780 refactoring lteFlowId_t struct
mrequena
parents: 7936
diff changeset
    24
#include <ns3/lte-common.h>
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    25
#include <ns3/ff-mac-csched-sap.h>
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    26
#include <ns3/ff-mac-sched-sap.h>
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    27
#include <ns3/ff-mac-scheduler.h>
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    28
#include <vector>
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    29
#include <map>
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    30
#include <ns3/nstime.h>
8516
db748e56aea2 Update RR and PF scheduler for working wiht new LteAmc object
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8311
diff changeset
    31
#include <ns3/lte-amc.h>
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    32
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    33
8141
b3a8a85ee6f0 LENA-109 Uplink CQI support: introduced estimation of unkwnown CQI (average)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8131
diff changeset
    34
// value for SINR outside the range defined by FF-API, used to indicate that there
b3a8a85ee6f0 LENA-109 Uplink CQI support: introduced estimation of unkwnown CQI (average)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8131
diff changeset
    35
// is no CQI for this element
b3a8a85ee6f0 LENA-109 Uplink CQI support: introduced estimation of unkwnown CQI (average)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8131
diff changeset
    36
#define NO_SINR -5000
b3a8a85ee6f0 LENA-109 Uplink CQI support: introduced estimation of unkwnown CQI (average)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8131
diff changeset
    37
9352
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    38
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    39
#define HARQ_PROC_NUM 8
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    40
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    41
namespace ns3 {
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
    42
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
    43
9352
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    44
typedef std::vector < uint8_t > DlHarqProcessesStatus_t;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    45
typedef std::vector < DlDciListElement_s > DlHarqProcessesDciBuffer_t;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    46
typedef std::vector < std::vector <struct RlcPduListElement_s> > RlcPduList_t; // vector of the LCs and layers per UE
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    47
typedef std::vector < RlcPduList_t > DlHarqRlcPduListBuffer_t; // vector of the 8 HARQ processes per UE
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    48
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    49
typedef std::vector < UlDciListElement_s > UlHarqProcessesDciBuffer_t;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
    50
typedef std::vector < uint8_t > UlHarqProcessesStatus_t;
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    51
7936
2c531eab14f1 Move inline code in pf-ff-mac-schedluer to cc file
mmiozzo
parents: 7898
diff changeset
    52
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    53
struct pfsFlowPerf_t
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    54
{
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    55
  Time flowStart;
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
    56
  unsigned long totalBytesTransmitted;
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    57
  unsigned int lastTtiBytesTrasmitted;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    58
  double lastAveragedThroughput;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    59
};
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    60
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    61
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    62
/**
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    63
 * \ingroup ff-api
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    64
 * \defgroup FF-API PfFfMacScheduler
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    65
 */
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    66
/**
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    67
 * \ingroup PfFfMacScheduler
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    68
 * \brief Implements the SCHED SAP and CSCHED SAP for a Proportional Fair scheduler
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    69
 *
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    70
 * This class implements the interface defined by the FfMacScheduler abstract class
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    71
 */
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    72
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    73
class PfFfMacScheduler : public FfMacScheduler
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    74
{
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    75
public:
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    76
  /**
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    77
   * \brief Constructor
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    78
   *
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    79
   * Creates the MAC Scheduler interface implementation
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    80
   */
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    81
  PfFfMacScheduler ();
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    82
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    83
  /**
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    84
   * Destructor
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    85
   */
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    86
  virtual ~PfFfMacScheduler ();
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    87
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    88
  // inherited from Object
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    89
  virtual void DoDispose (void);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    90
  static TypeId GetTypeId (void);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    91
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    92
  // inherited from FfMacScheduler
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    93
  virtual void SetFfMacCschedSapUser (FfMacCschedSapUser* s);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    94
  virtual void SetFfMacSchedSapUser (FfMacSchedSapUser* s);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    95
  virtual FfMacCschedSapProvider* GetFfMacCschedSapProvider ();
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    96
  virtual FfMacSchedSapProvider* GetFfMacSchedSapProvider ();
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    97
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    98
  friend class PfSchedulerMemberCschedSapProvider;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    99
  friend class PfSchedulerMemberSchedSapProvider;
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   100
8714
398bbcbb3f42 Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8538
diff changeset
   101
  void TransmissionModeConfigurationUpdate (uint16_t rnti, uint8_t txMode);
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   102
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   103
private:
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   104
  //
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   105
  // Implementation of the CSCHED API primitives
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   106
  // (See 4.1 for description of the primitives)
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   107
  //
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   108
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   109
  void DoCschedCellConfigReq (const struct FfMacCschedSapProvider::CschedCellConfigReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   110
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   111
  void DoCschedUeConfigReq (const struct FfMacCschedSapProvider::CschedUeConfigReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   112
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   113
  void DoCschedLcConfigReq (const struct FfMacCschedSapProvider::CschedLcConfigReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   114
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   115
  void DoCschedLcReleaseReq (const struct FfMacCschedSapProvider::CschedLcReleaseReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   116
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   117
  void DoCschedUeReleaseReq (const struct FfMacCschedSapProvider::CschedUeReleaseReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   118
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   119
  //
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   120
  // Implementation of the SCHED API primitives
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   121
  // (See 4.2 for description of the primitives)
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   122
  //
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   123
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   124
  void DoSchedDlRlcBufferReq (const struct FfMacSchedSapProvider::SchedDlRlcBufferReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   125
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   126
  void DoSchedDlPagingBufferReq (const struct FfMacSchedSapProvider::SchedDlPagingBufferReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   127
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   128
  void DoSchedDlMacBufferReq (const struct FfMacSchedSapProvider::SchedDlMacBufferReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   129
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   130
  void DoSchedDlTriggerReq (const struct FfMacSchedSapProvider::SchedDlTriggerReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   131
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   132
  void DoSchedDlRachInfoReq (const struct FfMacSchedSapProvider::SchedDlRachInfoReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   133
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   134
  void DoSchedDlCqiInfoReq (const struct FfMacSchedSapProvider::SchedDlCqiInfoReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   135
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   136
  void DoSchedUlTriggerReq (const struct FfMacSchedSapProvider::SchedUlTriggerReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   137
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   138
  void DoSchedUlNoiseInterferenceReq (const struct FfMacSchedSapProvider::SchedUlNoiseInterferenceReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   139
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   140
  void DoSchedUlSrInfoReq (const struct FfMacSchedSapProvider::SchedUlSrInfoReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   141
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   142
  void DoSchedUlMacCtrlInfoReq (const struct FfMacSchedSapProvider::SchedUlMacCtrlInfoReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   143
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   144
  void DoSchedUlCqiInfoReq (const struct FfMacSchedSapProvider::SchedUlCqiInfoReqParameters& params);
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   145
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   146
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   147
  int GetRbgSize (int dlbandwidth);
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   149
  int LcActivePerFlow (uint16_t rnti);
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   150
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   151
  double EstimateUlSinr (uint16_t rnti, uint16_t rb);
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   152
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   153
  void RefreshDlCqiMaps (void);
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   154
  void RefreshUlCqiMaps (void);
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   155
8435
6b0542a91970 Transmission queue head-of-line delay and queue size at MAC Scheduler
mmiozzo
parents: 8311
diff changeset
   156
  void UpdateDlRlcBufferInfo (uint16_t rnti, uint8_t lcid, uint16_t size);
6b0542a91970 Transmission queue head-of-line delay and queue size at MAC Scheduler
mmiozzo
parents: 8311
diff changeset
   157
  void UpdateUlRlcBufferInfo (uint16_t rnti, uint16_t size);
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   158
9352
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   159
  /**
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   160
  * \brief Update and return a new process Id for the RNTI specified
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   161
  *
9352
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   162
  * \param rnti the RNTI of the UE to be updated
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   163
  * \return the process id  value
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   164
  */
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   165
  uint8_t UpdateHarqProcessId (uint16_t rnti);
9359
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   166
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   167
  /**
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   168
  * \brief Return the availability of free process for the RNTI specified
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   169
  *
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   170
  * \param rnti the RNTI of the UE to be updated
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   171
  * \return the process id  value
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   172
  */
55dee31410ac Update RR and PF schedulers for avoiding the allocation of UEs that do not have HARQ processes available for transmitting
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9352
diff changeset
   173
  uint8_t HarqProcessAvailability (uint16_t rnti);
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   174
8523
0c515ddca47b Change LteAmc* to Ptr<LteAmc> in PF scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8516
diff changeset
   175
  Ptr<LteAmc> m_amc;
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   176
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   177
  /*
7979
8e542d91bfc3 LENA-68 PfFfMacScheduler updated to single TB per RNTI (LC multiplexed)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7971
diff changeset
   178
   * Vectors of UE's LC info
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   179
  */
7979
8e542d91bfc3 LENA-68 PfFfMacScheduler updated to single TB per RNTI (LC multiplexed)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7971
diff changeset
   180
  std::map <LteFlowId_t, FfMacSchedSapProvider::SchedDlRlcBufferReqParameters> m_rlcBufferReq;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   181
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   182
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   183
  /*
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   184
  * Map of UE statistics (per RNTI basis) in downlink
8131
3a0422147f8a PfFfMacScheduler add m_flowStatsUl
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8080
diff changeset
   185
  */
3a0422147f8a PfFfMacScheduler add m_flowStatsUl
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8080
diff changeset
   186
  std::map <uint16_t, pfsFlowPerf_t> m_flowStatsDl;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   187
8131
3a0422147f8a PfFfMacScheduler add m_flowStatsUl
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8080
diff changeset
   188
  /*
7979
8e542d91bfc3 LENA-68 PfFfMacScheduler updated to single TB per RNTI (LC multiplexed)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7971
diff changeset
   189
  * Map of UE statistics (per RNTI basis)
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   190
  */
8131
3a0422147f8a PfFfMacScheduler add m_flowStatsUl
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8080
diff changeset
   191
  std::map <uint16_t, pfsFlowPerf_t> m_flowStatsUl;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   192
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   193
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   194
  /*
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   195
  * Map of UE's DL CQI P01 received
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   196
  */
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   197
  std::map <uint16_t,uint8_t> m_p10CqiRxed;
8311
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   198
  /*
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   199
  * Map of UE's timers on DL CQI P01 received
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   200
  */
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   201
  std::map <uint16_t,uint32_t> m_p10CqiTimers;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   202
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   203
  /*
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   204
  * Map of UE's DL CQI A30 received
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   205
  */
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   206
  std::map <uint16_t,SbMeasResult_s> m_a30CqiRxed;
8311
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   207
  /*
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   208
  * Map of UE's timers on DL CQI A30 received
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   209
  */
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   210
  std::map <uint16_t,uint32_t> m_a30CqiTimers;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   211
7943
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   212
  /*
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   213
  * Map of previous allocated UE per RBG
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   214
  * (used to retrieve info from UL-CQI)
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   215
  */
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   216
  std::map <uint16_t, std::vector <uint16_t> > m_allocationMaps;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   217
7943
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   218
  /*
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   219
  * Map of UEs' UL-CQI per RBG
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   220
  */
7947
4ed7cfac199d PUSCH UL-CQ Integrated in PFS
mmiozzo
parents: 7943
diff changeset
   221
  std::map <uint16_t, std::vector <double> > m_ueCqi;
8311
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   222
  /*
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   223
  * Map of UEs' timers on UL-CQI per RBG
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   224
  */
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   225
  std::map <uint16_t, uint32_t> m_ueCqiTimers;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   226
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   227
  /*
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   228
  * Map of UE's buffer status reports received
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   229
  */
8435
6b0542a91970 Transmission queue head-of-line delay and queue size at MAC Scheduler
mmiozzo
parents: 8311
diff changeset
   230
  std::map <uint16_t,uint32_t> m_ceBsrRxed;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   231
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   232
  // MAC SAPs
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   233
  FfMacCschedSapUser* m_cschedSapUser;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   234
  FfMacSchedSapUser* m_schedSapUser;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   235
  FfMacCschedSapProvider* m_cschedSapProvider;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   236
  FfMacSchedSapProvider* m_schedSapProvider;
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   237
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   238
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   239
  // Internal parameters
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   240
  FfMacCschedSapProvider::CschedCellConfigReqParameters m_cschedCellConfig;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   241
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   242
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   243
  double m_timeWindow;
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8141
diff changeset
   244
8080
62d2fccef672 Refinements to RR and PF uplink scheduling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7979
diff changeset
   245
  uint16_t m_nextRntiUl; // RNTI of the next user to be served next scheduling in UL
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   246
8311
ec257b681d85 Address LENA-173: CQI refresh procedure introduced in Pf and Rr schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8148
diff changeset
   247
  uint32_t m_cqiTimersThreshold; // # of TTIs for which a CQI canbe considered valid
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   248
8714
398bbcbb3f42 Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8538
diff changeset
   249
  std::map <uint16_t,uint8_t> m_uesTxMode; // txMode of the UEs
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   250
9351
6e074e67a1ad HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents: 8729
diff changeset
   251
  // HARQ attributes
6e074e67a1ad HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents: 8729
diff changeset
   252
  /**
6e074e67a1ad HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents: 8729
diff changeset
   253
  * m_harqOn when false inhibit te HARQ mechanisms (by default active)
6e074e67a1ad HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents: 8729
diff changeset
   254
  */
6e074e67a1ad HARQ first draft version: RR works, PF todo, LteMiErrorModel on-going
mmiozzo
parents: 8729
diff changeset
   255
  bool m_harqOn;
9352
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   256
  std::map <uint16_t, uint8_t> m_dlHarqCurrentProcessId;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   257
  //HARQ status
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   258
  // 0: process Id available
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   259
  // x>0: process Id equal to `x` trasmission count
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   260
  std::map <uint16_t, DlHarqProcessesStatus_t> m_dlHarqProcessesStatus;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   261
  std::map <uint16_t, DlHarqProcessesDciBuffer_t> m_dlHarqProcessesDciBuffer;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   262
  std::map <uint16_t, DlHarqRlcPduListBuffer_t> m_dlHarqProcessesRlcPduListBuffer;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   263
  std::vector <DlInfoListElement_s> m_dlInfoListBuffered; // HARQ retx buffered
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   264
9352
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   265
  std::map <uint16_t, uint8_t> m_ulHarqCurrentProcessId;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   266
  //HARQ status
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   267
  // 0: process Id available
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   268
  // x>0: process Id equal to `x` trasmission count
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   269
  std::map <uint16_t, UlHarqProcessesStatus_t> m_ulHarqProcessesStatus;
0b43d0a862dc HARQ included in PF Scheduler
mmiozzo
parents: 9351
diff changeset
   270
  std::map <uint16_t, UlHarqProcessesDciBuffer_t> m_ulHarqProcessesDciBuffer;
9374
77f6eab81eac Run check-style and polish logs on RR and PF schedulers
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9359
diff changeset
   271
7898
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   272
};
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   273
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   274
} // namespace ns3
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   275
03fe4d0a278b add missed file of pf-ff-mac-scheduler
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   276
#endif /* PF_FF_MAC_SCHEDULER_H */