Classes | Defines | Enumerations

TCPConnection.h File Reference

#include <omnetpp.h>
#include "INETDefs.h"
#include "IPvXAddress.h"
#include "TCP.h"
#include "TCPSegment.h"

Go to the source code of this file.

Classes

class  TCPStateVariables
class  TCPConnection

Defines

#define MAX_SYN_REXMIT_COUNT   12
#define MAX_SACK_BLOCKS   60
#define DUPTHRESH   3
#define TCP_MAX_WIN   65535
#define PAWS_IDLE_TIME_THRESH   24*24*3600
#define TCP_OPTION_TS_SIZE   12
Timeout values

#define TCP_TIMEOUT_CONN_ESTAB   75
#define TCP_TIMEOUT_FIN_WAIT_2   600
#define TCP_TIMEOUT_2MSL   240
#define TCP_TIMEOUT_SYN_REXMIT   3
#define TCP_TIMEOUT_SYN_REXMIT_MAX   240

Enumerations

enum  TcpState {
  TCP_S_INIT = 0, TCP_S_CLOSED = FSM_Steady(1), TCP_S_LISTEN = FSM_Steady(2), TCP_S_SYN_SENT = FSM_Steady(3),
  TCP_S_SYN_RCVD = FSM_Steady(4), TCP_S_ESTABLISHED = FSM_Steady(5), TCP_S_CLOSE_WAIT = FSM_Steady(6), TCP_S_LAST_ACK = FSM_Steady(7),
  TCP_S_FIN_WAIT_1 = FSM_Steady(8), TCP_S_FIN_WAIT_2 = FSM_Steady(9), TCP_S_CLOSING = FSM_Steady(10), TCP_S_TIME_WAIT = FSM_Steady(11)
}
enum  TCPEventCode {
  TCP_E_IGNORE, TCP_E_OPEN_ACTIVE, TCP_E_OPEN_PASSIVE, TCP_E_SEND,
  TCP_E_CLOSE, TCP_E_ABORT, TCP_E_STATUS, TCP_E_RCV_DATA,
  TCP_E_RCV_ACK, TCP_E_RCV_SYN, TCP_E_RCV_SYN_ACK, TCP_E_RCV_FIN,
  TCP_E_RCV_FIN_ACK, TCP_E_RCV_RST, TCP_E_RCV_UNEXP_SYN, TCP_E_TIMEOUT_2MSL,
  TCP_E_TIMEOUT_CONN_ESTAB, TCP_E_TIMEOUT_FIN_WAIT_2
}

Define Documentation

#define DUPTHRESH   3
#define MAX_SACK_BLOCKS   60

Definition at line 123 of file TCPConnection.h.

#define MAX_SYN_REXMIT_COUNT   12
#define PAWS_IDLE_TIME_THRESH   24*24*3600
#define TCP_MAX_WIN   65535
#define TCP_OPTION_TS_SIZE   12

Definition at line 130 of file TCPConnection.h.

#define TCP_TIMEOUT_2MSL   240
#define TCP_TIMEOUT_CONN_ESTAB   75
#define TCP_TIMEOUT_FIN_WAIT_2   600

Definition at line 115 of file TCPConnection.h.

#define TCP_TIMEOUT_SYN_REXMIT   3

Definition at line 117 of file TCPConnection.h.

#define TCP_TIMEOUT_SYN_REXMIT_MAX   240

Enumeration Type Documentation

Enumerator:
TCP_E_IGNORE 
TCP_E_OPEN_ACTIVE 
TCP_E_OPEN_PASSIVE 
TCP_E_SEND 
TCP_E_CLOSE 
TCP_E_ABORT 
TCP_E_STATUS 
TCP_E_RCV_DATA 
TCP_E_RCV_ACK 
TCP_E_RCV_SYN 
TCP_E_RCV_SYN_ACK 
TCP_E_RCV_FIN 
TCP_E_RCV_FIN_ACK 
TCP_E_RCV_RST 
TCP_E_RCV_UNEXP_SYN 
TCP_E_TIMEOUT_2MSL 
TCP_E_TIMEOUT_CONN_ESTAB 
TCP_E_TIMEOUT_FIN_WAIT_2 

Definition at line 78 of file TCPConnection.h.

{
    TCP_E_IGNORE,

    // app commands
    // (Note: no RECEIVE command, data are automatically passed up)
    TCP_E_OPEN_ACTIVE,
    TCP_E_OPEN_PASSIVE,
    TCP_E_SEND,
    TCP_E_CLOSE,
    TCP_E_ABORT,
    TCP_E_STATUS,

    // TPDU types
    TCP_E_RCV_DATA,
    TCP_E_RCV_ACK,
    TCP_E_RCV_SYN,
    TCP_E_RCV_SYN_ACK,
    TCP_E_RCV_FIN,
    TCP_E_RCV_FIN_ACK,
    TCP_E_RCV_RST, // covers RST+ACK too

    TCP_E_RCV_UNEXP_SYN, // unexpected SYN

    // timers
    TCP_E_TIMEOUT_2MSL,     // RFC 793, a.k.a. TIME-WAIT timer
    TCP_E_TIMEOUT_CONN_ESTAB,
    TCP_E_TIMEOUT_FIN_WAIT_2,

    // All other timers (REXMT, PERSIST, DELAYED-ACK, KEEP-ALIVE, etc.),
    // are handled in TCPAlgorithm.
};

enum TcpState
Enumerator:
TCP_S_INIT 
TCP_S_CLOSED 
TCP_S_LISTEN 
TCP_S_SYN_SENT 
TCP_S_SYN_RCVD 
TCP_S_ESTABLISHED 
TCP_S_CLOSE_WAIT 
TCP_S_LAST_ACK 
TCP_S_FIN_WAIT_1 
TCP_S_FIN_WAIT_2 
TCP_S_CLOSING 
TCP_S_TIME_WAIT 

Definition at line 57 of file TCPConnection.h.

{
    TCP_S_INIT        = 0,
    TCP_S_CLOSED      = FSM_Steady(1),
    TCP_S_LISTEN      = FSM_Steady(2),
    TCP_S_SYN_SENT    = FSM_Steady(3),
    TCP_S_SYN_RCVD    = FSM_Steady(4),
    TCP_S_ESTABLISHED = FSM_Steady(5),
    TCP_S_CLOSE_WAIT  = FSM_Steady(6),
    TCP_S_LAST_ACK    = FSM_Steady(7),
    TCP_S_FIN_WAIT_1  = FSM_Steady(8),
    TCP_S_FIN_WAIT_2  = FSM_Steady(9),
    TCP_S_CLOSING     = FSM_Steady(10),
    TCP_S_TIME_WAIT   = FSM_Steady(11)
};