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-- |
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 |