SCTPAssociation.h File Reference

#include <omnetpp.h>
#include "INETDefs.h"
#include "IPvXAddress.h"
#include "IPAddress.h"
#include "SCTP.h"
#include "RoutingTable.h"
#include "RoutingTableAccess.h"
#include "InterfaceTable.h"
#include "InterfaceTableAccess.h"
#include "SCTPSendStream.h"
#include "SCTPReceiveStream.h"
#include "SCTPMessage.h"
#include "IPControlInfo.h"
#include <list>
#include <iostream>
#include <errno.h>
#include <math.h>
#include <platdep/intxtypes.h>

Classes

class  SCTPDataVariables
class  SCTPPathVariables
class  SCTPStateVariables
class  SCTPAssociation
struct  SCTPAssociation::counter
struct  SCTPAssociation::calcBytesToSend
struct  SCTPAssociation::congestionControlFunctions
struct  SCTPAssociation::streamSchedulingFunctions

Defines

#define SCTP_COMMON_HEADER   12
#define SCTP_INIT_CHUNK_LENGTH   20
#define SCTP_DATA_CHUNK_LENGTH   16
#define SCTP_SACK_CHUNK_LENGTH   16
#define SCTP_HEARTBEAT_CHUNK_LENGTH   4
#define SCTP_ABORT_CHUNK_LENGTH   4
#define SCTP_COOKIE_ACK_LENGTH   4
#define SCTP_FORWARD_TSN_CHUNK_LENGTH   8
#define SCTP_SHUTDOWN_CHUNK_LENGTH   8
#define SCTP_SHUTDOWN_ACK_LENGTH   4
#define SCTP_ERROR_CHUNK_LENGTH   4
#define SCTP_DEFAULT_ARWND   (1<<16)
#define SCTP_DEFAULT_INBOUND_STREAMS   10
#define SCTP_DEFAULT_OUTBOUND_STREAMS   5
#define VALID_COOKIE_LIFE_TIME   10
#define SCTP_COOKIE_LENGTH   76
#define HB_INTERVAL   30
#define PATH_MAX_RETRANS   5
#define SCTP_TIMEOUT_INIT_REXMIT   3
#define SCTP_TIMEOUT_INIT_REXMIT_MAX   240
#define SACK_DELAY   0.2
#define RTO_BETA   0.25
#define RTO_ALPHA   0.125
#define RTO_INITIAL   3
#define IPTOS_DEFAULT   0x10
#define DEFAULT_MAX_SENDQUEUE   0
#define DEFAULT_MAX_RECVQUEUE   0
#define MAX_ASSOCS   10
#define SCTP_MAX_PAYLOAD   1488
#define MAX_GAP_COUNT   360
#define MAX_GAP_REPORTS   4
#define ADD_PADDING(x)   ((((x) + 3) >> 2) << 2)
#define DEBUG   1
#define SHUTDOWN_GUARD_TIMEOUT   180

Typedefs

typedef std::vector< IPvXAddressAddressVector

Enumerations

