A Discrete-Event Network Simulator
API
fqcodel-l4s-example.cc File Reference
#include "ns3/applications-module.h"
#include "ns3/core-module.h"
#include "ns3/flow-monitor-helper.h"
#include "ns3/internet-apps-module.h"
#include "ns3/internet-module.h"
#include "ns3/network-module.h"
#include "ns3/point-to-point-module.h"
#include "ns3/traffic-control-module.h"
+ Include dependency graph for fqcodel-l4s-example.cc:

Go to the source code of this file.

Functions

static void PacketDequeue (std::ofstream *n0OfStream, std::ofstream *n1OfStream, Ptr< const QueueDiscItem > item)
 
void ScheduleN0PacketSinkConnection ()
 
void ScheduleN0TcpCwndTraceConnection (std::ofstream *ofStream)
 
void ScheduleN0TcpRttTraceConnection (std::ofstream *ofStream)
 
void ScheduleN1PacketSinkConnection ()
 
void ScheduleN1TcpCwndTraceConnection (std::ofstream *ofStream)
 
void ScheduleN1TcpRttTraceConnection (std::ofstream *ofStream)
 
void TraceDrop (std::ofstream *ofStream, Ptr< const QueueDiscItem > item)
 
void TraceDropsFrequency (std::ofstream *ofStream, Time dropsSamplingInterval)
 
void TraceMark (std::ofstream *ofStream, Ptr< const QueueDiscItem > item, const char *reason)
 
void TraceMarksFrequency (std::ofstream *ofStream, Time marksSamplingInterval)
 
void TraceN0Cwnd (std::ofstream *ofStream, uint32_t oldCwnd, uint32_t newCwnd)
 
void TraceN0Rtt (std::ofstream *ofStream, Time oldRtt, Time newRtt)
 
void TraceN0Rx (Ptr< const Packet > packet, const Address &address)
 
void TraceN0Throughput (std::ofstream *ofStream, Time throughputInterval)
 
void TraceN1Cwnd (std::ofstream *ofStream, uint32_t oldCwnd, uint32_t newCwnd)
 
void TraceN1Rtt (std::ofstream *ofStream, Time oldRtt, Time newRtt)
 
void TraceN1Rx (Ptr< const Packet > packet, const Address &address)
 
void TraceN1Throughput (std::ofstream *ofStream, Time throughputInterval)
 
void TracePingRtt (std::ofstream *ofStream, uint16_t seqNo, Time rtt)
 
void TraceQueueLength (std::ofstream *ofStream, DataRate linkRate, uint32_t oldVal, uint32_t newVal)
 

Variables

double avgQueueDiscSize
 
uint32_t checkTimes
 
uint32_t g_dropsObserved = 0
 
uint32_t g_marksObserved = 0
 
uint32_t g_n0BytesReceived = 0
 
uint32_t g_n1BytesReceived = 0
 

Function Documentation

◆ PacketDequeue()

static void PacketDequeue ( std::ofstream *  n0OfStream,
std::ofstream *  n1OfStream,
Ptr< const QueueDiscItem item 
)
static

Definition at line 448 of file fqcodel-l4s-example.cc.

References first::address, ns3::Time::GetMicroSeconds(), ns3::Time::GetSeconds(), ns3::Simulator::Now(), and ns3::PeekPointer().

+ Here is the call graph for this function:

◆ ScheduleN0PacketSinkConnection()

void ScheduleN0PacketSinkConnection ( )

Definition at line 420 of file fqcodel-l4s-example.cc.

References ns3::Config::ConnectWithoutContext(), ns3::MakeCallback(), and TraceN0Rx().

+ Here is the call graph for this function:

◆ ScheduleN0TcpCwndTraceConnection()

void ScheduleN0TcpCwndTraceConnection ( std::ofstream *  ofStream)

Definition at line 406 of file fqcodel-l4s-example.cc.

References ns3::Config::ConnectWithoutContext(), ns3::MakeBoundCallback(), and TraceN0Cwnd().

+ Here is the call graph for this function:

◆ ScheduleN0TcpRttTraceConnection()

void ScheduleN0TcpRttTraceConnection ( std::ofstream *  ofStream)

Definition at line 413 of file fqcodel-l4s-example.cc.

References ns3::Config::ConnectWithoutContext(), ns3::MakeBoundCallback(), and TraceN0Rtt().

+ Here is the call graph for this function:

◆ ScheduleN1PacketSinkConnection()

void ScheduleN1PacketSinkConnection ( )

Definition at line 441 of file fqcodel-l4s-example.cc.

References ns3::Config::ConnectWithoutContext(), ns3::MakeCallback(), and TraceN1Rx().

+ Here is the call graph for this function:

◆ ScheduleN1TcpCwndTraceConnection()

void ScheduleN1TcpCwndTraceConnection ( std::ofstream *  ofStream)

Definition at line 427 of file fqcodel-l4s-example.cc.

