src/lte/model/lte-ue-net-device.cc
author Manuel Requena <manuel.requena@cttc.es>
Tue, 26 Mar 2013 10:41:49 +0100
changeset 10019 6efd95740e39
parent 9439 5107601b7a75
child 9653 382d27da8905
permissions -rw-r--r--
Add automatic triger of the HO based on the RSRQ measures
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     2
/*
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     3
 * Copyright (c) 2010 TELEMATICS LAB, DEE - Politecnico di Bari
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     4
 *
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     8
 *
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    12
 * GNU General Public License for more details.
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    13
 *
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    17
 *
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    18
 * Author: Giuseppe Piro  <g.piro@poliba.it>
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    19
 *         Nicola Baldo <nbaldo@cttc.es>
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    20
 *         Marco Miozzo <mmiozzo@cttc.es>
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    21
 */
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    22
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    23
#include "ns3/llc-snap-header.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    24
#include "ns3/simulator.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    25
#include "ns3/callback.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    26
#include "ns3/node.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    27
#include "ns3/packet.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    28
#include "lte-net-device.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    29
#include "ns3/packet-burst.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    30
#include "ns3/uinteger.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    31
#include "ns3/trace-source-accessor.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    32
#include "ns3/pointer.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    33
#include "ns3/enum.h"
9327
6f8d10f0fb94 Add CellId info to X2 SAP
Manuel Requena <manuel.requena@cttc.es>
parents: 8395
diff changeset
    34
#include "ns3/lte-enb-net-device.h"
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
    35
#include "lte-ue-net-device.h"
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    36
#include "lte-ue-mac.h"
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    37
#include "lte-ue-rrc.h"
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    38
#include "ns3/ipv4-header.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    39
#include "ns3/ipv4.h"
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
    40
#include "lte-amc.h"
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    41
#include "lte-ue-phy.h"
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    42
#include "epc-ue-nas.h"
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8167
diff changeset
    43
#include <ns3/ipv4-l3-protocol.h>
8256
629982ba48a8 removed some useless inclusions of log.h
Nicola Baldo <nbaldo@cttc.es>
parents: 8253
diff changeset
    44
#include <ns3/log.h>
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    45
#include "epc-tft.h"
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    46
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
    47
NS_LOG_COMPONENT_DEFINE ("LteUeNetDevice");
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    48
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    49
namespace ns3 {
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    50
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
    51
NS_OBJECT_ENSURE_REGISTERED ( LteUeNetDevice);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    52
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    53
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
    54
TypeId LteUeNetDevice::GetTypeId (void)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    55
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    56
  static TypeId
7252
c8200621e252 rerun check-style.py with uncrustify-0.58
Tom Henderson <tomh@tomh.org>
parents: 6852
diff changeset
    57
    tid =
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
    58
    TypeId ("ns3::LteUeNetDevice")
7954
80e46addfeee Added DL and UL RLC performance
jnin
parents: 7945
diff changeset
    59
    .SetParent<LteNetDevice> ()
80e46addfeee Added DL and UL RLC performance
jnin
parents: 7945
diff changeset
    60
    .AddAttribute ("LteUeRrc",
80e46addfeee Added DL and UL RLC performance
jnin
parents: 7945
diff changeset
    61
                   "The RRC associated to this UeNetDevice",
80e46addfeee Added DL and UL RLC performance
jnin
parents: 7945
diff changeset
    62
                   PointerValue (),
80e46addfeee Added DL and UL RLC performance
jnin
parents: 7945
diff changeset
    63
                   MakePointerAccessor (&LteUeNetDevice::m_rrc),
80e46addfeee Added DL and UL RLC performance
jnin
parents: 7945
diff changeset
    64
                   MakePointerChecker <LteUeRrc> ())
8329
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    65
    .AddAttribute ("LteUeMac",
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    66
                   "The MAC associated to this UeNetDevice",
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    67
                   PointerValue (),
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    68
                   MakePointerAccessor (&LteUeNetDevice::m_mac),
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    69
                   MakePointerChecker <LteUeMac> ())
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    70
    .AddAttribute ("LteUePhy",
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    71
                   "The PHY associated to this UeNetDevice",
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    72
                   PointerValue (),
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    73
                   MakePointerAccessor (&LteUeNetDevice::m_phy),
e6f85f34928a Fixed bug in IMSI retrieval for MacStats
Jaume Nin
parents: 8256
diff changeset
    74
                   MakePointerChecker <LteUePhy> ())
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    75
    .AddAttribute ("Imsi",
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8032
diff changeset
    76
                   "International Mobile Subscriber Identity assigned to this UE",
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    77
                   UintegerValue (0), // unused, read-only attribute
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    78
                   MakeUintegerAccessor (&LteUeNetDevice::GetImsi),
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    79
                   MakeUintegerChecker<uint64_t> ())
8148
09e2d03022a2 run check-style on src/lte/model
Nicola Baldo <nbaldo@cttc.es>
parents: 8032
diff changeset
    80
  ;
7954
80e46addfeee Added DL and UL RLC performance
jnin
parents: 7945
diff changeset
    81
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    82
  return tid;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    83
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    84
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    85
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
    86
LteUeNetDevice::LteUeNetDevice (void)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    87
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    88
  NS_LOG_FUNCTION (this);
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    89
  NS_FATAL_ERROR ("This constructor should not be called");
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    90
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    91
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    92
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
    93
  LteUeNetDevice::LteUeNetDevice (Ptr<Node> node, Ptr<LteUePhy> phy, Ptr<LteUeMac> mac, Ptr<LteUeRrc> rrc, Ptr<EpcUeNas> nas, uint64_t imsi)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    94
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    95
  NS_LOG_FUNCTION (this);
7906
d58de34e41d3 MAC, RRC and Scheduler created by LenaHelper
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7903
diff changeset
    96
  m_phy = phy;
d58de34e41d3 MAC, RRC and Scheduler created by LenaHelper
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7903
diff changeset
    97
  m_mac = mac;
d58de34e41d3 MAC, RRC and Scheduler created by LenaHelper
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7903
diff changeset
    98
  m_rrc = rrc;
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
    99
  m_nas = nas;
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   100
  SetNode (node);
9439
5107601b7a75 added S1 path switch + S11 modify bearer for X2 handover
Nicola Baldo <nbaldo@cttc.es>
parents: 9430
diff changeset
   101
  m_imsi = imsi;
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   102
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   103
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   104
LteUeNetDevice::~LteUeNetDevice (void)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   105
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   106
  NS_LOG_FUNCTION (this);
6710
3cd651349cb6 lte examples now passing valgrind tests
Nicola Baldo <nbaldo@cttc.es>
parents: 6709
diff changeset
   107
}
3cd651349cb6 lte examples now passing valgrind tests
Nicola Baldo <nbaldo@cttc.es>
parents: 6709
diff changeset
   108
