18 #ifndef TCP_SOCKET_STATE_H 19 #define TCP_SOCKET_STATE_H 21 #include "ns3/object.h" 22 #include "ns3/data-rate.h" 23 #include "ns3/traced-value.h" 24 #include "ns3/sequence-number.h" 222 namespace TracedValueCallback {
uint32_t m_rcvTimestampValue
Receiver Timestamp value.
Simulation virtual time values and global simulation resolution.
UseEcn_t
Parameter value related to ECN enable/disable functionality similar to sysctl for tcp_ecn...
Smart pointer class similar to boost::intrusive_ptr.
DataRate m_currentPacingRate
Current Pacing rate.
Last ACK received had ECE bit set in TCP header.
Normal state, no dubious events.
CWND was reduced, we are fast-retransmitting.
In all the respects it is "Open", but requires a bit more attention.
bool m_pacing
Pacing status.
uint32_t m_initialSsThresh
Initial Slow Start Threshold value.
uint32_t m_rcvTimestampEchoReply
Sender Timestamp echoed by the receiver.
static const char *const EcnStateName[TcpSocketState::ECN_CWR_SENT+1]
Literal names of ECN states for use in log messages.
static const char *const TcpCongStateName[TcpSocketState::CA_LAST_STATE]
Literal names of TCP states for use in log messages.
TracedValue< EcnState_t > m_ecnState
Current ECN State, represented as combination of EcnState values.
uint32_t m_segmentSize
Segment size.
TcpSocketState()
TcpSocketState Constructor.
uint32_t m_initialCWnd
Initial cWnd value.
Ptr< TcpRxBuffer > m_rxBuffer
Rx buffer (reordering buffer)
Data structure that records the congestion state of a connection.
Receiver sends an ACK with ECE bit set in TCP header.
Class for representing data rates.
Last packet received had CE bit set in IP header.
static Time Max()
Maximum representable Time.
Callback< void, uint8_t > m_sendEmptyPacketCallback
TracedValue< uint32_t > m_cWndInfl
Inflated congestion window trace (used only for backward compatibility purpose)
cWnd was reduced due to some Congestion Notification event.
congestion window restart.
EcnMode_t m_ecnMode
ECN mode.
SequenceNumber32 m_lastAckedSeq
Last sequence ACKed.
ECN is enabled but currently there is no action pertaining to ECE or CWR to be taken.
UseEcn_t m_useEcn
Socket ECN capability.
TracedValue< uint32_t > m_bytesInFlight
Bytes in flight.
end of congestion recovery
TracedValue< uint32_t > m_ssThresh
Slow start threshold.
TcpCongState_t
Definition of the Congestion state machine.
ECN functionality as described in RFC 8257.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Used only in debug messages.
TracedValue< TcpCongState_t > m_congState
State in the Congestion state machine.
void(* EcnState)(const TcpSocketState::EcnState_t oldValue, const TcpSocketState::EcnState_t newValue)
TracedValue Callback signature for EcnState_t.
uint32_t GetSsThreshInSegments() const
Get slow start thresh in segments rather than bytes.
static TypeId GetTypeId(void)
Get the type ID.
TracedValue< uint32_t > m_cWnd
Congestion window.
EcnCodePoint_t m_ectCodePoint
ECT code point to use.
Sender has reduced the congestion window, and sent a packet with CWR bit set in TCP header...
EcnCodePoint_t
ECN code points.
TracedValue< Time > m_lastRtt
Last RTT sample collected.
CWND was reduced due to RTO timeout or SACK reneging.
Time Seconds(double value)
Construct a Time in the indicated unit.
Time m_minRtt
Minimum RTT observed throughout the connection.
Enable only when the peer endpoint is ECN capable.
TracedValue< SequenceNumber32 > m_highTxMark
Highest seqno ever sent, regardless of ReTx.
first transmit when no packets in flight
void(* TcpCongState)(const TcpSocketState::TcpCongState_t oldValue, const TcpSocketState::TcpCongState_t newValue)
TracedValue Callback signature for TcpCongState_t.
A base class which provides memory management and object aggregation.
DataRate m_maxPacingRate
Max Pacing rate.
received CE marked IP packet.
a unique identifier for an interface.
ECN functionality as described in RFC 3168.
uint32_t GetCwndInSegments() const
Get cwnd in segments rather than bytes.
TracedValue< SequenceNumber32 > m_nextTxSequence
Next seqnum to be sent (SND.NXT), ReTx pushes it back.
EcnState_t
Definition of the Ecn state machine.
ECT set, but not CE marked.