Helper class for UAN CW MAC example. More...
#include <uan-cw-example.h>
Public Member Functions | |
Experiment () | |
Experiment (std::string name) | |
Experiment () | |
Experiment (std::string name) | |
Experiment () | |
Experiment () | |
Experiment () | |
Experiment (std::string name) | |
bool | CommandSetup (int argc, char **argv) |
void | CreateDualModes (uint32_t fc) |
UanTxMode | CreateMode (uint32_t kass, uint32_t fc, bool upperblock, std::string name) |
std::string | GetOutputFileName () |
std::string | GetRateManager () |
std::string | GetRtsThreshold () |
uint32_t | GetScenario () |
void | IncrementCw (uint32_t cw) |
bool | IsMobility () |
bool | IsRouting () |
void | ReceivePacket (Ptr< Socket > socket) |
void | ReceivePacket (Ptr< Socket > socket) |
void | ResetData () |
Gnuplot2dDataset | Run (UanHelper &uan) |
Gnuplot2dDataset | Run (const WifiHelper &wifi, const YansWifiPhyHelper &wifiPhy, const NqosWifiMacHelper &wifiMac, const YansWifiChannelHelper &wifiChannel) |
uint32_t | Run (const WifiHelper &wifi, const YansWifiPhyHelper &wifiPhy, const NqosWifiMacHelper &wifiMac, const YansWifiChannelHelper &wifiChannel) |
uint32_t | Run (uint32_t param) |
Gnuplot2dDataset | Run (const WifiHelper &wifi, const YansWifiPhyHelper &wifiPhy, const NqosWifiMacHelper &wifiMac, const YansWifiChannelHelper &wifiChannel, const MobilityHelper &mobility) |
void | UpdatePositions (NodeContainer &nodes) |
Public Attributes | |
std::string | m_asciitracefile |
uint32_t | m_avgs |
std::string | m_bhCfgFile |
double | m_boundary |
UanModesList | m_controlModes |
uint32_t | m_cwMax |
uint32_t | m_cwMin |
uint32_t | m_cwStep |
Gnuplot2dDataset | m_data |
UanModesList | m_dataModes |
uint32_t | m_dataRate |
double | m_depth |
bool | m_doNode |
std::string | m_gnudatfile |
std::string | m_gnuplotfile |
uint32_t | m_maxRange |
uint32_t | m_numNodes |
uint32_t | m_numRates |
uint32_t | m_packetSize |
uint32_t | m_pktSize |
Time | m_sifs |
uint32_t | m_simMax |
uint32_t | m_simMin |
uint32_t | m_simStep |
Time | m_simTime |
Time | m_slotTime |
std::vector< double > | m_throughputs |
uint32_t | m_totalRate |
Private Member Functions | |
void | AdvancePosition (Ptr< Node > node) |
void | ApplicationSetup (Ptr< Node > client, Ptr< Node > server, double start, double stop) |
void | AssignNeighbors (NodeContainer c) |
void | CheckThroughput () |
NodeContainer | GenerateNeighbors (NodeContainer c, uint32_t senderId) |
void | GenerateTraffic (Ptr< Socket > socket, uint32_t pktSize, uint32_t pktCount, Time pktInterval) |
Vector | GetPosition (Ptr< Node > node) |
Vector | GetPosition (Ptr< Node > node) |
void | ReceivePacket (Ptr< Socket > socket) |
void | ReceivePacket (Ptr< Socket > socket) |
void | ReceivePacket (Ptr< Socket > socket) |
void | SelectSrcDest (NodeContainer c) |
void | SendMultiDestinations (Ptr< Node > sender, NodeContainer c) |
void | SetPosition (Ptr< Node > node, Vector position) |
void | SetPosition (Ptr< Node > node, Vector position) |
Ptr< Socket > | SetupPacketReceive (Ptr< Node > node) |
Ptr< Socket > | SetupPacketReceive (Ptr< Node > node) |
Ptr< Socket > | SetupPacketReceive (Ptr< Node > node) |
Private Attributes | |
uint32_t | bytesTotal |
NodeContainer | containerA |
NodeContainer | containerB |
NodeContainer | containerC |
NodeContainer | containerD |
bool | enableFlowMon |
bool | enableMobility |
bool | enablePcap |
bool | enableRouting |
bool | enableTracing |
double | expMean |
uint32_t | gridSize |
uint32_t | m_bytesTotal |
Gnuplot2dDataset | m_output |
uint32_t | m_pktsTotal |
uint32_t | nodeDistance |
std::string | outputFileName |
uint32_t | packetSize |
uint32_t | port |
std::string | rateManager |
std::string | rtsThreshold |
double | samplingPeriod |
uint32_t | scenario |
double | totalTime |
Helper class for UAN CW MAC example.
Definition at line 71 of file multirate.cc.
Experiment::Experiment | ( | ) |
Definition at line 125 of file multirate.cc.
Experiment::Experiment | ( | std::string | name | ) |
Definition at line 129 of file multirate.cc.
References m_output, and ns3::Gnuplot2dDataset::SetStyle().
Experiment::Experiment | ( | ) |
Experiment::Experiment | ( | std::string | name | ) |
Experiment::Experiment | ( | ) |
Experiment::Experiment | ( | std::string | name | ) |
Experiment::Experiment | ( | ) |
Experiment::Experiment | ( | ) |
Definition at line 77 of file wifi-adhoc.cc.
References ns3::Gnuplot2dDataset::Add(), GetPosition(), m_bytesTotal, m_output, SetPosition(), and ns3::Vector3D::x.
Referenced by Run().
|
private |
Definition at line 349 of file multirate.cc.
References ns3::Ipv4::GetAddress(), ns3::Object::GetObject(), ns3::OnOffHelper::Install(), NS_LOG_DEBUG, packetSize, port, PrintPosition(), ns3::OnOffHelper::SetAttribute(), ns3::OnOffHelper::SetConstantRate(), SetupPacketReceive(), ns3::ApplicationContainer::Start(), and ns3::ApplicationContainer::Stop().
Referenced by Run(), SelectSrcDest(), and SendMultiDestinations().
|
private |
Take the grid map, divide it into 4 quadrants Assign all nodes from each quadrant to a specific container
Definition at line 192 of file multirate.cc.
References ns3::NodeContainer::Add(), containerA, containerB, containerC, containerD, ns3::NodeContainer::Get(), ns3::NodeContainer::GetN(), and gridSize.
Referenced by Run().
|
private |
Definition at line 175 of file multirate.cc.
References ns3::Gnuplot2dDataset::Add(), bytesTotal, m_output, ns3::Now(), and samplingPeriod.
Referenced by Run().
bool Experiment::CommandSetup | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 533 of file multirate.cc.
References ns3::CommandLine::AddValue(), enableMobility, enableRouting, outputFileName, packetSize, ns3::CommandLine::Parse(), rateManager, rtsThreshold, samplingPeriod, scenario, and totalTime.
Referenced by main().
void Experiment::CreateDualModes | ( | uint32_t | fc | ) |
Definition at line 133 of file uan-rc-example.cc.
References ns3::UanModesList::AppendMode(), CreateMode(), m_controlModes, m_dataModes, and m_numRates.
Referenced by main().
UanTxMode Experiment::CreateMode | ( | uint32_t | kass, |
uint32_t | fc, | ||
bool | upperblock, | ||
std::string | name | ||
) |
Definition at line 99 of file uan-rc-example.cc.
References m_numRates, and m_totalRate.
Referenced by CreateDualModes().
|
private |
Generate 1-hop and 2-hop neighbors of a node in grid topology
Definition at line 233 of file multirate.cc.
References ns3::NodeContainer::Add(), and ns3::NodeContainer::Get().
Referenced by Run().
|
private |
Definition at line 102 of file wifi-clear-channel-cmu.cc.
References ns3::Socket::Close(), and ns3::Socket::Send().
|
inline |
Definition at line 87 of file multirate.cc.
Referenced by main(), and Run().
Definition at line 70 of file wifi-adhoc.cc.
References ns3::Object::GetObject(), and ns3::MobilityModel::GetPosition().
Referenced by AdvancePosition(), and Run().
|
inline |
Definition at line 88 of file multirate.cc.
Referenced by main().
|
inline |
Definition at line 86 of file multirate.cc.
Referenced by main().
|
inline |
Definition at line 84 of file multirate.cc.
Referenced by main().
void Experiment::IncrementCw | ( | uint32_t | cw | ) |
Definition at line 80 of file uan-cw-example.cc.
References ns3::Gnuplot2dDataset::Add(), m_avgs, m_cwStep, m_data, m_throughputs, NS_ASSERT, NS_LOG_DEBUG, and ns3::Config::Set().
Referenced by Run().
|
inline |
Definition at line 82 of file multirate.cc.
Referenced by main().
|
inline |
Definition at line 81 of file multirate.cc.
Referenced by main().
Definition at line 165 of file multirate.cc.
References bytesTotal, ns3::Packet::GetSize(), and ns3::Socket::Recv().
Referenced by Run(), and SetupPacketReceive().
void Experiment::ResetData | ( | ) |
Definition at line 72 of file uan-cw-example.cc.
References ns3::Time::GetSeconds(), m_bytesTotal, m_simTime, m_throughputs, ns3::Now(), and NS_LOG_DEBUG.
Referenced by Run().
Gnuplot2dDataset Experiment::Run | ( | UanHelper & | uan | ) |
Definition at line 126 of file uan-cw-example.cc.
References ns3::ListPositionAllocator::Add(), ns3::Object::AggregateObject(), ns3::Socket::Bind(), ns3::NodeContainer::Create(), first::devices, ns3::UanHelper::EnableAsciiAll(), ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::NetDevice::GetAddress(), ns3::NetDevice::GetIfIndex(), ns3::NetDeviceContainer::GetN(), ns3::NodeContainer::GetN(), ns3::Object::GetObject(), GetPosition(), ns3::UniformRandomVariable::GetValue(), IncrementCw(), ns3::PacketSocketHelper::Install(), ns3::OnOffHelper::Install(), ns3::UanHelper::Install(), ns3::MobilityHelper::Install(), m_asciitracefile, m_avgs, m_boundary, m_bytesTotal, m_cwMax, m_cwMin, m_cwStep, m_data, m_dataRate, m_depth, m_numNodes, m_packetSize, m_simTime, m_slotTime, ns3::MakeCallback(), NS_FATAL_ERROR, NS_LOG_DEBUG, ReceivePacket(), ResetData(), Run(), ns3::OnOffHelper::SetAttribute(), ns3::UanHelper::SetMac(), ns3::MobilityHelper::SetMobilityModel(), ns3::PacketSocketAddress::SetPhysicalAddress(), ns3::MobilityHelper::SetPositionAllocator(), ns3::PacketSocketAddress::SetProtocol(), ns3::Socket::SetRecvCallback(), ns3::PacketSocketAddress::SetSingleDevice(), ns3::ApplicationContainer::Start(), ns3::ApplicationContainer::Stop(), UpdatePositions(), and sample-rng-plot::x.
uint32_t Experiment::Run | ( | const WifiHelper & | wifi, |
const YansWifiPhyHelper & | wifiPhy, | ||
const NqosWifiMacHelper & | wifiMac, | ||
const YansWifiChannelHelper & | wifiChannel | ||
) |
Definition at line 114 of file wifi-adhoc.cc.
References ns3::ListPositionAllocator::Add(), AdvancePosition(), ns3::YansWifiChannelHelper::Create(), ns3::NodeContainer::Create(), first::devices, ns3::NetDeviceContainer::Get(), ns3::NodeContainer::Get(), ns3::NetDevice::GetAddress(), ns3::NetDevice::GetIfIndex(), ns3::PacketSocketHelper::Install(), ns3::OnOffHelper::Install(), ns3::WifiHelper::Install(), ns3::MobilityHelper::Install(), m_bytesTotal, m_output, Run(), ns3::OnOffHelper::SetAttribute(), ns3::YansWifiPhyHelper::SetChannel(), ns3::OnOffHelper::SetConstantRate(), ns3::MobilityHelper::SetMobilityModel(), ns3::PacketSocketAddress::SetPhysicalAddress(), ns3::MobilityHelper::SetPositionAllocator(), ns3::PacketSocketAddress::SetProtocol(), ns3::PacketSocketAddress::SetSingleDevice(), SetupPacketReceive(), ns3::ApplicationContainer::Start(), and ns3::ApplicationContainer::Stop().
uint32_t Experiment::Run | ( | const WifiHelper & | wifi, |
const YansWifiPhyHelper & | wifiPhy, | ||
const NqosWifiMacHelper & | wifiMac, | ||
const YansWifiChannelHelper & | wifiChannel | ||
) |
uint32_t Experiment::Run | ( | uint32_t | param | ) |
Definition at line 148 of file uan-rc-example.cc.
References ns3::ListPositionAllocator::Add(), ns3::Socket::Bind(), ns3::NodeContainer::Create(), first::devices, ns3::NetDeviceContainer::Get(), ns3::NetDevice::GetAddress(), ns3::NetDevice::GetIfIndex(), ns3::PacketSocketHelper::Install(), ns3::OnOffHelper::Install(), ns3::UanHelper::Install(), ns3::MobilityHelper::Install(), m_bytesTotal, m_controlModes, m_dataModes, m_doNode, m_maxRange, m_numNodes, m_numRates, m_pktSize, m_sifs, m_simTime, m_totalRate, ns3::MakeCallback(), first::nodes, ReceivePacket(), Run(), ns3::OnOffHelper::SetAttribute(), ns3::UanHelper::SetMac(), ns3::MobilityHelper::SetMobilityModel(), ns3::UanHelper::SetPhy(), ns3::PacketSocketAddress::SetPhysicalAddress(), ns3::MobilityHelper::SetPositionAllocator(), ns3::PacketSocketAddress::SetProtocol(), ns3::Socket::SetRecvCallback(), ns3::PacketSocketAddress::SetSingleDevice(), ns3::ApplicationContainer::Start(), ns3::ApplicationContainer::Stop(), and sample-rng-plot::x.
Gnuplot2dDataset Experiment::Run | ( | const WifiHelper & | wifi, |
const YansWifiPhyHelper & | wifiPhy, | ||
const NqosWifiMacHelper & | wifiMac, | ||
const YansWifiChannelHelper & | wifiChannel, | ||
const MobilityHelper & | mobility | ||
) |
Definition at line 373 of file multirate.cc.
References ns3::Ipv4ListRoutingHelper::Add(), first::address, ApplicationSetup(), ns3::Ipv4AddressHelper::Assign(), AssignNeighbors(), CheckThroughput(), containerA, containerB, containerC, containerD, ns3::YansWifiChannelHelper::Create(), ns3::NodeContainer::Create(), ns3::AsciiTraceHelper::CreateFileStream(), first::devices, ns3::AsciiTraceHelperForDevice::EnableAsciiAll(), enableFlowMon, enableMobility, enablePcap, ns3::PcapHelperForDevice::EnablePcapAll(), enableRouting, enableTracing, GenerateNeighbors(), ns3::NodeContainer::Get(), GetOutputFileName(), gridSize, ns3::InternetStackHelper::Install(), ns3::WifiHelper::Install(), ns3::MobilityHelper::Install(), ns3::FlowMonitorHelper::InstallAll(), list, m_output, nodeDistance, NS_LOG_DEBUG, scenario, SelectSrcDest(), SendMultiDestinations(), ns3::FlowMonitor::SerializeToXmlFile(), ns3::Ipv4AddressHelper::SetBase(), ns3::YansWifiPhyHelper::SetChannel(), ns3::MobilityHelper::SetMobilityModel(), ns3::MobilityHelper::SetPositionAllocator(), ns3::InternetStackHelper::SetRoutingHelper(), and totalTime.
Referenced by main(), and Run().
|
private |
Sources and destinations are randomly selected such that a node may be the source for multiple destinations and a node maybe a destination for multiple sources.
Definition at line 255 of file multirate.cc.
References ApplicationSetup(), ns3::NodeContainer::Get(), ns3::UniformRandomVariable::GetInteger(), ns3::NodeContainer::GetN(), ns3::ObjectBase::SetAttribute(), and totalTime.
Referenced by Run().
|
private |
A sender node will set up a flow to each of the its neighbors in its quadrant randomly. All the flows are exponentially distributed
Definition at line 278 of file multirate.cc.
References ApplicationSetup(), expMean, ns3::NodeContainer::Get(), ns3::Node::GetId(), ns3::NodeContainer::GetN(), ns3::UniformRandomVariable::GetValue(), ns3::ExponentialRandomVariable::GetValue(), NS_LOG_DEBUG, ns3::ObjectBase::SetAttribute(), visualizer.core::start(), and totalTime.
Referenced by Run().
Definition at line 63 of file wifi-adhoc.cc.
References ns3::Object::GetObject(), and ns3::MobilityModel::SetPosition().
Referenced by AdvancePosition().
Definition at line 153 of file multirate.cc.
References ns3::Socket::Bind(), ns3::MakeCallback(), port, ReceivePacket(), and ns3::Socket::SetRecvCallback().
Referenced by ApplicationSetup(), and Run().
void Experiment::UpdatePositions | ( | NodeContainer & | nodes | ) |
Definition at line 100 of file uan-cw-example.cc.
References ns3::NodeContainer::Begin(), ns3::NodeContainer::End(), ns3::Object::GetObject(), ns3::UniformRandomVariable::GetValue(), m_boundary, ns3::Now(), NS_LOG_DEBUG, and ns3::MobilityModel::SetPosition().
Referenced by Run().
|
private |
Definition at line 108 of file multirate.cc.
Referenced by CheckThroughput(), and ReceivePacket().
|
private |
Definition at line 121 of file multirate.cc.
Referenced by AssignNeighbors(), and Run().
|
private |
Definition at line 121 of file multirate.cc.
Referenced by AssignNeighbors(), and Run().
|
private |
Definition at line 121 of file multirate.cc.
Referenced by AssignNeighbors(), and Run().
|
private |
Definition at line 121 of file multirate.cc.
Referenced by AssignNeighbors(), and Run().
|
private |
Definition at line 117 of file multirate.cc.
Referenced by Run().
|
private |
Definition at line 119 of file multirate.cc.
Referenced by CommandSetup(), and Run().
|
private |
Definition at line 115 of file multirate.cc.
Referenced by Run().
|
private |
Definition at line 118 of file multirate.cc.
Referenced by CommandSetup(), and Run().
|
private |
Definition at line 116 of file multirate.cc.
Referenced by Run().
|
private |
Definition at line 105 of file multirate.cc.
Referenced by SendMultiDestinations().
|
private |
Definition at line 110 of file multirate.cc.
Referenced by AssignNeighbors(), and Run().
std::string Experiment::m_asciitracefile |
Definition at line 58 of file uan-cw-example.h.
Referenced by Run().
uint32_t Experiment::m_avgs |
Definition at line 52 of file uan-cw-example.h.
Referenced by IncrementCw(), main(), and Run().
std::string Experiment::m_bhCfgFile |
Definition at line 59 of file uan-cw-example.h.
double Experiment::m_boundary |
Definition at line 46 of file uan-cw-example.h.
Referenced by main(), Run(), and UpdatePositions().
|
private |
Definition at line 48 of file wifi-adhoc.cc.
Referenced by AdvancePosition(), ResetData(), and Run().
UanModesList Experiment::m_controlModes |
Definition at line 50 of file uan-rc-example.h.
Referenced by CreateDualModes(), and Run().
uint32_t Experiment::m_cwMax |
Definition at line 50 of file uan-cw-example.h.
uint32_t Experiment::m_cwMin |
Definition at line 49 of file uan-cw-example.h.
uint32_t Experiment::m_cwStep |
Definition at line 51 of file uan-cw-example.h.
Referenced by IncrementCw(), and Run().
Gnuplot2dDataset Experiment::m_data |
Definition at line 61 of file uan-cw-example.h.
Referenced by IncrementCw(), and Run().
UanModesList Experiment::m_dataModes |
Definition at line 49 of file uan-rc-example.h.
Referenced by CreateDualModes(), and Run().
uint32_t Experiment::m_dataRate |
Definition at line 44 of file uan-cw-example.h.
double Experiment::m_depth |
Definition at line 45 of file uan-cw-example.h.
bool Experiment::m_doNode |
Definition at line 41 of file uan-rc-example.h.
std::string Experiment::m_gnudatfile |
Definition at line 57 of file uan-cw-example.h.
Referenced by main().
std::string Experiment::m_gnuplotfile |
Definition at line 45 of file uan-rc-example.h.
Referenced by main().
uint32_t Experiment::m_maxRange |
Definition at line 38 of file uan-rc-example.h.
uint32_t Experiment::m_numNodes |
Definition at line 43 of file uan-cw-example.h.
uint32_t Experiment::m_numRates |
Definition at line 36 of file uan-rc-example.h.
Referenced by CreateDualModes(), CreateMode(), main(), and Run().
|
private |
Definition at line 102 of file multirate.cc.
Referenced by AdvancePosition(), CheckThroughput(), Experiment(), and Run().
uint32_t Experiment::m_packetSize |
Definition at line 47 of file uan-cw-example.h.
uint32_t Experiment::m_pktSize |
Definition at line 40 of file uan-rc-example.h.
|
private |
Definition at line 52 of file wifi-clear-channel-cmu.cc.
Time Experiment::m_sifs |
Definition at line 42 of file uan-rc-example.h.
uint32_t Experiment::m_simMax |
Definition at line 34 of file uan-rc-example.h.
Referenced by main().
uint32_t Experiment::m_simMin |
Definition at line 33 of file uan-rc-example.h.
Referenced by main().
uint32_t Experiment::m_simStep |
Definition at line 35 of file uan-rc-example.h.
Referenced by main().
Time Experiment::m_simTime |
Definition at line 55 of file uan-cw-example.h.
Referenced by main(), ResetData(), and Run().
Time Experiment::m_slotTime |
Definition at line 54 of file uan-cw-example.h.
std::vector<double> Experiment::m_throughputs |
Definition at line 62 of file uan-cw-example.h.
Referenced by IncrementCw(), and ResetData().
uint32_t Experiment::m_totalRate |
Definition at line 37 of file uan-rc-example.h.
Referenced by CreateMode(), main(), and Run().
|
private |
Definition at line 111 of file multirate.cc.
Referenced by Run().
|
private |
Definition at line 122 of file multirate.cc.
Referenced by CommandSetup().
|
private |
Definition at line 109 of file multirate.cc.
Referenced by ApplicationSetup(), and CommandSetup().
|
private |
Definition at line 112 of file multirate.cc.
Referenced by ApplicationSetup(), and SetupPacketReceive().
|
private |
Definition at line 122 of file multirate.cc.
Referenced by CommandSetup().
|
private |
Definition at line 122 of file multirate.cc.
Referenced by CommandSetup().
|
private |
Definition at line 106 of file multirate.cc.
Referenced by CheckThroughput(), and CommandSetup().
|
private |
Definition at line 113 of file multirate.cc.
Referenced by CommandSetup(), and Run().
|
private |
Definition at line 104 of file multirate.cc.
Referenced by CommandSetup(), Run(), SelectSrcDest(), and SendMultiDestinations().