Socket that the 50% of the times saves the entire packet in the buffer, while in the other 50% saves only half the packet. More...
 Inheritance diagram for TcpSocketHalfAck:
 Inheritance diagram for TcpSocketHalfAck: Collaboration diagram for TcpSocketHalfAck:
 Collaboration diagram for TcpSocketHalfAck:| Public Member Functions | |
| TcpSocketHalfAck () | |
|  Public Member Functions inherited from ns3::TcpSocketMsgBase | |
| TcpSocketMsgBase () | |
| TcpSocketMsgBase (const TcpSocketMsgBase &other) | |
| Constructor.  More... | |
| void | SetAfterRetransmitCb (RetrCb cb) | 
| Set the callback invoked after the processing of a retransmit timeout.  More... | |
| void | SetBeforeRetransmitCb (RetrCb cb) | 
| Set the callback invoked before the processing of a retransmit timeout.  More... | |
| void | SetForkCb (Callback< void, Ptr< TcpSocketMsgBase > > cb) | 
| Set the callback invoked after the forking.  More... | |
| void | SetProcessedAckCb (AckManagementCb cb) | 
| Set the callback invoked when an ACK is received and processed (at the end of the processing)  More... | |
| void | SetRcvAckCb (AckManagementCb cb) | 
| Set the callback invoked when an ACK is received (at the beginning of the processing)  More... | |
| void | SetUpdateRttHistoryCb (UpdateRttCallback cb) | 
| Set the callback invoked when we update rtt history.  More... | |
|  Public Member Functions inherited from ns3::TcpSocketBase | |
| TcpSocketBase (void) | |
| Create an unbound TCP socket.  More... | |
| TcpSocketBase (const TcpSocketBase &sock) | |
| Clone a TCP socket, for use upon receiving a connection request in LISTEN state.  More... | |
| virtual | ~TcpSocketBase (void) | 
| virtual int | Bind (void) | 
| Allocate a local IPv4 endpoint for this socket.  More... | |
| virtual int | Bind (const Address &address) | 
| Allocate a local endpoint for this socket.  More... | |
| virtual int | Bind6 (void) | 
| Allocate a local IPv6 endpoint for this socket.  More... | |
| virtual void | BindToNetDevice (Ptr< NetDevice > netdevice) | 
| Bind a socket to specific device.  More... | |
| bool | CheckEcnCe (uint8_t tos) const | 
| Checks for CE codepoint.  More... | |
| bool | CheckEcnEct0 (uint8_t tos) const | 
| Checks for ECT(0) codepoint.  More... | |
| bool | CheckEcnEct1 (uint8_t tos) const | 
| Checks for ECT(1) codepoint.  More... | |
| bool | CheckNoEcn (uint8_t tos) const | 
| Checks if TOS has no ECN codepoints.  More... | |
| uint8_t | ClearEcnBits (uint8_t tos) const | 
| Clears ECN bits from TOS.  More... | |
| virtual int | Close (void) | 
| Close a socket.  More... | |
| virtual int | Connect (const Address &address) | 
| Initiate a connection to a remote host.  More... | |
| Time | GetClockGranularity (void) const | 
| Get the Clock Granularity (used in RTO calcs).  More... | |
| virtual enum SocketErrno | GetErrno (void) const | 
| Get last error number.  More... | |
| virtual TypeId | GetInstanceTypeId () const | 
| Get the instance TypeId.  More... | |
| Time | GetMinRto (void) const | 
| Get the Minimum RTO.  More... | |
| virtual Ptr< Node > | GetNode (void) const | 
| Return the node this socket is associated with.  More... | |
| virtual int | GetPeerName (Address &address) const | 
| Get the peer address of a connected socket.  More... | |
| uint32_t | GetRetxThresh (void) const | 
| Get the retransmission threshold (dup ack threshold for a fast retransmit)  More... | |
| virtual uint32_t | GetRxAvailable (void) const | 
| Return number of bytes which can be returned from one or multiple calls to Recv.  More... | |
| Ptr< TcpRxBuffer > | GetRxBuffer (void) const | 
| Get a pointer to the Rx buffer.  More... | |
| virtual enum SocketType | GetSocketType (void) const | 
| virtual int | GetSockName (Address &address) const | 
| Get socket address.  More... | |
| virtual uint32_t | GetTxAvailable (void) const | 
| Returns the number of bytes which can be sent in a single call to Send.  More... | |
| Ptr< TcpTxBuffer > | GetTxBuffer (void) const | 
| Get a pointer to the Tx buffer.  More... | |
| virtual int | Listen (void) | 
| Listen for incoming connections.  More... | |
| uint8_t | MarkEcnCe (uint8_t tos) const | 
| Mark CE codepoint.  More... | |
| uint8_t | MarkEcnCodePoint (const uint8_t tos, const TcpSocketState::EcnCodePoint_t codePoint) const | 
| mark ECN code point  More... | |
| uint8_t | MarkEcnEct0 (uint8_t tos) const | 
| Mark ECT(0) codepoint.  More... | |
| uint8_t | MarkEcnEct1 (uint8_t tos) const | 
| Mark ECT(1) codepoint.  More... | |
| virtual Ptr< Packet > | Recv (uint32_t maxSize, uint32_t flags) | 
| Read data from the socket.  More... | |
| virtual Ptr< Packet > | RecvFrom (uint32_t maxSize, uint32_t flags, Address &fromAddress) | 
| Read a single packet from the socket and retrieve the sender address.  More... | |
| virtual int | Send (Ptr< Packet > p, uint32_t flags) | 
| Send data (or dummy data) to the remote host.  More... | |
| virtual int | SendTo (Ptr< Packet > p, uint32_t flags, const Address &toAddress) | 
| Send data to a specified peer.  More... | |
| void | SetClockGranularity (Time clockGranularity) | 
| Sets the Clock Granularity (used in RTO calcs).  More... | |
| void | SetCongestionControlAlgorithm (Ptr< TcpCongestionOps > algo) | 
| Install a congestion control algorithm on this socket.  More... | |
| void | SetMinRto (Time minRto) | 
| Sets the Minimum RTO.  More... | |
| virtual void | SetNode (Ptr< Node > node) | 
| Set the associated node.  More... | |
| void | SetPaceInitialWindow (bool paceWindow) | 
| Enable or disable pacing of the initial window.  More... | |
| void | SetPacingStatus (bool pacing) | 
| Enable or disable pacing.  More... | |
| void | SetRecoveryAlgorithm (Ptr< TcpRecoveryOps > recovery) | 
| Install a recovery algorithm on this socket.  More... | |
| void | SetRetxThresh (uint32_t retxThresh) | 
| Set the retransmission threshold (dup ack threshold for a fast retransmit)  More... | |
| virtual void | SetRtt (Ptr< RttEstimator > rtt) | 
| Set the associated RTT estimator.  More... | |
| virtual void | SetTcp (Ptr< TcpL4Protocol > tcp) | 
| Set the associated TCP L4 protocol.  More... | |
| void | SetUseEcn (TcpSocketState::UseEcn_t useEcn) | 
| Set ECN mode of use on the socket.  More... | |
| virtual int | ShutdownRecv (void) | 
| virtual int | ShutdownSend (void) | 
| void | UpdateBytesInFlight (uint32_t oldValue, uint32_t newValue) | 
| Callback function to hook to TcpSocketState bytes inflight.  More... | |
| void | UpdateCongState (TcpSocketState::TcpCongState_t oldValue, TcpSocketState::TcpCongState_t newValue) | 
| Callback function to hook to TcpSocketState congestion state.  More... | |
| void | UpdateCwnd (uint32_t oldValue, uint32_t newValue) | 
| Callback function to hook to TcpSocketState congestion window.  More... | |
| void | UpdateCwndInfl (uint32_t oldValue, uint32_t newValue) | 
| Callback function to hook to TcpSocketState inflated congestion window.  More... | |
| void | UpdateEcnState (TcpSocketState::EcnState_t oldValue, TcpSocketState::EcnState_t newValue) | 
| Callback function to hook to EcnState state.  More... | |
| void | UpdateHighTxMark (SequenceNumber32 oldValue, SequenceNumber32 newValue) | 
| Callback function to hook to TcpSocketState high tx mark.  More... | |
| void | UpdateNextTxSequence (SequenceNumber32 oldValue, SequenceNumber32 newValue) | 
| Callback function to hook to TcpSocketState next tx sequence.  More... | |
| void | UpdatePacingRateTrace (DataRate oldValue, DataRate newValue) | 
| Callback function to hook to TcpSocketState pacing rate.  More... | |
| void | UpdateRtt (Time oldValue, Time newValue) | 
| Callback function to hook to TcpSocketState rtt.  More... | |
| void | UpdateSsThresh (uint32_t oldValue, uint32_t newValue) | 
| Callback function to hook to TcpSocketState slow start threshold.  More... | |
|  Public Member Functions inherited from ns3::TcpSocket | |
| TcpSocket (void) | |
| virtual | ~TcpSocket (void) | 
|  Public Member Functions inherited from ns3::Socket | |
| Socket (void) | |
| virtual | ~Socket (void) | 
| Ptr< NetDevice > | GetBoundNetDevice () | 
| Returns socket's bound NetDevice, if any.  More... | |
| uint8_t | GetIpTos (void) const | 
| Query the value of IP Type of Service of this socket.  More... | |
| virtual uint8_t | GetIpTtl (void) const | 
| Query the value of IP Time to Live field of this socket.  More... | |
| virtual uint8_t | GetIpv6HopLimit (void) const | 
| Query the value of IP Hop Limit field of this socket.  More... | |
| uint8_t | GetIpv6Tclass (void) const | 
| Query the value of IPv6 Traffic Class field of this socket.  More... | |
| uint8_t | GetPriority (void) const | 
| Query the priority value of this socket.  More... | |
| virtual void | Ipv6JoinGroup (Ipv6Address address, Ipv6MulticastFilterMode filterMode, std::vector< Ipv6Address > sourceAddresses) | 
| Joins a IPv6 multicast group.  More... | |
| virtual void | Ipv6JoinGroup (Ipv6Address address) | 
| Joins a IPv6 multicast group without filters.  More... | |
| virtual void | Ipv6LeaveGroup (void) | 
| Leaves IPv6 multicast group this socket is joined to.  More... | |
| bool | IsIpRecvTos (void) const | 
| Ask if the socket is currently passing information about IP Type of Service up the stack.  More... | |
| bool | IsIpRecvTtl (void) const | 
| Ask if the socket is currently passing information about IP_TTL up the stack.  More... | |
| bool | IsIpv6RecvHopLimit (void) const | 
| Ask if the socket is currently passing information about IPv6 Hop Limit up the stack.  More... | |
| bool | IsIpv6RecvTclass (void) const | 
| Ask if the socket is currently passing information about IPv6 Traffic Class up the stack.  More... | |
| bool | IsRecvPktInfo () const | 
| Get status indicating whether enable/disable packet information to socket.  More... | |
| Ptr< Packet > | Recv (void) | 
| Read a single packet from the socket.  More... | |
| int | Recv (uint8_t *buf, uint32_t size, uint32_t flags) | 
| Recv data (or dummy data) from the remote host.  More... | |
| Ptr< Packet > | RecvFrom (Address &fromAddress) | 
| Read a single packet from the socket and retrieve the sender address.  More... | |
| int | RecvFrom (uint8_t *buf, uint32_t size, uint32_t flags, Address &fromAddress) | 
| Read a single packet from the socket and retrieve the sender address.  More... | |
| int | Send (Ptr< Packet > p) | 
| Send data (or dummy data) to the remote host.  More... | |
| int | Send (const uint8_t *buf, uint32_t size, uint32_t flags) | 
| Send data (or dummy data) to the remote host.  More... | |
| int | SendTo (const uint8_t *buf, uint32_t size, uint32_t flags, const Address &address) | 
| Send data to a specified peer.  More... | |
| void | SetAcceptCallback (Callback< bool, Ptr< Socket >, const Address &> connectionRequest, Callback< void, Ptr< Socket >, const Address &> newConnectionCreated) | 
| Accept connection requests from remote hosts.  More... | |
| void | SetCloseCallbacks (Callback< void, Ptr< Socket > > normalClose, Callback< void, Ptr< Socket > > errorClose) | 
| Detect socket recv() events such as graceful shutdown or error.  More... | |
| void | SetConnectCallback (Callback< void, Ptr< Socket > > connectionSucceeded, Callback< void, Ptr< Socket > > connectionFailed) | 
| Specify callbacks to allow the caller to determine if the connection succeeds of fails.  More... | |
| void | SetDataSentCallback (Callback< void, Ptr< Socket >, uint32_t > dataSent) | 
| Notify application when a packet has been sent from transport protocol (non-standard socket call)  More... | |
| void | SetIpRecvTos (bool ipv4RecvTos) | 
| Tells a socket to pass information about IP Type of Service up the stack.  More... | |
| void | SetIpRecvTtl (bool ipv4RecvTtl) | 
| Tells a socket to pass information about IP_TTL up the stack.  More... | |
| void | SetIpTos (uint8_t ipTos) | 
| Manually set IP Type of Service field.  More... | |
| virtual void | SetIpTtl (uint8_t ipTtl) | 
| Manually set IP Time to Live field.  More... | |
| virtual void | SetIpv6HopLimit (uint8_t ipHopLimit) | 
| Manually set IPv6 Hop Limit.  More... | |
| void | SetIpv6RecvHopLimit (bool ipv6RecvHopLimit) | 
| Tells a socket to pass information about IPv6 Hop Limit up the stack.  More... | |
| void | SetIpv6RecvTclass (bool ipv6RecvTclass) | 
| Tells a socket to pass information about IPv6 Traffic Class up the stack.  More... | |
| void | SetIpv6Tclass (int ipTclass) | 
| Manually set IPv6 Traffic Class field.  More... | |
| void | SetPriority (uint8_t priority) | 
| Manually set the socket priority.  More... | |
| void | SetRecvCallback (Callback< void, Ptr< Socket > > receivedData) | 
| Notify application when new data is available to be read.  More... | |
| void | SetRecvPktInfo (bool flag) | 
| Enable/Disable receive packet information to socket.  More... | |
| void | SetSendCallback (Callback< void, Ptr< Socket >, uint32_t > sendCb) | 
| Notify application when space in transmit buffer is added.  More... | |
|  Public Member Functions inherited from ns3::Object | |
| Object () | |
| Constructor.  More... | |
| virtual | ~Object () | 
| Destructor.  More... | |
| void | AggregateObject (Ptr< Object > other) | 
| Aggregate two Objects together.  More... | |
| void | Dispose (void) | 
| Dispose of this Object.  More... | |
| AggregateIterator | GetAggregateIterator (void) const | 
| Get an iterator to the Objects aggregated to this one.  More... | |
| template<typename T > | |
| Ptr< T > | GetObject (void) const | 
| Get a pointer to the requested aggregated Object.  More... | |
| template<typename T > | |
| Ptr< T > | GetObject (TypeId tid) const | 
| Get a pointer to the requested aggregated Object by TypeId.  More... | |
| template<> | |
| Ptr< Object > | GetObject () const | 
| Specialization of ()  for objects of type ns3::Object.  More... | |
| template<> | |
| Ptr< Object > | GetObject (TypeId tid) const | 
| Specialization of (TypeId tid)  for objects of type ns3::Object.  More... | |
| void | Initialize (void) | 
| Invoke DoInitialize on all Objects aggregated to this one.  More... | |
| bool | IsInitialized (void) const | 
| Check if the object has been initialized.  More... | |
|  Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter > | |
| SimpleRefCount () | |
| Default constructor.  More... | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor.  More... | |
| uint32_t | GetReferenceCount (void) const | 
| Get the reference count of the object.  More... | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) | 
| Assignment operator.  More... | |
| void | Ref (void) const | 
| Increment the reference count.  More... | |
| void | Unref (void) const | 
| Decrement the reference count.  More... | |
|  Public Member Functions inherited from ns3::ObjectBase | |
| virtual | ~ObjectBase () | 
| Virtual destructor.  More... | |
| void | GetAttribute (std::string name, AttributeValue &value) const | 
| Get the value of an attribute, raising fatal errors if unsuccessful.  More... | |
| bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const | 
| Get the value of an attribute without raising erros.  More... | |
| void | SetAttribute (std::string name, const AttributeValue &value) | 
| Set a single attribute, raising fatal errors if unsuccessful.  More... | |
| bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) | 
| Set a single attribute without raising errors.  More... | |
| bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) | 
| Connect a TraceSource to a Callback with a context.  More... | |
| bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) | 
| Connect a TraceSource to a Callback without a context.  More... | |
| bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) | 
| Disconnect from a TraceSource a Callback previously connected with a context.  More... | |
| bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) | 
| Disconnect from a TraceSource a Callback previously connected without a context.  More... | |
| Static Public Member Functions | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
|  Static Public Member Functions inherited from ns3::TcpSocketMsgBase | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
|  Static Public Member Functions inherited from ns3::TcpSocketBase | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
|  Static Public Member Functions inherited from ns3::TcpSocket | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
|  Static Public Member Functions inherited from ns3::Socket | |
| static Ptr< Socket > | CreateSocket (Ptr< Node > node, TypeId tid) | 
| This method wraps the creation of sockets that is performed on a given node by a SocketFactory specified by TypeId.  More... | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
| static uint8_t | IpTos2Priority (uint8_t ipTos) | 
| Return the priority corresponding to a given TOS value.  More... | |
|  Static Public Member Functions inherited from ns3::Object | |
| static TypeId | GetTypeId (void) | 
| Register this type.  More... | |
|  Static Public Member Functions inherited from ns3::ObjectBase | |
| static TypeId | GetTypeId (void) | 
| Get the type ID.  More... | |
| Protected Member Functions | |
| virtual Ptr< TcpSocketBase > | Fork () | 
| Call CopyObject<> to clone me.  More... | |
| virtual void | ReceivedData (Ptr< Packet > packet, const TcpHeader &tcpHeader) | 
| Recv of a data, put into buffer, call L7 to get it if necessary.  More... | |
|  Protected Member Functions inherited from ns3::TcpSocketMsgBase | |
| virtual void | CompleteFork (Ptr< Packet > p, const TcpHeader &tcpHeader, const Address &fromAddress, const Address &toAddress) | 
| Complete a connection by forking the socket.  More... | |
| virtual void | ReceivedAck (Ptr< Packet > packet, const TcpHeader &tcpHeader) | 
| Received an ACK packet.  More... | |
| virtual void | ReTxTimeout (void) | 
| An RTO event happened.  More... | |
| virtual void | UpdateRttHistory (const SequenceNumber32 &seq, uint32_t sz, bool isRetransmission) | 
| Update the RTT history, when we send TCP segments.  More... | |
|  Protected Member Functions inherited from ns3::TcpSocketBase | |
| void | AddOptions (TcpHeader &tcpHeader) | 
| Add options to TcpHeader.  More... | |
| void | AddOptionSack (TcpHeader &header) | 
| Add the SACK option to the header.  More... | |
| void | AddOptionSackPermitted (TcpHeader &header) | 
| Add the SACK PERMITTED option to the header.  More... | |
| void | AddOptionTimestamp (TcpHeader &header) | 
| Add the timestamp option to the header.  More... | |
| void | AddOptionWScale (TcpHeader &header) | 
| Add the window scale option to the header.  More... | |
| void | AddSocketTags (const Ptr< Packet > &p) const | 
| Add Tags for the Socket.  More... | |
| virtual uint16_t | AdvertisedWindowSize (bool scale=true) const | 
| The amount of Rx window announced to the peer.  More... | |
| virtual uint32_t | AvailableWindow (void) const | 
| Return unfilled portion of window.  More... | |
| virtual uint32_t | BytesInFlight (void) const | 
| Return total bytes in flight.  More... | |
| uint8_t | CalculateWScale () const | 
| Calculate window scale value based on receive buffer space.  More... | |
| void | CancelAllTimers (void) | 
| Cancel all timer when endpoint is deleted.  More... | |
| void | CloseAndNotify (void) | 
| Peacefully close the socket by notifying the upper layer and deallocate end point.  More... | |
| void | ConnectionSucceeded (void) | 
| Schedule-friendly wrapper for Socket::NotifyConnectionSucceeded()  More... | |
| void | DeallocateEndPoint (void) | 
| Deallocate m_endPoint and m_endPoint6.  More... | |
| virtual void | DelAckTimeout (void) | 
| Action upon delay ACK timeout, i.e.  More... | |
| void | Destroy (void) | 
| Kill this socket by zeroing its attributes (IPv4)  More... | |
| void | Destroy6 (void) | 
| Kill this socket by zeroing its attributes (IPv6)  More... | |
| int | DoClose (void) | 
| Close a socket by sending RST, FIN, or FIN+ACK, depend on the current state.  More... | |
| int | DoConnect (void) | 
| Perform the real connection tasks: Send SYN if allowed, RST if invalid.  More... | |
| virtual void | DoForwardUp (Ptr< Packet > packet, const Address &fromAddress, const Address &toAddress) | 
| Called by TcpSocketBase::ForwardUp{,6}().  More... | |
| void | DoPeerClose (void) | 
| FIN is in sequence, notify app and respond with a FIN.  More... | |
| void | DoRetransmit (void) | 
| Retransmit the first segment marked as lost, without considering available window nor pacing.  More... | |
| void | DupAck (uint32_t currentDelivered) | 
| Dupack management.  More... | |
| void | EnterCwr (uint32_t currentDelivered) | 
| Enter CA_CWR state upon receipt of an ECN Echo.  More... | |
| void | EnterRecovery (uint32_t currentDelivered) | 
| Enter the CA_RECOVERY, and retransmit the head.  More... | |
| virtual void | EstimateRtt (const TcpHeader &tcpHeader) | 
| Take into account the packet for RTT estimation.  More... | |
| void | ForwardIcmp (Ipv4Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo) | 
| Called by the L3 protocol when it received an ICMP packet to pass on to TCP.  More... | |
| void | ForwardIcmp6 (Ipv6Address icmpSource, uint8_t icmpTtl, uint8_t icmpType, uint8_t icmpCode, uint32_t icmpInfo) | 
| Called by the L3 protocol when it received an ICMPv6 packet to pass on to TCP.  More... | |
| void | ForwardUp (Ptr< Packet > packet, Ipv4Header header, uint16_t port, Ptr< Ipv4Interface > incomingInterface) | 
| Called by the L3 protocol when it received a packet to pass on to TCP.  More... | |
| void | ForwardUp6 (Ptr< Packet > packet, Ipv6Header header, uint16_t port, Ptr< Ipv6Interface > incomingInterface) | 
| Called by the L3 protocol when it received a packet to pass on to TCP.  More... | |
| virtual bool | GetAllowBroadcast (void) const | 
| Query whether broadcast datagram transmissions are allowed.  More... | |
| virtual Time | GetConnTimeout (void) const | 
| Get the connection timeout.  More... | |
| virtual uint32_t | GetDataRetries (void) const | 
| Get the number of data transmission retries before giving up.  More... | |
| virtual uint32_t | GetDelAckMaxCount (void) const | 
| Get the number of packet to fire an ACK before delay timeout.  More... | |
| virtual Time | GetDelAckTimeout (void) const | 
| Get the time to delay an ACK.  More... | |
| SequenceNumber32 | GetHighRxAck (void) const | 
| Get the current value of the receiver's highest (in-sequence) sequence number acked.  More... | |
| virtual uint32_t | GetInitialCwnd (void) const | 
| Get the initial Congestion Window.  More... | |
| virtual uint32_t | GetInitialSSThresh (void) const | 
| Get the initial Slow Start Threshold.  More... | |
| virtual Time | GetPersistTimeout (void) const | 
| Get the timeout for persistent connection.  More... | |
| virtual uint32_t | GetRcvBufSize (void) const | 
| Get the receive buffer size.  More... | |
| uint32_t | GetRWnd (void) const | 
| Get the current value of the receiver's offered window (RCV.WND)  More... | |
| virtual uint32_t | GetSegSize (void) const | 
| Get the segment size.  More... | |
| virtual uint32_t | GetSndBufSize (void) const | 
| Get the send buffer size.  More... | |
| virtual uint32_t | GetSynRetries (void) const | 
| Get the number of connection retries before giving up.  More... | |
| virtual bool | GetTcpNoDelay (void) const | 
| Check if Nagle's algorithm is enabled or not.  More... | |
| bool | IsPacingEnabled (void) const | 
| Return true if packets in the current window should be paced.  More... | |
| bool | IsTcpOptionEnabled (uint8_t kind) const | 
| Return true if the specified option is enabled.  More... | |
| bool | IsValidTcpSegment (const SequenceNumber32 seq, const uint32_t tcpHeaderSize, const uint32_t tcpPayloadSize) | 
| Checks whether the given TCP segment is valid or not.  More... | |
| virtual void | LastAckTimeout (void) | 
| Timeout at LAST_ACK, close the connection.  More... | |
| virtual void | NewAck (SequenceNumber32 const &seq, bool resetRTO) | 
| Update buffers w.r.t.  More... | |
| void | NotifyPacingPerformed (void) | 
| Notify Pacing.  More... | |
| bool | OutOfRange (SequenceNumber32 head, SequenceNumber32 tail) const | 
| Check if a sequence number range is within the rx window.  More... | |
| void | PeerClose (Ptr< Packet > p, const TcpHeader &tcpHeader) | 
| Received a FIN from peer, notify rx buffer.  More... | |
| virtual void | PersistTimeout (void) | 
| Send 1 byte probe to get an updated window size.  More... | |
| virtual void | ProcessAck (const SequenceNumber32 &ackNumber, bool scoreboardUpdated, uint32_t currentDelivered, const SequenceNumber32 &oldHeadSequence) | 
| Process a received ack.  More... | |
| void | ProcessClosing (Ptr< Packet > packet, const TcpHeader &tcpHeader) | 
| Received a packet upon CLOSING.  More... | |
| void | ProcessEstablished (Ptr< Packet > packet, const TcpHeader &tcpHeader) | 
| Received a packet upon ESTABLISHED state.  More... | |
| void | ProcessLastAck (Ptr< Packet > packet, const TcpHeader &tcpHeader) | 
| Received a packet upon LAST_ACK.  More... | |
| void | ProcessListen (Ptr< Packet > packet, const TcpHeader &tcpHeader, const Address &fromAddress, const Address &toAddress) | 
| Received a packet upon LISTEN state.  More... | |
| uint32_t | ProcessOptionSack (const Ptr< const TcpOption > option) | 
| Read the SACK option.  More... | |
| void | ProcessOptionSackPermitted (const Ptr< const TcpOption > option) | 
| Read the SACK PERMITTED option.  More... | |
| void | ProcessOptionTimestamp (const Ptr< const TcpOption > option, const SequenceNumber32 &seq) | 
| Process the timestamp option from other side.  More... | |
| void | ProcessOptionWScale (const Ptr< const TcpOption > option) | 
| Read and parse the Window scale option.  More... | |
| void | ProcessSynRcvd (Ptr< Packet > packet, const TcpHeader &tcpHeader, const Address &fromAddress, const Address &toAddress) | 
| Received a packet upon SYN_RCVD.  More... | |
| void | ProcessSynSent (Ptr< Packet > packet, const TcpHeader &tcpHeader) | 
| Received a packet upon SYN_SENT.  More... | |
| void | ProcessWait (Ptr< Packet > packet, const TcpHeader &tcpHeader) | 
| Received a packet upon CLOSE_WAIT, FIN_WAIT_1, FIN_WAIT_2.  More... | |
| void | ReadOptions (const TcpHeader &tcpHeader, uint32_t *bytesSacked) | 
| Read TCP options before Ack processing.  More... | |
| virtual uint32_t | SendDataPacket (SequenceNumber32 seq, uint32_t maxSize, bool withAck) | 
| Extract at most maxSize bytes from the TxBuffer at sequence seq, add the TCP header, and send to TcpL4Protocol.  More... | |
| virtual void | SendEmptyPacket (uint8_t flags) | 
| Send a empty packet that carries a flag, e.g., ACK.  More... | |
| uint32_t | SendPendingData (bool withAck=false) | 
| Send as much pending data as possible according to the Tx window.  More... | |
| void | SendRST (void) | 
| Send reset and tear down this socket.  More... | |
| virtual bool | SetAllowBroadcast (bool allowBroadcast) | 
| Configure whether broadcast datagram transmissions are allowed.  More... | |
| virtual void | SetConnTimeout (Time timeout) | 
| Set the connection timeout.  More... | |
| virtual void | SetDataRetries (uint32_t retries) | 
| Set the number of data transmission retries before giving up.  More... | |
| virtual void | SetDelAckMaxCount (uint32_t count) | 
| Set the number of packet to fire an ACK before delay timeout.  More... | |
| virtual void | SetDelAckTimeout (Time timeout) | 
| Set the time to delay an ACK.  More... | |
| virtual void | SetInitialCwnd (uint32_t cwnd) | 
| Set the initial Congestion Window.  More... | |
| virtual void | SetInitialSSThresh (uint32_t threshold) | 
| Set the initial Slow Start Threshold.  More... | |
| virtual void | SetPersistTimeout (Time timeout) | 
| Set the timeout for persistent connection.  More... | |
| virtual void | SetRcvBufSize (uint32_t size) | 
| Set the receive buffer size.  More... | |
| virtual void | SetSegSize (uint32_t size) | 
| Set the segment size.  More... | |
| virtual void | SetSndBufSize (uint32_t size) | 
| Set the send buffer size.  More... | |
| virtual void | SetSynRetries (uint32_t count) | 
| Set the number of connection retries before giving up.  More... | |
| virtual void | SetTcpNoDelay (bool noDelay) | 
| Enable/Disable Nagle's algorithm.  More... | |
| int | SetupCallback (void) | 
| Common part of the two Bind(), i.e.  More... | |
| int | SetupEndpoint (void) | 
| Configure the endpoint to a local address.  More... | |
| int | SetupEndpoint6 (void) | 
| Configure the endpoint v6 to a local address.  More... | |
| void | TimeWait (void) | 
| Move from CLOSING or FIN_WAIT_2 to TIME_WAIT state.  More... | |
| virtual uint32_t | UnAckDataCount (void) const | 
| Return count of number of unacked bytes.  More... | |
| void | UpdatePacingRate (void) | 
| Dynamically update the pacing rate.  More... | |
| void | UpdateWindowSize (const TcpHeader &header) | 
| Update the receiver window (RWND) based on the value of the window field in the header.  More... | |
| virtual uint32_t | Window (void) const | 
| Return the max possible number of unacked bytes.  More... | |
|  Protected Member Functions inherited from ns3::Socket | |
| virtual void | DoDispose (void) | 
| Destructor implementation.  More... | |
| bool | IsManualIpTtl (void) const | 
| Checks if the socket has a specific IPv4 TTL set.  More... | |
| bool | IsManualIpv6HopLimit (void) const | 
| Checks if the socket has a specific IPv6 Hop Limit set.  More... | |
| bool | IsManualIpv6Tclass (void) const | 
| Checks if the socket has a specific IPv6 Tclass set.  More... | |
| void | NotifyConnectionFailed (void) | 
| Notify through the callback (if set) that the connection has not been established due to an error.  More... | |
| bool | NotifyConnectionRequest (const Address &from) | 
| Notify through the callback (if set) that an incoming connection is being requested by a remote host.  More... | |
| void | NotifyConnectionSucceeded (void) | 
| Notify through the callback (if set) that the connection has been established.  More... | |
| void | NotifyDataRecv (void) | 
| Notify through the callback (if set) that some data have been received.  More... | |
| void | NotifyDataSent (uint32_t size) | 
| Notify through the callback (if set) that some data have been sent.  More... | |
| void | NotifyErrorClose (void) | 
| Notify through the callback (if set) that the connection has been closed due to an error.  More... | |
| void | NotifyNewConnectionCreated (Ptr< Socket > socket, const Address &from) | 
| Notify through the callback (if set) that a new connection has been created.  More... | |
| void | NotifyNormalClose (void) | 
| Notify through the callback (if set) that the connection has been closed.  More... | |
| void | NotifySend (uint32_t spaceAvailable) | 
| Notify through the callback (if set) that some data have been sent.  More... | |
|  Protected Member Functions inherited from ns3::Object | |
| Object (const Object &o) | |
| Copy an Object.  More... | |
| virtual void | DoInitialize (void) | 
| Initialize() implementation.  More... | |
| virtual void | NotifyNewAggregate (void) | 
| Notify all Objects aggregated to this one of a new Object being aggregated.  More... | |
|  Protected Member Functions inherited from ns3::ObjectBase | |
| void | ConstructSelf (const AttributeConstructionList &attributes) | 
| Complete construction of ObjectBase; invoked by derived classes.  More... | |
| virtual void | NotifyConstructionCompleted (void) | 
| Notifier called once the ObjectBase is fully constructed.  More... | |
| Additional Inherited Members | |
|  Public Types inherited from ns3::TcpSocketMsgBase | |
| typedef Callback< void, Ptr< const Packet >, const TcpHeader &, Ptr< const TcpSocketBase > > | AckManagementCb | 
| Callback for the ACK management.  More... | |
| typedef Callback< void, Ptr< const TcpSocketState >, Ptr< const TcpSocketBase > > | RetrCb | 
| Callback for the packet retransmission management.  More... | |
| typedef Callback< void, Ptr< const TcpSocketBase >, const SequenceNumber32 &, uint32_t, bool > | UpdateRttCallback | 
| Callback for the RTT update management.  More... | |
|  Public Types inherited from ns3::TcpSocketBase | |
| typedef void(* | TcpTxRxTracedCallback) (const Ptr< const Packet > packet, const TcpHeader &header, const Ptr< const TcpSocketBase > socket) | 
| TracedCallback signature for tcp packet transmission or reception events.  More... | |
|  Public Types inherited from ns3::TcpSocket | |
| enum | TcpStates_t { CLOSED = 0, LISTEN, SYN_SENT, SYN_RCVD, ESTABLISHED, CLOSE_WAIT, LAST_ACK, FIN_WAIT_1, FIN_WAIT_2, CLOSING, TIME_WAIT, LAST_STATE } | 
| Names of the 11 TCP states.  More... | |
|  Public Types inherited from ns3::Socket | |
| enum | Ipv6MulticastFilterMode { INCLUDE =1, EXCLUDE } | 
| Enumeration of the possible filter of a socket.  More... | |
| enum | SocketErrno { ERROR_NOTERROR, ERROR_ISCONN, ERROR_NOTCONN, ERROR_MSGSIZE, ERROR_AGAIN, ERROR_SHUTDOWN, ERROR_OPNOTSUPP, ERROR_AFNOSUPPORT, ERROR_INVAL, ERROR_BADF, ERROR_NOROUTETOHOST, ERROR_NODEV, ERROR_ADDRNOTAVAIL, ERROR_ADDRINUSE, SOCKET_ERRNO_LAST } | 
| Enumeration of the possible errors returned by a socket.  More... | |
| enum | SocketPriority { NS3_PRIO_BESTEFFORT = 0, NS3_PRIO_FILLER = 1, NS3_PRIO_BULK = 2, NS3_PRIO_INTERACTIVE_BULK = 4, NS3_PRIO_INTERACTIVE = 6, NS3_PRIO_CONTROL = 7 } | 
| Enumeration of the possible socket priorities.  More... | |
| enum | SocketType { NS3_SOCK_STREAM, NS3_SOCK_SEQPACKET, NS3_SOCK_DGRAM, NS3_SOCK_RAW } | 
| Enumeration of the possible socket types.  More... | |
|  Public Attributes inherited from ns3::TcpSocketBase | |
| TracedCallback< uint32_t, uint32_t > | m_bytesInFlightTrace | 
| Callback pointer for bytesInFlight trace chaining.  More... | |
| TracedCallback< TcpSocketState::TcpCongState_t, TcpSocketState::TcpCongState_t > | m_congStateTrace | 
| Callback pointer for congestion state trace chaining.  More... | |
| TracedCallback< uint32_t, uint32_t > | m_cWndInflTrace | 
| Callback pointer for cWndInfl trace chaining.  More... | |
| TracedCallback< uint32_t, uint32_t > | m_cWndTrace | 
| Callback pointer for cWnd trace chaining.  More... | |
| TracedCallback< TcpSocketState::EcnState_t, TcpSocketState::EcnState_t > | m_ecnStateTrace | 
| Callback pointer for ECN state trace chaining.  More... | |
| TracedCallback< SequenceNumber32, SequenceNumber32 > | m_highTxMarkTrace | 
| Callback pointer for high tx mark chaining.  More... | |
| TracedCallback< Time, Time > | m_lastRttTrace | 
| Callback pointer for RTT trace chaining.  More... | |
| TracedCallback< SequenceNumber32, SequenceNumber32 > | m_nextTxSequenceTrace | 
| Callback pointer for next tx sequence chaining.  More... | |
| TracedCallback< DataRate, DataRate > | m_pacingRateTrace | 
| Callback pointer for pacing rate trace chaining.  More... | |
| TracedCallback< uint32_t, uint32_t > | m_ssThTrace | 
| Callback pointer for ssTh trace chaining.  More... | |
|  Static Public Attributes inherited from ns3::TcpSocket | |
| static const char *const | TcpStateName [TcpSocket::LAST_STATE] | 
| Literal names of TCP states for use in log messages.  More... | |
|  Static Protected Member Functions inherited from ns3::TcpSocketBase | |
| static uint32_t | SafeSubtraction (uint32_t a, uint32_t b) | 
| Performs a safe subtraction between a and b (a-b)  More... | |
|  Protected Attributes inherited from ns3::TcpSocketBase | |
| TracedValue< uint32_t > | m_advWnd {0} | 
| Advertised Window size.  More... | |
| uint32_t | m_bytesAckedNotProcessed {0} | 
| Bytes acked, but not processed.  More... | |
| Time | m_clockGranularity {Seconds (0.001)} | 
| Clock Granularity used in RTO calcs.  More... | |
| bool | m_closeNotified {false} | 
| Told app to close socket.  More... | |
| bool | m_closeOnEmpty {false} | 
| Close socket upon tx buffer emptied.  More... | |
| Time | m_cnTimeout {Seconds (0.0)} | 
| Timeout for connection retry.  More... | |
| Ptr< TcpCongestionOps > | m_congestionControl | 
| Congestion control.  More... | |
| bool | m_connected {false} | 
| Connection established.  More... | |
| uint32_t | m_dataRetrCount {0} | 
| Count of remaining data retransmission attempts.  More... | |
| uint32_t | m_dataRetries {0} | 
| Number of data retransmission attempts.  More... | |
| uint32_t | m_delAckCount {0} | 
| Delayed ACK counter.  More... | |
| EventId | m_delAckEvent {} | 
| Delayed ACK timeout event.  More... | |
| uint32_t | m_delAckMaxCount {0} | 
| Number of packet to fire an ACK before delay timeout.  More... | |
| Time | m_delAckTimeout {Seconds (0.0)} | 
| Time to delay an ACK.  More... | |
| uint32_t | m_dupAckCount {0} | 
| Dupack counter.  More... | |
| TracedValue< SequenceNumber32 > | m_ecnCESeq {0} | 
| Sequence number of the last received Congestion Experienced.  More... | |
| TracedValue< SequenceNumber32 > | m_ecnCWRSeq {0} | 
| Sequence number of the last sent CWR.  More... | |
| TracedValue< SequenceNumber32 > | m_ecnEchoSeq {0} | 
| Sequence number of the last received ECN Echo.  More... | |
| Ipv4EndPoint * | m_endPoint {nullptr} | 
| the IPv4 endpoint  More... | |
| Ipv6EndPoint * | m_endPoint6 {nullptr} | 
| the IPv6 endpoint  More... | |
| TracedValue< SequenceNumber32 > | m_highRxAckMark {0} | 
| Highest ack received.  More... | |
| TracedValue< SequenceNumber32 > | m_highRxMark {0} | 
| Highest seqno received.  More... | |
| SequenceNumber32 | m_highTxAck {0} | 
| Highest ack sent.  More... | |
| std::deque< RttHistory > | m_history | 
| List of sent packet.  More... | |
| Callback< void, Ipv4Address, uint8_t, uint8_t, uint8_t, uint32_t > | m_icmpCallback | 
| ICMP callback.  More... | |
| Callback< void, Ipv6Address, uint8_t, uint8_t, uint8_t, uint32_t > | m_icmpCallback6 | 
| ICMPv6 callback.  More... | |
| bool | m_isFirstPartialAck {true} | 
| First partial ACK during RECOVERY.  More... | |
| EventId | m_lastAckEvent {} | 
| Last ACK timeout event.  More... | |
| bool | m_limitedTx {true} | 
| perform limited transmit  More... | |
| uint16_t | m_maxWinSize {0} | 
| Maximum window size to advertise.  More... | |
| Time | m_minRto {Time::Max ()} | 
| minimum value of the Retransmit timeout  More... | |
| double | m_msl {0.0} | 
| Max segment lifetime.  More... | |
| Ptr< Node > | m_node | 
| the associated node  More... | |
| bool | m_noDelay {false} | 
| Set to true to disable Nagle's algorithm.  More... | |
| Timer | m_pacingTimer {Timer::CANCEL_ON_DESTROY} | 
| Pacing Event.  More... | |
| EventId | m_persistEvent {} | 
| Persist event: Send 1 byte to probe for a non-zero Rx window.  More... | |
| Time | m_persistTimeout {Seconds (0.0)} | 
| Time between sending 1-byte probes.  More... | |
| Ptr< TcpRateOps > | m_rateOps | 
| Rate operations.  More... | |
| uint8_t | m_rcvWindShift {0} | 
| Window shift to apply to outgoing segments.  More... | |
| SequenceNumber32 | m_recover {0} | 
| Previous highest Tx seqnum for fast recovery (set it to initial seq number)  More... | |
| bool | m_recoverActive {false} | 
| Whether "m_recover" has been set/activated It is used to avoid comparing with the old m_recover value which was set for handling previous congestion event.  More... | |
| Ptr< TcpRecoveryOps > | m_recoveryOps | 
| Recovery Algorithm.  More... | |
| EventId | m_retxEvent {} | 
| Retransmission event.  More... | |
| uint32_t | m_retxThresh {3} | 
| Fast Retransmit threshold.  More... | |
| TracedValue< Time > | m_rto {Seconds (0.0)} | 
| Retransmit timeout.  More... | |
| Ptr< RttEstimator > | m_rtt | 
| Round trip time estimator.  More... | |
| TracedValue< uint32_t > | m_rWnd {0} | 
| Receiver window (RCV.WND in RFC793)  More... | |
| TracedCallback< Ptr< const Packet >, const TcpHeader &, Ptr< const TcpSocketBase > > | m_rxTrace | 
| Trace of received packets.  More... | |
| bool | m_sackEnabled {true} | 
| RFC SACK option enabled.  More... | |
| EventId | m_sendPendingDataEvent {} | 
| micro-delay event to send pending data  More... | |
| bool | m_shutdownRecv {false} | 
| Receive no longer allowed.  More... | |
| bool | m_shutdownSend {false} | 
| Send no longer allowed.  More... | |
| uint8_t | m_sndWindShift {0} | 
| Window shift to apply to incoming segments.  More... | |
| TracedValue< TcpStates_t > | m_state {CLOSED} | 
| TCP state.  More... | |
| uint32_t | m_synCount {0} | 
| Count of remaining connection retries.  More... | |
| uint32_t | m_synRetries {0} | 
| Number of connection attempts.  More... | |
| Ptr< TcpSocketState > | m_tcb | 
| Congestion control information.  More... | |
| Ptr< TcpL4Protocol > | m_tcp | 
| the associated TCP L4 protocol  More... | |
| bool | m_timestampEnabled {true} | 
| Timestamp option enabled.  More... | |
| uint32_t | m_timestampToEcho {0} | 
| Timestamp to echo.  More... | |
| EventId | m_timewaitEvent {} | 
| TIME_WAIT expiration event: Move this socket to CLOSED state.  More... | |
| Ptr< TcpTxBuffer > | m_txBuffer | 
| Tx buffer.  More... | |
| TracedCallback< Ptr< const Packet >, const TcpHeader &, Ptr< const TcpSocketBase > > | m_txTrace | 
| Trace of transmitted packets.  More... | |
| bool | m_winScalingEnabled {true} | 
| Window Scale option enabled (RFC 7323)  More... | |
|  Protected Attributes inherited from ns3::Socket | |
| Ptr< NetDevice > | m_boundnetdevice | 
| the device this socket is bound to (might be null).  More... | |
| Ipv6Address | m_ipv6MulticastGroupAddress | 
| IPv6 multicast group address.  More... | |
| bool | m_recvPktInfo | 
| if the socket should add packet info tags to the packet forwarded to L4.  More... | |
|  Related Functions inherited from ns3::ObjectBase | |
| static TypeId | GetObjectIid (void) | 
| Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly.  More... | |
Socket that the 50% of the times saves the entire packet in the buffer, while in the other 50% saves only half the packet.
Definition at line 36 of file tcp-datasentcb-test.cc.
| 
 | inline | 
Definition at line 45 of file tcp-datasentcb-test.cc.
| 
 | protectedvirtual | 
Call CopyObject<> to clone me.
Reimplemented from ns3::TcpSocketMsgBase.
Definition at line 68 of file tcp-datasentcb-test.cc.
| 
 | static | 
Get the type ID.
Definition at line 57 of file tcp-datasentcb-test.cc.
References ns3::TypeId::SetParent().
Referenced by TcpDataSentCbTestCase::CreateReceiverSocket().
 Here is the call graph for this function:
 Here is the call graph for this function: Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | protectedvirtual | 
Recv of a data, put into buffer, call L7 to get it if necessary.
| packet | the packet | 
| tcpHeader | the packet's TCP header | 
Reimplemented from ns3::TcpSocketBase.
Definition at line 74 of file tcp-datasentcb-test.cc.
References ns3::Packet::Copy(), ns3::Packet::GetSize(), NS_LOG_FUNCTION, ns3::TcpSocketBase::ReceivedData(), and ns3::Packet::RemoveAtEnd().
 Here is the call graph for this function:
 Here is the call graph for this function: