src/internet-stack/tcp-socket-impl.h
changeset 6273 8d70de29d514
parent 5971 805783c866fc
equal deleted inserted replaced
6272:f52c6e3cae70 6273:8d70de29d514
    52  * interface for talking to TCP.  Features include connection orientation,
    52  * interface for talking to TCP.  Features include connection orientation,
    53  * reliability through cumulative acknowledgements, congestion and flow 
    53  * reliability through cumulative acknowledgements, congestion and flow 
    54  * control.  Finite send buffer semantics are modeled, but as of yet, finite
    54  * control.  Finite send buffer semantics are modeled, but as of yet, finite
    55  * receive buffer modelling is unimplemented.
    55  * receive buffer modelling is unimplemented.
    56  *
    56  *
    57  * The closedown of these sockets is as of yet not compliant with the relevent
    57  * The closedown of these sockets is as of yet not compliant with the relevant
    58  * RFCs, i.e. the FIN handshaking isn't correct.  While this is visible at the
    58  * RFCs, i.e. the FIN handshaking isn't correct.  While this is visible at the
    59  * PCAP tracing level, it has no effect on the statistics users are interested
    59  * PCAP tracing level, it has no effect on the statistics users are interested
    60  * in, i.e. throughput, delay, etc. of actual payload data.
    60  * in, i.e. throughput, delay, etc. of actual payload data.
    61  *
    61  *
    62  * Asynchronous callbacks to provide notifications to higher layers that a 
    62  * Asynchronous callbacks to provide notifications to higher layers that a 
   183   enum SocketErrno m_errno;
   183   enum SocketErrno m_errno;
   184   bool m_shutdownSend;
   184   bool m_shutdownSend;
   185   bool m_shutdownRecv;
   185   bool m_shutdownRecv;
   186   bool m_connected;
   186   bool m_connected;
   187   
   187   
   188   //manage the state infomation
   188   //manage the state information
   189   States_t m_state;
   189   States_t m_state;
   190   bool m_closeNotified;
   190   bool m_closeNotified;
   191   bool m_closeRequestNotified;
   191   bool m_closeRequestNotified;
   192   bool m_closeOnEmpty;
   192   bool m_closeOnEmpty;
   193   bool m_pendingClose;
   193   bool m_pendingClose;
   197   SequenceNumber m_nextTxSequence;
   197   SequenceNumber m_nextTxSequence;
   198   SequenceNumber m_highTxMark;
   198   SequenceNumber m_highTxMark;
   199   SequenceNumber m_highestRxAck;
   199   SequenceNumber m_highestRxAck;
   200   SequenceNumber m_lastRxAck;
   200   SequenceNumber m_lastRxAck;
   201   
   201   
   202   //sequence info, reciever side
   202   //sequence info, receiver side
   203   SequenceNumber m_nextRxSequence; //next expected sequence
   203   SequenceNumber m_nextRxSequence; //next expected sequence
   204 
   204 
   205   //Rx buffer
   205   //Rx buffer
   206   UnAckData_t m_bufferedData; //buffer which sorts out of sequence data
   206   UnAckData_t m_bufferedData; //buffer which sorts out of sequence data
   207   //Rx buffer state
   207   //Rx buffer state