TcpVegasStateVariables

Namespace inet::tcp

TcpVegasStateVariables

struct

State variables for TcpVegas.

Extends

Name Type Description
TcpBaseAlgStateVariables (unknown -- not in documented files)

Fields

Name Type Description
v_recoverypoint uint32_t
v_cwnd_changed simtime_t

last time cwnd changes because of a rtx.

v_baseRTT simtime_t
v_sumRTT simtime_t

sum of rtt's measured within one RTT

v_cntRTT int

# of rtt's measured within one RTT

v_begseq uint32_t

register next pkt to be sent,for rtt calculation in receivedDataAck

v_begtime simtime_t

register time for rtt calculation

v_rtt_timeout simtime_t

vegas fine-grained timeout

v_sa simtime_t

average for vegas fine-grained timeout

v_sd simtime_t

deviation for vegas fine-grained timeout

regions TcpSegmentTransmitInfoList
ssthresh uint32_t

< slow start threshold

v_inc_flag bool

for slow start: "exponential growth only every other RTT"

v_incr_ss bool

to control no incr. cwnd if during slowstart ssthresh has been exceeded before the rtt is over

v_incr int32_t

incr/decr

v_worried uint32_t

pkts a to retransmit due to vegas fine-grained timeout

Source code

///
/// State variables for TcpVegas.
///
struct TcpVegasStateVariables extends TcpBaseAlgStateVariables
{
    @descriptor(readonly);

    uint32_t v_recoverypoint = 0;
    simtime_t v_cwnd_changed = 0; // last time cwnd changes because of a rtx.

    simtime_t v_baseRTT = SIMTIME_MAX;
    simtime_t v_sumRTT = SIMTIME_ZERO; // sum of rtt's measured within one RTT
    int v_cntRTT = 0; // # of rtt's measured within one RTT
    uint32_t v_begseq = 0; // register next pkt to be sent,for rtt calculation in receivedDataAck
    simtime_t v_begtime = 0; // register time for rtt calculation

    simtime_t v_rtt_timeout = 1000.0; // vegas fine-grained timeout
    simtime_t v_sa; // average for vegas fine-grained timeout
    simtime_t v_sd; // deviation for vegas fine-grained timeout

    TcpSegmentTransmitInfoList regions;

    uint32_t ssthresh = 65536; ///< slow start threshold

    bool v_inc_flag = true; // for slow start: "exponential growth only every other RTT"
    bool v_incr_ss = false; // to control no incr. cwnd if during slowstart ssthresh has been exceeded before the rtt is over
    int32_t v_incr = 0; // incr/decr
    uint32_t v_worried = 0; // pkts a to retransmit due to vegas fine-grained timeout
}

File: src/inet/transportlayer/tcp/flavours/TcpVegasState.msg