A Discrete-Event Network Simulator
API
tcp-variants-comparison.cc File Reference
#include "ns3/applications-module.h"
#include "ns3/core-module.h"
#include "ns3/enum.h"
#include "ns3/error-model.h"
#include "ns3/event-id.h"
#include "ns3/flow-monitor-helper.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 tcp-variants-comparison.cc:

Go to the source code of this file.

Functions

static void CwndTracer (std::string context, uint32_t oldval, uint32_t newval)
 Congestion window tracer. More...
 
static uint32_t GetNodeIdFromContext (std::string context)
 Get the Node Id From Context. More...
 
static void InFlightTracer (std::string context, uint32_t old[[maybe_unused]], uint32_t inFlight)
 In-flight tracer. More...
 
static void NextRxTracer (std::string context, SequenceNumber32 old[[maybe_unused]], SequenceNumber32 nextRx)
 Next RX tracer. More...
 
static void NextTxTracer (std::string context, SequenceNumber32 old[[maybe_unused]], SequenceNumber32 nextTx)
 Next TX tracer. More...
 
static void RtoTracer (std::string context, Time oldval, Time newval)
 RTO tracer. More...
 
static void RttTracer (std::string context, Time oldval, Time newval)
 RTT tracer. More...
 
static void SsThreshTracer (std::string context, uint32_t oldval, uint32_t newval)
 Slow start threshold tracer. More...
 
static void TraceCwnd (std::string cwnd_tr_file_name, uint32_t nodeId)
 Congestion window trace connection. More...
 
static void TraceInFlight (std::string &in_flight_file_name, uint32_t nodeId)
 In flight trace connection. More...
 
static void TraceNextRx (std::string &next_rx_seq_file_name, uint32_t nodeId)
 Next RX trace connection. More...
 
static void TraceNextTx (std::string &next_tx_seq_file_name, uint32_t nodeId)
 Next TX trace connection. More...
 
static void TraceRto (std::string rto_tr_file_name, uint32_t nodeId)
 RTO trace connection. More...
 
static void TraceRtt (std::string rtt_tr_file_name, uint32_t nodeId)
 RTT trace connection. More...
 
static void TraceSsThresh (std::string ssthresh_tr_file_name, uint32_t nodeId)
 Slow start threshold trace connection. More...
 

Variables

static std::map< uint32_t, Ptr< OutputStreamWrapper > > cWndStream
 Congstion window output stream. More...
 
static std::map< uint32_t, uint32_t > cWndValue
 congestion window value. More...
 
static std::map< uint32_t, bool > firstCwnd
 First congestion window. More...
 
static std::map< uint32_t, bool > firstRto
 First RTO. More...
 
static std::map< uint32_t, bool > firstRtt
 First RTT. More...
 
static std::map< uint32_t, bool > firstSshThr
 First SlowStart threshold. More...
 
static std::map< uint32_t, Ptr< OutputStreamWrapper > > inFlightStream
 In flight output stream. More...
 
static std::map< uint32_t, Ptr< OutputStreamWrapper > > nextRxStream
 Next RX output stream. More...
 
static std::map< uint32_t, Ptr< OutputStreamWrapper > > nextTxStream
 Next TX output stream. More...
 
static std::map< uint32_t, Ptr< OutputStreamWrapper > > rtoStream
 RTO output stream. More...
 
static std::map< uint32_t, Ptr< OutputStreamWrapper > > rttStream
 RTT output stream. More...
 
static std::map< uint32_t, Ptr< OutputStreamWrapper > > ssThreshStream
 SlowStart threshold output stream. More...
 
static std::map< uint32_t, uint32_t > ssThreshValue
 SlowStart threshold value. More...
 

Function Documentation

◆ CwndTracer()

static void CwndTracer ( std::string  context,
uint32_t  oldval,
uint32_t  newval 
)
static

Congestion window tracer.

Parameters
contextThe context.
oldvalOld value.
newvalNew value.

Definition at line 95 of file tcp-variants-comparison.cc.

References cWndStream, cWndValue, firstCwnd, firstSshThr, GetNodeIdFromContext(), ns3::Time::GetSeconds(), ns3::Simulator::Now(), ssThreshStream, and ssThreshValue.

Referenced by TraceCwnd().

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

◆ GetNodeIdFromContext()

static uint32_t GetNodeIdFromContext ( std::string  context)
static

Get the Node Id From Context.

Parameters
contextThe context.
Returns
the node ID.

Definition at line 80 of file tcp-variants-comparison.cc.

