21 #define NS_LOG_APPEND_CONTEXT \ 
   22   if (m_node) { std::clog << Simulator::Now ().GetSeconds () << " [node " << m_node->GetId () << "] "; } 
   26 #include "ns3/trace-source-accessor.h" 
   27 #include "ns3/simulator.h" 
   28 #include "ns3/abort.h" 
   42     .SetGroupName (
"Internet")
 
   44     .AddAttribute (
"ReTxThreshold", 
"Threshold for fast retransmit",
 
   47                     MakeUintegerChecker<uint32_t> ())
 
   59     m_retxThresh (sock.m_retxThresh)
 
   72   return CopyObject<TcpTahoe> (
this);
 
   92       adder = std::max (1.0, adder);
 
   93       m_cWnd += 
static_cast<uint32_t
> (adder);
 
  127   if (m_state <= ESTABLISHED && m_txBuffer->HeadSequence () >= 
m_highTxMark) 
return;
 
virtual Ptr< TcpSocketBase > Fork(void)
Call CopyObject<> to clone me. 
 
Smart pointer class similar to boost::intrusive_ptr. 
 
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
 
uint32_t m_retxThresh
Fast Retransmit threshold. 
 
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system. 
 
TracedValue< uint32_t > m_cWnd
Congestion window. 
 
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name. 
 
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO. 
 
uint32_t m_segmentSize
Segment size. 
 
TracedValue< SequenceNumber32 > m_nextTxSequence
Next seqnum to be sent (SND.NXT), ReTx pushes it back. 
 
T Get(void) const 
Get the underlying value. 
 
TracedValue< TcpStates_t > m_state
TCP state. 
 
An implementation of a stream socket using TCP. 
 
Ptr< TcpTxBuffer > m_txBuffer
Tx buffer. 
 
Hold an unsigned integer type. 
 
static TypeId GetTypeId(void)
Get the type ID. 
 
A base class for implementation of a stream socket using TCP. 
 
#define NS_LOG_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC. 
 
virtual void Retransmit(void)
Halving cwnd and call DoRetransmit() 
 
Every class exported by the ns3 library is enclosed in the ns3 namespace. 
 
virtual void DupAck(const TcpHeader &t, uint32_t count)
Received dupack (duplicate ACK) 
 
static Time Now(void)
Return the current simulation virtual time. 
 
TracedValue< SequenceNumber32 > m_highTxMark
Highest seqno ever sent, regardless of ReTx. 
 
virtual void NewAck(SequenceNumber32 const &seq)
Update buffers w.r.t. 
 
virtual void NewAck(SequenceNumber32 const &seq)
Update buffers w.r.t. 
 
TcpTahoe(void)
Create an unbound tcp socket. 
 
Timeout to catch resent junk before entering closed, can only be entered from FIN_WAIT2 or CLOSING...
 
TracedValue< uint32_t > m_ssThresh
Slow start threshold. 
 
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
 
a unique identifier for an interface. 
 
TypeId SetParent(TypeId tid)
Set the parent TypeId. 
 
virtual void DoRetransmit(void)
Retransmit the oldest packet.