INET Framework for OMNeT++/OMNEST
SctpAssociation.h File Reference

Classes

class  inet::sctp::SctpPathVariables
 
class  inet::sctp::SctpDataVariables
 
class  inet::sctp::SctpStateVariables
 
struct  inet::sctp::SctpStateVariables::RequestData
 
class  inet::sctp::SctpAssociation
 
struct  inet::sctp::SctpAssociation::QueueCounter
 
struct  inet::sctp::SctpAssociation::BytesToBeSent
 
struct  inet::sctp::SctpAssociation::CCFunctions
 
struct  inet::sctp::SctpAssociation::SSFunctions
 

Namespaces

 inet
 Copyright (c) 2005 Jan Ringo�, www.ringos.cz.
 
 inet::sctp
 

Macros

#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_NRSACK_CHUNK_LENGTH   20
 
#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_STREAM_RESET_CHUNK_LENGTH   4
 
#define SCTP_OUTGOING_RESET_REQUEST_PARAMETER_LENGTH   16
 
#define SCTP_INCOMING_RESET_REQUEST_PARAMETER_LENGTH   8
 
#define SCTP_SSN_TSN_RESET_REQUEST_PARAMETER_LENGTH   8
 
#define SCTP_STREAM_RESET_RESPONSE_PARAMETER_LENGTH   12
 
#define SCTP_ADD_STREAMS_REQUEST_PARAMETER_LENGTH   12
 
#define SCTP_SUPPORTED_EXTENSIONS_PARAMETER_LENGTH   4
 
#define SCTP_ADD_IP_CHUNK_LENGTH   8
 
#define SCTP_ADD_IP_PARAMETER_LENGTH   8
 
#define SCTP_AUTH_CHUNK_LENGTH   8
 
#define SCTP_PKTDROP_CHUNK_LENGTH   16
 
#define SHA_LENGTH   20
 
#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_COMPRESSED_NRSACK_CHUNK_LENGTH   16
 
#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 /* unlimited send queue */
 
#define DEFAULT_MAX_RECVQUEUE   0 /* unlimited recv queue - unused really */
 
#define MAX_ASSOCS   10
 
#define SCTP_MAX_PAYLOAD   1488
 
#define ADD_PADDING(x)   ((((x) + 3) >> 2) << 2)
 
#define DEBUG   1
 
#define SHUTDOWN_GUARD_TIMEOUT   180
 
#define SCTP_TSN_GT(a, b)   SCTP_UINT32_GT(a, b)
 
#define SCTP_TSN_GE(a, b)   SCTP_UINT32_GE(a, b)
 
#define SCTP_SSN_GT(a, b)   SCTP_UINT16_GT(a, b)
 
#define SCTP_SSN_GE(a, b)   SCTP_UINT16_GE(a, b)
 

Typedefs

typedef std::vector< L3Address > inet::sctp::AddressVector
 

Enumerations

enum  inet::sctp::SctpState {
  inet::sctp::SCTP_S_CLOSED = 0, inet::sctp::SCTP_S_COOKIE_WAIT = FSM_Steady(1), inet::sctp::SCTP_S_COOKIE_ECHOED = FSM_Steady(2), inet::sctp::SCTP_S_ESTABLISHED = FSM_Steady(3),
  inet::sctp::SCTP_S_SHUTDOWN_PENDING = FSM_Steady(4), inet::sctp::SCTP_S_SHUTDOWN_SENT = FSM_Steady(5), inet::sctp::SCTP_S_SHUTDOWN_RECEIVED = FSM_Steady(6), inet::sctp::SCTP_S_SHUTDOWN_ACK_SENT = FSM_Steady(7)
}
 