Referenced by CwndTracer(), InFlightTracer(), NextRxTracer(), NextTxTracer(), RtoTracer(), RttTracer(), and SsThreshTracer().

+ Here is the caller graph for this function:

◆ InFlightTracer()

static void InFlightTracer ( std::string  context,
uint32_t old]  [[maybe_unused],
uint32_t  inFlight 
)
static

In-flight tracer.

Parameters
contextThe context.
oldOld value.
inFlightIn flight value.

Definition at line 208 of file tcp-variants-comparison.cc.

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

Referenced by TraceInFlight().

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

◆ NextRxTracer()

static void NextRxTracer ( std::string  context,
SequenceNumber32 old]  [[maybe_unused],
SequenceNumber32  nextRx 
)
static

Next RX tracer.

Parameters
contextThe context.
oldOld sequence number.
nextRxNext sequence number.

Definition at line 224 of file tcp-variants-comparison.cc.

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

Referenced by TraceNextRx().

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

◆ NextTxTracer()

static void NextTxTracer ( std::string  context,
SequenceNumber32 old]  [[maybe_unused],
SequenceNumber32  nextTx 
)
static

Next TX tracer.

Parameters
contextThe context.
oldOld sequence number.
nextTxNext sequence number.

Definition at line 192 of file tcp-variants-comparison.cc.

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

Referenced by TraceNextTx().

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

◆ RtoTracer()

static void RtoTracer ( std::string  context,
Time  oldval,
Time  newval 
)
static

RTO tracer.

Parameters
contextThe context.
oldvalOld value.
newvalNew value.

Definition at line 171 of file tcp-variants-comparison.cc.

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

Referenced by TraceRto().

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

◆ RttTracer()

static void RttTracer ( std::string  context,
Time  oldval,
Time  newval 
)
static

RTT tracer.

Parameters
contextThe context.
oldvalOld value.
newvalNew value.

Definition at line 150 of file tcp-variants-comparison.cc.

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

Referenced by TraceRtt().

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

◆ SsThreshTracer()

static void SsThreshTracer ( std::string  context,
uint32_t  oldval,
uint32_t  newval 
)
static

Slow start threshold tracer.

Parameters
contextThe context.
oldvalOld value.
newvalNew value.

Definition at line 122 of file tcp-variants-comparison.cc.

References cWndStream, cWndValue, firstCwnd, firstSshThr, GetNodeIdFromContext(), ns3::Time::GetSeconds(), ns3::Simulator::Now(), ssThreshStream, and ssThreshValue.

Referenced by TraceSsThresh().

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

◆ TraceCwnd()

static void TraceCwnd ( std::string  cwnd_tr_file_name,
uint32_t  nodeId 
)
static

Congestion window trace connection.

Parameters
cwnd_tr_file_nameCongestion window trace file name.
nodeIdNode ID.

Definition at line 239 of file tcp-variants-comparison.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), cWndStream, CwndTracer(), ns3::MakeCallback(), and nlohmann::to_string().

+ Here is the call graph for this function:

◆ TraceInFlight()

static void TraceInFlight ( std::string &  in_flight_file_name,
uint32_t  nodeId 
)
static

In flight trace connection.

Parameters
in_flight_file_nameIn flight trace file name.
nodeIdNode ID.

Definition at line 317 of file tcp-variants-comparison.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), inFlightStream, InFlightTracer(), ns3::MakeCallback(), and nlohmann::to_string().

+ Here is the call graph for this function:

◆ TraceNextRx()

static void TraceNextRx ( std::string &  next_rx_seq_file_name,
uint32_t  nodeId 
)
static

Next RX trace connection.

Parameters
next_rx_seq_file_nameNext RX trace file name.
nodeIdNode ID.

Definition at line 333 of file tcp-variants-comparison.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::MakeCallback(), nextRxStream, NextRxTracer(), and nlohmann::to_string().

+ Here is the call graph for this function:

◆ TraceNextTx()

static void TraceNextTx ( std::string &  next_tx_seq_file_name,
uint32_t  nodeId 
)
static

Next TX trace connection.

Parameters
next_tx_seq_file_nameNext TX trace file name.
nodeIdNode ID.

Definition at line 301 of file tcp-variants-comparison.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::MakeCallback(), nextTxStream, NextTxTracer(), and nlohmann::to_string().

+ Here is the call graph for this function:

◆ TraceRto()

static void TraceRto ( std::string  rto_tr_file_name,
uint32_t  nodeId 
)
static

