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

Public Member Functions

 TCPBaseAlgStateVariables ()
 
virtual std::string info () 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 snd_cwnd
 congestion window More...
 
uint32 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 numRtos
 number of RTOs More...
 
uint32 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 snd_mss
 
uint32 snd_una
 
uint32 snd_nxt
 
uint32 snd_max
 
uint32 snd_wnd
 
uint32 snd_up
 
uint32 snd_wl1
 
uint32 snd_wl2
 
uint32 iss
 
uint32 rcv_nxt
 
uint32 rcv_wnd
 
uint32 rcv_up
 
uint32 irs
 
uint32 rcv_adv
 
int syn_rexmit_count
 
simtime_t syn_rexmit_timeout
 
bool fin_ack_rcvd
 
bool send_fin
 
uint32 snd_fin_seq
 
bool fin_rcvd
 
uint32 rcv_fin_seq
 
uint32 sentBytes
 
bool nagle_enabled
 
bool delayed_acks_enabled
 
bool limited_transmit_enabled
 
bool increased_IW_enabled
 
uint32 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 ts_recent
 
uint32 last_ack_sent
 
simtime_t time_last_data_sent
 
bool sack_support
 
bool sack_enabled
 
bool snd_sack_perm
 
bool rcv_sack_perm
 
uint32 start_seqno
 
uint32 end_seqno
 
bool snd_sack
 
bool snd_dsack
 
SackList sacks_array
 
uint32 highRxt
 
uint32 pipe
 
uint32 recoveryPoint
 
uint32 sackedBytes
 
uint32 sackedBytes_old
 
bool lossRecovery
 
uint32 sendQueueLimit
 
bool queueUpdate
 
uint32 dupacks
 
uint32 snd_sacks
 
uint32 rcv_sacks
 
uint32 rcv_oooseg
 
uint32 rcv_naseg
 
uint32 maxRcvBuffer
 
uint32 usedRcvBuffer
 
uint32 freeRcvBuffer
 
uint32 tcpRcvQueueDrops
 

Detailed Description

State variables for TCPBaseAlg.

Constructor & Destructor Documentation

