src/lte/examples/lena-first-sim.cc
author Nicola Baldo <nbaldo@cttc.es>
Thu, 31 Mar 2011 15:37:08 +0200
changeset 7931 9c385d236a0b
parent 7928 b736f63e9bdf
child 7934 0f09fc707a8c
permissions -rw-r--r--
minor changes in example programs
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: Manuel Requena <manuel.requena@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
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    22
#include "ns3/core-module.h"
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    23
#include "ns3/network-module.h"
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    24
#include "ns3/mobility-module.h"
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    25
#include "ns3/lte-module.h"
7909
82b1281ea0a3 Updates for MACOS compilation (virtual destructors and variable types)
mmiozzo
parents: 7908
diff changeset
    26
//#include "ns3/gtk-config-store.h"
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    27
using namespace ns3;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    28
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    29
int main (int argc, char *argv[])
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    30
{
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    31
  LenaHelper lena;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    32
7928
b736f63e9bdf removed LtePhy::Get{Up,Down}linkSpectrumPhy methods which are evil
Nicola Baldo <nbaldo@cttc.es>
parents: 7909
diff changeset
    33
  //lena.EnableLogComponents ();
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    34
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    35
  // Create Nodes: eNodeB and UE
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    36
  NodeContainer enbNodes;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    37
  NodeContainer ueNodes;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    38
  enbNodes.Create (1);
7931
9c385d236a0b minor changes in example programs
Nicola Baldo <nbaldo@cttc.es>
parents: 7928
diff changeset
    39
  ueNodes.Create (4);
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    40
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    41
  // Install Mobility Model
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    42
  MobilityHelper mobility;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    43
  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    44
  mobility.Install (enbNodes);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    45
  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    46
  mobility.Install (ueNodes);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    47
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    48
  // Create Devices and install them in the Nodes (eNB and UE)
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    49
  NetDeviceContainer enbDevs;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    50
  NetDeviceContainer ueDevs;
7908
b7497687ab48 LENA 56: Scheduler type configurable by the user
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7906
diff changeset
    51
  //lena.SetScheduler ("RrFfMacScheduler");
b7497687ab48 LENA 56: Scheduler type configurable by the user
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7906
diff changeset
    52
  lena.SetScheduler ("PfFfMacScheduler");
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    53
  enbDevs = lena.InstallEnbDevice (enbNodes);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    54
  ueDevs = lena.InstallUeDevice (ueNodes);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    55
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    56
  // Attach a UE to a eNB
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    57
  lena.Attach (ueDevs, enbDevs.Get (0));
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    58
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    59
  // Activate an EPS bearer
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    60
  enum EpsBearer::Qci q = EpsBearer::GBR_CONV_VOICE;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    61
  EpsBearer bearer (q);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    62
  lena.ActivateEpsBearer (ueDevs, bearer);
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    63
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    64
7895
f20bb71f9b71 Aperiodic high layer configured subband CQI (A30 type) implemented
Marco Miozzo <marco.miozzo@cttc.es>
parents: 7886
diff changeset
    65
  Simulator::Stop (Seconds (0.005));
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    66
7928
b736f63e9bdf removed LtePhy::Get{Up,Down}linkSpectrumPhy methods which are evil
Nicola Baldo <nbaldo@cttc.es>
parents: 7909
diff changeset
    67
  //Simulator::Run ();
7903
eed953cd94a0 Fix some typos and bugs on the attribute to map implementation
jnin
parents: 7895
diff changeset
    68
7909
82b1281ea0a3 Updates for MACOS compilation (virtual destructors and variable types)
mmiozzo
parents: 7908
diff changeset
    69
  //GtkConfigStore config;
82b1281ea0a3 Updates for MACOS compilation (virtual destructors and variable types)
mmiozzo
parents: 7908
diff changeset
    70
  //config.ConfigureAttributes ();
7903
eed953cd94a0 Fix some typos and bugs on the attribute to map implementation
jnin
parents: 7895
diff changeset
    71
7886
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    72
  Simulator::Destroy ();
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    73
  return 0;
b65c16d4da83 LENA project first public release
CTTC
parents:
diff changeset
    74
}