17 TypeId(
"ns3::TcpSocketState")
19 .SetGroupName(
"Internet")
21 .AddAttribute(
"EnablePacing",
26 .AddAttribute(
"MaxPacingRate",
27 "Set Max Pacing Rate",
31 .AddAttribute(
"PacingSsRatio",
32 "Percent pacing rate increase for slow start conditions",
36 .AddAttribute(
"PacingCaRatio",
37 "Percent pacing rate increase for congestion avoidance conditions",
41 .AddAttribute(
"PaceInitialWindow",
42 "Perform pacing for initial window of data",
46 .AddTraceSource(
"PacingRate",
47 "The current TCP pacing rate",
49 "ns3::TracedValueCallback::DataRate")
50 .AddTraceSource(
"CongestionWindow",
51 "The TCP connection's congestion window",
53 "ns3::TracedValueCallback::Uint32")
54 .AddTraceSource(
"CongestionWindowInflated",
55 "The TCP connection's inflated congestion window",
57 "ns3::TracedValueCallback::Uint32")
58 .AddTraceSource(
"SlowStartThreshold",
59 "TCP slow start threshold (bytes)",
61 "ns3::TracedValueCallback::Uint32")
62 .AddTraceSource(
"CongState",
63 "TCP Congestion machine state",
65 "ns3::TracedValueCallback::TcpCongState")
66 .AddTraceSource(
"EcnState",
67 "Trace ECN state change of socket",
69 "ns3::TracedValueCallback::EcnState")
70 .AddTraceSource(
"HighestSequence",
71 "Highest sequence number received from peer",
73 "ns3::TracedValueCallback::SequenceNumber32")
74 .AddTraceSource(
"NextTxSequence",
75 "Next sequence number to send (SND.NXT)",
77 "ns3::TracedValueCallback::SequenceNumber32")
78 .AddTraceSource(
"BytesInFlight",
79 "The TCP connection's congestion window",
81 "ns3::TracedValueCallback::Uint32")
82 .AddTraceSource(
"RTT",
85 "ns3::TracedValueCallback::Time")
86 .AddTraceSource(
"LastRTT",
87 "RTT of the last (S)ACKed packet",
89 "ns3::TracedValueCallback::Time");
Class for representing data rates.
Data structure that records the congestion state of a connection.
uint32_t m_segmentSize
Segment size.
bool m_isCwndLimited
Whether throughput is limited by cwnd.
Time m_minRtt
Minimum RTT observed throughout the connection.
TracedValue< SequenceNumber32 > m_highTxMark
Highest seqno ever sent, regardless of ReTx.
uint32_t m_initialSsThresh
Initial Slow Start Threshold value.
EcnMode_t m_ecnMode
ECN mode.
TracedValue< DataRate > m_pacingRate
Current Pacing rate.
TracedValue< TcpCongState_t > m_congState
State in the Congestion state machine.
bool m_paceInitialWindow
Enable/Disable pacing for the initial window.
DataRate m_maxPacingRate
Max Pacing rate.
UseEcn_t m_useEcn
Socket ECN capability.
TracedValue< Time > m_srtt
Smoothed RTT.
bool m_pacing
Pacing status.
static TypeId GetTypeId()
Get the type ID.
static INTERNET_EXPORT const char *const TcpCongStateName[TcpSocketState::CA_LAST_STATE]
Literal names of TCP states for use in log messages.
@ CA_LAST_STATE
Used only in debug messages.
SequenceNumber32 m_lastAckedSeq
Last sequence ACKed.
TracedValue< uint32_t > m_cWnd
Congestion window.
uint32_t m_initialCWnd
Initial cWnd value.
uint32_t m_rcvTimestampEchoReply
Sender Timestamp echoed by the receiver.
TracedValue< Time > m_lastRtt
RTT of the last (S)ACKed packet.
@ ECN_CWR_SENT
Sender has reduced the congestion window, and sent a packet with CWR bit set in TCP header.
TcpSocketState()
TcpSocketState Constructor.
TracedValue< uint32_t > m_bytesInFlight
Bytes in flight.
TracedValue< uint32_t > m_cWndInfl
Inflated congestion window trace (used only for backward compatibility purpose)
uint16_t m_pacingCaRatio
CA pacing ratio.
TracedValue< SequenceNumber32 > m_nextTxSequence
Next seqnum to be sent (SND.NXT), ReTx pushes it back.
uint32_t m_lastAckedSackedBytes
The number of bytes acked and sacked as indicated by the current ACK received.
uint16_t m_pacingSsRatio
SS pacing ratio.
static INTERNET_EXPORT const char *const EcnStateName[TcpSocketState::ECN_CWR_SENT+1]
Literal names of ECN states for use in log messages.
TracedValue< EcnState_t > m_ecnState
Current ECN State, represented as combination of EcnState values.
TracedValue< uint32_t > m_ssThresh
Slow start threshold.
uint32_t m_rcvTimestampValue
Receiver Timestamp value.
EcnCodePoint_t m_ectCodePoint
ECT code point to use.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold an unsigned integer type.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< const AttributeChecker > MakeBooleanChecker()
Ptr< const AttributeChecker > MakeUintegerChecker()
Ptr< const AttributeAccessor > MakeDataRateAccessor(T1 a1)
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Ptr< const AttributeChecker > MakeDataRateChecker()
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)