enum  inet::sctp::SctpEventCode {
  inet::sctp::SCTP_E_ASSOCIATE, inet::sctp::SCTP_E_OPEN_PASSIVE, inet::sctp::SCTP_E_ABORT, inet::sctp::SCTP_E_SHUTDOWN,
  inet::sctp::SCTP_E_CLOSE, inet::sctp::SCTP_E_SEND, inet::sctp::SCTP_E_RCV_INIT, inet::sctp::SCTP_E_RCV_ABORT,
  inet::sctp::SCTP_E_RCV_VALID_COOKIE_ECHO, inet::sctp::SCTP_E_RCV_INIT_ACK, inet::sctp::SCTP_E_RCV_COOKIE_ACK, inet::sctp::SCTP_E_RCV_SHUTDOWN,
  inet::sctp::SCTP_E_RCV_SHUTDOWN_ACK, inet::sctp::SCTP_E_RCV_SHUTDOWN_COMPLETE, inet::sctp::SCTP_E_NO_MORE_OUTSTANDING, inet::sctp::SCTP_E_TIMEOUT_INIT_TIMER,
  inet::sctp::SCTP_E_TIMEOUT_SHUTDOWN_TIMER, inet::sctp::SCTP_E_TIMEOUT_RTX_TIMER, inet::sctp::SCTP_E_TIMEOUT_HEARTBEAT_TIMER, inet::sctp::SCTP_E_IGNORE,
  inet::sctp::SCTP_E_RECEIVE, inet::sctp::SCTP_E_DUP_RECEIVED, inet::sctp::SCTP_E_PRIMARY, inet::sctp::SCTP_E_DELIVERED,
  inet::sctp::SCTP_E_QUEUE_MSGS_LIMIT, inet::sctp::SCTP_E_QUEUE_BYTES_LIMIT, inet::sctp::SCTP_E_SEND_QUEUE_LIMIT, inet::sctp::SCTP_E_SEND_SHUTDOWN_ACK,
  inet::sctp::SCTP_E_STOP_SENDING, inet::sctp::SCTP_E_STREAM_RESET, inet::sctp::SCTP_E_RESET_ASSOC, inet::sctp::SCTP_E_ADD_STREAMS,
  inet::sctp::SCTP_E_SEND_ASCONF, inet::sctp::SCTP_E_SET_STREAM_PRIO, inet::sctp::SCTP_E_ACCEPT, inet::sctp::SCTP_E_SET_RTO_INFO,
  inet::sctp::SCTP_E_ACCEPT_SOCKET_ID
}
 
enum  inet::sctp::SCTPChunkTypes {
  inet::sctp::DATA = 0, inet::sctp::INIT = 1, inet::sctp::INIT_ACK = 2, inet::sctp::SACK = 3,
  inet::sctp::HEARTBEAT = 4, inet::sctp::HEARTBEAT_ACK = 5, inet::sctp::ABORT = 6, inet::sctp::SHUTDOWN = 7,
  inet::sctp::SHUTDOWN_ACK = 8, inet::sctp::ERRORTYPE = 9, inet::sctp::COOKIE_ECHO = 10, inet::sctp::COOKIE_ACK = 11,
  inet::sctp::SHUTDOWN_COMPLETE = 14, inet::sctp::AUTH = 15, inet::sctp::NR_SACK = 16, inet::sctp::ASCONF_ACK = 128,
  inet::sctp::PKTDROP = 129, inet::sctp::RE_CONFIG = 130, inet::sctp::FORWARD_TSN = 192, inet::sctp::ASCONF = 193,
  inet::sctp::IFORWARD_TSN = 194
}
 
enum  inet::sctp::SctpPrMethods {
  inet::sctp::PR_NONE = 0, inet::sctp::PR_TTL = 1, inet::sctp::PR_RTX = 2, inet::sctp::PR_PRIO = 3,
  inet::sctp::PR_STRRST = 4
}
 
enum  inet::sctp::SctpStreamResetConstants {
  inet::sctp::NOTHING_TO_DO = 0, inet::sctp::PERFORMED = 1, inet::sctp::DENIED = 2, inet::sctp::WRONG_SSN = 3,
  inet::sctp::REQUEST_IN_PROGRESS = 4, inet::sctp::NO_RESET = 5, inet::sctp::DEFERRED = 6, inet::sctp::RESET_OUTGOING = 7,
  inet::sctp::RESET_INCOMING = 8, inet::sctp::RESET_BOTH = 9, inet::sctp::SSN_TSN = 10, inet::sctp::ADD_INCOMING = 11,
  inet::sctp::ADD_OUTGOING = 12, inet::sctp::OUTGOING_RESET_REQUEST_PARAMETER = 13, inet::sctp::INCOMING_RESET_REQUEST_PARAMETER = 14, inet::sctp::SSN_TSN_RESET_REQUEST_PARAMETER = 15,
  inet::sctp::STREAM_RESET_RESPONSE_PARAMETER = 16, inet::sctp::ADD_OUTGOING_STREAMS_REQUEST_PARAMETER = 17, inet::sctp::ADD_INCOMING_STREAMS_REQUEST_PARAMETER = 18, inet::sctp::ADD_BOTH = 19,
  inet::sctp::PERFORMED_WITH_OPTION = 20, inet::sctp::PERFORMED_WITH_ADDOUT = 21
}
 
