src/lte/model/enb-phy.cc
author CTTC
Thu, 10 Mar 2011 18:15:26 +0100
changeset 7886 b65c16d4da83
parent 6852 8f1a53d3f6ca
permissions -rw-r--r--
LENA project first public release
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
 *         Marco Miozzo <mmiozzo@cttc.es>
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    20
 */
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
#include <ns3/object-factory.h>
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    23
#include <ns3/log.h>
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    24
#include <math.h>
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    25
#include <ns3/simulator.h>
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    26
#include "ns3/spectrum-error-model.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    27
#include "enb-phy.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 "lte-spectrum-value-helper.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    30
#include "ideal-control-messages.h"
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    31
#include "enb-net-device.h"
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    32
#include "lte-enb-mac.h"
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    33
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    34
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    35
NS_LOG_COMPONENT_DEFINE ("EnbLtePhy");
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    36
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    37
namespace ns3 {
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    38
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    39
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    40
////////////////////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    41
// member SAP forwarders
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    42
////////////////////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    43
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    44
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    45
class EnbMemberLteEnbPhySapProvider : public LteEnbPhySapProvider
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    46
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    47
public:
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    48
  EnbMemberLteEnbPhySapProvider (EnbLtePhy* phy);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    49
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    50
  // inherited from LteEnbPhySapProvider
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    51
  virtual void SendMacPdu (Ptr<Packet> p);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    52
  virtual void SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    53
  virtual void SetCellId (uint16_t cellId);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    54
  virtual void SendIdealControlMessage (Ptr<IdealControlMessage> msg);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    55
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    56
private:
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    57
  EnbLtePhy* m_phy;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    58
};
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    59
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    60
EnbMemberLteEnbPhySapProvider::EnbMemberLteEnbPhySapProvider (EnbLtePhy* phy) : m_phy (phy)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    61
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    62
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    63
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    64
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    65
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    66
void
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    67
EnbMemberLteEnbPhySapProvider::SendMacPdu (Ptr<Packet> p)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    68
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    69
  m_phy->DoSendMacPdu (p);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    70
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    71
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    72
void
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    73
EnbMemberLteEnbPhySapProvider::SetBandwidth (uint8_t ulBandwidth, uint8_t dlBandwidth)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    74
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    75
  m_phy->DoSetBandwidth (ulBandwidth, dlBandwidth);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    76
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    77
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    78
void
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    79
EnbMemberLteEnbPhySapProvider::SetCellId (uint16_t cellId)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    80
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    81
  m_phy->DoSetCellId (cellId);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    82
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    83
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    84
void
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    85
EnbMemberLteEnbPhySapProvider::SendIdealControlMessage (Ptr<IdealControlMessage> msg)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    86
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    87
  m_phy->DoSendIdealControlMessage (msg);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    88
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    89
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    90
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    91
////////////////////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    92
// generic EnbLtePhy methods
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    93
////////////////////////////////////////
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    94
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    95
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
    96
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    97
NS_OBJECT_ENSURE_REGISTERED (EnbLtePhy);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    98
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
    99
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   100
EnbLtePhy::EnbLtePhy ()
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   101
  : m_nrFrames (0),
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   102
    m_nrSubFrames (0)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   103
{
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   104
  m_enbPhySapProvider = new EnbMemberLteEnbPhySapProvider (this);
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
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   107
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   108
TypeId
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   109
EnbLtePhy::GetTypeId (void)
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   110
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   111
  static TypeId tid = TypeId ("ns3::EnbLtePhy")
6707
2ac68a0381ca improved module after Tom's review
Giuseppe Piro <g.piro@poliba.it>
parents: 6705
diff changeset
   112
    .SetParent<LtePhy> ()
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   113
    .AddConstructor<EnbLtePhy> ()
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   114
  ;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   115
  return tid;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   116
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   117
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   118
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   119
EnbLtePhy::~EnbLtePhy ()
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   120
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   121
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   122
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   123
void
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   124
EnbLtePhy::SetLteEnbPhySapUser (LteEnbPhySapUser* s)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   125
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   126
  m_enbPhySapUser = s;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   127
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   128
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   129
LteEnbPhySapProvider*
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   130
EnbLtePhy::GetLteEnbPhySapProvider ()
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   131
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   132
  return (m_enbPhySapProvider);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   133
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   134
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   135
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   136
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   137
bool
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   138
EnbLtePhy::AddUePhy (uint8_t rnti, Ptr<UeLtePhy> phy)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   139
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   140
  std::map <uint8_t, Ptr<UeLtePhy> >::iterator it;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   141
  it = m_ueAttached.find (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   142
  if (it == m_ueAttached.end ())
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   143
    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   144
      m_ueAttached.insert (std::pair<uint8_t, Ptr<UeLtePhy> > (rnti, phy));
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   145
      return (true);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   146
    }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   147
  else
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   148
    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   149
      NS_LOG_ERROR ("UE already attached");
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   150
      return (false);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   151
    }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   152
}
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   153
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   154
bool
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   155
EnbLtePhy::DeleteUePhy (uint8_t rnti)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   156
{
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   157
  std::map <uint8_t, Ptr<UeLtePhy> >::iterator it;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   158
  it = m_ueAttached.find (rnti);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   159
  if (it == m_ueAttached.end ())
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   160
    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   161
      NS_LOG_ERROR ("UE not attached");
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   162
      return (false);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   163
    }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   164
  else
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   165
    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   166
      m_ueAttached.erase (it);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   167
      return (true);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   168
    }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   169
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   170
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   171
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   172
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   173
void
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   174
EnbLtePhy::DoSendMacPdu (Ptr<Packet> p)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   175
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   176
//   NS_LOG_FUNCTION (this << pb->GetNPackets () << pb->GetSize ());
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   177
//   return GetDownlinkSpectrumPhy ()->StartTx (pb);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   178
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   179
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   180
  SetMacPdu (p);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   181
}
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   182
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   183
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   184
void
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   185
EnbLtePhy::PhyPduReceived (Ptr<Packet> p)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   186
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   187
  NS_LOG_FUNCTION (this);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   188
  m_enbPhySapUser->ReceivePhyPdu (p);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   189
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   190
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   191
void
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   192
EnbLtePhy::DoSetDownlinkSubChannels ()
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   193
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   194
  NS_LOG_FUNCTION (this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   195
  Ptr<SpectrumValue> txPsd = CreateTxPowerSpectralDensity ();
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   196
  GetDownlinkSpectrumPhy ()->SetTxPowerSpectralDensity (txPsd);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   197
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   198
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   199
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   200
Ptr<SpectrumValue>
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   201
EnbLtePhy::CreateTxPowerSpectralDensity ()
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   202
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   203
  NS_LOG_FUNCTION (this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   204
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   205
  LteSpectrumValueHelper psdHelper;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   206
  Ptr<SpectrumValue> psd = psdHelper.CreateDownlinkTxPowerSpectralDensity (GetTxPower (), GetDownlinkSubChannels ());
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
  return psd;
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   209
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   210
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   211
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   212
void
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   213
EnbLtePhy::CalcChannelQualityForUe (std::vector <double> sinr, Ptr<LteSpectrumPhy> ue)
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   214
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   215
  NS_LOG_FUNCTION (this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   216
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   217
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   218
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   219
void
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   220
EnbLtePhy::DoSendIdealControlMessage (Ptr<IdealControlMessage> msg)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   221
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   222
  NS_LOG_FUNCTION (this << msg);
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   223
  // queues the message (wait for MAC-PHY delay)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   224
  SetControlMessages (msg);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   225
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   226
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   227
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   228
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   229
void
6710
3cd651349cb6 lte examples now passing valgrind tests
Nicola Baldo <nbaldo@cttc.es>
parents: 6707
diff changeset
   230
EnbLtePhy::ReceiveIdealControlMessage (Ptr<IdealControlMessage> msg)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   231
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   232
  NS_LOG_FUNCTION (this << msg);
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   233
  m_enbPhySapUser->ReceiveIdealControlMessage (msg);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   234
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   235
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   236
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   237
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   238
void
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   239
EnbLtePhy::StartFrame (void)
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   240
{
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   241
  NS_LOG_FUNCTION (this);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   242
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   243
  ++m_nrFrames;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   244
  NS_LOG_INFO ("-----frame " << m_nrFrames << "-----");
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   245
  m_nrSubFrames = 0;
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   246
  StartSubFrame ();
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   247
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   248
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   249
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   250
void
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   251
EnbLtePhy::StartSubFrame (void)
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   252
{
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   253
  NS_LOG_FUNCTION (this);
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   254
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   255
  ++m_nrSubFrames;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   256
  NS_LOG_INFO ("-----sub frame " << m_nrSubFrames << "-----");
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   257
  
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   258
  // send the current burst of control messages
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   259
  std::list<Ptr<IdealControlMessage> > ctrlMsg = GetControlMessages ();
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   260
  std::vector <int> dlRb;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   261
  if (ctrlMsg.size () > 0)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   262
    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   263
      std::list<Ptr<IdealControlMessage> >::iterator it;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   264
      it = ctrlMsg.begin ();
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   265
      while (it != ctrlMsg.end ())
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   266
        {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   267
          Ptr<IdealControlMessage> msg = (*it);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   268
          if (msg->GetMessageType () == IdealControlMessage::DL_DCI)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   269
            {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   270
              std::map <uint8_t, Ptr<UeLtePhy> >::iterator it2;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   271
              Ptr<DlDciIdealControlMessage> dci = DynamicCast<DlDciIdealControlMessage> (msg);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   272
              it2 = m_ueAttached.find (dci->GetDci ().m_rnti);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   273
              
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   274
              if (it2 == m_ueAttached.end ())
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   275
                {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   276
                  NS_LOG_ERROR ("UE not attached");
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   277
                }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   278
              else
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   279
                {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   280
                  // get the tx power spectral density according to DL-DCI(s)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   281
                  // translate the DCI to Spectrum framework
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   282
                  uint32_t mask = 0x1;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   283
                  for (int i = 0; i < 32; i++)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   284
                    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   285
                      if (((dci->GetDci ().m_rbBitmap & mask) >> i) == 1)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   286
                        {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   287
                          for (int k = 0; k < GetRbgSize (); k++)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   288
                            {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   289
                              dlRb.push_back ((i * GetRbgSize ()) + k);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   290
                              //NS_LOG_DEBUG(this << " [enb]DL-DCI allocated PRB " << (i*GetRbgSize()) + k);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   291
                            }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   292
                        }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   293
                      mask = (mask << 1);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   294
                    }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   295
                  (*it2).second->ReceiveIdealControlMessage (msg);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   296
                }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   297
            }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   298
          else if (msg->GetMessageType () == IdealControlMessage::UL_DCI)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   299
            {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   300
              std::map <uint8_t, Ptr<UeLtePhy> >::iterator it2;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   301
              Ptr<UlDciIdealControlMessage> dci = DynamicCast<UlDciIdealControlMessage> (msg);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   302
              it2 = m_ueAttached.find (dci->GetDci ().m_rnti);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   303
             
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   304
              if (it2 == m_ueAttached.end ())
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   305
              {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   306
                NS_LOG_ERROR ("UE not attached");
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   307
              }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   308
              else
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   309
              {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   310
                (*it2).second->ReceiveIdealControlMessage (msg);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   311
              }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   312
            }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   313
          ctrlMsg.pop_front ();
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   314
          it = ctrlMsg.begin ();
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   315
        }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   316
    }
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   317
  // set the current tx power spectral density
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   318
  SetDownlinkSubChannels (dlRb);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   319
  // send the current burts of packets
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   320
  Ptr<PacketBurst> pb = GetPacketBurst ();
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   321
  if (pb)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   322
    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   323
      GetDownlinkSpectrumPhy ()->StartTx (pb);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   324
    }
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   325
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   326
  // trigger the MAC
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   327
  Ptr<LteEnbMac> macEntity = GetDevice ()->GetObject<EnbNetDevice> ()->GetMac ();
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   328
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   329
  m_enbPhySapUser->SubframeIndication (m_nrFrames, m_nrSubFrames);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   330
  
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   331
  
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   332
  // trigger the UE(s)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   333
  std::map <uint8_t, Ptr<UeLtePhy> >::iterator it;
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   334
  for (it = m_ueAttached.begin (); it != m_ueAttached.end (); it++)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   335
    {
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   336
      (*it).second->SubframeIndication (m_nrFrames, m_nrSubFrames);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   337
    }
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   338
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   339
  Simulator::Schedule (Seconds (GetTti ()),
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   340
                       &EnbLtePhy::EndSubFrame,
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   341
                       this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   342
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   343
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   344
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   345
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   346
void
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   347
EnbLtePhy::EndSubFrame (void)
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   348
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   349
  NS_LOG_FUNCTION (this << Simulator::Now ().GetSeconds ());
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   350
  if (m_nrSubFrames == 10)
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   351
    {
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   352
      Simulator::ScheduleNow (&EnbLtePhy::EndFrame, this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   353
    }
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   354
  else
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   355
    {
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   356
      Simulator::ScheduleNow (&EnbLtePhy::StartSubFrame, this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   357
    }
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   358
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   359
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   360
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   361
void
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   362
EnbLtePhy::EndFrame (void)
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   363
{
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   364
  NS_LOG_FUNCTION (this << Simulator::Now ().GetSeconds ());
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   365
  Simulator::ScheduleNow (&EnbLtePhy::StartFrame, this);
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   366
}
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   367
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   368
7886
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   369
void 
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   370
EnbLtePhy::GenerateCqiFeedback (const SpectrumValue& sinr)
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   371
{
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   372
  NS_LOG_FUNCTION (this << sinr);
b65c16d4da83 LENA project first public release
CTTC
parents: 6852
diff changeset
   373
}
6705
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   374
422c67049471 LTE module form GSoC project
Giuseppe Piro <g.piro@poliba.it>
parents:
diff changeset
   375
};