INET Framework for OMNeT++/OMNEST
inet::tcp::TcpBaseAlgStateVariables Class Reference

State variables for TcpBaseAlg. More...

#include <TcpBaseAlg.h>

Inheritance diagram for inet::tcp::TcpBaseAlgStateVariables:
inet::tcp::TcpStateVariables inet::tcp::TcpTahoeRenoFamilyStateVariables inet::tcp::TcpVegasStateVariables inet::tcp::TcpWestwoodStateVariables inet::tcp::DcTcpFamilyStateVariables

Public Member Functions

 TcpBaseAlgStateVariables ()
 
virtual std::string str () const override
 
virtual std::string detailedInfo () const override
 
- Public Member Functions inherited from inet::tcp::TcpStateVariables
 TcpStateVariables ()
 

Public Attributes

int rexmit_count
 retransmit count More...
 
simtime_t rexmit_timeout
 current retransmission timeout (aka RTO) More...
 
uint persist_factor
 persist factor More...
 
simtime_t persist_timeout
 current persist timeout More...
 
uint32_t snd_cwnd
 congestion window More...
 
uint32_t rtseq
 round-trip time measurements More...
 
simtime_t rtseq_sendtime
 time when rtseq was sent (0 if RTT measurement is not running) More...
 
simtime_t srtt
 round-trip time estimation (Jacobson's algorithm) More...
 
simtime_t rttvar
 variance of round-trip time More...
 
uint32_t numRtos
 number of RTOs More...
 
uint32_t recover
 RFC 3782 variables. More...
 
bool firstPartialACK
 first partial acknowledgement (RFC 3782) More...
 
- Public Attributes inherited from inet::tcp::TcpStateVariables
bool active
 
bool fork
 
uint32_t snd_mss
 
uint32_t snd_una
 
uint32_t snd_nxt
 
uint32_t snd_max
 
uint32_t snd_wnd
 
uint32_t snd_up
 
uint32_t snd_wl1
 
uint32_t snd_wl2
 
uint32_t iss
 
uint32_t rcv_nxt
 
uint32_t rcv_wnd
 
uint32_t rcv_up
 
uint32_t irs
 
uint32_t rcv_adv
 
int syn_rexmit_count
 
simtime_t syn_rexmit_timeout
 
bool fin_ack_rcvd
 
bool send_fin
 
uint32_t snd_fin_seq
 
bool fin_rcvd
 
uint32_t rcv_fin_seq
 
bool nagle_enabled
 
bool delayed_acks_enabled
 
bool limited_transmit_enabled
 
bool increased_IW_enabled
 
uint32_t full_sized_segment_counter
 
bool ack_now
 
bool afterRto
 
bool ws_support
 
bool ws_enabled
 
int ws_manual_scale
 
bool snd_ws
 
bool rcv_ws
 
uint rcv_wnd_scale
 
uint snd_wnd_scale
 
bool ts_support
 
bool ts_enabled
 
bool snd_initial_ts
 
bool rcv_initial_ts
 
uint32_t ts_recent
 
uint32_t last_ack_sent
 
simtime_t time_last_data_sent
 
bool sack_support
 
bool sack_enabled
 
bool snd_sack_perm
 
bool rcv_sack_perm
 
uint32_t start_seqno
 
uint32_t end_seqno
 
bool snd_sack
 
bool snd_dsack
 
SackList sacks_array
 
uint32_t highRxt
 
uint32_t pipe
 
uint32_t recoveryPoint
 
uint32_t sackedBytes
 
uint32_t sackedBytes_old
 
bool lossRecovery
 
uint32_t sendQueueLimit
 
bool queueUpdate
 
uint32_t dupacks
 
uint32_t snd_sacks
 
uint32_t rcv_sacks
 
uint32_t rcv_oooseg
 
uint32_t rcv_naseg
 
uint32_t maxRcvBuffer
 
uint32_t usedRcvBuffer
 
uint32_t freeRcvBuffer
 
uint32_t tcpRcvQueueDrops
 
bool ecnEchoState
 
bool sndCwr
 
bool gotEce
 
bool gotCeIndication
 
bool ect
 
bool endPointIsWillingECN
 
bool ecnSynSent
 
bool ecnWillingness
 
bool sndAck
 
bool rexmit
 
simtime_t eceReactionTime
 
uint32_t dupthresh
 

Detailed Description

State variables for TcpBaseAlg.

Constructor & Destructor Documentation

◆ TcpBaseAlgStateVariables()

inet::tcp::TcpBaseAlgStateVariables::TcpBaseAlgStateVariables ( )
41 {
42  rexmit_count = 0;
43  rexmit_timeout = 3.0;
44 
45  persist_factor = 0;
46  persist_timeout = 5.0;
47 
48  snd_cwnd = 0; // will be set to SMSS when connection is established
49 
50  rtseq = 0;
51  rtseq_sendtime = 0;
52 
53  // Jacobson's alg: srtt must be initialized to 0, rttvar to a value which
54  // will yield rto = 3s initially.
55  srtt = 0;
56  rttvar = 3.0 / 4.0;
57 
58  numRtos = 0;
59 
60  // RFC 3782, page 4:
61  // "The algorithm specified in this document uses a variable "recover",
62  // whose initial value is the initial send sequence number."
63  recover = iss;
64  firstPartialACK = false;
65 }

Member Function Documentation

◆ detailedInfo()

std::string inet::tcp::TcpBaseAlgStateVariables::detailedInfo ( ) const
overridevirtual

Reimplemented from inet::tcp::TcpStateVariables.

Reimplemented in inet::tcp::TcpWestwoodStateVariables, inet::tcp::TcpVegasStateVariables, inet::tcp::TcpTahoeRenoFamilyStateVariables, and inet::tcp::DcTcpFamilyStateVariables.

77 {
78  std::stringstream out;
80  out << "snd_cwnd=" << snd_cwnd << "\n";
81  out << "rto=" << rexmit_timeout << "\n";
82  out << "persist_timeout=" << persist_timeout << "\n";
83  // TODO add others too
84  return out.str();
85 }

Referenced by inet::tcp::TcpTahoeRenoFamilyStateVariables::detailedInfo(), inet::tcp::TcpVegasStateVariables::detailedInfo(), and inet::tcp::TcpWestwoodStateVariables::detailedInfo().

◆ str()

std::string inet::tcp::TcpBaseAlgStateVariables::str ( ) const
overridevirtual

Member Data Documentation

◆ firstPartialACK

bool inet::tcp::TcpBaseAlgStateVariables::firstPartialACK

◆ numRtos

uint32_t inet::tcp::TcpBaseAlgStateVariables::numRtos

number of RTOs

total number of RTOs

Referenced by inet::tcp::TcpBaseAlg::processRexmitTimer(), and TcpBaseAlgStateVariables().

◆ persist_factor

uint inet::tcp::TcpBaseAlgStateVariables::persist_factor

persist factor

factor needed for simplified PERSIST timer calculation

Referenced by inet::tcp::TcpBaseAlg::processPersistTimer(), inet::tcp::TcpBaseAlg::receivedDataAck(), and TcpBaseAlgStateVariables().

◆ persist_timeout

simtime_t inet::tcp::TcpBaseAlgStateVariables::persist_timeout

◆ recover

uint32_t inet::tcp::TcpBaseAlgStateVariables::recover

◆ rexmit_count

int inet::tcp::TcpBaseAlgStateVariables::rexmit_count

retransmit count

number of retransmissions (=1 after first rexmit)

Referenced by inet::tcp::TcpBaseAlg::processRexmitTimer(), inet::tcp::TcpBaseAlg::startRexmitTimer(), and TcpBaseAlgStateVariables().

◆ rexmit_timeout

◆ rtseq

uint32_t inet::tcp::TcpBaseAlgStateVariables::rtseq

round-trip time measurements

starting sequence number of timed data

Referenced by inet::tcp::TcpBaseAlg::dataSent(), inet::tcp::TcpBaseAlg::receivedDataAck(), and TcpBaseAlgStateVariables().

◆ rtseq_sendtime

simtime_t inet::tcp::TcpBaseAlgStateVariables::rtseq_sendtime

◆ rttvar

simtime_t inet::tcp::TcpBaseAlgStateVariables::rttvar

variance of round-trip time

Referenced by inet::tcp::TcpBaseAlg::rttMeasurementComplete(), and TcpBaseAlgStateVariables().

◆ snd_cwnd

◆ srtt

simtime_t inet::tcp::TcpBaseAlgStateVariables::srtt

round-trip time estimation (Jacobson's algorithm)

smoothed round-trip time

Referenced by inet::tcp::TcpReno::receivedDataAck(), inet::tcp::TcpBaseAlg::rttMeasurementComplete(), and TcpBaseAlgStateVariables().


The documentation for this class was generated from the following files:
inet::tcp::TcpStateVariables::str
virtual std::string str() const override
Definition: TcpConnectionBase.cc:144
inet::tcp::TcpBaseAlgStateVariables::persist_factor
uint persist_factor
persist factor
Definition: TcpBaseAlg.h:34
inet::tcp::TcpBaseAlgStateVariables::snd_cwnd
uint32_t snd_cwnd
congestion window
Definition: TcpBaseAlg.h:40
inet::tcp::TcpBaseAlgStateVariables::firstPartialACK
bool firstPartialACK
first partial acknowledgement (RFC 3782)
Definition: TcpBaseAlg.h:63
inet::tcp::TcpBaseAlgStateVariables::numRtos
uint32_t numRtos
number of RTOs
Definition: TcpBaseAlg.h:57
inet::tcp::TcpBaseAlgStateVariables::srtt
simtime_t srtt
round-trip time estimation (Jacobson's algorithm)
Definition: TcpBaseAlg.h:51
inet::tcp::TcpBaseAlgStateVariables::rexmit_timeout
simtime_t rexmit_timeout
current retransmission timeout (aka RTO)
Definition: TcpBaseAlg.h:29
inet::tcp::TcpBaseAlgStateVariables::rttvar
simtime_t rttvar
variance of round-trip time
Definition: TcpBaseAlg.h:52
inet::tcp::TcpBaseAlgStateVariables::rtseq
uint32_t rtseq
round-trip time measurements
Definition: TcpBaseAlg.h:45
inet::tcp::TcpBaseAlgStateVariables::rtseq_sendtime
simtime_t rtseq_sendtime
time when rtseq was sent (0 if RTT measurement is not running)
Definition: TcpBaseAlg.h:46
inet::tcp::TcpBaseAlgStateVariables::persist_timeout
simtime_t persist_timeout
current persist timeout
Definition: TcpBaseAlg.h:35
inet::tcp::TcpBaseAlgStateVariables::rexmit_count
int rexmit_count
retransmit count
Definition: TcpBaseAlg.h:28
inet::tcp::TcpBaseAlgStateVariables::recover
uint32_t recover
RFC 3782 variables.
Definition: TcpBaseAlg.h:62
inet::tcp::TcpStateVariables::detailedInfo
virtual std::string detailedInfo() const
Definition: TcpConnectionBase.cc:156
inet::tcp::TcpStateVariables::iss
uint32_t iss
Definition: TcpConnection.h:154