--- a/src/internet/model/tcp-socket.h Thu Nov 14 19:07:55 2013 +0100
+++ b/src/internet/model/tcp-socket.h Thu Nov 14 22:43:53 2013 +0100
@@ -35,7 +35,9 @@
class Node;
class Packet;
-/* Names of the 11 TCP states */
+/**
+ * \brief Names of the 11 TCP states
+ */
typedef enum {
CLOSED, // 0
LISTEN, // 1
@@ -62,37 +64,164 @@
class TcpSocket : public Socket
{
public:
+ /**
+ * Get the type ID.
+ * \brief Get the type ID.
+ * \return the object TypeId
+ */
static TypeId GetTypeId (void);
TcpSocket (void);
virtual ~TcpSocket (void);
- // Literal names of TCP states for use in log messages */
+ /**
+ * \brief Literal names of TCP states for use in log messages
+ */
static const char* const TcpStateName[LAST_STATE];
private:
// Indirect the attribute setting and getting through private virtual methods
+
+ /**
+ * \brief Set the send buffer size.
+ * \param size the buffer size (in bytes)
+ */
virtual void SetSndBufSize (uint32_t size) = 0;
+
+ /**
+ * \brief Get the send buffer size.
+ * \returns the buffer size (in bytes)
+ */
virtual uint32_t GetSndBufSize (void) const = 0;
+
+ /**
+ * \brief Set the receive buffer size.
+ * \param size the buffer size (in bytes)
+ */
virtual void SetRcvBufSize (uint32_t size) = 0;
+
+ /**
+ * \brief Get the receive buffer size.
+ * \returns the buffer size (in bytes)
+ */
virtual uint32_t GetRcvBufSize (void) const = 0;
+
+ /**
+ * \brief Set the segment size.
+ * \param size the segment size (in bytes)
+ */
virtual void SetSegSize (uint32_t size) = 0;
+
+ /**
+ * \brief Get the segment size.
+ * \returns the segment size (in bytes)
+ */
virtual uint32_t GetSegSize (void) const = 0;
+
+ /**
+ * \brief Set the Slow Start Threshold.
+ * \param threshold the Slow Start Threshold (in bytes)
+ */
virtual void SetSSThresh (uint32_t threshold) = 0;
+
+ /**
+ * \brief Get the Slow Start Threshold.
+ * \returns the Slow Start Threshold (in bytes)
+ */
virtual uint32_t GetSSThresh (void) const = 0;
- virtual void SetInitialCwnd (uint32_t count) = 0;
+
+ /**
+ * \brief Set the initial Congestion Window.
+ * \param cwnd the initial congestion window (in bytes)
+ */
+ virtual void SetInitialCwnd (uint32_t cwnd) = 0;
+
+ /**
+ * \brief Get the initial Congestion Window.
+ * \returns the initial congestion window (in bytes)
+ */
virtual uint32_t GetInitialCwnd (void) const = 0;
+
+ /**
+ * \brief Set the connection timeout.
+ * \param timeout the connection timeout
+ */
virtual void SetConnTimeout (Time timeout) = 0;
+
+ /**
+ * \brief Get the connection timeout.
+ * \returns the connection timeout
+ */
virtual Time GetConnTimeout (void) const = 0;
+
+ /**
+ * \brief Set the number of connection retries before giving up.
+ * \param count the number of connection retries
+ */
virtual void SetConnCount (uint32_t count) = 0;
+
+ /**
+ * \brief Get the number of connection retries before giving up.
+ * \returns the number of connection retries
+ */
virtual uint32_t GetConnCount (void) const = 0;
+
+ /**
+ * \brief Set the time to delay an ACK.
+ * \param timeout the time to delay an ACK
+ */
virtual void SetDelAckTimeout (Time timeout) = 0;
+
+ /**
+ * \brief Get the time to delay an ACK.
+ * \returns the time to delay an ACK
+ */
virtual Time GetDelAckTimeout (void) const = 0;
+
+ /**
+ * \brief Set the number of packet to fire an ACK before delay timeout.
+ * \param count the umber of packet to fire an ACK before delay timeout
+ */
virtual void SetDelAckMaxCount (uint32_t count) = 0;
+
+ /**
+ * \brief Get the number of packet to fire an ACK before delay timeout.
+ * \returns the number of packet to fire an ACK before delay timeout
+ */
virtual uint32_t GetDelAckMaxCount (void) const = 0;
+
+ /**
+ * \brief Enable/Disable Nagle's algorithm.
+ * \param noDelay true to DISABLE Nagle's algorithm
+ */
virtual void SetTcpNoDelay (bool noDelay) = 0;
+
+ /**
+ * \brief Check if Nagle's algorithm is enabled or not.
+ * \returns true if Nagle's algorithm is DISABLED
+ */
virtual bool GetTcpNoDelay (void) const = 0;
+
+ /**
+ * \brief Set the timout for persistent connection
+ *
+ * When the timout expires, send 1-byte data to probe for the window
+ * size at the receiver when the local knowledge tells that the
+ * receiver has zero window size
+ *
+ * \param timeout the persistent timout
+ */
virtual void SetPersistTimeout (Time timeout) = 0;
+
+ /**
+ * \brief Get the timout for persistent connection
+ *
+ * When the timout expires, send 1-byte data to probe for the window
+ * size at the receiver when the local knowledge tells that the
+ * receiver has zero window size
+ *
+ * \returns the persistent timout
+ */
virtual Time GetPersistTimeout (void) const = 0;
};