inet::tcp::TCPBaseAlgStateVariables::TCPBaseAlgStateVariables ( )
52 {
53  rexmit_count = 0;
54  rexmit_timeout = 3.0;
55 
56  persist_factor = 0;
57  persist_timeout = 5.0;
58 
59  snd_cwnd = 0; // will be set to SMSS when connection is established
60 
61  rtseq = 0;
62  rtseq_sendtime = 0;
63 
64  // Jacobson's alg: srtt must be initialized to 0, rttvar to a value which
65  // will yield rto = 3s initially.
66  srtt = 0;
67  rttvar = 3.0 / 4.0;
68 
69  numRtos = 0;
70 
71  // RFC 3782, page 4:
72  // "The algorithm specified in this document uses a variable "recover",
73  // whose initial value is the initial send sequence number."
74  recover = iss;
75  firstPartialACK = false;
76 }
simtime_t persist_timeout
current persist timeout
Definition: TCPBaseAlg.h:49
bool firstPartialACK
first partial acknowledgement (RFC 3782)
Definition: TCPBaseAlg.h:77
simtime_t srtt
round-trip time estimation (Jacobson&#39;s algorithm)
Definition: TCPBaseAlg.h:65
uint32 rtseq
round-trip time measurements
Definition: TCPBaseAlg.h:59
simtime_t rexmit_timeout
current retransmission timeout (aka RTO)
Definition: TCPBaseAlg.h:43
simtime_t rtseq_sendtime
time when rtseq was sent (0 if RTT measurement is not running)
Definition: TCPBaseAlg.h:60
uint32 numRtos
number of RTOs
Definition: TCPBaseAlg.h:71
uint persist_factor
persist factor
Definition: TCPBaseAlg.h:48
uint32 recover
RFC 3782 variables.
Definition: TCPBaseAlg.h:76
uint32 iss
Definition: TCPConnection.h:171
int rexmit_count
retransmit count
Definition: TCPBaseAlg.h:42
simtime_t rttvar
variance of round-trip time
Definition: TCPBaseAlg.h:66
uint32 snd_cwnd
congestion window
Definition: TCPBaseAlg.h:54

Member Function Documentation

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

Reimplemented from inet::tcp::TCPStateVariables.

Reimplemented in inet::tcp::TCPVegasStateVariables, inet::tcp::TCPWestwoodStateVariables, and inet::tcp::TCPTahoeRenoFamilyStateVariables.

Referenced by inet::tcp::TCPTahoeRenoFamilyStateVariables::detailedInfo(), inet::tcp::TCPWestwoodStateVariables::detailedInfo(), and inet::tcp::TCPVegasStateVariables::detailedInfo().

88 {
89  std::stringstream out;
91  out << "snd_cwnd=" << snd_cwnd << "\n";
92  out << "rto=" << rexmit_timeout << "\n";
93  out << "persist_timeout=" << persist_timeout << "\n";
94  // TBD add others too
95  return out.str();
96 }
simtime_t persist_timeout
current persist timeout
Definition: TCPBaseAlg.h:49
simtime_t rexmit_timeout
current retransmission timeout (aka RTO)
Definition: TCPBaseAlg.h:43
virtual std::string detailedInfo() const override
Definition: TCPConnectionBase.cc:134
uint32 snd_cwnd
congestion window
Definition: TCPBaseAlg.h:54
std::string inet::tcp::TCPBaseAlgStateVariables::info ( ) const
overridevirtual

Reimplemented from inet::tcp::TCPStateVariables.

Reimplemented in inet::tcp::TCPVegasStateVariables, inet::tcp::TCPWestwoodStateVariables, and inet::tcp::TCPTahoeRenoFamilyStateVariables.

Referenced by inet::tcp::TCPTahoeRenoFamilyStateVariables::info(), inet::tcp::TCPWestwoodStateVariables::info(), inet::tcp::TCPVegasStateVariables::info(), and inet::tcp::TCPBaseAlg::processRexmitTimer().

79 {
80  std::stringstream out;
81  out << TCPStateVariables::info();
82  out << " snd_cwnd=" << snd_cwnd;
83  out << " rto=" << rexmit_timeout;
84  return out.str();
85 }
simtime_t rexmit_timeout
current retransmission timeout (aka RTO)
Definition: TCPBaseAlg.h:43
virtual std::string info() const override
Definition: TCPConnectionBase.cc:122
uint32 snd_cwnd
congestion window
Definition: TCPBaseAlg.h:54

Member Data Documentation

bool inet::tcp::TCPBaseAlgStateVariables::firstPartialACK
uint32 inet::tcp::TCPBaseAlgStateVariables::numRtos

number of RTOs

total number of RTOs

Referenced by inet::tcp::TCPBaseAlg::processRexmitTimer(), and TCPBaseAlgStateVariables().

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().

simtime_t inet::tcp::TCPBaseAlgStateVariables::persist_timeout
uint32 inet::tcp::TCPBaseAlgStateVariables::recover
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().

uint32 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().

simtime_t inet::tcp::TCPBaseAlgStateVariables::rtseq_sendtime
simtime_t inet::tcp::TCPBaseAlgStateVariables::rttvar

variance of round-trip time

Referenced by inet::tcp::TCPBaseAlg::rttMeasurementComplete(), and TCPBaseAlgStateVariables().

simtime_t inet::tcp::TCPBaseAlgStateVariables::srtt

round-trip time estimation (Jacobson's algorithm)

smoothed round-trip time

Referenced by inet::tcp::TCPBaseAlg::rttMeasurementComplete(), and TCPBaseAlgStateVariables().


The documentation for this class was generated from the following files: