src/lte/model/lte-enb-rrc.cc
author Nicola Baldo <nbaldo@cttc.es>
Tue, 10 May 2011 12:03:38 +0200
changeset 8032 ecc5171f1f96
parent 8007 845888b95c15
child 8148 09e2d03022a2
child 8153 1823fe30eb2f
permissions -rw-r--r--
fixed IMSI initialization
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>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    19
 */
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    20
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    21
#include <ns3/fatal-error.h>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    22
#include <ns3/log.h>
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    23
#include "ns3/pointer.h"
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    24
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    25
#include "lte-enb-rrc.h"
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    26
#include "lte-rlc.h"
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    27
#include "ns3/object-map.h"
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    28
#include "ns3/object-vector.h"
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    29
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    30
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    31
NS_LOG_COMPONENT_DEFINE ("LteEnbRrc");
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    32
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    33
namespace ns3 {
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
7905
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
    37
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
    38
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    39
// ///////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    40
// CMAC SAP forwarder
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    41
// ///////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7886
diff changeset
    43
class EnbRrcMemberLteEnbCmacSapUser : public LteEnbCmacSapUser
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    44
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    45
public:
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7886
diff changeset
    46
  EnbRrcMemberLteEnbCmacSapUser (LteEnbRrc* rrc);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    47
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    48
  virtual void NotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    49
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    50
private:
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    51
  LteEnbRrc* m_rrc;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    52
};
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    53
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7886
diff changeset
    54
EnbRrcMemberLteEnbCmacSapUser::EnbRrcMemberLteEnbCmacSapUser (LteEnbRrc* rrc)
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    55
  : m_rrc (rrc)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    56
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    57
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    58
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    59
void
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7886
diff changeset
    60
EnbRrcMemberLteEnbCmacSapUser::NotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success)
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    61
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    62
  m_rrc->DoNotifyLcConfigResult (rnti, lcid, success);
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
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
// per-UE radio bearer info management
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    69
// /////////////////////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    70
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    71
class EnbRadioBearerInfo : public Object
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    72
{
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    73
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    74
public:
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    75
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    76
  EnbRadioBearerInfo(void);
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    77
  virtual ~EnbRadioBearerInfo (void);
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    78
  static TypeId GetTypeId (void);
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    79
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    80
  void SetRlc(Ptr<LteRlc> rlc);
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    81
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    82
private:
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    83
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    84
  Ptr<LteRlc> m_rlc;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    85
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    86
};
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    87
7905
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
    88