enum  inet::sctp::SctpAddIPCorrelatedTypes {
  inet::sctp::SET_PRIMARY_ADDRESS = 49156, inet::sctp::ADAPTATION_LAYER_INDICATION = 49158, inet::sctp::SUPPORTED_EXTENSIONS = 32776, inet::sctp::ADD_IP_ADDRESS = 49153,
  inet::sctp::DELETE_IP_ADDRESS = 49154, inet::sctp::ERROR_CAUSE_INDICATION = 49155, inet::sctp::SUCCESS_INDICATION = 49157, inet::sctp::ERROR_DELETE_LAST_IP_ADDRESS = 160,
  inet::sctp::ERROR_DELETE_SOURCE_ADDRESS = 162
}
 
enum  inet::sctp::SctpParameterTypes {
  inet::sctp::UNRECOGNIZED_PARAMETER = 8, inet::sctp::SUPPORTED_ADDRESS_TYPES = 12, inet::sctp::FORWARD_TSN_SUPPORTED_PARAMETER = 49152, inet::sctp::RANDOM = 32770,
  inet::sctp::CHUNKS = 32771, inet::sctp::HMAC_ALGO = 32772
}
 
enum  inet::sctp::SctpErrorCauses { inet::sctp::INVALID_STREAM_IDENTIFIER = 1, inet::sctp::NO_USER_DATA = 9, inet::sctp::UNSUPPORTED_HMAC = 261, inet::sctp::MISSING_NAT_ENTRY = 177 }
 
enum  inet::sctp::SctpCcModules { inet::sctp::RFC4960 = 0 }
 
enum  inet::sctp::SctpStreamSchedulers {
  inet::sctp::ROUND_ROBIN = 0, inet::sctp::ROUND_ROBIN_PACKET = 1, inet::sctp::RANDOM_SCHEDULE = 2, inet::sctp::RANDOM_SCHEDULE_PACKET = 3,
  inet::sctp::FAIR_BANDWITH = 4, inet::sctp::FAIR_BANDWITH_PACKET = 5, inet::sctp::PRIORITY = 6, inet::sctp::FCFS = 7,
  inet::sctp::PATH_MANUAL = 8, inet::sctp::PATH_MAP_TO_PATH = 9
}
 

Functions

double inet::sctp::min (const double a, const double b)
 Returns the minimum of a and b. More...
 
double inet::sctp::max (const double a, const double b)
 Returns the maximum of a and b. More...
 

Macro Definition Documentation

◆ ADD_PADDING

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

◆ DEBUG

#define DEBUG   1

◆ DEFAULT_MAX_RECVQUEUE

#define DEFAULT_MAX_RECVQUEUE   0 /* unlimited recv queue - unused really */

◆ DEFAULT_MAX_SENDQUEUE

#define DEFAULT_MAX_SENDQUEUE   0 /* unlimited send queue */

◆ HB_INTERVAL

#define HB_INTERVAL   30

◆ IP_HEADER_LENGTH

#define IP_HEADER_LENGTH   20

◆ IPTOS_DEFAULT

#define IPTOS_DEFAULT   0x10

◆ MAX_ASSOCS

#define MAX_ASSOCS   10

◆ PATH_MAX_RETRANS

#define PATH_MAX_RETRANS   5

◆ RTO_ALPHA

#define RTO_ALPHA   0.125

◆ RTO_BETA

#define RTO_BETA   0.25

◆ RTO_INITIAL

#define RTO_INITIAL   3

◆ SACK_DELAY

#define SACK_DELAY   0.2

◆ SCTP_ABORT_CHUNK_LENGTH

#define SCTP_ABORT_CHUNK_LENGTH   4

◆ SCTP_ADD_IP_CHUNK_LENGTH

#define SCTP_ADD_IP_CHUNK_LENGTH   8

◆ SCTP_ADD_IP_PARAMETER_LENGTH

#define SCTP_ADD_IP_PARAMETER_LENGTH   8

◆ SCTP_ADD_STREAMS_REQUEST_PARAMETER_LENGTH

#define SCTP_ADD_STREAMS_REQUEST_PARAMETER_LENGTH   12

◆ SCTP_AUTH_CHUNK_LENGTH

#define SCTP_AUTH_CHUNK_LENGTH   8

◆ SCTP_COMMON_HEADER

#define SCTP_COMMON_HEADER   12

◆ SCTP_COMPRESSED_NRSACK_CHUNK_LENGTH

