A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
wifi-eht-network.cc File Reference
#include "ns3/attribute-container.h"
#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/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 <algorithm>
#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, Time 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]
--emlsrMgrTypeId
The ns-3 TypeId of the EMLSR manager to use [ns3::DefaultEmlsrManager]
--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]
--emlsrAuxChWidth
The maximum channel width (MHz) supported by Aux PHYs. [20]
--emlsrAuxTxCapable
Whether Aux PHYs are capable of transmitting. [true]
--channelSwitchDelay
The PHY channel switch delay [+100us]
--distance
Distance in meters between the station and the access point [1]
--simulationTime
Simulation time [+10s]
--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]
--use80Plus80
Enable/disable use of 80+80 MHz [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
list of comma separated MCS values to test; if unset, all MCS values (0-13) are tested
--channelWidth
if set, limit testing to a specific channel width expressed in MHz (20, 40, 80 or 160 MHz) [-1]
--guardInterval
if set, limit testing to a specific guard interval duration expressed in nanoseconds (800, 1600 or 3200 ns) [-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 68 of file wifi-eht-network.cc.

References ns3::DynamicCast(), 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,
Time 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 98 of file wifi-eht-network.cc.

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

Referenced by PrintIntermediateTput().

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