NS_OBJECT_ENSURE_REGISTERED(EnbRadioBearerInfo);
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
    89
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    90
EnbRadioBearerInfo::EnbRadioBearerInfo (void)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    91
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    92
  // Nothing to do here
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    93
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    94
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    95
EnbRadioBearerInfo::~EnbRadioBearerInfo (void)
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    96
{
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    97
  // Nothing to do here
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    98
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
    99
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   100
TypeId EnbRadioBearerInfo::GetTypeId (void)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   101
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   102
  static TypeId
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   103
  tid =
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   104
    TypeId ("ns3::EnbRadioBearerInfo")
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   105
    .SetParent<Object> ()
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   106
    .AddConstructor<EnbRadioBearerInfo> ()
7905
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
   107
    .AddAttribute ("LteRlc", "RLC instance of the radio bearer.",
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   108
                   PointerValue (),
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   109
                   MakePointerAccessor (&EnbRadioBearerInfo::m_rlc),
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   110
                   MakePointerChecker<LteRlc> ())
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   111
    ;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   112
  return tid;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   113
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   114
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   115
void EnbRadioBearerInfo::SetRlc(Ptr<LteRlc> rlc)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   116
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   117
  m_rlc = rlc;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   118
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   119
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   120
7905
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
   121
NS_OBJECT_ENSURE_REGISTERED(UeInfo);
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
   122
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   123
UeInfo::UeInfo (void) :
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   124
    m_lastAllocatedId (0)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   125
{
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   126
  m_imsi = 0;
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   127
}
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   128
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   129
UeInfo::UeInfo (uint64_t imsi) :
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   130
    m_lastAllocatedId (0)
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   131
{
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   132
  m_imsi = imsi;
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   133
}
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   134
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   135
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   136
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   137
UeInfo::~UeInfo (void)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   138
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   139
  // Nothing to do here
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   140
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   141
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   142
TypeId UeInfo::GetTypeId (void)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   143
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   144
  static TypeId  tid = TypeId ("ns3::UeInfo")
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   145
    .SetParent<Object> ()
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   146
    .AddConstructor<UeInfo> ()
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   147
    .AddAttribute ("RadioBearerMap", "List of UE RadioBearerInfo by LCID.",
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   148
                   ObjectMapValue (),
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   149
                   MakeObjectMapAccessor (&UeInfo::m_rbMap),
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   150
                   MakeObjectMapChecker<EnbRadioBearerInfo> ())
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   151
/*    .AddAttribute("Imsi",
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   152
                   "International Mobile Subscriber Identity assigned to this UE",
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   153
                   UintegerValue (1),
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   154
                   MakeUintegerAccessor (&UeInfo::m_imsi),
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   155
                   MakeUintegerChecker<uint64_t> ())*/
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   156
    ;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   157
  return tid;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   158
}
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   159
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   160
uint64_t
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   161
UeInfo::GetImsi (void)
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   162
{
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   163
  return m_imsi;
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   164
}
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   165
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   166
uint8_t
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   167
UeInfo::AddRadioBearer (Ptr<EnbRadioBearerInfo> rbi)
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   168
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   169
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   170
  for (uint8_t lcid = m_lastAllocatedId; lcid != m_lastAllocatedId - 1; ++lcid)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   171
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   172
      if (lcid != 0)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   173
        {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   174
          if (m_rbMap.find (lcid) == m_rbMap.end ())
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   175
            {
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   176
              m_rbMap.insert (std::pair<uint8_t, Ptr<EnbRadioBearerInfo> >(lcid, rbi));
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   177
              m_lastAllocatedId = lcid;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   178
              return lcid;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   179
            }
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   180
        }
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   181
    }
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   182
  NS_LOG_WARN ("no more logical channel ids available");
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   183
  return 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   184
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   185
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   186
Ptr<EnbRadioBearerInfo>
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   187
UeInfo::GetRadioBerer (uint8_t lcid)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   188
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   189
  NS_LOG_FUNCTION (this << (uint32_t) lcid);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   190
  NS_ASSERT (0 != lcid);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   191
  return m_rbMap.find (lcid)->second;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   192
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   193
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   194
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   195
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   196
UeInfo::RemoveRadioBearer (uint8_t lcid)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   197
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   198
  NS_LOG_FUNCTION (this << (uint32_t) lcid);
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   199
  std::map <uint8_t, Ptr<EnbRadioBearerInfo> >::iterator it = m_rbMap.find (lcid);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   200
  NS_ASSERT_MSG (it != m_rbMap.end (), "request to remove radio bearer with unknown lcid " << lcid);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   201
  m_rbMap.erase (it);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   202
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   203
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   204
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   205
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   206
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   207
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   208
// ///////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   209
// eNB RRC methods
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   210
// ///////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   211
7905
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
   212
NS_OBJECT_ENSURE_REGISTERED (LteEnbRrc);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   213
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   214
LteEnbRrc::LteEnbRrc ()
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   215
  : m_cmacSapProvider (0),
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   216
    m_ffMacSchedSapProvider (0),
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   217
    m_macSapProvider (0),
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   218
    m_configured (false),
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   219
    m_lastAllocatedRnti (0)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   220
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   221
  NS_LOG_FUNCTION (this);
7888
06a7383d3bf0 renamed member SAPs
Nicola Baldo <nbaldo@cttc.es>
parents: 7886
diff changeset
   222
  m_cmacSapUser = new EnbRrcMemberLteEnbCmacSapUser (this);