#define SCTP_COMPRESSED_NRSACK_CHUNK_LENGTH   16

◆ SCTP_COOKIE_ACK_LENGTH

#define SCTP_COOKIE_ACK_LENGTH   4

◆ SCTP_COOKIE_LENGTH

#define SCTP_COOKIE_LENGTH   76

◆ SCTP_DATA_CHUNK_LENGTH

#define SCTP_DATA_CHUNK_LENGTH   16

◆ SCTP_DEFAULT_ARWND

#define SCTP_DEFAULT_ARWND   (1 << 16)

◆ SCTP_DEFAULT_INBOUND_STREAMS

#define SCTP_DEFAULT_INBOUND_STREAMS   17

◆ SCTP_DEFAULT_OUTBOUND_STREAMS

#define SCTP_DEFAULT_OUTBOUND_STREAMS   17

◆ SCTP_ERROR_CHUNK_LENGTH

#define SCTP_ERROR_CHUNK_LENGTH   4

◆ SCTP_FORWARD_TSN_CHUNK_LENGTH

#define SCTP_FORWARD_TSN_CHUNK_LENGTH   8

◆ SCTP_HEARTBEAT_CHUNK_LENGTH

#define SCTP_HEARTBEAT_CHUNK_LENGTH   4

◆ SCTP_INCOMING_RESET_REQUEST_PARAMETER_LENGTH

#define SCTP_INCOMING_RESET_REQUEST_PARAMETER_LENGTH   8

◆ SCTP_INIT_CHUNK_LENGTH

#define SCTP_INIT_CHUNK_LENGTH   20

◆ SCTP_MAX_PAYLOAD

#define SCTP_MAX_PAYLOAD   1488

◆ SCTP_NRSACK_CHUNK_LENGTH

#define SCTP_NRSACK_CHUNK_LENGTH   20

◆ SCTP_OUTGOING_RESET_REQUEST_PARAMETER_LENGTH

#define SCTP_OUTGOING_RESET_REQUEST_PARAMETER_LENGTH   16

◆ SCTP_PKTDROP_CHUNK_LENGTH

#define SCTP_PKTDROP_CHUNK_LENGTH   16

◆ SCTP_SACK_CHUNK_LENGTH

#define SCTP_SACK_CHUNK_LENGTH   16

◆ SCTP_SHUTDOWN_ACK_LENGTH

#define SCTP_SHUTDOWN_ACK_LENGTH   4

◆ SCTP_SHUTDOWN_CHUNK_LENGTH

#define SCTP_SHUTDOWN_CHUNK_LENGTH   8

◆ SCTP_SSN_GE

#define SCTP_SSN_GE (   a,
 
)    SCTP_UINT16_GE(a, b)

◆ SCTP_SSN_GT

#define SCTP_SSN_GT (   a,
 
)    SCTP_UINT16_GT(a, b)

◆ SCTP_SSN_TSN_RESET_REQUEST_PARAMETER_LENGTH

#define SCTP_SSN_TSN_RESET_REQUEST_PARAMETER_LENGTH   8

◆ SCTP_STREAM_RESET_CHUNK_LENGTH

#define SCTP_STREAM_RESET_CHUNK_LENGTH   4

◆ SCTP_STREAM_RESET_RESPONSE_PARAMETER_LENGTH

#define SCTP_STREAM_RESET_RESPONSE_PARAMETER_LENGTH   12

◆ SCTP_SUPPORTED_EXTENSIONS_PARAMETER_LENGTH

#define SCTP_SUPPORTED_EXTENSIONS_PARAMETER_LENGTH   4

◆ SCTP_TIMEOUT_INIT_REXMIT

#define SCTP_TIMEOUT_INIT_REXMIT   3

◆ SCTP_TIMEOUT_INIT_REXMIT_MAX

#define SCTP_TIMEOUT_INIT_REXMIT_MAX   240

◆ SCTP_TSN_GE

#define SCTP_TSN_GE (   a,
 
)    SCTP_UINT32_GE(a, b)

◆ SCTP_TSN_GT

#define SCTP_TSN_GT (   a,
 
)    SCTP_UINT32_GT(a, b)

◆ SHA_LENGTH

#define SHA_LENGTH   20

◆ SHUTDOWN_GUARD_TIMEOUT

#define SHUTDOWN_GUARD_TIMEOUT   180

◆ VALID_COOKIE_LIFE_TIME

#define VALID_COOKIE_LIFE_TIME   10