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");
 
 
   96      m_ssThresh(other.m_ssThresh),
 
   97      m_initialCWnd(other.m_initialCWnd),
 
   98      m_initialSsThresh(other.m_initialSsThresh),
 
   99      m_segmentSize(other.m_segmentSize),
 
  100      m_lastAckedSeq(other.m_lastAckedSeq),
 
  101      m_congState(other.m_congState),
 
  102      m_ecnState(other.m_ecnState),
 
  103      m_highTxMark(other.m_highTxMark),
 
  104      m_nextTxSequence(other.m_nextTxSequence),
 
  105      m_rcvTimestampValue(other.m_rcvTimestampValue),
 
  106      m_rcvTimestampEchoReply(other.m_rcvTimestampEchoReply),
 
  107      m_pacing(other.m_pacing),
 
  108      m_maxPacingRate(other.m_maxPacingRate),
 
  109      m_pacingRate(other.m_pacingRate),
 
  110      m_pacingSsRatio(other.m_pacingSsRatio),
 
  111      m_pacingCaRatio(other.m_pacingCaRatio),
 
  112      m_paceInitialWindow(other.m_paceInitialWindow),
 
  113      m_minRtt(other.m_minRtt),
 
  114      m_bytesInFlight(other.m_bytesInFlight),
 
  115      m_isCwndLimited(other.m_isCwndLimited),
 
  116      m_srtt(other.m_srtt),
 
  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)
 
 
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.
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.
TracedValue< uint32_t > m_cWnd
Congestion window.
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.
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.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Hold an unsigned integer type.
Ptr< const AttributeChecker > MakeBooleanChecker()
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()
Ptr< const AttributeChecker > MakeUintegerChecker()
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.