3cd651349cb6 lte examples now passing valgrind tests
Nicola Baldo <nbaldo@cttc.es>
parents: 6709
diff changeset
   109
void
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   110
LteUeNetDevice::DoDispose (void)
6710
3cd651349cb6 lte examples now passing valgrind tests
Nicola Baldo <nbaldo@cttc.es>
parents: 6709
diff changeset
   111
{
3cd651349cb6 lte examples now passing valgrind tests
Nicola Baldo <nbaldo@cttc.es>
parents: 6709
diff changeset
   112
  NS_LOG_FUNCTION (this);
3cd651349cb6 lte examples now passing valgrind tests
Nicola Baldo <nbaldo@cttc.es>
parents: 6709
diff changeset
   113
  m_targetEnb = 0;
7921
0a504caf445d added more disposal stuff
Nicola Baldo <nbaldo@cttc.es>
parents: 7907
diff changeset
   114
  m_mac->Dispose ();
0a504caf445d added more disposal stuff
Nicola Baldo <nbaldo@cttc.es>
parents: 7907
diff changeset
   115
  m_mac = 0;
0a504caf445d added more disposal stuff
Nicola Baldo <nbaldo@cttc.es>
parents: 7907
diff changeset
   116
  m_rrc->Dispose ();
0a504caf445d added more disposal stuff
Nicola Baldo <nbaldo@cttc.es>
parents: 7907
diff changeset
   117
  m_rrc = 0;
0a504caf445d added more disposal stuff
Nicola Baldo <nbaldo@cttc.es>
parents: 7907
diff changeset
   118
  m_phy->Dispose ();
0a504caf445d added more disposal stuff
Nicola Baldo <nbaldo@cttc.es>
parents: 7907
diff changeset
   119
  m_phy = 0;
9370
3d5962a58440 Dispose EpcUeNas within LteUeNetDevice
Nicola Baldo <nbaldo@cttc.es>
parents: 9338
diff changeset
   120
  m_nas->Dispose ();
3d5962a58440 Dispose EpcUeNas within LteUeNetDevice
Nicola Baldo <nbaldo@cttc.es>
parents: 9338
diff changeset
   121
  m_nas = 0;
6709
4f3100141560 fixed some valgrind errors
Giuseppe Piro <g.piro@poliba.it>
parents: 6705
diff changeset
   122
  LteNetDevice::DoDispose ();
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   123
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   124
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   125
void
7945
dbab335f9eea connection of SAPs moved from UeNetDevice to LenaHelper
Nicola Baldo <nbaldo@cttc.es>
parents: 7924
diff changeset
   126
LteUeNetDevice::UpdateConfig (void)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   127
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   128
  NS_LOG_FUNCTION (this);
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   129
  m_nas->SetImsi (m_imsi);
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   130
  m_rrc->SetImsi (m_imsi);
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   131
  
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   132
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   133
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   134
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   135
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   136
Ptr<LteUeMac>
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   137
LteUeNetDevice::GetMac (void) const
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   138
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   139
  NS_LOG_FUNCTION (this);
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   140
  return m_mac;
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   141
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   142
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   143
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   144
Ptr<LteUeRrc>
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   145
LteUeNetDevice::GetRrc (void) const
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   146
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   147
  NS_LOG_FUNCTION (this);
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   148
  return m_rrc;
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   149
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   150
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   151
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   152
Ptr<LteUePhy>
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   153
LteUeNetDevice::GetPhy (void) const
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   154
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   155
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   156
  return m_phy;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   157
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   158
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   159
Ptr<EpcUeNas>
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   160
LteUeNetDevice::GetNas (void) const
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   161
{
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   162
  NS_LOG_FUNCTION (this);
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   163
  return m_nas;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   164
}
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   165
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   166
uint64_t
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   167
LteUeNetDevice::GetImsi () const
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   168
{
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   169
  NS_LOG_FUNCTION (this);
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   170
  return m_imsi;
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   171
}
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   172
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   173
void
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   174
LteUeNetDevice::SetTargetEnb (Ptr<LteEnbNetDevice> enb)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   175
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   176
  NS_LOG_FUNCTION (this << enb);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   177
  m_targetEnb = enb;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   178
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   179
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   180
7887
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   181
Ptr<LteEnbNetDevice>
78911c978517 renamed several LTE files and classes
CTTC
parents: 7886
diff changeset
   182
LteUeNetDevice::GetTargetEnb (void)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   183
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   184
  NS_LOG_FUNCTION (this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   185
  return m_targetEnb;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   186
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   187
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   188
void 
7976
541eee38ac12 fixed LENA-78 m_dlBandwidth not initialized
Nicola Baldo <nbaldo@cttc.es>
parents: 7955
diff changeset
   189
LteUeNetDevice::DoStart (void)
541eee38ac12 fixed LENA-78 m_dlBandwidth not initialized
Nicola Baldo <nbaldo@cttc.es>
parents: 7955
diff changeset
   190
{
8032
ecc5171f1f96 fixed IMSI initialization
Nicola Baldo <nbaldo@cttc.es>
parents: 8015
diff changeset
   191
  NS_LOG_FUNCTION (this);
7976
541eee38ac12 fixed LENA-78 m_dlBandwidth not initialized
Nicola Baldo <nbaldo@cttc.es>
parents: 7955
diff changeset
   192
  UpdateConfig ();
8015
e8fd3bf1692f flexible spectrum model
Nicola Baldo <nbaldo@cttc.es>
parents: 8007
diff changeset
   193
  m_phy->Start ();
e8fd3bf1692f flexible spectrum model
Nicola Baldo <nbaldo@cttc.es>
parents: 8007
diff changeset
   194
  m_mac->Start ();
e8fd3bf1692f flexible spectrum model
Nicola Baldo <nbaldo@cttc.es>
parents: 8007
diff changeset
   195
  m_rrc->Start ();
7976
541eee38ac12 fixed LENA-78 m_dlBandwidth not initialized
Nicola Baldo <nbaldo@cttc.es>
parents: 7955
diff changeset
   196
}
541eee38ac12 fixed LENA-78 m_dlBandwidth not initialized
Nicola Baldo <nbaldo@cttc.es>
parents: 7955
diff changeset
   197
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   198
bool
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8167
diff changeset
   199
LteUeNetDevice::Send (Ptr<Packet> packet, const Address& dest, uint16_t protocolNumber)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   200
{
8389
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8167
diff changeset
   201
  NS_LOG_FUNCTION (this << dest << protocolNumber);
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8167
diff changeset
   202
  NS_ASSERT_MSG (protocolNumber == Ipv4L3Protocol::PROT_NUMBER, "unsupported protocol " << protocolNumber << ", only IPv4 is supported");
cb215987eb77 LTE-EPC end-to-end data plane imlemented and partially working
Nicola Baldo <nbaldo@cttc.es>
parents: 8167
diff changeset
   203
  
9337
ae7126b266ce revised LTE protocol stack for new RRC model
Nicola Baldo <nbaldo@cttc.es>
parents: 8395
diff changeset
   204
  return m_nas->Send (packet);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   205
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   206
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   207
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   208
} // namespace ns3