References ns3::Config::ConnectWithoutContext(), ns3::MakeBoundCallback(), and TraceN1Cwnd().

+ Here is the call graph for this function:

◆ ScheduleN1TcpRttTraceConnection()

void ScheduleN1TcpRttTraceConnection ( std::ofstream *  ofStream)

Definition at line 434 of file fqcodel-l4s-example.cc.

References ns3::Config::ConnectWithoutContext(), ns3::MakeBoundCallback(), and TraceN1Rtt().

+ Here is the call graph for this function:

◆ TraceDrop()

void TraceDrop ( std::ofstream *  ofStream,
Ptr< const QueueDiscItem item 
)

Definition at line 344 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

◆ TraceDropsFrequency()

void TraceDropsFrequency ( std::ofstream *  ofStream,
Time  dropsSamplingInterval 
)

Definition at line 366 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

◆ TraceMark()

void TraceMark ( std::ofstream *  ofStream,
Ptr< const QueueDiscItem item,
const char *  reason 
)

Definition at line 351 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

◆ TraceMarksFrequency()

void TraceMarksFrequency ( std::ofstream *  ofStream,
Time  marksSamplingInterval 
)

Definition at line 377 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

◆ TraceN0Cwnd()

void TraceN0Cwnd ( std::ofstream *  ofStream,
uint32_t  oldCwnd,
uint32_t  newCwnd 
)

Definition at line 295 of file fqcodel-l4s-example.cc.

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

Referenced by ScheduleN0TcpCwndTraceConnection().

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

◆ TraceN0Rtt()

void TraceN0Rtt ( std::ofstream *  ofStream,
Time  oldRtt,
Time  newRtt 
)

Definition at line 313 of file fqcodel-l4s-example.cc.

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

Referenced by ScheduleN0TcpRttTraceConnection().

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

◆ TraceN0Rx()

void TraceN0Rx ( Ptr< const Packet packet,
const Address address 
)

Definition at line 332 of file fqcodel-l4s-example.cc.

References g_n0BytesReceived, and ns3::Packet::GetSize().

Referenced by ScheduleN0PacketSinkConnection().

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

◆ TraceN0Throughput()

void TraceN0Throughput ( std::ofstream *  ofStream,
Time  throughputInterval 
)

Definition at line 388 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

◆ TraceN1Cwnd()

void TraceN1Cwnd ( std::ofstream *  ofStream,
uint32_t  oldCwnd,
uint32_t  newCwnd 
)

Definition at line 304 of file fqcodel-l4s-example.cc.

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

Referenced by ScheduleN1TcpCwndTraceConnection().

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

◆ TraceN1Rtt()

void TraceN1Rtt ( std::ofstream *  ofStream,
Time  oldRtt,
Time  newRtt 
)

Definition at line 319 of file fqcodel-l4s-example.cc.

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

Referenced by ScheduleN1TcpRttTraceConnection().

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

◆ TraceN1Rx()

void TraceN1Rx ( Ptr< const Packet packet,
const Address address 
)

Definition at line 338 of file fqcodel-l4s-example.cc.

References g_n1BytesReceived, and ns3::Packet::GetSize().

Referenced by ScheduleN1PacketSinkConnection().

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

◆ TraceN1Throughput()

void TraceN1Throughput ( std::ofstream *  ofStream,
Time  throughputInterval 
)

Definition at line 397 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

◆ TracePingRtt()

void TracePingRtt ( std::ofstream *  ofStream,
uint16_t  seqNo,
Time  rtt 
)

Definition at line 325 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

◆ TraceQueueLength()

void TraceQueueLength ( std::ofstream *  ofStream,
DataRate  linkRate,
uint32_t  oldVal,
uint32_t  newVal 
)

Definition at line 358 of file fqcodel-l4s-example.cc.

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

+ Here is the call graph for this function:

Variable Documentation

◆ avgQueueDiscSize

double avgQueueDiscSize

Definition at line 287 of file fqcodel-l4s-example.cc.

◆ checkTimes

uint32_t checkTimes

Definition at line 286 of file fqcodel-l4s-example.cc.

◆ g_dropsObserved

uint32_t g_dropsObserved = 0

Definition at line 292 of file fqcodel-l4s-example.cc.

Referenced by TraceDrop(), and TraceDropsFrequency().

◆ g_marksObserved

uint32_t g_marksObserved = 0

Definition at line 291 of file fqcodel-l4s-example.cc.

Referenced by TraceMark(), and TraceMarksFrequency().

◆ g_n0BytesReceived

uint32_t g_n0BytesReceived = 0

Definition at line 289 of file fqcodel-l4s-example.cc.

Referenced by TraceN0Rx(), and TraceN0Throughput().

◆ g_n1BytesReceived

uint32_t g_n1BytesReceived = 0

Definition at line 290 of file fqcodel-l4s-example.cc.

Referenced by TraceN1Rx(), and TraceN1Throughput().