src/lte/model/lte-enb-rrc.h
author Manuel Requena <manuel.requena@cttc.es>
Tue, 27 Nov 2012 19:00:38 +0100
changeset 9435 a60d3218e8f4
parent 9418 150d133b96af
child 9436 3cc0554d7bf1
child 9456 3102416ce9d7
permissions -rw-r--r--
Add support of ResourceStatusUpdate X2 primitive in RRC
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
/*
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
     3
 * Copyright (c) 2011, 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
7886
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
 *
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
    18
 * Authors: Nicola Baldo <nbaldo@cttc.es>
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
    19
 *          Marco Miozzo <mmiozzo@cttc.es>
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
    20
 *          Manuel Requena <manuel.requena@cttc.es> 
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    21
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    22
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    23
#ifndef LTE_ENB_RRC_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    24
#define LTE_ENB_RRC_H
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    25
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    26
#include <ns3/nstime.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    27
#include <ns3/object.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    28
#include <ns3/packet.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    29
#include <ns3/lte-enb-cmac-sap.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    30
#include <ns3/lte-mac-sap.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    31
#include <ns3/ff-mac-sched-sap.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    32
#include <ns3/lte-pdcp-sap.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    33
#include <ns3/epc-x2-sap.h>
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
    34
#include <ns3/epc-enb-s1-sap.h>
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
    35
#include <ns3/lte-enb-cphy-sap.h>
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    36
#include <ns3/lte-rrc-sap.h>
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    37
#include <ns3/traced-callback.h>
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    38
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    39
#include <map>
9036
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
    40
#include <set>
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    41
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
namespace ns3 {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    43
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
    44
class LteRadioBearerInfo;
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    45
class LteSignalingRadioBearerInfo;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    46
class LteDataRadioBearerInfo;
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
    47
class EpcEnbS1SapUser;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
    48
class EpcEnbS1SapProvider;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
    49
class LteUeRrc;
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    50
class LteEnbRrc;
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    51
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    52
/**
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    53
 * Manages all the radio bearer information possessed by the ENB RRC for a single UE
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    54
 *
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    55
 */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    56
