A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
codel-vs-pfifo-asymmetric.cc File Reference
#include "ns3/applications-module.h"
#include "ns3/config-store.h"
#include "ns3/core-module.h"
#include "ns3/enum.h"
#include "ns3/error-model.h"
#include "ns3/event-id.h"
#include "ns3/internet-module.h"
#include "ns3/ipv4-global-routing-helper.h"
#include "ns3/network-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/tcp-header.h"
#include "ns3/traffic-control-module.h"
#include "ns3/udp-header.h"
#include <fstream>
#include <iostream>
#include <string>
+ Include dependency graph for codel-vs-pfifo-asymmetric.cc:

Go to the source code of this file.

Functions

void CreateBulkFlow (AddressValue remoteAddress, Ptr< Node > sender, uint32_t pktSize, float stopTime)
 Create a Bulk Flow application.
 
void CreateOnOffFlow (AddressValue remoteAddress, Ptr< Node > sender, float stopTime)
 Create a On Off Flow application.
 
static void CwndTracer (Ptr< OutputStreamWrapper > stream, uint32_t oldval, uint32_t newval)
 TCP Congestion window tracker.
 
static void DroppingStateTracer (Ptr< OutputStreamWrapper > stream, bool oldVal, bool newVal)
 Traffic Control Dropping state trace.
 
static void EveryDropTracer (Ptr< OutputStreamWrapper > stream, Ptr< const QueueDiscItem > item)
 Traffic control drop trace.
 
static void QueueLengthTracer (Ptr< OutputStreamWrapper > stream, uint32_t oldval, uint32_t newval)
 Traffic Control Queue length tracker.
 
static void SojournTracer (Ptr< OutputStreamWrapper > stream, Time newval)
 Traffic Control Sojourn tracker.
 
static void TraceCwnd (std::string cwndTrFileName)
 Setup for TCP congestion window tracking.
 
static void TraceDroppingState (std::string dropStateTrFileName)
 Setup for Traffic Control dropping tracking.
 
static void TraceEveryDrop (std::string everyDropTrFileName)
 Setup for Traffic Control drop tracking.
 
static void TraceQueueLength (std::string queueLengthTrFileName)
 Setup for Traffic Control Queue length tracking.
 
static void TraceSojourn (std::string sojournTrFileName)
 Setup for Traffic Control Sojourn time tracking.
 

Detailed Description

Usage

$ ./ns3 run "codel-vs-pfifo-asymmetric [Program Options]"

Program Options

--serverCmtsDelay
Link delay between server and CMTS [15ms]
--cmtsRouterDelay
Link delay between CMTS and rounter [6ms]
--routerHostDelay
Link delay between router and host [0.1ms]
--serverLanDataRate
Server LAN net device data rate [10Gbps]
--cmtsLanDataRate
CMTS LAN net device data rate [10Gbps]
--cmtsWanDataRate
CMTS WAN net device data rate [22Mbps]
--routerWanDataRate
Router WAN net device data rate [5Mbps]
--routerLanDataRate
Router LAN net device data rate [10Gbps]
--hostLanDataRate
Host LAN net device data rate [10Gbps]
--routerWanQueueDiscType
Router WAN queue disc type: PfifoFast, CoDel [CoDel]
--queueSize
Queue size in packets [1000]
--pktSize
Packet size in bytes [1458]
--numOfUpLoadBulkFlows
Number of upload bulk transfer flows [1]
--numOfDownLoadBulkFlows
Number of download bulk transfer flows [1]
--numOfUpLoadOnOffFlows
Number of upload OnOff flows [1]
--numOfDownLoadOnOffFlows
Number of download OnOff flows [1]
--startTime
Simulation start time [0.1]
--simDuration
Simulation duration in seconds [60]
--isPcapEnabled
Flag to enable/disable pcap [true]
--logging
Flag to enable/disable logging [true]

Definition in file codel-vs-pfifo-asymmetric.cc.

Function Documentation

◆ CreateBulkFlow()

void CreateBulkFlow ( AddressValue  remoteAddress,
Ptr< Node sender,
uint32_t  pktSize,
float  stopTime 
)

Create a Bulk Flow application.

Parameters
remoteAddressRemote address.
senderSender node.
pktSizePacket size.
stopTimeStop time.

Definition at line 267 of file codel-vs-pfifo-asymmetric.cc.

References ns3::ApplicationHelper::Install(), pktSize, ns3::Seconds(), ns3::ApplicationHelper::SetAttribute(), ns3::ApplicationContainer::Start(), ns3::ApplicationContainer::Stop(), and stopTime.

+ Here is the call graph for this function:

◆ CreateOnOffFlow()

void CreateOnOffFlow ( AddressValue  remoteAddress,
Ptr< Node sender,
float  stopTime 
)

Create a On Off Flow application.

