src/lte/model/lte-enb-cmac-sap.h
author Tom Henderson <tomh@tomh.org>
Mon, 04 Jan 2016 14:11:51 -0800
changeset 11800 bd9c9abd5d6e
parent 9420 cd49c7790894
permissions -rw-r--r--
merge to ns-3-dev@11799:f410a3b3825b
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: Nicola Baldo <nbaldo@cttc.es>
8714
398bbcbb3f42 Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8007
diff changeset
    19
 *         Marco Miozzo <mmiozzo@cttc.es>
7886
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_CMAC_SAP_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    23
#define LTE_ENB_CMAC_SAP_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    24
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    25
#include <ns3/packet.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    26
#include <ns3/ff-mac-common.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    27
#include <ns3/eps-bearer.h>
8714
398bbcbb3f42 Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8007
diff changeset
    28
#include <ns3/lte-common.h>
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    29
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    30
namespace ns3 {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    31
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    32
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    33
class LteMacSapUser;
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
 * Service Access Point (SAP) offered by the eNB MAC to the eNB RRC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    37
 * See Femto Forum MAC Scheduler Interface Specification v 1.11, Figure 1
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    38
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    39
 * This is the MAC SAP Provider, i.e., the part of the SAP that contains the MAC methods called by the RRC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    40
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    41
class LteEnbCmacSapProvider
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    43
public:
7909
82b1281ea0a3 Updates for MACOS compilation (virtual destructors and variable types)
mmiozzo
parents: 7886
diff changeset
    44
  virtual ~LteEnbCmacSapProvider ();
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    45
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    46
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    47
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    48
   * @param ulBandwidth
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    49
   * @param dlBandwidth
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    50
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    51
  virtual void ConfigureMac (uint8_t ulBandwidth,
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    52
                             uint8_t dlBandwidth) = 0;
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
  virtual void AddUe (uint16_t rnti) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    56
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 8714
diff changeset
    57
  /** 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 8714
diff changeset
    58
   * remove the UE, e.g., after handover or termination of the RRC connection
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 8714
diff changeset
    59
   * 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 8714
diff changeset
    60
   * \param rnti 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 8714
diff changeset
    61
   */
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 8714
diff changeset
    62
  virtual void RemoveUe (uint16_t rnti) = 0;
7886
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
   * Logical Channel information to be passed to CmacSapProvider::ConfigureLc
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    66
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    67
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    68
  struct LcInfo
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    69
  {
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7909
diff changeset
    70
    uint16_t rnti;   /**< C-RNTI identifying the UE */
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    71
    uint8_t  lcId;    /**< logical channel identifier */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    72
    uint8_t  lcGroup; /**< logical channel group */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    73
    uint8_t  qci;     /**< QoS Class Identifier */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    74
    bool     isGbr;   /**< true if the bearer is GBR, false if the bearer is NON-GBR */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    75
    uint64_t mbrUl;   /**< maximum bitrate in uplink */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    76
    uint64_t mbrDl;   /**< maximum bitrate in downlink */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    77
    uint64_t gbrUl;   /**< guaranteed bitrate in uplink */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    78
    uint64_t gbrDl;   /**< guaranteed bitrate in downlink */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    79
  };
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    80
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    81
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    82
   * Add a new logical channel
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    83
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    84
   * \param lcinfo
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    85
   * \param msu
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    86
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    87
  virtual void AddLc (LcInfo lcinfo, LteMacSapUser* msu) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    88
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    89
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    90
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    91
   * Reconfigure an existing logical channel
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    92
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    93
   * \param lcinfo
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    94
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    95
  virtual void ReconfigureLc (LcInfo lcinfo) = 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    96
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    97
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    98
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    99
   * release an existing logical channel
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   100
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   101
   * \param rnti
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   102
   * \param lcid
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   103
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   104
  virtual void ReleaseLc (uint16_t rnti, uint8_t lcid) = 0;
8714
398bbcbb3f42 Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8007
diff changeset
   105
  
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   106
  /**
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   107
   * \brief Parameters for [re]configuring the UE 
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   108
   */
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   109
  struct UeConfig
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   110
  {
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   111
    /**
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   112
     * UE id within this cell
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   113
     */
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   114
    uint16_t  m_rnti;
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   115
    /**
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   116
     * Transmission mode [1..7] (i.e., SISO, MIMO, etc.)
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   117
     */
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   118
    uint8_t   m_transmissionMode;
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   119
  };
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   120
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   121
  /** 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   122
   * update the configuration of the UE
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   123
   * 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   124
   * \param params 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   125
   */
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   126
  virtual void UeUpdateConfigurationReq (UeConfig params) = 0;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   127
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   128
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   129
  /**
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   130
   * struct defining the RACH configuration of the MAC
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   131
   * 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   132
   */
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   133
  struct RachConfig
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   134
  {
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   135
    uint8_t numberOfRaPreambles;
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   136
    uint8_t preambleTransMax;
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   137
    uint8_t raResponseWindowSize;
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   138
  };
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   139
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   140
  /** 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   141
   * 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   142
   * \return the current RACH configuration of the MAC
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   143
   */
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   144
  virtual RachConfig GetRachConfig () = 0;
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   145
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   146
  /**
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   147
   * 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   148
   * 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   149
   */
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   150
  struct AllocateNcRaPreambleReturnValue
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   151
  {
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   152
    bool valid; ///< true if a valid RA config was allocated, false otherwise
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   153
    uint8_t raPreambleId; ///< random access preamble id
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   154
    uint8_t raPrachMaskIndex; /// PRACH mask index
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   155
  };
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   156
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   157
  /** 
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   158
   * Allocate a random access preamble for non-contention based random access (e.g., for handover).
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   159
   * 
9420
cd49c7790894 X2 handover working on the control plane
Nicola Baldo <nbaldo@cttc.es>
parents: 9413
diff changeset
   160
   * \param rnti the RNTI of the UE who will perform non-contention based random access
cd49c7790894 X2 handover working on the control plane
Nicola Baldo <nbaldo@cttc.es>
parents: 9413
diff changeset
   161
   * 
cd49c7790894 X2 handover working on the control plane
Nicola Baldo <nbaldo@cttc.es>
parents: 9413
diff changeset
   162
   * \return  the newly allocated random access preamble 
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   163
   */
9420
cd49c7790894 X2 handover working on the control plane
Nicola Baldo <nbaldo@cttc.es>
parents: 9413
diff changeset
   164
  virtual AllocateNcRaPreambleReturnValue AllocateNcRaPreamble (uint16_t rnti) = 0;
9413
20f1c6678ee2 improved LTE Random Access model
Nicola Baldo <nbaldo@cttc.es>
parents: 9406
diff changeset
   165
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   166
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   167
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   168
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   169
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   170
/**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   171
 * Service Access Point (SAP) offered by the MAC to the RRC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   172
 * See Femto Forum MAC Scheduler Interface Specification v 1.11, Figure 1
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   173
 *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   174
 * This is the MAC SAP User, i.e., the part of the SAP that contains the RRC methods called by the MAC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   175
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   176
class LteEnbCmacSapUser
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   177
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   178
public:
7909
82b1281ea0a3 Updates for MACOS compilation (virtual destructors and variable types)
mmiozzo
parents: 7886
diff changeset
   179
  virtual ~LteEnbCmacSapUser ();
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   180
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   181
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   182
   * request the allocation of a Temporary C-RNTI 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   183
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   184
   * \return the T-C-RNTI
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   185
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   186
  virtual uint16_t AllocateTemporaryCellRnti () = 0;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
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
   * notify the result of the last LC config operation
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   190
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   191
   * \param rnti the rnti of the user
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   192
   * \param lcid the logical channel id
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   193
   * \param success true if the operation was successful, false otherwise
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   194
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   195
  virtual void NotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success) = 0;
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   196
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   197
  /**
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   198
   * \brief Parameters for [re]configuring the UE 
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   199
   */
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   200
  struct UeConfig
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   201
  {
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   202
    /**
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   203
     * UE id within this cell
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   204
     */
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   205
    uint16_t  m_rnti;
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   206
    /**
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   207
     * Transmission mode [1..7] (i.e., SISO, MIMO, etc.)
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   208
     */
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   209
    uint8_t   m_transmissionMode;
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   210
  };
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   211
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   212
  /** 
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   213
   * Notify the RRC of a UE config updated requested by the MAC (normally, by the scheduler)
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   214
   * 
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   215
   * \param params 
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   216
   */
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9038
diff changeset
   217
  virtual void RrcConfigurationUpdateInd (UeConfig params) = 0;
7886
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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   222
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   223
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   224
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   225
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   226
} // namespace ns3
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   227
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   228
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   229
#endif // MAC_SAP_H