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 .AddConstructor<TcpReno> ()
43 .AddAttribute (
"ReTxThreshold",
"Threshold for fast retransmit",
46 MakeUintegerChecker<uint32_t> ())
47 .AddTraceSource (
"CongestionWindow",
48 "The TCP connection's congestion window",
62 m_ssThresh (sock.m_ssThresh),
63 m_initialCWnd (sock.m_initialCWnd),
64 m_retxThresh (sock.m_retxThresh),
104 return CopyObject<TcpReno> (
this);
112 NS_LOG_LOGIC (
"TcpReno receieved ACK for seq " << seq <<
135 adder = std::max (1.0, adder);
136 m_cWnd +=
static_cast<uint32_t
> (adder);
185 m_rtt->IncreaseMultiplier ();
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
TracedValue< uint32_t > m_cWnd
virtual void Retransmit(void)
virtual void SetSegSize(uint32_t size)
SequenceNumber32 HeadSequence(void) const
virtual Ptr< TcpSocketBase > Fork(void)
#define NS_LOG_COMPONENT_DEFINE(name)
virtual void NewAck(const SequenceNumber32 &seq)
TracedValue< SequenceNumber32 > m_nextTxSequence
TracedValue< TcpStates_t > m_state
virtual void SetInitialCwnd(uint32_t cwnd)
#define NS_ABORT_MSG_UNLESS(cond, msg)
Abnormal program termination if cond is false.
a polymophic address class
An implementation of a stream socket using TCP.
virtual int Connect(const Address &address)
virtual void DupAck(const TcpHeader &t, uint32_t count)
Hold an unsigned integer type.
NS_OBJECT_ENSURE_REGISTERED(AntennaModel)
A base class for implementation of a stream socket using TCP.
Ptr< RttEstimator > m_rtt
#define NS_LOG_LOGIC(msg)
virtual void SetSSThresh(uint32_t threshold)
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
virtual uint32_t GetInitialCwnd(void) const
virtual uint32_t BytesInFlight(void)
static TypeId GetTypeId(void)
virtual int Connect(const Address &address)
TracedValue< SequenceNumber32 > m_highTxMark
virtual void NewAck(SequenceNumber32 const &seq)
virtual uint32_t GetSSThresh(void) const
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
bool SendPendingData(bool withAck=false)
TracedValue< uint32_t > m_rWnd
virtual void DoRetransmit(void)
virtual uint32_t Window(void)
void InitializeCwnd(void)