7886
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
LteEnbRrc::~LteEnbRrc ()
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   227
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   228
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   229
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   230
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   231
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   232
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   233
LteEnbRrc::DoDispose ()
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   234
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   235
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   236
  delete m_cmacSapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   237
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   238
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   239
TypeId
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   240
LteEnbRrc::GetTypeId (void)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   241
{
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   242
  NS_LOG_FUNCTION ("LteEnbRrc::GetTypeId");
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   243
  static TypeId tid = TypeId ("ns3::LteEnbRrc")
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   244
    .SetParent<Object> ()
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   245
    .AddConstructor<LteEnbRrc> ()
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   246
    .AddAttribute ("UeMap", "List of UE Info by C-RNTI.",
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   247
                   ObjectMapValue (),
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   248
                   MakeObjectMapAccessor (&LteEnbRrc::m_ueMap),
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   249
                   MakeObjectMapChecker<UeInfo> ())
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   250
     ;
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   251
  return tid;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   252
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   253
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   254
uint16_t
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   255
LteEnbRrc::GetLastAllocatedRnti() const
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   256
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   257
    NS_LOG_FUNCTION (this);
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   258
    return m_lastAllocatedRnti;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   259
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   260
std::map<uint16_t,Ptr<UeInfo> > LteEnbRrc::GetUeMap(void) const
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   261
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   262
    return m_ueMap;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   263
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   264
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   265
void LteEnbRrc::SetUeMap(std::map<uint16_t,Ptr<UeInfo> > ueMap)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   266
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   267
  this->m_ueMap = ueMap;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   268
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   269
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   270
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   271
void
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   272
LteEnbRrc::SetLastAllocatedRnti(uint16_t lastAllocatedRnti)
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   273
{
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   274
    NS_LOG_FUNCTION (this << lastAllocatedRnti);
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   275
    m_lastAllocatedRnti = lastAllocatedRnti;
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   276
}
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   277
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   278
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   279
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   280
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   281
LteEnbRrc::SetLteEnbCmacSapProvider (LteEnbCmacSapProvider * s)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   282
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   283
  NS_LOG_FUNCTION (this << s);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   284
  m_cmacSapProvider = s;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   285
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   286
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   287
LteEnbCmacSapUser*
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   288
LteEnbRrc::GetLteEnbCmacSapUser ()
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   289
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   290
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   291
  return m_cmacSapUser;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   292
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   293
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   294
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   295
LteEnbRrc::SetFfMacSchedSapProvider (FfMacSchedSapProvider * s)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   296
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   297
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   298
  m_ffMacSchedSapProvider = s;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   299
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   300
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   301
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   302
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   303
LteEnbRrc::SetLteMacSapProvider (LteMacSapProvider * s)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   304
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   305
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   306
  m_macSapProvider = s;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   307
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   308
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   309
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   310
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   311
LteEnbRrc::ConfigureCell (uint8_t ulBandwidth, uint8_t dlBandwidth)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   312
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   313
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   314
  NS_ASSERT (!m_configured);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   315
  m_cmacSapProvider->ConfigureMac (ulBandwidth, dlBandwidth);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   316
  m_configured = true;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   317
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   318
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   319
uint16_t
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   320
LteEnbRrc::AddUe (uint64_t imsi)
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   321
{
8032
ecc5171f1f96 fixed IMSI initialization
Nicola Baldo <nbaldo@cttc.es>
parents: 8007
diff changeset
   322
  NS_LOG_FUNCTION (this << imsi);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   323
  // no Call Admission Control for now
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   324
  uint16_t rnti = CreateUeInfo (imsi); // side effect: create UeInfo for this UE
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   325
  NS_ASSERT_MSG (rnti != 0, "CreateUeInfo returned RNTI==0");
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   326
  m_cmacSapProvider->AddUe (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   327
  return rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   328
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   329
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   330
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   331
LteEnbRrc::RemoveUe (uint16_t rnti)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   332
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   333
  NS_LOG_FUNCTION (this << (uint32_t) rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   334
  RemoveUeInfo (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   335
  NS_FATAL_ERROR ("missing RemoveUe method in CMAC SAP");
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   336
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   337
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   338
uint8_t
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   339
LteEnbRrc::SetupRadioBearer (uint16_t rnti, EpsBearer bearer)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   340
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   341
  NS_LOG_FUNCTION (this << (uint32_t) rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   342
  Ptr<UeInfo> ueInfo = GetUeInfo (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   343
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   344
  // create RLC instance
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   345
  // for now we support RLC SM only
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   346
7905
80557b09aa7f Added missing NS_OBJECT_ENSURE_REGISTERED to all ns3::Objects created.
jnin
parents: 7903
diff changeset
   347
  Ptr<LteRlc> rlc = CreateObject<LteRlcSm> ();
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   348
  rlc->SetLteMacSapProvider (m_macSapProvider);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   349
  rlc->SetRnti (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   350
7901
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   351
  Ptr<EnbRadioBearerInfo> rbInfo = CreateObject<EnbRadioBearerInfo> ();
2451f71f1ce4 Added attributes to enable access to RLC instances in Enb
jnin
parents: 7888
diff changeset
   352
  rbInfo->SetRlc (rlc);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   353
  uint8_t lcid = ueInfo->AddRadioBearer (rbInfo);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   354
  rlc->SetLcId (lcid);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   355
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   356
  LteEnbCmacSapProvider::LcInfo lcinfo;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   357
  lcinfo.rnti = rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   358
  lcinfo.lcId = lcid;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   359
  lcinfo.lcGroup = 0; // TBD
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   360
  lcinfo.qci = bearer.qci;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   361
  lcinfo.isGbr = bearer.IsGbr ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   362
  lcinfo.mbrUl = bearer.gbrQosInfo.mbrUl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   363
  lcinfo.mbrDl = bearer.gbrQosInfo.mbrDl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   364
  lcinfo.gbrUl = bearer.gbrQosInfo.gbrUl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   365
  lcinfo.gbrDl = bearer.gbrQosInfo.gbrDl;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   366
  m_cmacSapProvider->AddLc (lcinfo, rlc->GetLteMacSapUser ());
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   367
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   368
  return lcid;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   369
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   370
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   371
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   372
LteEnbRrc::ReleaseRadioBearer (uint16_t rnti, uint8_t lcId)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   373
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   374
  NS_LOG_FUNCTION (this << (uint32_t) rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   375
  Ptr<UeInfo> ueInfo = GetUeInfo (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   376
  ueInfo->RemoveRadioBearer (lcId);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   377
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   378
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   379
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   380
LteEnbRrc::DoNotifyLcConfigResult (uint16_t rnti, uint8_t lcid, bool success)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   381
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   382
  NS_LOG_FUNCTION (this << (uint32_t) rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   383
  NS_FATAL_ERROR ("not implemented");
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   384
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   385
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   386
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   387
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   388
// /////////////////////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   389
// management of multiple UE info instances
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   390
// /////////////////////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   391
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   392
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   393
uint16_t
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   394
LteEnbRrc::CreateUeInfo (uint64_t imsi)
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   395
{
8032
ecc5171f1f96 fixed IMSI initialization
Nicola Baldo <nbaldo@cttc.es>
parents: 8007
diff changeset
   396
  NS_LOG_FUNCTION (this << imsi);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   397
  for (uint16_t rnti = m_lastAllocatedRnti; rnti != m_lastAllocatedRnti - 1; ++rnti)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   398
    {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   399
      if (rnti != 0)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   400
        {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   401
          if (m_ueMap.find (rnti) == m_ueMap.end ())
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   402
            {
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   403
              m_lastAllocatedRnti = rnti;
8007
845888b95c15 Added IMSI output to RLC outpu
jnin
parents: 7905
diff changeset
   404
              m_ueMap.insert (std::pair<uint16_t, Ptr<UeInfo> > (rnti, CreateObject<UeInfo> (imsi)));
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   405
              return rnti;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   406
            }
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   407
        }
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   408
    }
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   409
  return 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   410
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   411
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   412
Ptr<UeInfo>
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   413
LteEnbRrc::GetUeInfo (uint16_t rnti)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   414
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   415
  NS_LOG_FUNCTION (this << (uint32_t) rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   416
  NS_ASSERT (0 != rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   417
  return m_ueMap.find (rnti)->second;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   418
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   419
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   420
void
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   421
LteEnbRrc::RemoveUeInfo (uint16_t rnti)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   422
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   423
  NS_LOG_FUNCTION (this << (uint32_t) rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   424
  std::map <uint16_t, Ptr<UeInfo> >::iterator it = m_ueMap.find (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   425
  NS_ASSERT_MSG (it != m_ueMap.end (), "request to remove UE info with unknown rnti " << rnti);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   426
  m_ueMap.erase (it);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   427
}
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   428
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   429
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   430
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   431
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   432
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   433
} // namespace ns3
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
   434