class UeManager : public Object
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    57
{
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    58
  friend class LtePdcpSpecificLtePdcpSapUser<UeManager>;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    59
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    60
public:
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    61
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    62
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
    63
  /**
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    64
   * The state of the UeManager at the eNB RRC
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    65
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    66
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    67
  enum State
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    68
    {
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    69
      INITIAL_RANDOM_ACCESS = 0,
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    70
      CONNECTION_SETUP,
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    71
      CONNECTED_NORMALLY,
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    72
      CONNECTION_RECONFIGURATION,
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    73
      CONNECTION_REESTABLISHMENT,
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    74
      HANDOVER_JOINING,
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    75
      HANDOVER_LEAVING,
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    76
      NUM_STATES
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    77
    };
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    78
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    79
  UeManager ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    80
 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    81
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    82
   * UeManager constructor
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    83
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    84
   * \param rrc pointer to the LteEnbRrc holding this UeManager
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    85
   * \param rnti RNTI of the UE
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    86
   * \param s initial state of the UeManager
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    87
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    88
   * \return 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    89
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    90
  UeManager (Ptr<LteEnbRrc> rrc, uint16_t rnti, State s);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    91
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    92
  virtual ~UeManager (void);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    93
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    94
  // inherited from Object
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    95
protected:
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    96
  virtual void DoDispose ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    97
public: 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    98
  static TypeId GetTypeId (void);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
    99
9407
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   100
  /** 
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   101
   * Set the identifiers of the source eNB for the case where a UE
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   102
   * joins the current eNB as part of a handover procedure 
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   103
   * 
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   104
   * \param sourceCellId 
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   105
   * \param sourceX2apId 
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   106
   */
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   107
  void SetSource (uint16_t sourceCellId, uint16_t sourceX2apId);
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   108
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   109
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   110
   * Setup a new data radio bearer, including both the configuration
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   111
   * within the eNB and the necessary RRC signaling with the UE
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   112
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   113
   * \param bearer 
9408
80fa1de0bef2 implemented UeManager::GetErabList ()
Nicola Baldo <nbaldo@cttc.es>
parents: 9407
diff changeset
   114
   * \param gtpTeid S1-bearer GTP tunnel endpoint identifier, see 36.423 9.2.1
80fa1de0bef2 implemented UeManager::GetErabList ()
Nicola Baldo <nbaldo@cttc.es>
parents: 9407
diff changeset
   115
   * \param transportLayerAddress  IP Address of the SGW, see 36.423 9.2.1
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   116
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   117
   * \return the EPS Bearer Id
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   118
   */
9408
80fa1de0bef2 implemented UeManager::GetErabList ()
Nicola Baldo <nbaldo@cttc.es>
parents: 9407
diff changeset
   119
  uint8_t SetupDataRadioBearer (EpsBearer bearer, uint32_t gtpTeid, Ipv4Address transportLayerAddress);
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   120
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   121
  /**
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   122
   *
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   123
   * Release a given radio bearer
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   124
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   125
   * \param drbid the data radio bearer id of the bearer to be released
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   126
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   127
  void ReleaseDataRadioBearer (uint8_t drbid);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   128
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   129
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   130
   * schedule an RRC Connection Reconfiguration procedure with the UE
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   131
   * 
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   132
   */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   133
  void ScheduleRrcConnectionReconfiguration ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   134
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   135
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   136
   * In the X2-based handover procedure, at the source eNB, trigger
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   137
   * handover by sending to the UE a RRC Connection 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   138
   * Reconfiguration message including Mobility Control Info
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   139
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   140
   * \param rcr the RrcConnectionReconfiguration message including the
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   141
   * Mobility Control Info. The content of this struct shall be
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   142
   * provided by the target eNB.
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   143
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   144
  void SendHandoverCommand (LteRrcSap::RrcConnectionReconfiguration rcr);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   145
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   146
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   147
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   148
   * \return the HandoverPreparationInfo sent by the source eNB to the
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   149
   * target eNB in the X2-based handover procedure
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   150
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   151
  LteRrcSap::RadioResourceConfigDedicated GetRadioResourceConfigForHandoverPreparationInfo ();
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   152
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   153
  /** 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   154
   * 
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   155
   * \return retrieve the data that the target eNB needs to send to the source
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   156
   * eNB as the Handover Command in the X2-based handover
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   157
   * procedure.
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   158
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   159
  LteRrcSap::RrcConnectionReconfiguration GetHandoverCommand ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   160
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   161
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   162
   * Send a data packet over the appropriate Data Radio Bearer
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   163
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   164
   * \param bid the corresponding EPS Bearer ID
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   165
   * \param p the packet
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   166
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   167
  void SendData (uint8_t bid, Ptr<Packet> p);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   168
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   169
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   170
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   171
   * \return a list of ERAB-to-be-setup items to be put in a X2 HO REQ message
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   172
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   173
  std::vector<EpcX2Sap::ErabToBeSetupItem> GetErabList ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   174
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   175
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   176
  // methods forwarded from RRC SAP
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   177
  void CompleteSetupUe (LteEnbRrcSapProvider::CompleteSetupUeParameters params);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   178
  void RecvRrcConnectionRequest (LteRrcSap::RrcConnectionRequest msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   179
  void RecvRrcConnectionSetupCompleted (LteRrcSap::RrcConnectionSetupCompleted msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   180
  void RecvRrcConnectionReconfigurationCompleted (LteRrcSap::RrcConnectionReconfigurationCompleted msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   181
  void RecvRrcConnectionReestablishmentRequest (LteRrcSap::RrcConnectionReestablishmentRequest msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   182
  void RecvRrcConnectionReestablishmentComplete (LteRrcSap::RrcConnectionReestablishmentComplete msg);
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
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   185
  // methods forwarded from CMAC SAP
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   186
  void CmacUeConfigUpdateInd (LteEnbCmacSapUser::UeConfig cmacParams);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   187
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   188
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   189
  // methods forwarded from PDCP SAP
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   190
  void DoReceivePdcpSdu (LtePdcpSapUser::ReceivePdcpSduParameters params);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   191
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   192
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   193
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   194
   * \return the RNTI, i.e., an UE identifier that is unique within
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   195
   * the cell
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   196
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   197
  uint16_t GetRnti (void);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   198
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   199
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   200
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   201
   * \return the IMSI, i.e., a globally unique UE identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   202
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   203
  uint64_t GetImsi (void);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   204
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   205
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   206
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   207
   * \return the SRS Configuration Index
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   208
   */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   209
  uint16_t GetSrsConfigurationIndex (void);  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   210
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   211
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   212
   * Set the SRS configuration index and do the necessary reconfiguration
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   213
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   214
   * \param srsConfIndex 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   215
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   216
  void SetSrsConfigurationIndex (uint16_t srsConfIndex);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   217
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   218
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   219
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   220
   * \return the current state
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   221
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   222
  State GetState ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   223
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   224
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   225
private:
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   226
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   227
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   228
   * Add a new LteDataRadioBearerInfo structure to the UeManager
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   229
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   230
   * \param radioBearerInfo 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   231
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   232
   * \return the id of the newly added data radio bearer structure
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   233
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   234
  uint8_t AddDataRadioBearerInfo (Ptr<LteDataRadioBearerInfo> radioBearerInfo);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   235
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   236
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   237
   * \param drbid the Data Radio Bearer id
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   238
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   239
   * \return the corresponding LteDataRadioBearerInfo
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   240
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   241
  Ptr<LteDataRadioBearerInfo> GetDataRadioBearerInfo (uint8_t drbid);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   242
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   243
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   244
   * remove the LteDataRadioBearerInfo corresponding to a bearer being released
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   245
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   246
   * \param drbid the Data Radio Bearer id
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   247
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   248
  void RemoveDataRadioBearerInfo (uint8_t drbid);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   249
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   250
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   251
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   252
   * \return an RrcConnectionReconfiguration struct built based on the
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   253
   * current configuration
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   254
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   255
  LteRrcSap::RrcConnectionReconfiguration BuildRrcConnectionReconfiguration ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   256
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   257
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   258
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   259
   * \return a RadioResourceConfigDedicated struct built based on the
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   260
   * current configuration
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   261
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   262
  LteRrcSap::RadioResourceConfigDedicated BuildRadioResourceConfigDedicated ();
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   263
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   264
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   265
  /** 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   266
   * 
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   267
   * \return a newly allocated identifier for a new RRC transaction
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   268
   */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   269
  uint8_t GetNewRrcTransactionIdentifier ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   270
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   271
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   272
   * \param lcid a Logical Channel Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   273
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   274
   * \return the corresponding Data Radio Bearer Id
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   275
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   276
  uint8_t Lcid2Drbid (uint8_t lcid);
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   277
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   278
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   279
   * \param drbid a Data Radio Bearer Id
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   280
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   281
   * \return the corresponding  Logical Channel Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   282
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   283
  uint8_t Drbid2Lcid (uint8_t drbid);
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   284
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   285
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   286
   * \param lcid a  Logical Channel Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   287
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   288
   * \return the corresponding EPS Bearer Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   289
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   290
  uint8_t Lcid2Bid (uint8_t lcid);
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   291
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   292
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   293
   * \param bid  an EPS Bearer Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   294
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   295
   * \return the corresponding Logical Channel Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   296
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   297
  uint8_t Bid2Lcid (uint8_t bid);
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   298
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   299
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   300
   * \param drbid Data Radio Bearer Id
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   301
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   302
   * \return the corresponding EPS Bearer Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   303
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   304
  uint8_t Drbid2Bid (uint8_t drbid);
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   305
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   306
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   307
   * \param bid an EPS Bearer Identifier
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   308
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   309
   * \return the corresponding Data Radio Bearer Id
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   310
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   311
  uint8_t Bid2Drbid (uint8_t bid);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   312
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   313
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   314
   * Switch the UeManager to the given state
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   315
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   316
   * \param s the given state
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   317
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   318
  void SwitchToState (State s);
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   319
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   320
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   321
  std::map <uint8_t, Ptr<LteDataRadioBearerInfo> > m_drbMap;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   322
  Ptr<LteSignalingRadioBearerInfo> m_srb0;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   323
  Ptr<LteSignalingRadioBearerInfo> m_srb1;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   324
  uint8_t m_lastAllocatedDrbid;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   325
  uint16_t m_rnti;
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   326
  uint64_t m_imsi;
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   327
  uint8_t m_lastRrcTransactionIdentifier;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   328
  LteRrcSap::PhysicalConfigDedicated m_physicalConfigDedicated;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   329
  Ptr<LteEnbRrc> m_rrc;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   330
  State m_state;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   331
  LtePdcpSapUser* m_pdcpSapUser;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   332
  bool m_pendingRrcConnectionReconfiguration;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   333
  TracedCallback<State, State> m_stateTransitionCallback;
9407
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   334
  uint16_t m_sourceX2apId;
Nicola Baldo <nbaldo@cttc.es>
parents: 9406 9405
diff changeset
   335
  uint16_t m_sourceCellId;
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   336
};
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7901
diff changeset
   337
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   338
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   339
/**
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   340
 * \ingroup lte
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   341
 * 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   342
 * The LTE Radio Resource Control entity at the eNB
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   343
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   344
class LteEnbRrc : public Object
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   345
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   346
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7886
diff changeset
   347
  friend class EnbRrcMemberLteEnbCmacSapUser;
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   348
  friend class MemberLteEnbRrcSapProvider<LteEnbRrc>;
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   349
  friend class MemberEpcEnbS1SapUser<LteEnbRrc>;
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   350
  friend class EpcX2SpecificEpcX2SapUser<LteEnbRrc>;
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   351
  friend class UeManager;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   352
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   353
public:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   354
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   355
   * create an RRC instance for use within an eNB
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   356
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   357
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   358
  LteEnbRrc ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   359
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   360
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   361
   * Destructor
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   362
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   363
  virtual ~LteEnbRrc ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   364
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   365
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   366
  // inherited from Object
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   367
protected:
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   368
  virtual void DoDispose (void);
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   369
public:
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   370
  static TypeId GetTypeId (void);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   371
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   372
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   373
  /**
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   374
   * Set the X2 SAP this RRC should interact with
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   375
   * \param s the X2 SAP Provider to be used by this RRC entity
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   376
   */
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   377
  void SetEpcX2SapProvider (EpcX2SapProvider* s);
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   378
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   379
  /** 
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   380
   * Get the X2 SAP offered by this RRC
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   381
   * \return s the X2 SAP User interface offered to the X2 entity by this RRC entity
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   382
   */
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   383
  EpcX2SapUser* GetEpcX2SapUser ();
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   384
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   385
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   386
  /**
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   387
   * set the CMAC SAP this RRC should interact with
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   388
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   389
   * \param s the CMAC SAP Provider to be used by this RRC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   390
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   391
  void SetLteEnbCmacSapProvider (LteEnbCmacSapProvider * s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   392
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   393
  /** 
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   394
   * Get the CMAC SAP offered by this RRC
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   395
   * \return s the CMAC SAP User interface offered to the MAC by this RRC
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   396
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   397
  LteEnbCmacSapUser* GetLteEnbCmacSapUser ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   398
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   399
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   400
  /**
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   401
   * set the RRC SAP this RRC should interact with
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   402
   *
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   403
   * \param s the RRC SAP User to be used by this RRC
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   404
   */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   405
  void SetLteEnbRrcSapUser (LteEnbRrcSapUser * s);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   406
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   407
  /**
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   408
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   409
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   410
   * \return s the RRC SAP Provider interface offered to the MAC by this RRC
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   411
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   412
  LteEnbRrcSapProvider* GetLteEnbRrcSapProvider ();
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   413
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   414
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   415
   * set the MAC SAP provider. The eNB RRC does not use this
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   416
   * directly, but it needs to provide it to newly created RLC instances.
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   417
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   418
   * \param s the MAC SAP provider that will be used by all
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   419
   * newly created RLC instances
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   420
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   421
  void SetLteMacSapProvider (LteMacSapProvider* s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   422
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   423
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   424
  /** 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   425
   * Set the S1 SAP Provider
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   426
   * 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   427
   * \param s the S1 SAP Provider
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   428
   */
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   429
  void SetS1SapProvider (EpcEnbS1SapProvider * s);
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   430
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   431
  /** 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   432
   * 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   433
   * \return the S1 SAP user
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   434
   */
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   435
  EpcEnbS1SapUser* GetS1SapUser ();
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   436
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   437
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   438
  /**
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   439
   * set the CPHY SAP this RRC should use to interact with the PHY
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   440
   *
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   441
   * \param s the CPHY SAP Provider
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   442
   */
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   443
  void SetLteEnbCphySapProvider (LteEnbCphySapProvider * s);
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   444
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   445
  /**
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   446
   *
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   447
   *
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   448
   * \return s the CPHY SAP User interface offered to the PHY by this RRC
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   449
   */
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   450
  LteEnbCphySapUser* GetLteEnbCphySapUser ();
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   451
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   452
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   453
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   454
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   455
   * \param rnti the identifier of an UE
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   456
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   457
   * \return the corresponding UeManager instance
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   458
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   459
  Ptr<UeManager> GetUeManager (uint16_t rnti);
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   460
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   461
  /**
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   462
   * configure cell-specific parameters
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   463
   *
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   464
   * \param ulBandwidth the uplink bandwdith in number of RB
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   465
   * \param dlBandwidth the downlink bandwidth in number of RB
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   466
   * \param ulEarfcn the UL EARFCN
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   467
   * \param dlEarfcn the DL EARFCN
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   468
   * \param cellId the ID of the cell
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   469
   */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   470
  void ConfigureCell (uint8_t ulBandwidth,
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   471
                      uint8_t dlBandwidth,
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   472
                      uint16_t ulEarfcn, 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   473
                      uint16_t dlEarfcn,
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   474
                      uint16_t cellId);
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   475
  
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   476
  /** 
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   477
   * set the cell id of this eNB
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   478
   * 
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   479
   * \param m_cellId 
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   480
   */
