29 .SetGroupName (
"Internet")
31 .AddAttribute (
"EnablePacing",
"Enable Pacing",
35 .AddAttribute (
"MaxPacingRate",
"Set Max Pacing Rate",
39 .AddAttribute (
"PacingSsRatio",
"Percent pacing rate increase for slow start conditions",
42 MakeUintegerChecker<uint16_t> ())
43 .AddAttribute (
"PacingCaRatio",
"Percent pacing rate increase for congestion avoidance conditions",
46 MakeUintegerChecker<uint16_t> ())
47 .AddAttribute (
"PaceInitialWindow",
"Perform pacing for initial window of data",
51 .AddTraceSource (
"PacingRate",
52 "The current TCP pacing rate",
54 "ns3::TracedValueCallback::DataRate")
55 .AddTraceSource (
"CongestionWindow",
56 "The TCP connection's congestion window",
58 "ns3::TracedValueCallback::Uint32")
59 .AddTraceSource (
"CongestionWindowInflated",
60 "The TCP connection's inflated congestion window",
62 "ns3::TracedValueCallback::Uint32")
63 .AddTraceSource (
"SlowStartThreshold",
64 "TCP slow start threshold (bytes)",
66 "ns3::TracedValueCallback::Uint32")
67 .AddTraceSource (
"CongState",
68 "TCP Congestion machine state",
70 "ns3::TracedValueCallback::TcpCongState")
71 .AddTraceSource (
"EcnState",
72 "Trace ECN state change of socket",
74 "ns3::TracedValueCallback::EcnState")
75 .AddTraceSource (
"HighestSequence",
76 "Highest sequence number received from peer",
78 "ns3::TracedValueCallback::SequenceNumber32")
79 .AddTraceSource (
"NextTxSequence",
80 "Next sequence number to send (SND.NXT)",
82 "ns3::TracedValueCallback::SequenceNumber32")
83 .AddTraceSource (
"BytesInFlight",
84 "The TCP connection's congestion window",
86 "ns3::TracedValueCallback::Uint32")
87 .AddTraceSource (
"RTT",
90 "ns3::TracedValueCallback::Time")
97 m_cWnd (other.m_cWnd),
98 m_ssThresh (other.m_ssThresh),
99 m_initialCWnd (other.m_initialCWnd),
100 m_initialSsThresh (other.m_initialSsThresh),
101 m_segmentSize (other.m_segmentSize),
102 m_lastAckedSeq (other.m_lastAckedSeq),
103 m_congState (other.m_congState),
104 m_ecnState (other.m_ecnState),
105 m_highTxMark (other.m_highTxMark),
106 m_nextTxSequence (other.m_nextTxSequence),
107 m_rcvTimestampValue (other.m_rcvTimestampValue),
108 m_rcvTimestampEchoReply (other.m_rcvTimestampEchoReply),
109 m_pacing (other.m_pacing),
110 m_maxPacingRate (other.m_maxPacingRate),
111 m_pacingRate (other.m_pacingRate),
112 m_pacingSsRatio (other.m_pacingSsRatio),
113 m_pacingCaRatio (other.m_pacingCaRatio),
114 m_paceInitialWindow (other.m_paceInitialWindow),
115 m_minRtt (other.m_minRtt),
116 m_bytesInFlight (other.m_bytesInFlight),
117 m_lastRtt (other.m_lastRtt),
118 m_ecnMode (other.m_ecnMode),
119 m_useEcn (other.m_useEcn),
120 m_ectCodePoint (other.m_ectCodePoint),
121 m_lastAckedSackedBytes (other.m_lastAckedSackedBytes)
129 "CA_OPEN",
"CA_DISORDER",
"CA_CWR",
"CA_RECOVERY",
"CA_LOSS"
135 "ECN_DISABLED",
"ECN_IDLE",
"ECN_CE_RCVD",
"ECN_SENDING_ECE",
"ECN_ECE_RCVD",
"ECN_CWR_SENT"
AttributeValue implementation for Boolean.
Class for representing data rates.
AttributeValue implementation for DataRate.
A base class which provides memory management and object aggregation.
Data structure that records the congestion state of a connection.
TracedValue< SequenceNumber32 > m_highTxMark
Highest seqno ever sent, regardless of ReTx.
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.
bool m_pacing
Pacing status.
static 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.
TracedValue< uint32_t > m_cWnd
Congestion window.
TracedValue< Time > m_lastRtt
Last RTT sample collected.
@ 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.
uint16_t m_pacingSsRatio
SS pacing ratio.
static 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.
static TypeId GetTypeId(void)
Get the type ID.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold an unsigned integer type.
Ptr< const AttributeChecker > MakeBooleanChecker(void)
Ptr< const AttributeAccessor > MakeBooleanAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Ptr< const AttributeAccessor > MakeDataRateAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Ptr< const AttributeChecker > MakeDataRateChecker(void)
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
#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.