src/lte/model/lte-enb-mac.h
author Nicola Baldo <nbaldo@cttc.es>
Tue, 20 Nov 2012 18:18:01 +0100
changeset 9413 20f1c6678ee2
parent 9406 7f0f9d8f8e20
child 9414 7b0db3dbf19b
permissions -rw-r--r--
improved LTE Random Access model
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: Marco Miozzo  <marco.miozzo@cttc.es>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    19
 *         Nicola Baldo  <nbaldo@cttc.es>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    20
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    21
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    22
#ifndef LTE_ENB_MAC_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    23
#define LTE_ENB_MAC_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    24
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    25
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    26
#include <map>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    27
#include <vector>
7940
50dd9246e780 refactoring lteFlowId_t struct
mrequena
parents: 7934
diff changeset
    28
#include <ns3/lte-common.h>
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    29
#include <ns3/lte-mac-sap.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    30
#include <ns3/lte-enb-cmac-sap.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    31
#include <ns3/ff-mac-csched-sap.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    32
#include <ns3/ff-mac-sched-sap.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    33
#include <ns3/lte-enb-phy-sap.h>
7987
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
    34
#include "ns3/traced-value.h"
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
    35
#include "ns3/trace-source-accessor.h"
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    36
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    37
namespace ns3 {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    38
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8729
diff changeset
    39
class DlCqiLteControlMessage;
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8729
diff changeset
    40
class UlCqiLteControlMessage;
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8729
diff changeset
    41
class PdcchMapLteControlMessage;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    43
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    44
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    45
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    46
 * This class implements the MAC layer of the eNodeB device
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    47
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    48
class LteEnbMac :   public Object
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    49
{
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7887
diff changeset
    50
  friend class EnbMacMemberLteEnbCmacSapProvider;
8173
c471bd9a5f96 New design of the MAC SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8135
diff changeset
    51
  friend class EnbMacMemberLteMacSapProvider<LteEnbMac>;
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7887
diff changeset
    52
  friend class EnbMacMemberFfMacSchedSapUser;
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7887
diff changeset
    53
  friend class EnbMacMemberFfMacCschedSapUser;
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7887
diff changeset
    54
  friend class EnbMacMemberLteEnbPhySapUser;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    55
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    56
public:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    57
  static TypeId GetTypeId (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    58
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    59
  LteEnbMac (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    60
  virtual ~LteEnbMac (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    61
  virtual void DoDispose (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    62
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    63
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    64
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    65
   * \brief Set the scheduler SAP provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    66
   * \param s a pointer SAP provider of the FF packet scheduler
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    67
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    68
  void SetFfMacSchedSapProvider (FfMacSchedSapProvider* s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    69
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    70
   * \brief Get the scheduler SAP user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    71
   * \return a pointer to the SAP user of the scheduler
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    72
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    73
  FfMacSchedSapUser* GetFfMacSchedSapUser (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    74
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    75
   * \brief Set the control scheduler SAP provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    76
   * \param s a pointer to the control scheduler SAP provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    77
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    78
  void SetFfMacCschedSapProvider (FfMacCschedSapProvider* s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    79
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    80
   * \brief Get the control scheduler SAP user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    81
   * \return a pointer to the control scheduler SAP user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    82
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    83
  FfMacCschedSapUser* GetFfMacCschedSapUser (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    84
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    85
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    86
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    87
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    88
   * \brief Set the MAC SAP user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    89
   * \param s a pointer to the MAC SAP user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    90
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    91
  void SetLteMacSapUser (LteMacSapUser* s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    92
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    93
   * \brief Get the MAC SAP provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    94
   * \return a pointer to the SAP provider of the MAC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    95
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    96
  LteMacSapProvider* GetLteMacSapProvider (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    97
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    98
   * \brief Set the control MAC SAP user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    99
   * \param s a pointer to the control MAC SAP user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   100
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   101
  void SetLteEnbCmacSapUser (LteEnbCmacSapUser* s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   102
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   103
   * \brief Get the control MAC SAP provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   104
   * \return a pointer to the control MAC SAP provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   105
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   106
  LteEnbCmacSapProvider* GetLteEnbCmacSapProvider (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   107
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   108
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   109
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   110
  * \brief Get the eNB-PHY SAP User
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   111
  * \return a pointer to the SAP User of the PHY
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   112
  */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   113
  LteEnbPhySapUser* GetLteEnbPhySapUser ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   114
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   115
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   116
  * \brief Set the PHY SAP Provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   117
  * \param s a pointer to the PHY SAP provider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   118
  */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   119
  void SetLteEnbPhySapProvider (LteEnbPhySapProvider* s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   120
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   121
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   122
private:
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   123
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   124
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   125
  * \brief Receive a DL CQI ideal control message
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   126
  * \param msg the DL CQI message
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   127
  */
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8729
diff changeset
   128
  void ReceiveDlCqiLteControlMessage  (Ptr<DlCqiLteControlMessage> msg);
7943
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   129
9035
e40974228d94 Update Phy Layer for managing different frames for different set of channels (data vs. ctrl and srs)
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8729
diff changeset
   130
  void DoReceiveLteControlMessage (Ptr<LteControlMessage> msg);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   131
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   132
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   133
  * \brief Receive a CE element containing the buffer status report
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   134
  * \param msg the BSR message
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   135
  */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   136
  void ReceiveBsrMessage  (MacCeListElement_s bsr);
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8135
diff changeset
   137
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   138
 
9039
5bdf0c1be85f Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9036
diff changeset
   139
  void DoUlCqiReport (FfMacSchedSapProvider::SchedUlCqiInfoReqParameters ulcqi);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   140
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   141
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   142
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   143
  // forwarded from LteEnbCmacSapProvider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   144
  void DoConfigureMac (uint8_t ulBandwidth, uint8_t dlBandwidth);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   145
  void DoAddUe (uint16_t rnti);
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 8729
diff changeset
   146
  void DoRemoveUe (uint16_t rnti);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   147
  void DoAddLc (LteEnbCmacSapProvider::LcInfo lcinfo, LteMacSapUser* msu);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   148
  void DoReconfigureLc (LteEnbCmacSapProvider::LcInfo lcinfo);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   149
  void DoReleaseLc (uint16_t  rnti, uint8_t lcid);
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   150
  void DoUeUpdateConfigurationReq (LteEnbCmacSapProvider::UeConfig params);
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   151
  LteEnbCmacSapProvider::RachConfig DoGetRachConfig ();
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   152
  LteEnbCmacSapProvider::AllocateNcRaPreambleReturnValue DoAllocateNcRaPreamble ();
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   153
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   154
  // forwarded from LteMacSapProvider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   155
  void DoTransmitPdu (LteMacSapProvider::TransmitPduParameters);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   156
  void DoReportBufferStatus (LteMacSapProvider::ReportBufferStatusParameters);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   157
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   158
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   159
  // forwarded from FfMacCchedSapUser
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   160
  void DoCschedCellConfigCnf (FfMacCschedSapUser::CschedCellConfigCnfParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   161
  void DoCschedUeConfigCnf (FfMacCschedSapUser::CschedUeConfigCnfParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   162
  void DoCschedLcConfigCnf (FfMacCschedSapUser::CschedLcConfigCnfParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   163
  void DoCschedLcReleaseCnf (FfMacCschedSapUser::CschedLcReleaseCnfParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   164
  void DoCschedUeReleaseCnf (FfMacCschedSapUser::CschedUeReleaseCnfParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   165
  void DoCschedUeConfigUpdateInd (FfMacCschedSapUser::CschedUeConfigUpdateIndParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   166
  void DoCschedCellConfigUpdateInd (FfMacCschedSapUser::CschedCellConfigUpdateIndParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   167
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   168
  // forwarded from FfMacSchedSapUser
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   169
  void DoSchedDlConfigInd (FfMacSchedSapUser::SchedDlConfigIndParameters ind);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   170
  void DoSchedUlConfigInd (FfMacSchedSapUser::SchedUlConfigIndParameters params);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   171
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   172
  // forwarded from LteEnbPhySapUser
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   173
  void DoSubframeIndication (uint32_t frameNo, uint32_t subframeNo);
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   174
  void DoReceiveRachPreamble (uint8_t prachId);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   175
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   176
public:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   177
  // legacy public for use the Phy callback
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   178
  void DoReceivePhyPdu (Ptr<Packet> p);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   179
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   180
private:
7971
3cc205853837 lteFlowId_t --> LteFlowId_t
Nicola Baldo <nbaldo@cttc.es>
parents: 7943
diff changeset
   181
  std::map <LteFlowId_t, LteMacSapUser*> m_rlcAttached;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   182
7943
db21a8048ab9 PfFfMacScheduler update reception of UL-CQI coherently with previous allocation
mmiozzo
parents: 7940
diff changeset
   183
  std::vector <CqiListElement_s> m_dlCqiReceived; // DL-CQI received
9039
5bdf0c1be85f Add SRS based UL-CQI and update RR and PF schedulers for managing them
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9036
diff changeset
   184
  std::vector <FfMacSchedSapProvider::SchedUlCqiInfoReqParameters> m_ulCqiReceived; // UL-CQI received
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   185
  std::vector <MacCeListElement_s> m_ulCeReceived; // CE received (BSR up to now)
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8135
diff changeset
   186
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8135
diff changeset
   187
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   188
  /*
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   189
  * Map of UE's info element (see 4.3.12 of FF MAC Scheduler API)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   190
  */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   191
  std::map <uint16_t,UlInfoListElement_s> m_ulInfoListElements; 
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8135
diff changeset
   192
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   193
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   194
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   195
  LteMacSapProvider* m_macSapProvider;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   196
  LteEnbCmacSapProvider* m_cmacSapProvider;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   197
  LteMacSapUser* m_macSapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   198
  LteEnbCmacSapUser* m_cmacSapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   199
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   200
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   201
  FfMacSchedSapProvider* m_schedSapProvider;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   202
  FfMacCschedSapProvider* m_cschedSapProvider;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   203
  FfMacSchedSapUser* m_schedSapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   204
  FfMacCschedSapUser* m_cschedSapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   205
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   206
  // PHY-SAP
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   207
  LteEnbPhySapProvider* m_enbPhySapProvider;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   208
  LteEnbPhySapUser* m_enbPhySapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   209
7987
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   210
  uint32_t m_frameNo;
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   211
  uint32_t m_subframeNo;
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   212
  /**
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   213
   * Trace information regarding DL scheduling
8135
5f0e9d4bfa35 draft interference test
Nicola Baldo <nicola@baldo.biz>
parents: 7987
diff changeset
   214
   * Frame number, Subframe number, RNTI, MCS of TB1, size of TB1,
7987
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   215
   * MCS of TB2 (0 if not present), size of TB2 (0 if not present)
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   216
   */
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   217
  TracedCallback<uint32_t, uint32_t, uint16_t, uint8_t, uint16_t, uint8_t, uint16_t> m_dlScheduling;
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   218
  /**
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   219
   * Trace information regarding UL scheduling
8135
5f0e9d4bfa35 draft interference test
Nicola Baldo <nicola@baldo.biz>
parents: 7987
diff changeset
   220
   * Frame number, Subframe number, RNTI, MCS of TB, size of TB
7987
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   221
   */
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   222
  TracedCallback<uint32_t, uint32_t, uint16_t, uint8_t, uint16_t> m_ulScheduling;
8729
74de12409ee5 Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents: 8714
diff changeset
   223
  
74de12409ee5 Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents: 8714
diff changeset
   224
  uint8_t m_macChTtiDelay; // delay of MAC, PHY and channel in terms of TTIs
74de12409ee5 Update m_macChTtiDelay fixed to 4 in UL (standard) and make schedulers unaware of channel delays (tests updated according to new delay)
mmiozzo
parents: 8714
diff changeset
   225
  
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   226
  uint8_t m_numberOfRaPreambles;
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   227
  uint8_t m_preambleTransMax;
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   228
  uint8_t m_raResponseWindowSize;
7987
98ef81ea2457 Added MAC traces and sinks for UL and DL.
jnin
parents: 7971
diff changeset
   229
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   230
  /**
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   231
   * map storing as key the random acccess preamble IDs allocated for
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   232
   * non-contention based access, and as value the expiration time of
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   233
   * this allocation (so that stale preambles can be reused).
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   234
   * 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   235
   */
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   236
  std::map<uint8_t, Time> m_allocatedNcRaPreambleMap;
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   237
 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   238
  std::map<uint8_t, uint32_t> m_receivedRachPreambleCount;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   239
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   240
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   241
} // end namespace ns3
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   242
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   243
#endif /* LTE_ENB_MAC_ENTITY_H */