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