A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
wifi-eht-network.cc File Reference
#include "ns3/boolean.h"
#include "ns3/command-line.h"
#include "ns3/config.h"
#include "ns3/double.h"
#include "ns3/eht-phy.h"
#include "ns3/enum.h"
#include "ns3/internet-stack-helper.h"
#include "ns3/ipv4-address-helper.h"
#include "ns3/log.h"
#include "ns3/mobility-helper.h"
#include "ns3/multi-model-spectrum-channel.h"
#include "ns3/on-off-helper.h"
#include "ns3/packet-sink-helper.h"
#include "ns3/packet-sink.h"
#include "ns3/rng-seed-manager.h"
#include "ns3/spectrum-wifi-helper.h"
#include "ns3/ssid.h"
#include "ns3/string.h"
#include "ns3/udp-client-server-helper.h"
#include "ns3/udp-server.h"
#include "ns3/uinteger.h"
#include "ns3/wifi-acknowledgment.h"
#include "ns3/yans-wifi-channel.h"
#include "ns3/yans-wifi-helper.h"
#include <array>
#include <functional>
#include <numeric>
+ Include dependency graph for wifi-eht-network.cc:

Go to the source code of this file.

Functions

std::vector< uint64_t > GetRxBytes (bool udp, const ApplicationContainer &serverApp, uint32_t payloadSize)
 
void PrintIntermediateTput (std::vector< uint64_t > &rxBytes, bool udp, const ApplicationContainer &serverApp, uint32_t payloadSize, Time tputInterval, double simulationTime)
 Print average throughput over an intermediate time interval.
 

Detailed Description

Usage

$ ./ns3 run "wifi-eht-network [Program Options]"

Program Options

--frequency
Whether the first link operates in the 2.4, 5 or 6 GHz band (other values gets rejected) [5]
--frequency2
Whether the second link operates in the 2.4, 5 or 6 GHz band (0 means the device has one link, otherwise the band must be different than first link and third link) [0]
--frequency3
Whether the third link operates in the 2.4, 5 or 6 GHz band (0 means the device has up to two links, otherwise the band must be different than first link and second link) [0]
--emlsrLinks
The comma separated list of IDs of EMLSR links (for MLDs only)
--emlsrPaddingDelay
The EMLSR padding delay in microseconds (0, 32, 64, 128 or 256) [32]
--emlsrTransitionDelay
The EMLSR transition delay in microseconds (0, 16, 32, 64, 128 or 256) [128]
--emlsrAuxSwitch
Whether Aux PHY should switch channel to operate on the link on which the Main PHY was operating before moving to the link of the Aux PHY. [true]
--channelSwitchDelay
The PHY channel switch delay in microseconds [100]
--distance
Distance in meters between the station and the access point [1]
--simulationTime
Simulation time in seconds [10]
--udp
UDP if set to 1, TCP otherwise [true]
--downlink
Generate downlink flows if set to 1, uplink flows otherwise [true]
--useRts
Enable/disable RTS/CTS [false]
--mpduBufferSize
Size (in number of MPDUs) of the BlockAck buffer [512]
--nStations
Number of non-AP EHT stations [1]
--dlAckType
Ack sequence type for DL OFDMA (NO-OFDMA, ACK-SU-FORMAT, MU-BAR, AGGR-MU-BAR) [NO-OFDMA]
--enableUlOfdma
Enable UL OFDMA (useful if DL OFDMA is enabled and TCP is used) [false]
--enableBsrp
Enable BSRP (useful if DL and UL OFDMA are enabled and TCP is used) [false]
--muSchedAccessReqInterval
Duration of the interval between two requests for channel access made by the MU scheduler [+0fs]
--mcs
if set, limit testing to a specific MCS (0-11) [-1]
--payloadSize
The application payload size in bytes [700]
--tputInterval
duration of intervals for throughput measurement [+0fs]
--minExpectedThroughput
if set, simulation fails if the lowest throughput is below this value [0]
--maxExpectedThroughput
if set, simulation fails if the highest throughput is above this value [0]

Definition in file wifi-eht-network.cc.

Function Documentation

◆ GetRxBytes()

std::vector< uint64_t > GetRxBytes ( bool  udp,
const ApplicationContainer serverApp,
uint32_t  payloadSize 
)
Parameters
udptrue if UDP is used, false if TCP is used
serverAppa container of server applications
payloadSizethe size in bytes of the packets
Returns
the bytes received by each server application

Definition at line 78 of file wifi-eht-network.cc.

References ns3::ApplicationContainer::Get(), and ns3::ApplicationContainer::GetN().

Referenced by PrintIntermediateTput().

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

◆ PrintIntermediateTput()

void PrintIntermediateTput ( std::vector< uint64_t > &  rxBytes,
bool  udp,
const ApplicationContainer serverApp,
uint32_t  payloadSize,
Time  tputInterval,
double  simulationTime 
)

Print average throughput over an intermediate time interval.

Parameters
rxBytesa vector of the amount of bytes received by each server application
udptrue if UDP is used, false if TCP is used
serverAppa container of server applications
payloadSizethe size in bytes of the packets
tputIntervalthe duration of an intermediate time interval
simulationTimethe simulation time in seconds

Definition at line 108 of file wifi-eht-network.cc.

References ns3::Time::As(), ns3::Time::GetMicroSeconds(), GetRxBytes(), Min, ns3::NanoSeconds(), ns3::Simulator::Now(), PrintIntermediateTput(), ns3::Time::S, ns3::Simulator::Schedule(), and ns3::Seconds().

Referenced by PrintIntermediateTput().

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