src/helper/wifi-helper.cc
author Raj Bhattacharjea <raj.b@gatech.edu>
Wed, 02 Apr 2008 14:09:36 -0400
changeset 2845 2398826af6b4
parent 2839 b30d4ece2bbb
child 2887 9a637e6daee0
permissions -rw-r--r--
Add IP layer tracing helpers to InternetStackHelper
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2833
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     2
/*
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     3
 * Copyright (c) 2008 INRIA
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     4
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     7
 * published by the Free Software Foundation;
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     8
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    12
 * GNU General Public License for more details.
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    13
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    14
 * You should have received a copy of the GNU General Public License
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    15
 * along with this program; if not, write to the Free Software
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    17
 *
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    18
 * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
f3474fd850b2 add missing license headers
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2822
diff changeset
    19
 */
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    20
#include "wifi-helper.h"
2603
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
    21
#include "ns3/wifi-net-device.h"
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
    22
#include "ns3/wifi-mac.h"
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
    23
#include "ns3/wifi-phy.h"
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
    24
#include "ns3/wifi-remote-station-manager.h"
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
    25
#include "ns3/wifi-channel.h"
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
    26
#include "ns3/propagation-delay-model.h"
1308da4cb3bf move helpers to their own dir.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2602
diff changeset
    27
#include "ns3/propagation-loss-model.h"
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    28
#include "ns3/mobility-model.h"
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    29
#include "ns3/log.h"
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    30
#include "ns3/pcap-writer.h"
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    31
#include "ns3/wifi-mode.h"
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    32
#include "ns3/wifi-preamble.h"
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    33
#include "ns3/config.h"
2822
b7fc97e2f256 add ns2's stupid prefix on each ascii line output.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    34
#include "ns3/simulator.h"
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    35
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    36
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    37
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    38
NS_LOG_COMPONENT_DEFINE ("WifiHelper");
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    39
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    40
namespace ns3 {
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    41
2804
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    42
static void PcapPhyTxEvent (Ptr<PcapWriter> writer, Ptr<const Packet> packet,
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    43
			    WifiMode mode, WifiPreamble preamble, 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    44
			    uint8_t txLevel)
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    45
{
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    46
  writer->WritePacket (packet);
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    47
}
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    48
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    49
static void PcapPhyRxEvent (Ptr<PcapWriter> writer, 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    50
			    Ptr<const Packet> packet, double snr, WifiMode mode, 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    51
			    enum WifiPreamble preamble)
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    52
{
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    53
  writer->WritePacket (packet);
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    54
}
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    55
2804
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    56
static void AsciiPhyTxEvent (std::ostream *os, std::string context, 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    57
			     Ptr<const Packet> packet,
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    58
			     WifiMode mode, WifiPreamble preamble, 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    59
			     uint8_t txLevel)
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    60
{
2822
b7fc97e2f256 add ns2's stupid prefix on each ascii line output.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    61
  *os << "+ " << Simulator::Now () << " " << context << " " << *packet << std::endl;
2804
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    62
}
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    63
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    64
static void AsciiPhyRxOkEvent (std::ostream *os, std::string context, 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    65
			       Ptr<const Packet> packet, double snr, WifiMode mode, 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    66
			       enum WifiPreamble preamble)
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
    67
{
2822
b7fc97e2f256 add ns2's stupid prefix on each ascii line output.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2805
diff changeset
    68
  *os << "r " << Simulator::Now () << " " << context << " " << *packet << std::endl;
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    69
}
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    70
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
    71
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    72
WifiHelper::WifiHelper ()
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    73
{
2602
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2601
diff changeset
    74
  m_stationManager.SetTypeId ("ns3::ArfWifiManager");
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2601
diff changeset
    75
  m_phy.SetTypeId ("ns3::WifiPhy");
d9262bff6df2 add back support for introspected doxygen.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2601
diff changeset
    76
  m_mac.SetTypeId ("ns3::AdhocWifiMac");
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    77
}
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    78
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    79
void 
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    80
WifiHelper::SetRemoteStationManager (std::string type,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    81
				     std::string n0, Attribute v0,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    82
				     std::string n1, Attribute v1,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    83
				     std::string n2, Attribute v2,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    84
				     std::string n3, Attribute v3,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    85
				     std::string n4, Attribute v4,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    86
				     std::string n5, Attribute v5,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    87
				     std::string n6, Attribute v6,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    88
				     std::string n7, Attribute v7)
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    89
{
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    90
  m_stationManager = ObjectFactory ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    91
  m_stationManager.SetTypeId (type);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    92
  m_stationManager.Set (n0, v0);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    93
  m_stationManager.Set (n1, v1);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    94
  m_stationManager.Set (n2, v2);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    95
  m_stationManager.Set (n3, v3);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    96
  m_stationManager.Set (n4, v4);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    97
  m_stationManager.Set (n5, v5);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    98
  m_stationManager.Set (n6, v6);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
    99
  m_stationManager.Set (n7, v7);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   100
}
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   101
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   102
void 
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   103
WifiHelper::SetMac (std::string type,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   104
		    std::string n0, Attribute v0,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   105
		    std::string n1, Attribute v1,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   106
		    std::string n2, Attribute v2,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   107
		    std::string n3, Attribute v3,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   108
		    std::string n4, Attribute v4,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   109
		    std::string n5, Attribute v5,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   110
		    std::string n6, Attribute v6,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   111
		    std::string n7, Attribute v7)
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   112
{
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   113
  m_mac = ObjectFactory ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   114
  m_mac.SetTypeId (type);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   115
  m_mac.Set (n0, v0);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   116
  m_mac.Set (n1, v1);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   117
  m_mac.Set (n2, v2);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   118
  m_mac.Set (n3, v3);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   119
  m_mac.Set (n4, v4);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   120
  m_mac.Set (n5, v5);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   121
  m_mac.Set (n6, v6);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   122
  m_mac.Set (n7, v7);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   123
}
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   124
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   125
void 
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   126
WifiHelper::SetPhy (std::string type,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   127
		    std::string n0, Attribute v0,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   128
		    std::string n1, Attribute v1,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   129
		    std::string n2, Attribute v2,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   130
		    std::string n3, Attribute v3,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   131
		    std::string n4, Attribute v4,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   132
		    std::string n5, Attribute v5,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   133
		    std::string n6, Attribute v6,
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   134
		    std::string n7, Attribute v7)
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   135
{
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   136
  m_phy = ObjectFactory ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   137
  m_phy.SetTypeId (type);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   138
  m_phy.Set (n0, v0);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   139
  m_phy.Set (n1, v1);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   140
  m_phy.Set (n2, v2);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   141
  m_phy.Set (n3, v3);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   142
  m_phy.Set (n4, v4);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   143
  m_phy.Set (n5, v5);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   144
  m_phy.Set (n6, v6);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   145
  m_phy.Set (n7, v7);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   146
}
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   147
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   148
void 
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   149
WifiHelper::EnablePcap (std::string filename, uint32_t nodeid, uint32_t deviceid)
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   150
{
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   151
  std::ostringstream oss;
2839
b30d4ece2bbb generate .pcap postfix for pcap filenames
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2834
diff changeset
   152
  oss << filename << "-" << nodeid << "-" << deviceid << ".pcap";
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   153
  Ptr<PcapWriter> pcap = Create<PcapWriter> ();
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   154
  pcap->Open (oss.str ());
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   155
  pcap->WriteWifiHeader ();
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   156
  oss.str ("");
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   157
  oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/Tx";
2804
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   158
  Config::ConnectWithoutContext (oss.str (), MakeBoundCallback (&PcapPhyTxEvent, pcap));
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   159
  oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/RxOk";
2804
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   160
  Config::ConnectWithoutContext (oss.str (), MakeBoundCallback (&PcapPhyRxEvent, pcap));
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   161
}
2805
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   162
void 
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   163
WifiHelper::EnablePcap (std::string filename, NetDeviceContainer d)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   164
{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   165
  for (NetDeviceContainer::Iterator i = d.Begin (); i != d.End (); ++i)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   166
    {
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   167
      Ptr<NetDevice> dev = *i;
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   168
      EnablePcap (filename, dev->GetNode ()->GetId (), dev->GetIfIndex ());
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   169
    }
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   170
}
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   171
void
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   172
WifiHelper::EnablePcap (std::string filename, NodeContainer n)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   173
{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   174
  NetDeviceContainer devs;
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   175
  for (NodeContainer::Iterator i = n.Begin (); i != n.End (); ++i)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   176
    {
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   177
      Ptr<Node> node = *i;
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   178
      for (uint32_t j = 0; j < node->GetNDevices (); ++j)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   179
	{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   180
	  devs.Add (node->GetDevice (j));
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   181
	}
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   182
    }
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   183
  EnablePcap (filename, devs);
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   184
}
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   185
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   186
void
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   187
WifiHelper::EnablePcap (std::string filename)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   188
{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   189
  EnablePcap (filename, NodeContainer::GetGlobal ());
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   190
}
2804
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   191
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   192
void 
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   193
WifiHelper::EnableAscii (std::ostream &os, uint32_t nodeid, uint32_t deviceid)
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   194
{
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   195
    Packet::EnableMetadata ();
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   196
  std::ostringstream oss;
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   197
  oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/RxOk";
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   198
  Config::Connect (oss.str (), MakeBoundCallback (&AsciiPhyRxOkEvent, &os));
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   199
  oss.str ("");
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   200
  oss << "/NodeList/" << nodeid << "/DeviceList/" << deviceid << "/$ns3::WifiNetDevice/Phy/Tx";
7980b7512eb4 add wifi helper tracing.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2791
diff changeset
   201
  Config::Connect (oss.str (), MakeBoundCallback (&AsciiPhyTxEvent, &os));
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   202
}
2805
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   203
void 
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   204
WifiHelper::EnableAscii (std::ostream &os, NetDeviceContainer d)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   205
{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   206
  for (NetDeviceContainer::Iterator i = d.Begin (); i != d.End (); ++i)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   207
    {
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   208
      Ptr<NetDevice> dev = *i;
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   209
      EnableAscii (os, dev->GetNode ()->GetId (), dev->GetIfIndex ());
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   210
    }
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   211
}
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   212
void
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   213
WifiHelper::EnableAscii (std::ostream &os, NodeContainer n)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   214
{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   215
  NetDeviceContainer devs;
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   216
  for (NodeContainer::Iterator i = n.Begin (); i != n.End (); ++i)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   217
    {
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   218
      Ptr<Node> node = *i;
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   219
      for (uint32_t j = 0; j < node->GetNDevices (); ++j)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   220
	{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   221
	  devs.Add (node->GetDevice (j));
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   222
	}
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   223
    }
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   224
  EnableAscii (os, devs);
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   225
}
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   226
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   227
void
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   228
WifiHelper::EnableAscii (std::ostream &os)
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   229
{
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   230
  EnableAscii (os, NodeContainer::GetGlobal ());
cd246cf2edf3 add missing tracing helpers and doxygen
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2804
diff changeset
   231
}
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   232
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   233
NetDeviceContainer
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   234
WifiHelper::Build (NodeContainer c) const
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   235
{
2592
3ebf97150166 get rid of CreateObjectWith
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2549
diff changeset
   236
  Ptr<WifiChannel> channel = CreateObject<WifiChannel> ();
3ebf97150166 get rid of CreateObjectWith
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2549
diff changeset
   237
  channel->SetPropagationDelayModel (CreateObject<ConstantSpeedPropagationDelayModel> ());
3ebf97150166 get rid of CreateObjectWith
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2549
diff changeset
   238
  Ptr<LogDistancePropagationLossModel> log = CreateObject<LogDistancePropagationLossModel> ();
3ebf97150166 get rid of CreateObjectWith
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2549
diff changeset
   239
  log->SetReferenceModel (CreateObject<FriisPropagationLossModel> ());
2549
fe90cf0b2c63 port propagation models and channel to attributes.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2524
diff changeset
   240
  channel->SetPropagationLossModel (log);
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   241
  return Build (c, channel);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   242
}
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   243
NetDeviceContainer
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   244
WifiHelper::Build (NodeContainer c, Ptr<WifiChannel> channel) const
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   245
{
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   246
  NetDeviceContainer devices;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   247
  for (NodeContainer::Iterator i = c.Begin (); i != c.End (); i++)
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   248
    {
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   249
      Ptr<Node> node = *i;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   250
      Ptr<WifiNetDevice> device = CreateObject<WifiNetDevice> ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   251
      Ptr<WifiRemoteStationManager> manager = m_stationManager.Create<WifiRemoteStationManager> ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   252
      Ptr<WifiMac> mac = m_mac.Create<WifiMac> ();
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   253
      Ptr<WifiPhy> phy = m_phy.Create<WifiPhy> ();
2656
b426a0e0355e call SetAddress during construction to assign MAC-level addresses.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2603
diff changeset
   254
      mac->SetAddress (Mac48Address::Allocate ());
2601
4297e8c61615 rework the Wifi API to not use a single WifiNetDevice::Setup method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2592
diff changeset
   255
      device->SetMac (mac);
4297e8c61615 rework the Wifi API to not use a single WifiNetDevice::Setup method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2592
diff changeset
   256
      device->SetPhy (phy);
4297e8c61615 rework the Wifi API to not use a single WifiNetDevice::Setup method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2592
diff changeset
   257
      device->SetRemoteStationManager (manager);
4297e8c61615 rework the Wifi API to not use a single WifiNetDevice::Setup method
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2592
diff changeset
   258
      device->SetChannel (channel);
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   259
      node->AddDevice (device);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   260
      devices.Add (device);
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   261
      NS_LOG_DEBUG ("node="<<node<<", mob="<<node->GetObject<MobilityModel> ());
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   262
    }
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   263
  return devices;
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   264
}
2791
a2ab6517516e basic pcap output
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents: 2656
diff changeset
   265
2524
db72c0e7743e port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff changeset
   266
} // namespace ns3