enum  SctpState {
  SCTP_S_CLOSED = 0, SCTP_S_COOKIE_WAIT = FSM_Steady(1), SCTP_S_COOKIE_ECHOED = FSM_Steady(2), SCTP_S_ESTABLISHED = FSM_Steady(3),
  SCTP_S_SHUTDOWN_PENDING = FSM_Steady(4), SCTP_S_SHUTDOWN_SENT = FSM_Steady(5), SCTP_S_SHUTDOWN_RECEIVED = FSM_Steady(6), SCTP_S_SHUTDOWN_ACK_SENT = FSM_Steady(7)
}
enum  SCTPEventCode {
  SCTP_E_ASSOCIATE, SCTP_E_OPEN_PASSIVE, SCTP_E_ABORT, SCTP_E_SHUTDOWN,
  SCTP_E_CLOSE, SCTP_E_SEND, SCTP_E_RCV_INIT, SCTP_E_RCV_ABORT,
  SCTP_E_RCV_VALID_COOKIE_ECHO, SCTP_E_RCV_INIT_ACK, SCTP_E_RCV_COOKIE_ACK, SCTP_E_RCV_SHUTDOWN,
  SCTP_E_RCV_SHUTDOWN_ACK, SCTP_E_RCV_SHUTDOWN_COMPLETE, SCTP_E_NO_MORE_OUTSTANDING, SCTP_E_TIMEOUT_INIT_TIMER,
  SCTP_E_TIMEOUT_SHUTDOWN_TIMER, SCTP_E_TIMEOUT_RTX_TIMER, SCTP_E_TIMEOUT_HEARTBEAT_TIMER, SCTP_E_IGNORE,
  SCTP_E_RECEIVE, SCTP_E_DUP_RECEIVED, SCTP_E_PRIMARY, SCTP_E_DELIVERED,
  SCTP_E_QUEUE, SCTP_E_SEND_SHUTDOWN_ACK, SCTP_E_STOP_SENDING
}
enum  SCTPChunkTypes {
  DATA = 0, INIT = 1, INIT_ACK = 2, SACK = 3,
  HEARTBEAT = 4, HEARTBEAT_ACK = 5, ABORT = 6, SHUTDOWN = 7,
  SHUTDOWN_ACK = 8, ERRORTYPE = 9, COOKIE_ECHO = 10, COOKIE_ACK = 11,
  SHUTDOWN_COMPLETE = 14
}
enum  SCTPFlags { COMPLETE_MESG_UNORDERED = 1, COMPLETE_MESG_ORDERED = 0 }
enum  SCTPParameterTypes { UNRECOGNIZED_PARAMETER = 8, SUPPORTED_ADDRESS_TYPES = 12 }
enum  SCTPCCModules { RFC4960 = 0 }
enum  SCTPStreamSchedulers { ROUND_ROBIN = 0 }

Functions

double min (double a, double b)
double max (double a, double b)


Define Documentation

#define ADD_PADDING (  )     ((((x) + 3) >> 2) << 2)

#define DEBUG   1

#define DEFAULT_MAX_RECVQUEUE   0

#define DEFAULT_MAX_SENDQUEUE   0

#define HB_INTERVAL   30

#define IPTOS_DEFAULT   0x10

#define MAX_ASSOCS   10

#define MAX_GAP_COUNT   360

#define MAX_GAP_REPORTS   4

#define PATH_MAX_RETRANS   5

#define RTO_ALPHA   0.125

#define RTO_BETA   0.25

#define RTO_INITIAL   3

#define SACK_DELAY   0.2

#define SCTP_ABORT_CHUNK_LENGTH   4

#define SCTP_COMMON_HEADER   12

#define SCTP_COOKIE_ACK_LENGTH   4

#define SCTP_COOKIE_LENGTH   76

#define SCTP_DATA_CHUNK_LENGTH   16

#define SCTP_DEFAULT_ARWND   (1<<16)

#define SCTP_DEFAULT_INBOUND_STREAMS   10

#define SCTP_DEFAULT_OUTBOUND_STREAMS   5

#define SCTP_ERROR_CHUNK_LENGTH   4

#define SCTP_FORWARD_TSN_CHUNK_LENGTH   8

#define SCTP_HEARTBEAT_CHUNK_LENGTH   4

#define SCTP_INIT_CHUNK_LENGTH   20

#define SCTP_MAX_PAYLOAD   1488

#define SCTP_SACK_CHUNK_LENGTH   16

#define SCTP_SHUTDOWN_ACK_LENGTH   4

#define SCTP_SHUTDOWN_CHUNK_LENGTH   8

#define SCTP_TIMEOUT_INIT_REXMIT   3

#define SCTP_TIMEOUT_INIT_REXMIT_MAX   240

#define SHUTDOWN_GUARD_TIMEOUT   180

#define VALID_COOKIE_LIFE_TIME   10


Typedef Documentation

typedef std::vector<IPvXAddress> AddressVector


Enumeration Type Documentation

Enumerator:
RFC4960 
00135 {
00136         RFC4960                                 = 0
00137 };

