src/lte/model/ff-mac-csched-sap.h
author Manuel Requena <manuel.requena@cttc.es>
Tue, 26 Mar 2013 10:41:49 +0100
changeset 10019 6efd95740e39
parent 7886 b65c16d4da83
child 10192 d34aed2b3736
permissions -rw-r--r--
Add automatic triger of the HO based on the RSRQ measures
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     2
/*
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     3
 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     4
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     7
 * published by the Free Software Foundation;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     8
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    12
 * GNU General Public License for more details.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    13
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    17
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    18
 * Author: Manuel Requena <manuel.requena@cttc.es>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    19
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    20
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    21
#ifndef FF_MAC_CSCHED_SAP_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    22
#define FF_MAC_CSCHED_SAP_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    23
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    24
#include <stdint.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    25
#include <vector>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    26
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    27
#include "ff-mac-common.h"
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    28
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    29
namespace ns3 {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    31
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    32
 * \ingroup ff-api
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    33
 * \defgroup FF-API FfMacCschedSap
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    34
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    35
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    36
 * \ingroup FfMacCschedSap
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    37
 * \brief Provides the CSCHED SAP
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    38
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    39
 * This abstract class defines the MAC Scheduler interface specified in the
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    40
 * Femto Forum Technical Document:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    41
 *   - LTE MAC Scheduler Interface Specification v1.11
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    43
 * The Technical Document contains a detailed description of the API.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    44
 * The documentation of this class refers to sections of this Technical Document.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    45
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    46
 * You can found an example of the implementation of this interface
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    47
 * in the SampleFfMacCschedSapProvider and SampleFfMacCschedSapuser classes
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    48
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    49
class FfMacCschedSapProvider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    50
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    51
public:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    52
  virtual ~FfMacCschedSapProvider ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    53
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    54
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    55
   * Parameters of the API primitives
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    56
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    57
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    58
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    59
   * Parameters of the CSCHED_CELL_CONFIG_REQ primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    60
   * See section 4.1.1 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    61
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    62
  struct CschedCellConfigReqParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    63
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    64
    uint8_t m_puschHoppingOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    65
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    66
    enum HoppingMode_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    67
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    68
      inter,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    69
      interintra
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    70
    } m_hoppingMode;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    71
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    72
    uint8_t m_nSb;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    73
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    74
    enum PhichResource_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    75
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    76
      PHICH_R_ONE_SIXTH,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    77
      PHICH_R_HALF,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    78
      PHICH_R_ONE,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    79
      PHICH_R_TWO
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    80
    } m_phichResource;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    81
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    82
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    83
    enum NormalExtended_e m_phichDuration;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    84
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    85
    uint8_t m_initialNrOfPdcchOfdmSymbols;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    86
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    87
    struct SiConfiguration_s m_siConfiguration;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    88
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    89
    uint8_t m_ulBandwidth;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    90
    uint8_t m_dlBandwidth;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    91
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    92
    enum NormalExtended_e m_ulCyclicPrefixLength;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    93
    enum NormalExtended_e m_dlCyclicPrefixLength;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    94
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    95
    uint8_t m_antennaPortsCount;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    96
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    97
    enum DuplexMode_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    98
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    99
      DM_TDD,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   100
      DM_FDD
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   101
    } m_duplexMode;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   102
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   103
    uint8_t m_subframeAssignment;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   104
    uint8_t m_specialSubframePatterns;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   105
    std::vector <uint8_t> m_mbsfnSubframeConfigRfPeriod;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   106
    std::vector <uint8_t> m_mbsfnSubframeConfigRfOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   107
    std::vector <uint8_t> m_mbsfnSubframeConfigSfAllocation;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   108
    uint8_t m_prachConfigurationIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   109
    uint8_t m_prachFreqOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   110
    uint8_t m_raResponseWindowSize;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   111
    uint8_t m_macContentionResolutionTimer;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   112
    uint8_t m_maxHarqMsg3Tx;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   113
    uint16_t m_n1PucchAn;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   114
    uint8_t m_deltaPucchShift;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   115
    uint8_t m_nrbCqi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   116
    uint8_t m_ncsAn;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   117
    uint8_t m_srsSubframeConfiguration;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   118
    uint8_t m_srsSubframeOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   119
    uint8_t m_srsBandwidthConfiguration;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   120
    bool    m_srsMaxUpPts;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   121
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   122
    enum Enable64Qam_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   123
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   124
      MOD_16QAM,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   125
      MOD_64QAM
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   126
    } m_enable64Qam;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   127
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   128
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   129
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   130
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   131
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   132
   * Parameters of the CSCHED_UE_CONFIG_REQ primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   133
   * See section 4.1.3 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   134
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   135
  struct CschedUeConfigReqParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   136
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   137
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   138
    bool      m_reconfigureFlag;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   139
    bool      m_drxConfigPresent;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   140
    struct DrxConfig_s m_drxConfig;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   141
    uint16_t  m_timeAlignmentTimer;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   142
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   143
    enum MeasGapConfigPattern_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   144
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   145
      MGP_GP1,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   146
      MGP_GP2,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   147
      OFF
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   148
    } m_measGapConfigPattern;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   149
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   150
    uint8_t   m_measGapConfigSubframeOffset;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   151
    bool      m_spsConfigPresent;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   152
    struct SpsConfig_s m_spsConfig;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   153
    bool      m_srConfigPresent;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   154
    struct SrConfig_s m_srConfig;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   155
    bool      m_cqiConfigPresent;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   156
    struct CqiConfig_s m_cqiConfig;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   157
    uint8_t   m_transmissionMode;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   158
    uint64_t  m_ueAggregatedMaximumBitrateUl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   159
    uint64_t  m_ueAggregatedMaximumBitrateDl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   160
    struct UeCapabilities_s m_ueCapabilities;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   161
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   162
    enum OpenClosedLoop_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   163
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   164
      noneloop,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   165
      openloop,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   166
      closedloop
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   167
    } m_ueTransmitAntennaSelection;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   168
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   169
    bool      m_ttiBundling;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   170
    uint8_t   m_maxHarqTx;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   171
    uint8_t   m_betaOffsetAckIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   172
    uint8_t   m_betaOffsetRiIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   173
    uint8_t   m_betaOffsetCqiIndex;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   174
    bool      m_ackNackSrsSimultaneousTransmission;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   175
    bool      m_simultaneousAckNackAndCqi;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   176
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   177
    enum RepMode_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   178
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   179
      rm12, rm20, rm22, rm30, rm31, nonemode
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   180
    } m_aperiodicCqiRepMode;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   181
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   182
    enum FeedbackMode_e
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   183
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   184
      bundling,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   185
      multiplexing
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   186
    } m_tddAckNackFeedbackMode;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   187
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   188
    uint8_t   m_ackNackRepetitionFactor;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   189
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   190
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   191
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   192
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   193
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   194
   * Parameters of the CSCHED_LC_CONFIG_REQ primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   195
   * See section 4.1.5 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   196
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   197
  struct CschedLcConfigReqParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   198
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   199
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   200
    bool      m_reconfigureFlag;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   201
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   202
    std::vector <struct LogicalChannelConfigListElement_s> m_logicalChannelConfigList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   203
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   204
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   205
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   206
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   207
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   208
   * Parameters of the CSCHED_LC_RELEASE_REQ primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   209
   * See section 4.1.7 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   210
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   211
  struct CschedLcReleaseReqParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   212
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   213
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   214
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   215
    std::vector <uint8_t> m_logicalChannelIdentity;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   216
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   217
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   218
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   219
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   220
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   221
   * Parameters of the CSCHED_UE_RELEASE_REQ primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   222
   * See section 4.1.9 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   223
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   224
  struct CschedUeReleaseReqParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   225
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   226
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   227
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   228
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   229
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   230
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   231
  //
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   232
  // CSCHED - MAC Scheduler Control SAP primitives
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   233
  // (See 4.1 for description of the primitives)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   234
  //
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   235
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   236
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   237
   * \brief CSCHED_CELL_CONFIG_REQ
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   238
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   239
  virtual void CschedCellConfigReq (const struct CschedCellConfigReqParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   240
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   241
  virtual void CschedUeConfigReq (const struct CschedUeConfigReqParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   242
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   243
  virtual void CschedLcConfigReq (const struct CschedLcConfigReqParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   244
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   245
  virtual void CschedLcReleaseReq (const struct CschedLcReleaseReqParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   246
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   247
  virtual void CschedUeReleaseReq (const struct CschedUeReleaseReqParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   248
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   249
private:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   250
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   251
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   252
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   253
class FfMacCschedSapUser
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   254
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   255
public:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   256
  virtual ~FfMacCschedSapUser ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   257
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   258
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   259
   * Parameters of the API primitives
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   260
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   261
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   262
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   263
   * Parameters of the CSCHED_CELL_CONFIG_CNF primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   264
   * See section 4.1.2 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   265
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   266
  struct CschedCellConfigCnfParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   267
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   268
    enum Result_e m_result;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   269
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   270
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   271
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   272
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   273
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   274
   * Parameters of the CSCHED_UE_CONFIG_CNF primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   275
   * See section 4.1.4 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   276
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   277
  struct CschedUeConfigCnfParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   278
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   279
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   280
    enum Result_e m_result;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   281
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   282
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   283
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   284
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   285
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   286
   * Parameters of the CSCHED_LC_CONFIG_CNF primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   287
   * See section 4.1.6 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   288
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   289
  struct CschedLcConfigCnfParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   290
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   291
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   292
    enum Result_e m_result;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   293
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   294
    std::vector <uint8_t> m_logicalChannelIdentity;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   295
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   296
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   297
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   298
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   299
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   300
   * Parameters of the CSCHED_LC_RELEASE_CNF primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   301
   * See section 4.1.8 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   302
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   303
  struct CschedLcReleaseCnfParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   304
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   305
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   306
    enum Result_e m_result;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   307
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   308
    std::vector <uint8_t> m_logicalChannelIdentity;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   309
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   310
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   311
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   312
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   313
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   314
   * Parameters of the CSCHED_UE_RELEASE_CNF primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   315
   * See section 4.1.10 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   316
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   317
  struct CschedUeReleaseCnfParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   318
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   319
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   320
    enum Result_e m_result;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   321
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   322
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   323
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   324
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   325
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   326
   * Parameters of the CSCHED_UE_CONFIG_UPDATE_IND primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   327
   * See section 4.1.11 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   328
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   329
  struct CschedUeConfigUpdateIndParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   330
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   331
    uint16_t  m_rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   332
    uint8_t   m_transmissionMode;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   333
    bool      m_spsConfigPresent;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   334
    struct SpsConfig_s m_spsConfig;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   335
    bool      m_srConfigPresent;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   336
    struct SrConfig_s m_srConfig;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   337
    bool      m_cqiConfigPresent;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   338
    struct CqiConfig_s m_cqiConfig;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   339
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   340
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   341
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   342
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   343
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   344
   * Parameters of the CSCHED_CELL_CONFIG_UPDATE_IND primitive.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   345
   * See section 4.1.12 for a detailed description of the parameters.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   346
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   347
  struct CschedCellConfigUpdateIndParameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   348
  {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   349
    uint8_t   m_prbUtilizationDl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   350
    uint8_t   m_prbUtilizationUl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   351
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   352
    std::vector <struct VendorSpecificListElement_s> m_vendorSpecificList;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   353
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   354
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   355
  //
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   356
  // CSCHED - MAC Scheduler Control SAP primitives
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   357
  // (See 4.1 for description of the primitives)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   358
  //
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   359
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   360
  virtual void CschedCellConfigCnf (const struct CschedCellConfigCnfParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   361
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   362
  virtual void CschedUeConfigCnf (const struct CschedUeConfigCnfParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   363
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   364
  virtual void CschedLcConfigCnf (const struct CschedLcConfigCnfParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   365
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   366
  virtual void CschedLcReleaseCnf (const struct CschedLcReleaseCnfParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   367
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   368
  virtual void CschedUeReleaseCnf (const struct CschedUeReleaseCnfParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   369
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   370
  virtual void CschedUeConfigUpdateInd (const struct CschedUeConfigUpdateIndParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   371
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   372
  virtual void CschedCellConfigUpdateInd (const struct CschedCellConfigUpdateIndParameters& params) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   373
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   374
private:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   375
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   376
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   377
} // end namespace ns3
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   378
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   379
#endif /* FF_MAC_CSCHED_SAP_H */