Classes | Defines | Typedefs | Enumerations | Functions

SCTPAssociation.h File Reference

#include <omnetpp.h>
#include "IPvXAddress.h"
#include "IPAddress.h"
#include "SCTP.h"
#include "RoutingTable.h"
#include "RoutingTableAccess.h"
#include "InterfaceTable.h"
#include "InterfaceTableAccess.h"
#include "SCTPQueue.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>
#include "common.h"

Go to the source code of this file.

Classes

class  SCTPPathVariables
class  SCTPDataVariables
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 IP_HEADER_LENGTH   20
#define SCTP_DEFAULT_ARWND   (1<<16)
#define SCTP_DEFAULT_INBOUND_STREAMS   17
#define SCTP_DEFAULT_OUTBOUND_STREAMS   17
#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   500
#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_MSGS_LIMIT, SCTP_E_QUEUE_BYTES_LIMIT, SCTP_E_SEND_QUEUE_LIMIT, 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 (const double a, const double b)
double max (const double a, const double b)

Define Documentation

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

Definition at line 188 of file SCTPAssociation.h.

#define DEFAULT_MAX_RECVQUEUE   0

Definition at line 178 of file SCTPAssociation.h.

#define DEFAULT_MAX_SENDQUEUE   0

Definition at line 177 of file SCTPAssociation.h.

#define HB_INTERVAL   30

Definition at line 166 of file SCTPAssociation.h.

#define IP_HEADER_LENGTH   20
#define IPTOS_DEFAULT   0x10

Definition at line 175 of file SCTPAssociation.h.

#define MAX_ASSOCS   10

Definition at line 180 of file SCTPAssociation.h.

#define MAX_GAP_COUNT   500
#define MAX_GAP_REPORTS   4

Definition at line 185 of file SCTPAssociation.h.

#define PATH_MAX_RETRANS   5

Definition at line 167 of file SCTPAssociation.h.

#define RTO_ALPHA   0.125

Definition at line 173 of file SCTPAssociation.h.

#define RTO_BETA   0.25

Definition at line 172 of file SCTPAssociation.h.

#define RTO_INITIAL   3

Definition at line 174 of file SCTPAssociation.h.

#define SACK_DELAY   0.2

Definition at line 171 of file SCTPAssociation.h.

#define SCTP_ABORT_CHUNK_LENGTH   4

Definition at line 154 of file SCTPAssociation.h.

Referenced by SCTPAssociation::sendAbort(), and SCTP::sendAbortFromMain().

#define SCTP_COMMON_HEADER   12
#define SCTP_COOKIE_ACK_LENGTH   4
#define SCTP_COOKIE_LENGTH   76

Definition at line 165 of file SCTPAssociation.h.

Referenced by SCTPAssociation::sendInitAck().

#define SCTP_DATA_CHUNK_LENGTH   16
#define SCTP_DEFAULT_ARWND   (1<<16)

Definition at line 161 of file SCTPAssociation.h.

#define SCTP_DEFAULT_INBOUND_STREAMS   17

Definition at line 162 of file SCTPAssociation.h.

#define SCTP_DEFAULT_OUTBOUND_STREAMS   17

Definition at line 163 of file SCTPAssociation.h.

#define SCTP_ERROR_CHUNK_LENGTH   4

Definition at line 159 of file SCTPAssociation.h.

#define SCTP_FORWARD_TSN_CHUNK_LENGTH   8

Definition at line 156 of file SCTPAssociation.h.

#define SCTP_HEARTBEAT_CHUNK_LENGTH   4

Definition at line 153 of file SCTPAssociation.h.

Referenced by SCTPAssociation::sendHeartbeat().

#define SCTP_INIT_CHUNK_LENGTH   20

Definition at line 150 of file SCTPAssociation.h.

#define SCTP_MAX_PAYLOAD   1488

Definition at line 182 of file SCTPAssociation.h.

#define SCTP_SACK_CHUNK_LENGTH   16

Definition at line 152 of file SCTPAssociation.h.

Referenced by SCTPAssociation::createSack().

#define SCTP_SHUTDOWN_ACK_LENGTH   4
#define SCTP_SHUTDOWN_CHUNK_LENGTH   8

Definition at line 157 of file SCTPAssociation.h.

Referenced by SCTPAssociation::sendShutdown().

#define SCTP_TIMEOUT_INIT_REXMIT   3

Definition at line 169 of file SCTPAssociation.h.

#define SCTP_TIMEOUT_INIT_REXMIT_MAX   240
#define SHUTDOWN_GUARD_TIMEOUT   180
#define VALID_COOKIE_LIFE_TIME   10

Definition at line 164 of file SCTPAssociation.h.


Typedef Documentation

typedef std::vector<IPvXAddress> AddressVector

Definition at line 49 of file SCTPAssociation.h.


Enumeration Type Documentation

Enumerator:
RFC4960 

Definition at line 138 of file SCTPAssociation.h.

{
    RFC4960 = 0
};

Enumerator:
DATA 
INIT 
INIT_ACK 
SACK 
HEARTBEAT 
HEARTBEAT_ACK 
ABORT 
SHUTDOWN 
SHUTDOWN_ACK 
ERRORTYPE 
COOKIE_ECHO 
COOKIE_ACK 
SHUTDOWN_COMPLETE 

Definition at line 103 of file SCTPAssociation.h.

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

};

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_MSGS_LIMIT 
SCTP_E_QUEUE_BYTES_LIMIT 
SCTP_E_SEND_QUEUE_LIMIT 
SCTP_E_SEND_SHUTDOWN_ACK 
SCTP_E_STOP_SENDING 

Definition at line 70 of file SCTPAssociation.h.

{
    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_MSGS_LIMIT,
    SCTP_E_QUEUE_BYTES_LIMIT,
    SCTP_E_SEND_QUEUE_LIMIT,
    SCTP_E_SEND_SHUTDOWN_ACK,
    SCTP_E_STOP_SENDING
};

enum SCTPFlags
Enumerator:
COMPLETE_MESG_UNORDERED 
COMPLETE_MESG_ORDERED 

Definition at line 122 of file SCTPAssociation.h.

Enumerator:
UNRECOGNIZED_PARAMETER 
SUPPORTED_ADDRESS_TYPES 

Definition at line 129 of file SCTPAssociation.h.

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 

Definition at line 53 of file SCTPAssociation.h.

{
    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)
};

Enumerator:
ROUND_ROBIN 

Definition at line 143 of file SCTPAssociation.h.

{
    ROUND_ROBIN             = 0
};


Function Documentation

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