Enumerator:
DATA 
INIT 
INIT_ACK 
SACK 
HEARTBEAT 
HEARTBEAT_ACK 
ABORT 
SHUTDOWN 
SHUTDOWN_ACK 
ERRORTYPE 
COOKIE_ECHO 
COOKIE_ACK 
SHUTDOWN_COMPLETE 
00100 {
00101         DATA                    = 0, 
00102         INIT                    = 1, 
00103         INIT_ACK                = 2, 
00104         SACK                    = 3,
00105         HEARTBEAT               = 4, 
00106         HEARTBEAT_ACK           = 5, 
00107         ABORT                   = 6, 
00108         SHUTDOWN                = 7, 
00109         SHUTDOWN_ACK            = 8, 
00110         ERRORTYPE               = 9, 
00111         COOKIE_ECHO             = 10, 
00112         COOKIE_ACK              = 11, 
00113         SHUTDOWN_COMPLETE       = 14,
00114 
00115 };

Enumerator:
SCTP_E_ASSOCIATE 
SCTP_E_OPEN_PASSIVE 
SCTP_E_ABORT 
SCTP_E_SHUTDOWN 
SCTP_E_CLOSE 
SCTP_E_SEND 
SCTP_E_RCV_INIT 
SCTP_E_RCV_ABORT 
SCTP_E_RCV_VALID_COOKIE_ECHO 
SCTP_E_RCV_INIT_ACK 
SCTP_E_RCV_COOKIE_ACK 
SCTP_E_RCV_SHUTDOWN 
SCTP_E_RCV_SHUTDOWN_ACK 
SCTP_E_RCV_SHUTDOWN_COMPLETE 
SCTP_E_NO_MORE_OUTSTANDING 
SCTP_E_TIMEOUT_INIT_TIMER 
SCTP_E_TIMEOUT_SHUTDOWN_TIMER 
SCTP_E_TIMEOUT_RTX_TIMER 
SCTP_E_TIMEOUT_HEARTBEAT_TIMER 
SCTP_E_IGNORE 
SCTP_E_RECEIVE 
SCTP_E_DUP_RECEIVED 
SCTP_E_PRIMARY 
SCTP_E_DELIVERED 
SCTP_E_QUEUE 
SCTP_E_SEND_SHUTDOWN_ACK 
SCTP_E_STOP_SENDING 

enum SCTPFlags

Enumerator:
COMPLETE_MESG_UNORDERED 
COMPLETE_MESG_ORDERED 
00119 {
00120         COMPLETE_MESG_UNORDERED = 1,
00121         COMPLETE_MESG_ORDERED   = 0
00122 };

Enumerator:
UNRECOGNIZED_PARAMETER 
SUPPORTED_ADDRESS_TYPES 
00126 {
00127         UNRECOGNIZED_PARAMETER                  = 8,
00128         SUPPORTED_ADDRESS_TYPES                 = 12,
00129 };

enum SctpState

Enumerator:
SCTP_S_CLOSED 
SCTP_S_COOKIE_WAIT 
SCTP_S_COOKIE_ECHOED 
SCTP_S_ESTABLISHED 
SCTP_S_SHUTDOWN_PENDING 
SCTP_S_SHUTDOWN_SENT 
SCTP_S_SHUTDOWN_RECEIVED 
SCTP_S_SHUTDOWN_ACK_SENT 
00052 {
00053         SCTP_S_CLOSED            = 0,
00054         SCTP_S_COOKIE_WAIT       = FSM_Steady(1),
00055         SCTP_S_COOKIE_ECHOED     = FSM_Steady(2),
00056         SCTP_S_ESTABLISHED       = FSM_Steady(3),    
00057         SCTP_S_SHUTDOWN_PENDING  = FSM_Steady(4),
00058         SCTP_S_SHUTDOWN_SENT     = FSM_Steady(5),
00059         SCTP_S_SHUTDOWN_RECEIVED = FSM_Steady(6),
00060         SCTP_S_SHUTDOWN_ACK_SENT = FSM_Steady(7)
00061 };

Enumerator:
ROUND_ROBIN 
00140 {
00141         ROUND_ROBIN                             = 0
00142 };


Function Documentation

double max ( double  a,
double  b 
) [inline]

double min ( double  a,
double  b 
) [inline]


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