Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TCPConnection.h File Reference

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

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

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)

Defines

#define MAX_SYN_REXMIT_COUNT   12

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 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

enum TCPEventCode
 

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

enum TcpState
 

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


Function Documentation

bool seqGE uint32  a,
uint32  b
[inline]
 

00127 {return a-b<(1UL<<31);}

bool seqGreater uint32  a,
uint32  b
[inline]
 

00126 {return a!=b && a-b<(1UL<<31);}

bool seqLE uint32  a,
uint32  b
[inline]
 

00125 {return b-a<(1UL<<31);}

bool seqLess uint32  a,
uint32  b
[inline]
 

00124 {return a!=b && b-a<(1UL<<31);}


Generated on Thu Oct 19 18:22:20 2006 for INET Framework for OMNeT++/OMNEST by  doxygen 1.4.0