Parameters
remoteAddressRemote address.
senderSender node.
stopTimeStop time.

Definition at line 286 of file codel-vs-pfifo-asymmetric.cc.

References ns3::ApplicationHelper::Install(), ns3::Seconds(), ns3::ApplicationHelper::SetAttribute(), ns3::ApplicationContainer::Start(), ns3::ApplicationContainer::Stop(), and stopTime.

+ Here is the call graph for this function:

◆ CwndTracer()

static void CwndTracer ( Ptr< OutputStreamWrapper stream,
uint32_t  oldval,
uint32_t  newval 
)
static

TCP Congestion window tracker.

Parameters
streamThe output stream.
oldvalOld value.
newvalNew value.

Definition at line 79 of file codel-vs-pfifo-asymmetric.cc.

Referenced by TraceCwnd().

+ Here is the caller graph for this function:

◆ DroppingStateTracer()

static void DroppingStateTracer ( Ptr< OutputStreamWrapper stream,
bool  oldVal,
bool  newVal 
)
static

Traffic Control Dropping state trace.

Parameters
streamThe output stream.
oldValOld value.
newValNew value.

Definition at line 221 of file codel-vs-pfifo-asymmetric.cc.

References ns3::Time::GetSeconds(), ns3::Simulator::Now(), and NS_LOG_INFO.

Referenced by TraceDroppingState().

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

◆ EveryDropTracer()

static void EveryDropTracer ( Ptr< OutputStreamWrapper stream,
Ptr< const QueueDiscItem item 
)
static

Traffic control drop trace.

Parameters
streamThe output stream.
itemThe dropped item.

Definition at line 185 of file codel-vs-pfifo-asymmetric.cc.

References ns3::Time::GetSeconds(), and ns3::Simulator::Now().

Referenced by TraceEveryDrop().

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

◆ QueueLengthTracer()

static void QueueLengthTracer ( Ptr< OutputStreamWrapper stream,
uint32_t  oldval,
uint32_t  newval 
)
static

Traffic Control Queue length tracker.

Parameters
streamThe output stream.
oldvalOld value.
newvalNew value.

Definition at line 150 of file codel-vs-pfifo-asymmetric.cc.

Referenced by TraceQueueLength().

+ Here is the caller graph for this function:

◆ SojournTracer()

static void SojournTracer ( Ptr< OutputStreamWrapper stream,
Time  newval 
)
static

Traffic Control Sojourn tracker.

Parameters
streamThe output stream.
newvalNew value.

Definition at line 114 of file codel-vs-pfifo-asymmetric.cc.

Referenced by TraceSojourn().

+ Here is the caller graph for this function:

◆ TraceCwnd()

static void TraceCwnd ( std::string  cwndTrFileName)
static

Setup for TCP congestion window tracking.

Parameters
cwndTrFileNameCongestion window output file name.

Definition at line 90 of file codel-vs-pfifo-asymmetric.cc.

References ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), CwndTracer(), ns3::MakeBoundCallback(), and NS_LOG_DEBUG.

+ Here is the call graph for this function:

◆ TraceDroppingState()

static void TraceDroppingState ( std::string  dropStateTrFileName)
static

Setup for Traffic Control dropping tracking.

Parameters
dropStateTrFileNameTC drop state output file name.

Definition at line 241 of file codel-vs-pfifo-asymmetric.cc.

References ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), DroppingStateTracer(), ns3::MakeBoundCallback(), and NS_LOG_DEBUG.

+ Here is the call graph for this function:

◆ TraceEveryDrop()

static void TraceEveryDrop ( std::string  everyDropTrFileName)
static

Setup for Traffic Control drop tracking.

Parameters
everyDropTrFileNameTC drop output file name.

Definition at line 196 of file codel-vs-pfifo-asymmetric.cc.

References ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), EveryDropTracer(), ns3::MakeBoundCallback(), and NS_LOG_DEBUG.

+ Here is the call graph for this function:

◆ TraceQueueLength()

static void TraceQueueLength ( std::string  queueLengthTrFileName)
static

Setup for Traffic Control Queue length tracking.

Parameters
queueLengthTrFileNameQueue length output file name.

Definition at line 161 of file codel-vs-pfifo-asymmetric.cc.

References ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::MakeBoundCallback(), NS_LOG_DEBUG, and QueueLengthTracer().

+ Here is the call graph for this function:

◆ TraceSojourn()

static void TraceSojourn ( std::string  sojournTrFileName)
static

Setup for Traffic Control Sojourn time tracking.

Parameters
sojournTrFileNameSojourn time output file name.

Definition at line 125 of file codel-vs-pfifo-asymmetric.cc.

References ns3::Config::ConnectWithoutContext(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::MakeBoundCallback(), NS_LOG_DEBUG, and SojournTracer().

+ Here is the call graph for this function: