16 #ifndef NSC_TCP_SOCKET_IMPL_H
17 #define NSC_TCP_SOCKET_IMPL_H
23 #include "ns3/callback.h"
24 #include "ns3/traced-value.h"
25 #include "ns3/tcp-socket.h"
27 #include "ns3/ipv4-address.h"
28 #include "ns3/inet-socket-address.h"
29 #include "ns3/event-id.h"
31 #include "ns3/sequence-number.h"
40 class NscTcpL4Protocol;
70 virtual int Bind (
void);
71 virtual int Bind6 (
void);
73 virtual int Close (
void);
115 virtual void SetAdvWin (uint32_t window);
Ipv4EndPoint * m_endPoint
virtual Ptr< Node > GetNode(void) const
keep track of time values and allow control of global simulation resolution
virtual int ShutdownSend(void)
std::queue< Ptr< Packet > > m_deliveryQueue
(abstract) base class of all TcpSockets
virtual int GetSockName(Address &address) const
virtual void SetSndBufSize(uint32_t size)
virtual enum SocketType GetSocketType(void) const
Ipv4Address m_localAddress
virtual uint32_t GetAdvWin(void) const
virtual void SetAdvWin(uint32_t window)
Ptr< Packet > Recv(void)
Read a single packet from the socket.
enum Socket::SocketErrno GetNativeNs3Errno(int err) const
virtual Time GetConnTimeout(void) const
bool SendPendingData(void)
Ipv4Address m_remoteAddress
virtual uint32_t GetConnCount(void) const
INetStreamSocket * m_nscTcpSocket
TracedValue< TcpStates_t > m_state
virtual int Bind6(void)
Allocate a local IPv6 endpoint for this socket.
static TypeId GetTypeId(void)
virtual void SetConnTimeout(Time timeout)
virtual uint32_t GetRcvBufSize(void) const
virtual void SetInitialCwnd(uint32_t cwnd)
virtual void SetPersistTimeout(Time timeout)
InetSocketAddress m_peerAddress
a polymophic address class
bool ReadPendingData(void)
virtual uint32_t GetSegSize(void) const
virtual uint32_t GetTxAvailable(void) const
Returns the number of bytes which can be sent in a single call to Send.
virtual Time GetDelAckTimeout(void) const
void SetNode(Ptr< Node > node)
virtual void SetTcpNoDelay(bool noDelay)
virtual uint32_t GetDelAckMaxCount(void) const
Socket logic for the NSC TCP sockets.
virtual bool SetAllowBroadcast(bool allowBroadcast)
Configure whether broadcast datagram transmissions are allowed.
virtual int Send(Ptr< Packet > p, uint32_t flags)
Send data (or dummy data) to the remote host.
virtual bool GetTcpNoDelay(void) const
virtual int ShutdownRecv(void)
virtual bool GetAllowBroadcast() const
Query whether broadcast datagram transmissions are allowed.
void ForwardUp(Ptr< Packet > p, Ipv4Header header, uint16_t port, Ptr< Ipv4Interface > incomingInterface)
virtual Ptr< Packet > RecvFrom(uint32_t maxSize, uint32_t flags, Address &fromAddress)
Read a single packet from the socket and retrieve the sender address.
virtual uint32_t GetSSThresh(void) const
virtual void SetRcvBufSize(uint32_t size)
virtual Time GetPersistTimeout(void) const
virtual int Listen(void)
Listen for incoming connections.
virtual int Bind(void)
Allocate a local IPv4 endpoint for this socket.
Ptr< NscTcpL4Protocol > m_tcp
virtual void SetSegSize(uint32_t size)
TracedValue< uint32_t > m_cWnd
virtual void SetConnCount(uint32_t count)
void SetTcp(Ptr< NscTcpL4Protocol > tcp)
virtual uint32_t GetRxAvailable(void) const
Ipv4 addresses are stored in host order in this class.
uint32_t m_delAckMaxCount
virtual uint32_t GetSndBufSize(void) const
virtual int Close(void)
Close a socket.
void ConnectionSucceeded()
virtual enum SocketErrno GetErrno(void) const
Ptr< NscTcpSocketImpl > Copy()
std::queue< Ptr< Packet > > m_txBuffer
virtual void SetDelAckMaxCount(uint32_t count)
virtual int SendTo(Ptr< Packet > p, uint32_t flags, const Address &toAddress)
Send data to a specified peer.
uint32_t m_advertisedWindowSize
a unique identifier for an interface.
virtual void SetDelAckTimeout(Time timeout)
virtual int Connect(const Address &address)
Initiate a connection to a remote host.
A representation of an internet endpoint/connection.
virtual ~NscTcpSocketImpl()
virtual void SetSSThresh(uint32_t threshold)
virtual uint32_t GetInitialCwnd(void) const