A Discrete-Event Network Simulator
API
ns3::YansWifiChannelHelper Class Reference

manage and create wifi channel objects for the YANS model. More...

#include "yans-wifi-helper.h"

+ Collaboration diagram for ns3::YansWifiChannelHelper:

Public Member Functions

 YansWifiChannelHelper ()
 Create a channel helper without any parameter set. More...
 
template<typename... Ts>
void AddPropagationLoss (std::string name, Ts &&... args)
 
int64_t AssignStreams (Ptr< YansWifiChannel > c, int64_t stream)
 Assign a fixed random variable stream number to the random variables used by the channel. More...
 
Ptr< YansWifiChannelCreate (void) const
 
template<typename... Ts>
void SetPropagationDelay (std::string name, Ts &&... args)
 

Static Public Member Functions

static YansWifiChannelHelper Default (void)
 Create a channel helper in a default working state. More...
 

Private Attributes

ObjectFactory m_propagationDelay
 propagation delay model More...
 
std::vector< ObjectFactorym_propagationLoss
 vector of propagation loss models More...
 

Detailed Description

manage and create wifi channel objects for the YANS model.

The intent of this class is to make it easy to create a channel object which implements the YANS channel model. The YANS channel model is described in "Yet Another Network Simulator"; an author-prepared version of this paper * is at: https://hal.inria.fr/file/index/docid/78318/filename/yans-rr.pdf

Definition at line 36 of file yans-wifi-helper.h.

Constructor & Destructor Documentation

◆ YansWifiChannelHelper()

ns3::YansWifiChannelHelper::YansWifiChannelHelper ( )

Create a channel helper without any parameter set.

The user must set them all to be able to call Create later.

Definition at line 38 of file yans-wifi-helper.cc.

Member Function Documentation

◆ AddPropagationLoss()

template<typename... Ts>
void ns3::YansWifiChannelHelper::AddPropagationLoss ( std::string  name,
Ts &&...  args 
)
Template Parameters
Ts[deduced] Argument types
Parameters
namethe name of the model to add
[in]argsName and AttributeValue pairs to set.

Add a propagation loss model to the set of currently-configured loss models. This method is additive to allow you to construct complex propagation loss models such as a log distance + Jakes model, etc.

The order in which PropagationLossModels are added may be significant. Some propagation models are dependent of the "txPower" (e.g. Nakagami model), and are therefore not commutative. The final receive power (excluding receiver gains) are calculated in the order the models are added.

Definition at line 159 of file yans-wifi-helper.h.

References trim-trailing-whitespace::args, and m_propagationLoss.

Referenced by DsdvManetExample::CreateDevices(), Default(), RoutingExperiment::Run(), and VanetRoutingExperiment::SetupAdhocDevices().

+ Here is the caller graph for this function:

◆ AssignStreams()

int64_t ns3::YansWifiChannelHelper::AssignStreams ( Ptr< YansWifiChannel c,
int64_t  stream 
)

Assign a fixed random variable stream number to the random variables used by the channel.

Typically this corresponds to random variables used in the propagation loss models. Return the number of streams (possibly zero) that have been assigned.

Parameters
cNetDeviceContainer of the set of net devices for which the WifiNetDevice should be modified to use fixed streams
streamfirst stream index to use
Returns
the number of stream indices assigned by this helper

Definition at line 75 of file yans-wifi-helper.cc.

Referenced by ChainRegressionTest::CreateDevices(), Bug772ChainTest::CreateDevices(), HwmpProactiveRegressionTest::CreateDevices(), HwmpReactiveRegressionTest::CreateDevices(), HwmpSimplestRegressionTest::CreateDevices(), HwmpDoRfRegressionTest::CreateDevices(), PeerManagementProtocolRegressionTest::CreateDevices(), and FlameRegressionTest::CreateDevices().

+ Here is the caller graph for this function:

◆ Create()

◆ Default()

YansWifiChannelHelper ns3::YansWifiChannelHelper::Default ( void  )
static

Create a channel helper in a default working state.

By default, we create a channel model with a propagation delay equal to a constant, the speed of light, and a propagation loss based on a log distance model with a reference loss of 46.6777 dB at reference distance of 1m.

Returns
YansWifiChannelHelper

Definition at line 43 of file yans-wifi-helper.cc.

References AddPropagationLoss(), and SetPropagationDelay().

Referenced by ns3::aodv::LoopbackTestCase::DoRun().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetPropagationDelay()

template<typename... Ts>
void ns3::YansWifiChannelHelper::SetPropagationDelay ( std::string  name,
Ts &&...  args 
)
Template Parameters
Ts[deduced] Argument types
Parameters
namethe name of the model to set
[in]argsName and AttributeValue pairs to set.

Configure a propagation delay for this channel.

Definition at line 165 of file yans-wifi-helper.h.

References trim-trailing-whitespace::args, and m_propagationDelay.

Referenced by BatteryLifetimeTest::ConstantLoadTest(), DsdvManetExample::CreateDevices(), Default(), BasicEnergyDepletionTest::DepletionTestCase(), RoutingExperiment::Run(), VanetRoutingExperiment::SetupAdhocDevices(), and BatteryLifetimeTest::VariableLoadTest().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_propagationDelay

ObjectFactory ns3::YansWifiChannelHelper::m_propagationDelay
private

propagation delay model

Definition at line 104 of file yans-wifi-helper.h.

Referenced by Create(), and SetPropagationDelay().

◆ m_propagationLoss

std::vector<ObjectFactory> ns3::YansWifiChannelHelper::m_propagationLoss
private

vector of propagation loss models

Definition at line 103 of file yans-wifi-helper.h.

Referenced by AddPropagationLoss(), and Create().


The documentation for this class was generated from the following files: