A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
wifi-80211p-helper.cc
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2008 INRIA
4
* Copyright (c) 2009 MIRKO BANCHI
5
* Copyright (c) 2013 Dalian University of Technology
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License version 2 as
9
* published by the Free Software Foundation;
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
*
20
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
21
* Author: Mirko Banchi <mk.banchi@gmail.com>
22
* Author: Junling Bu <linlinjavaer@gmail.com>
23
*/
24
#include "ns3/string.h"
25
#include "ns3/log.h"
26
#include <typeinfo>
27
#include "
wave-mac-helper.h
"
28
#include "
wifi-80211p-helper.h
"
29
#include "ns3/unused.h"
30
31
namespace
ns3
{
32
33
Wifi80211pHelper::Wifi80211pHelper
()
34
{
35
}
36
37
Wifi80211pHelper::~Wifi80211pHelper
()
38
{
39
}
40
41
Wifi80211pHelper
42
Wifi80211pHelper::Default
(
void
)
43
{
44
Wifi80211pHelper
helper;
45
helper.
SetStandard
(
WIFI_STANDARD_80211p
);
46
helper.
SetRemoteStationManager
(
"ns3::ConstantRateWifiManager"
,
47
"DataMode"
,
StringValue
(
"OfdmRate6MbpsBW10MHz"
),
48
"ControlMode"
,
StringValue
(
"OfdmRate6MbpsBW10MHz"
),
49
"NonUnicastMode"
,
StringValue
(
"OfdmRate6MbpsBW10MHz"
));
50
return
helper;
51
}
52
53
void
54
Wifi80211pHelper::SetStandard
(
enum
WifiStandard
standard)
55
{
56
if
(standard ==
WIFI_STANDARD_80211p
)
57
{
58
WifiHelper::SetStandard
(standard);
59
}
60
else
61
{
62
NS_FATAL_ERROR
(
"wrong standard selected!"
);
63
}
64
}
65
66
void
67
Wifi80211pHelper::EnableLogComponents
(
void
)
68
{
69
WifiHelper::EnableLogComponents
();
70
71
LogComponentEnable
(
"OcbWifiMac"
,
LOG_LEVEL_ALL
);
72
LogComponentEnable
(
"VendorSpecificAction"
,
LOG_LEVEL_ALL
);
73
}
74
75
NetDeviceContainer
76
Wifi80211pHelper::Install
(
const
WifiPhyHelper
&phyHelper,
const
WifiMacHelper
&macHelper,
NodeContainer
c)
const
77
{
78
QosWaveMacHelper
const
* qosMac =
dynamic_cast <
QosWaveMacHelper
const
*
>
(&macHelper);
79
if
(qosMac == 0)
80
{
81
NqosWaveMacHelper
const
* nqosMac =
dynamic_cast <
NqosWaveMacHelper
const
*
>
(&macHelper);
82
if
(nqosMac == 0)
83
{
84
NS_FATAL_ERROR
(
"the macHelper should be either QosWaveMacHelper or NqosWaveMacHelper"
85
", or should be the subclass of QosWaveMacHelper or NqosWaveMacHelper"
);
86
}
87
NS_UNUSED
(nqosMac);
88
}
89
90
NS_UNUSED
(qosMac);
91
return
WifiHelper::Install
(phyHelper, macHelper, c);
92
}
93
94
}
// namespace ns3
ns3::NetDeviceContainer
holds a vector of ns3::NetDevice pointers
Definition:
net-device-container.h:42
ns3::Wifi80211pHelper
helps to create wifi 802.11p objects of WifiNetDevice class
Definition:
wifi-80211p-helper.h:41
ns3::Wifi80211pHelper::SetStandard
virtual void SetStandard(enum WifiStandard standard)
Definition:
wifi-80211p-helper.cc:54
wave-mac-helper.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiHelper::EnableLogComponents
static void EnableLogComponents(void)
Helper to enable all WifiNetDevice log components with one statement.
Definition:
wifi-helper.cc:883
ns3::Wifi80211pHelper::EnableLogComponents
static void EnableLogComponents(void)
Helper to enable all WifiNetDevice log components with one statement.
Definition:
wifi-80211p-helper.cc:67
ns3::WIFI_STANDARD_80211p
@ WIFI_STANDARD_80211p
Definition:
wifi-standards.h:130
ns3::NqosWaveMacHelper
Nqos Wave Mac Helper class.
Definition:
wave-mac-helper.h:35
ns3::LOG_LEVEL_ALL
@ LOG_LEVEL_ALL
Print everything.
Definition:
log.h:116
ns3::LogComponentEnable
void LogComponentEnable(char const *name, enum LogLevel level)
Enable the logging output associated with that log component.
Definition:
log.cc:361
ns3::Wifi80211pHelper::~Wifi80211pHelper
virtual ~Wifi80211pHelper()
Definition:
wifi-80211p-helper.cc:37
ns3::Wifi80211pHelper::Install
virtual NetDeviceContainer Install(const WifiPhyHelper &phy, const WifiMacHelper &macHelper, NodeContainer c) const
Definition:
wifi-80211p-helper.cc:76
NS_FATAL_ERROR
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
Definition:
fatal-error.h:165
ns3::QosWaveMacHelper
Qos Wave Mac Helper class.
Definition:
wave-mac-helper.h:103
wifi-80211p-helper.h
NS_UNUSED
#define NS_UNUSED(x)
Mark a local variable as unused.
Definition:
unused.h:36
ns3::Wifi80211pHelper::Default
static Wifi80211pHelper Default(void)
Definition:
wifi-80211p-helper.cc:42
ns3::WifiHelper::SetRemoteStationManager
void SetRemoteStationManager(std::string type, std::string n0="", const AttributeValue &v0=EmptyAttributeValue(), std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue())
Definition:
wifi-helper.cc:721
ns3::StringValue
Hold variables of type string.
Definition:
string.h:41
ns3::WifiHelper::SetStandard
virtual void SetStandard(WifiStandard standard)
Definition:
wifi-helper.cc:767
ns3::WifiPhyHelper
create PHY objects
Definition:
wifi-helper.h:48
ns3::Wifi80211pHelper::Wifi80211pHelper
Wifi80211pHelper()
Definition:
wifi-80211p-helper.cc:33
ns3::NodeContainer
keep track of a set of node pointers.
Definition:
node-container.h:39
ns3::WifiMacHelper
create MAC layers for a ns3::WifiNetDevice.
Definition:
wifi-mac-helper.h:48
ns3::WifiStandard
WifiStandard
Identifies the allowed configurations that a Wifi device is configured to use.
Definition:
wifi-standards.h:126
ns3::WifiHelper::Install
virtual NetDeviceContainer Install(const WifiPhyHelper &phy, const WifiMacHelper &mac, NodeContainer::Iterator first, NodeContainer::Iterator last) const
Definition:
wifi-helper.cc:779
src
wave
helper
wifi-80211p-helper.cc
Generated on Fri Oct 1 2021 17:03:41 for ns-3 by
1.8.20