RTO trace connection.

Parameters
rto_tr_file_nameRTO trace file name.
nodeIdNode ID.

Definition at line 286 of file tcp-variants-comparison.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::MakeCallback(), rtoStream, RtoTracer(), and nlohmann::to_string().

+ Here is the call graph for this function:

◆ TraceRtt()

static void TraceRtt ( std::string  rtt_tr_file_name,
uint32_t  nodeId 
)
static

RTT trace connection.

Parameters
rtt_tr_file_nameRTT trace file name.
nodeIdNode ID.

Definition at line 271 of file tcp-variants-comparison.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::MakeCallback(), rttStream, RttTracer(), and nlohmann::to_string().

+ Here is the call graph for this function:

◆ TraceSsThresh()

static void TraceSsThresh ( std::string  ssthresh_tr_file_name,
uint32_t  nodeId 
)
static

Slow start threshold trace connection.

Parameters
ssthresh_tr_file_nameSlow start threshold trace file name.
nodeIdNode ID.

Definition at line 255 of file tcp-variants-comparison.cc.

References ns3::Config::Connect(), ns3::AsciiTraceHelper::CreateFileStream(), ns3::MakeCallback(), ssThreshStream, SsThreshTracer(), and nlohmann::to_string().

+ Here is the call graph for this function:

Variable Documentation

◆ cWndStream

std::map<uint32_t, Ptr<OutputStreamWrapper> > cWndStream
static

Congstion window output stream.

Definition at line 62 of file tcp-variants-comparison.cc.

Referenced by CwndTracer(), SsThreshTracer(), and TraceCwnd().

◆ cWndValue

std::map<uint32_t, uint32_t> cWndValue
static

congestion window value.

Definition at line 70 of file tcp-variants-comparison.cc.

Referenced by CwndTracer(), and SsThreshTracer().

◆ firstCwnd

std::map<uint32_t, bool> firstCwnd
static

First congestion window.

Definition at line 58 of file tcp-variants-comparison.cc.

Referenced by CwndTracer(), and SsThreshTracer().

◆ firstRto

std::map<uint32_t, bool> firstRto
static

First RTO.

Definition at line 61 of file tcp-variants-comparison.cc.

Referenced by RtoTracer().

◆ firstRtt

std::map<uint32_t, bool> firstRtt
static

First RTT.

Definition at line 60 of file tcp-variants-comparison.cc.

Referenced by RttTracer().

◆ firstSshThr

std::map<uint32_t, bool> firstSshThr
static

First SlowStart threshold.

Definition at line 59 of file tcp-variants-comparison.cc.

Referenced by CwndTracer(), and SsThreshTracer().

◆ inFlightStream

std::map<uint32_t, Ptr<OutputStreamWrapper> > inFlightStream
static

In flight output stream.

Definition at line 69 of file tcp-variants-comparison.cc.

Referenced by InFlightTracer(), and TraceInFlight().

◆ nextRxStream

std::map<uint32_t, Ptr<OutputStreamWrapper> > nextRxStream
static

Next RX output stream.

Definition at line 68 of file tcp-variants-comparison.cc.

Referenced by NextRxTracer(), and TraceNextRx().

◆ nextTxStream

std::map<uint32_t, Ptr<OutputStreamWrapper> > nextTxStream
static

Next TX output stream.

Definition at line 67 of file tcp-variants-comparison.cc.

Referenced by NextTxTracer(), and TraceNextTx().

◆ rtoStream

std::map<uint32_t, Ptr<OutputStreamWrapper> > rtoStream
static

RTO output stream.

Definition at line 66 of file tcp-variants-comparison.cc.

Referenced by RtoTracer(), and TraceRto().

◆ rttStream

std::map<uint32_t, Ptr<OutputStreamWrapper> > rttStream
static

RTT output stream.

Definition at line 65 of file tcp-variants-comparison.cc.

Referenced by RttTracer(), and TraceRtt().

◆ ssThreshStream

std::map<uint32_t, Ptr<OutputStreamWrapper> > ssThreshStream
static

SlowStart threshold output stream.

Definition at line 64 of file tcp-variants-comparison.cc.

Referenced by CwndTracer(), SsThreshTracer(), and TraceSsThresh().

◆ ssThreshValue

std::map<uint32_t, uint32_t> ssThreshValue
static

SlowStart threshold value.

Definition at line 71 of file tcp-variants-comparison.cc.

Referenced by CwndTracer(), and SsThreshTracer().