TCPConnection.h File Reference

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

Classes

class  TCPStateVariables
class  TCPConnection

Defines

#define MAX_SYN_REXMIT_COUNT   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
}

Functions

Comparing sequence numbers


bool seqLess (uint32 a, uint32 b)
bool seqLE (uint32 a, uint32 b)
bool seqGreater (uint32 a, uint32 b)
bool seqGE (uint32 a, uint32 b)


Define Documentation

#define MAX_SYN_REXMIT_COUNT   12

#define TCP_TIMEOUT_2MSL   240

#define TCP_TIMEOUT_CONN_ESTAB   75

#define TCP_TIMEOUT_FIN_WAIT_2   600

#define TCP_TIMEOUT_SYN_REXMIT   3

#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 
00077 {
00078     TCP_E_IGNORE,
00079 
00080     // app commands
00081     // (note: no RECEIVE command, data are automatically passed up)
00082     TCP_E_OPEN_ACTIVE,
00083     TCP_E_OPEN_PASSIVE,
00084     TCP_E_SEND,
00085     TCP_E_CLOSE,
00086     TCP_E_ABORT,
00087     TCP_E_STATUS,
00088 
00089     // TPDU types
00090     TCP_E_RCV_DATA,
00091     TCP_E_RCV_ACK,
00092     TCP_E_RCV_SYN,
00093     TCP_E_RCV_SYN_ACK,
00094     TCP_E_RCV_FIN,
00095     TCP_E_RCV_FIN_ACK,
00096     TCP_E_RCV_RST,  // covers RST+ACK too
00097 
00098     TCP_E_RCV_UNEXP_SYN,  // unexpected SYN
00099 
00100     // timers
00101     TCP_E_TIMEOUT_2MSL,     // RFC 793, a.k.a. TIME-WAIT timer
00102     TCP_E_TIMEOUT_CONN_ESTAB,
00103     TCP_E_TIMEOUT_FIN_WAIT_2,
00104 
00105     // All other timers (REXMT, PERSIST, DELAYED-ACK, KEEP-ALIVE, etc.),
00106     // are handled in TCPAlgorithm.
00107 };

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 
00056 {
00057     TCP_S_INIT        = 0,
00058     TCP_S_CLOSED      = FSM_Steady(1),
00059     TCP_S_LISTEN      = FSM_Steady(2),
00060     TCP_S_SYN_SENT    = FSM_Steady(3),
00061     TCP_S_SYN_RCVD    = FSM_Steady(4),
00062     TCP_S_ESTABLISHED = FSM_Steady(5),
00063     TCP_S_CLOSE_WAIT  = FSM_Steady(6),
00064     TCP_S_LAST_ACK    = FSM_Steady(7),
00065     TCP_S_FIN_WAIT_1  = FSM_Steady(8),
00066     TCP_S_FIN_WAIT_2  = FSM_Steady(9),
00067     TCP_S_CLOSING     = FSM_Steady(10),
00068     TCP_S_TIME_WAIT   = FSM_Steady(11)
00069 };


Function Documentation

bool seqGE ( uint32  a,
uint32  b 
) [inline]

bool seqGreater ( uint32  a,
uint32  b 
) [inline]

bool seqLE ( uint32  a,
uint32  b 
) [inline]

bool seqLess ( uint32  a,
uint32  b 
) [inline]


Generated on Fri Mar 20 18:51:17 2009 for INET Framework for OMNeT++/OMNEST by  doxygen 1.5.5