class for keeping the data sent by the application to the TCP socket, i.e. the sending buffer. More...
#include <tcp-tx-buffer.h>
Public Member Functions | |
TcpTxBuffer (uint32_t n=0) | |
bool | Add (Ptr< Packet > p) |
uint32_t | Available (void) const |
Ptr< Packet > | CopyFromSequence (uint32_t numBytes, const SequenceNumber32 &seq) |
void | DiscardUpTo (const SequenceNumber32 &seq) |
SequenceNumber32 | HeadSequence (void) const |
uint32_t | MaxBufferSize (void) const |
void | SetHeadSequence (const SequenceNumber32 &seq) |
void | SetMaxBufferSize (uint32_t n) |
uint32_t | Size (void) const |
uint32_t | SizeFromSequence (const SequenceNumber32 &seq) const |
SequenceNumber32 | TailSequence (void) const |
Public Member Functions inherited from ns3::Object | |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Initialize (void) |
Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
Public Member Functions inherited from ns3::ObjectBase | |
void | GetAttribute (std::string name, AttributeValue &value) const |
bool | GetAttributeFailSafe (std::string name, AttributeValue &attribute) const |
void | SetAttribute (std::string name, const AttributeValue &value) |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Static Public Member Functions | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::Object | |
static TypeId | GetTypeId (void) |
Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
static void | Cleanup (void) |
Static Public Member Functions inherited from ns3::ObjectBase | |
static TypeId | GetTypeId (void) |
Private Types | |
typedef std::list< Ptr< Packet > >::iterator | BufIterator |
Private Attributes | |
std::list< Ptr< Packet > > | m_data |
TracedValue< SequenceNumber32 > | m_firstByteSeq |
uint32_t | m_maxBuffer |
uint32_t | m_size |
Additional Inherited Members | |
Protected Member Functions inherited from ns3::Object | |
Object (const Object &o) | |
virtual void | DoDispose (void) |
virtual void | DoInitialize (void) |
virtual void | NotifyNewAggregate (void) |
Protected Member Functions inherited from ns3::ObjectBase | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
virtual void | NotifyConstructionCompleted (void) |
class for keeping the data sent by the application to the TCP socket, i.e. the sending buffer.
Definition at line 40 of file tcp-tx-buffer.h.
Append a data packet to the end of the buffer
p | The packet to be appended to the Tx buffer |
Definition at line 101 of file tcp-tx-buffer.cc.
References Available(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by ns3::TcpSocketBase::Send().
uint32_t ns3::TcpTxBuffer::Available | ( | void | ) | const |
Returns the available capacity in this Tx window
Definition at line 95 of file tcp-tx-buffer.cc.
Referenced by Add(), and ns3::TcpSocketBase::GetTxAvailable().
Ptr< Packet > ns3::TcpTxBuffer::CopyFromSequence | ( | uint32_t | numBytes, |
const SequenceNumber32 & | seq | ||
) |
Copy data of size numBytes into a packet, data from the range [seq, seq+numBytes)
Definition at line 133 of file tcp-tx-buffer.cc.
References ns3::Packet::AddAtEnd(), ns3::Packet::CreateFragment(), ns3::Packet::GetSize(), NS_ASSERT, NS_LOG_FUNCTION, NS_LOG_LOGIC, and SizeFromSequence().
Referenced by ns3::TcpSocketBase::SendDataPacket().
void ns3::TcpTxBuffer::DiscardUpTo | ( | const SequenceNumber32 & | seq | ) |
Discard data up to but not including this sequence number.
seq | The sequence number of the head byte |
Definition at line 208 of file tcp-tx-buffer.cc.
References NS_ASSERT, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
SequenceNumber32 ns3::TcpTxBuffer::HeadSequence | ( | void | ) | const |
Returns the first byte's sequence number
Definition at line 65 of file tcp-tx-buffer.cc.
Referenced by ns3::TcpTahoe::DupAck(), ns3::TcpNewReno::NewAck(), ns3::TcpSocketBase::ReceivedAck(), ns3::TcpNewReno::Retransmit(), ns3::TcpTahoe::Retransmit(), ns3::TcpWestwood::Retransmit(), and ns3::TcpSocketBase::SendPendingData().
uint32_t ns3::TcpTxBuffer::MaxBufferSize | ( | void | ) | const |
Returns the Tx window size
Definition at line 83 of file tcp-tx-buffer.cc.
void ns3::TcpTxBuffer::SetHeadSequence | ( | const SequenceNumber32 & | seq | ) |
Set the m_firstByteSeq to seq. Supposed to be called only when the connection is just set up and we did not send any data out yet.
Definition at line 201 of file tcp-tx-buffer.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::TcpSocketBase::ProcessSynRcvd(), and ns3::TcpSocketBase::ProcessSynSent().
void ns3::TcpTxBuffer::SetMaxBufferSize | ( | uint32_t | n | ) |
Set the Tx window size
Definition at line 89 of file tcp-tx-buffer.cc.
Referenced by ns3::TcpSocketBase::SetSndBufSize().
uint32_t ns3::TcpTxBuffer::Size | ( | void | ) | const |
Returns total number of bytes in this Tx buffer
Definition at line 77 of file tcp-tx-buffer.cc.
Referenced by ns3::TcpSocketBase::ProcessWait(), ns3::TcpSocketBase::Send(), ns3::TcpSocketBase::SendPendingData(), and ns3::TcpSocketBase::ShutdownSend().
uint32_t ns3::TcpTxBuffer::SizeFromSequence | ( | const SequenceNumber32 & | seq | ) | const |
Returns the number of bytes from the buffer in the range [seq, tailSequence)
Definition at line 121 of file tcp-tx-buffer.cc.
References NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Referenced by ns3::TcpSocketBase::Close(), CopyFromSequence(), ns3::TcpNewReno::DupAck(), ns3::TcpSocketBase::SendDataPacket(), and ns3::TcpSocketBase::SendPendingData().
SequenceNumber32 ns3::TcpTxBuffer::TailSequence | ( | void | ) | const |
Returns the last byte's sequence number + 1
Definition at line 71 of file tcp-tx-buffer.cc.