9036
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   481
  void SetCellId (uint16_t m_cellId);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   482
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   483
  /** 
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   484
   * Enqueue an IP data packet on the proper bearer for downlink
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   485
   * transmission. Normally expected to be called by the NetDevice
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   486
   * forwarding a packet coming from the EpcEnbApplication 
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   487
   * 
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   488
   * \param p the packet
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   489
   * 
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   490
   * \return true if successful, false if an error occurred
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   491
   */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   492
  bool SendData (Ptr<Packet> p);
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   493
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   494
  /** 
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   495
   * set the callback used to forward data packets up the stack
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   496
   * 
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   497
   * \param void 
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   498
   * \param cb 
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   499
   */
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   500
  void SetForwardUpCallback (Callback <void, Ptr<Packet> > cb);
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   501
9038
e1d67c8aa95b Polish code according to codereview
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9036
diff changeset
   502
  /** 
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   503
   * Send a HandoverRequest through the X2 SAP interface
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   504
   * 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   505
   * This method will trigger a handover which is started by the RRC
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   506
   * by sending a handover request to the target eNB over the X2
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   507
   * interface 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   508
   *
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   509
   * \param imsi the id of the UE to be handed over 
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   510
   * \param cellId the id of the target eNB
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   511
   */
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   512
  void SendHandoverRequest (uint16_t rnti, uint16_t cellId);
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   513
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   514
  /**
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   515
   * Identifies how EPS Bearer parameters are mapped to different RLC types
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   516
   * 
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   517
   */
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   518
  enum LteEpsBearerToRlcMapping_t {RLC_SM_ALWAYS = 1,
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   519
                                   RLC_UM_ALWAYS = 2,
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   520
                                   RLC_AM_ALWAYS = 3,
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   521
                                   PER_BASED = 4};
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   522
private:
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   523
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   524
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   525
  // methods forwarded from RRC SAP
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   526
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   527
  void DoCompleteSetupUe (uint16_t rnti, LteEnbRrcSapProvider::CompleteSetupUeParameters params);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   528
  void DoRecvRrcConnectionRequest (uint16_t rnti, LteRrcSap::RrcConnectionRequest msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   529
  void DoRecvRrcConnectionSetupCompleted (uint16_t rnti, LteRrcSap::RrcConnectionSetupCompleted msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   530
  void DoRecvRrcConnectionReconfigurationCompleted (uint16_t rnti, LteRrcSap::RrcConnectionReconfigurationCompleted msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   531
  void DoRecvRrcConnectionReestablishmentRequest (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentRequest msg);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   532
  void DoRecvRrcConnectionReestablishmentComplete (uint16_t rnti, LteRrcSap::RrcConnectionReestablishmentComplete msg);
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   533
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   534
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   535
  // S1 SAP methods
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   536
  void DoDataRadioBearerSetupRequest (EpcEnbS1SapUser::DataRadioBearerSetupRequestParameters params);
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   537
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   538
9405
ec9b557065cc Add UE Context Release primitive to X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 9346
diff changeset
   539
  // X2 SAP methods
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   540
  void DoRecvHandoverRequest (EpcX2SapUser::HandoverRequestParams params);
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   541
  void DoRecvHandoverRequestAck (EpcX2SapUser::HandoverRequestAckParams params);
9405
ec9b557065cc Add UE Context Release primitive to X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 9346
diff changeset
   542
  void DoRecvUeContextRelease (EpcX2SapUser::UeContextReleaseParams params);
9418
150d133b96af Add support of Load Information primitive in RRC
Manuel Requena <manuel.requena@cttc.es>
parents: 9408
diff changeset
   543
  void DoRecvLoadInformation (EpcX2SapUser::LoadInformationParams params);
9435
a60d3218e8f4 Add support of ResourceStatusUpdate X2 primitive in RRC
Manuel Requena <manuel.requena@cttc.es>
parents: 9418
diff changeset
   544
  void DoRecvResourceStatusUpdate (EpcX2SapUser::ResourceStatusUpdateParams params);
a60d3218e8f4 Add support of ResourceStatusUpdate X2 primitive in RRC
Manuel Requena <manuel.requena@cttc.es>
parents: 9418
diff changeset
   545
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   546
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   547
  // CMAC SAP methods
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   548
  uint16_t DoAllocateTemporaryCellRnti ();
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   549
  void DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success);
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   550
  void DoRrcConfigurationUpdateInd (LteEnbCmacSapUser::UeConfig params);
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   551
  
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   552
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   553
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   554
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   555
  /**
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   556
   * Allocate a new RNTI for a new UE. This is done in the following cases:
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   557
   *   * T-C-RNTI allocation upon contention-based MAC Random Access procedure
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   558
   *   * target cell RNTI allocation upon handover
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   559
   *
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   560
   * \param state the initial state of the UeManager
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   561
   *
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   562
   * \return the newly allocated RNTI
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   563
   */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   564
  uint16_t AddUe (UeManager::State state);
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   565
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   566
  /**
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   567
   * remove a UE from the cell
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   568
   *
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   569
   * \param rnti the C-RNTI identiftying the user
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   570
   */
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   571
  void RemoveUe (uint16_t rnti);
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   572
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   573
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   574
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   575
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   576
   * \param bearer the specification of an EPS bearer
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   577
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   578
   * \return the type of RLC that is to be created for the given EPS bearer
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   579
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   580
  TypeId GetRlcType (EpsBearer bearer);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   581
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   582
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   583
   * Allocate a new SRS configuration index for a new UE. 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   584
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   585
   * \note this method can have the side effect of updating the SRS
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   586
   * configuration index of all UEs
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   587
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   588
   * \return the newly allocated SRS configuration index
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   589
   */
9036
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   590
  uint16_t GetNewSrsConfigurationIndex (void);
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   591
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   592
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   593
   * remove a previously allocated SRS configuration index
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   594
   *
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   595
   * \note this method can have the side effect of updating the SRS
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   596
   * configuration index of all UEs
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   597
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   598
   * \param srcCi the indext to be removed
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   599
   */
9038
e1d67c8aa95b Polish code according to codereview
Marco Miozzo <marco.miozzo@cttc.es>
parents: 9036
diff changeset
   600
  void RemoveSrsConfigurationIndex (uint16_t srcCi);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   601
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   602
 
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   603
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   604
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   605
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   606
   * \param bearer the characteristics of the bearer
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   607
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   608
   * \return the Logical Channel Group in a bearer with these
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   609
   * characteristics is put. Used for MAC Buffer Status Reporting purposes. 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   610
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   611
  uint8_t GetLogicalChannelGroup (EpsBearer bearer);
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   612
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   613
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   614
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   615
   * \param bearer the characteristics of the bearer
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   616
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   617
   * \return the priority level of a bearer with these
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   618
   * characteristics is put. Used for the part of UL MAC Scheduling
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   619
   * carried out by the UE
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   620
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   621
  uint8_t GetLogicalChannelPriority (EpsBearer bearer);
9346
00e674a0d567 merge lena-dev and lena-epc
Nicola Baldo <nbaldo@cttc.es>
parents: 9345 9041
diff changeset
   622
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   623
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   624
  /** 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   625
   * method used to periodically send System Information
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   626
   * 
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   627
   */
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   628
  void SendSystemInformation ();
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   629
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   630
  Callback <void, Ptr<Packet> > m_forwardUpCallback;
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8152
diff changeset
   631
9323
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   632
  EpcX2SapUser* m_x2SapUser;
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   633
  EpcX2SapProvider* m_x2SapProvider;
c4c734a16f4f Add support for X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8714
diff changeset
   634
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   635
  LteEnbCmacSapUser* m_cmacSapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   636
  LteEnbCmacSapProvider* m_cmacSapProvider;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   637
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   638
  LteEnbRrcSapUser* m_rrcSapUser;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   639
  LteEnbRrcSapProvider* m_rrcSapProvider;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   640
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   641
  LteMacSapProvider* m_macSapProvider;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   642
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   643
  EpcEnbS1SapProvider* m_s1SapProvider;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   644
  EpcEnbS1SapUser* m_s1SapUser;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   645
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   646
  LteEnbCphySapUser* m_cphySapUser;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   647
  LteEnbCphySapProvider* m_cphySapProvider;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   648
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   649
  bool m_configured;
9345
8290ae6cab62 add/remove UEs and bearers upon handover
Nicola Baldo <nicola@baldo.biz>
parents: 9338
diff changeset
   650
  uint16_t m_cellId;
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   651
  uint16_t m_dlEarfcn;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   652
  uint16_t m_ulEarfcn;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   653
  uint16_t m_dlBandwidth;
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   654
  uint16_t m_ulBandwidth;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   655
  uint16_t m_lastAllocatedRnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   656
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   657
  std::map<uint16_t, Ptr<UeManager> > m_ueMap;  
8714
398bbcbb3f42 Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8389
diff changeset
   658
  
398bbcbb3f42 Add MIMO model, test and documentation
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8389
diff changeset
   659
  uint8_t m_defaultTransmissionMode;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   660
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8714
diff changeset
   661
  enum LteEpsBearerToRlcMapping_t m_epsBearerToRlcMapping;
9406
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   662
7f0f9d8f8e20 new LTE RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 9346
diff changeset
   663
  Time m_systemInformationPeriodicity;
9036
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   664
  
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   665
  // SRS related attributes
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   666
  uint16_t m_srsCurrentPeriodicityId;
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   667
  std::set<uint16_t> m_ueSrsConfigurationIndexSet;
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   668
  uint16_t m_lastAllocatedConfigurationIndex;
5e09b29d4af5 Add SRS signaling
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8714
diff changeset
   669
  bool m_reconfigureUes;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   670
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   671
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   672
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   673
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   674
} // namespace ns3
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   675
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   676
#endif // LTE_ENB_RRC_H