sctp.h File Reference

#include "agent.h"
#include "node.h"
#include "packet.h"

Include dependency graph for sctp.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  AppData_S
class  CwndDegradeTimer
struct  hdr_sctp
class  HeartbeatGenTimer
class  HeartbeatTimeoutTimer
struct  List_S
struct  Node_S
class  RouteCacheFlushTimer
class  RouteCalcDelayTimer
class  SackGenTimer
class  SctpAgent
struct  SctpChunkHdr_S
struct  SctpCookieEchoChunk_S
struct  SctpDataChunkHdr_S
struct  SctpDest_S
struct  SctpDupTsn_S
struct  SctpForwardTsnChunk_S
struct  SctpGapAckBlock_S
struct  SctpHeartbeatChunk_S
struct  SctpInitChunk_S
struct  SctpInStream_S
struct  SctpInterface_S
struct  SctpOutStream_S
struct  SctpRecvTsnBlock_S
struct  SctpSackChunk_S
struct  SctpSendBufferNode_S
struct  SctpStreamBufferNode_S
struct  SctpTrace_S
struct  SctpUnrelStreamPair_S
struct  SctpUnrelStreamsParam_S
class  T1CookieTimer
class  T1InitTimer
class  T3RtxTimer

Defines

#define DELAYED_SACK_TRIGGER   2
#define MAX_BURST   4
#define MAX_DATA_CHUNK_SIZE   0xffffffff
#define MAX_NUM_STREAMS   0x0000ffff
#define MAX_RWND_SIZE   0xffffffff
#define MIN_DATA_CHUNK_SIZE   16
#define RTO_ALPHA   0.125
#define RTO_BETA   0.25
#define SCTP_CHUNK_FORWARD_TSN_LENGTH   8
#define SCTP_CHUNK_HEARTBEAT_LENGTH   24
#define SCTP_DATA_FLAG_BEGINNING   0x02
#define SCTP_DATA_FLAG_END   0x01
#define SCTP_DATA_FLAG_UNORDERED   0x04
#define SCTP_HDR_SIZE   12
#define SCTP_INIT_PARAM_UNREL   0xC000

Typedefs

typedef SctpCookieEchoChunk_S SctpCookieAckChunk_S
typedef SctpHeartbeatChunk_S SctpHeartbeatAckChunk_S
typedef SctpInitChunk_S SctpInitAckChunk_S

Enumerations

enum  Boolean_E { FALSE, TRUE }
enum  DataSource_E { DATA_SOURCE_APPLICATION, DATA_SOURCE_INFINITE }
enum  DormantAction_E { DORMANT_HOP, DORMANT_PRIMARY, DORMANT_LASTDEST }
enum  MarkedForRtx_E { NO_RTX, FAST_RTX, TIMEOUT_RTX }
enum  MaxBurstUsage_E { MAX_BURST_USAGE_OFF, MAX_BURST_USAGE_ON }
enum  NodeType_E {
  NODE_TYPE_STREAM_BUFFER, NODE_TYPE_RECV_TSN_BLOCK, NODE_TYPE_DUP_TSN, NODE_TYPE_SEND_BUFFER,
  NODE_TYPE_APP_LAYER_BUFFER, NODE_TYPE_INTERFACE_LIST, NODE_TYPE_DESTINATION_LIST, NODE_TYPE_PACKET_BUFFER
}
enum  RtxToAlt_E { RTX_TO_ALT_OFF, RTX_TO_ALT_ON, RTX_TO_ALT_TIMEOUTS_ONLY }
enum  SctpChunkType_E {
  SCTP_CHUNK_DATA, SCTP_CHUNK_INIT, SCTP_CHUNK_INIT_ACK, SCTP_CHUNK_SACK,
  SCTP_CHUNK_HB, SCTP_CHUNK_HB_ACK, SCTP_CHUNK_ABORT, SCTP_CHUNK_SHUTDOWN,
  SCTP_CHUNK_SHUTDOWN_ACK, SCTP_CHUNK_ERROR, SCTP_CHUNK_COOKIE_ECHO, SCTP_CHUNK_COOKIE_ACK,
  SCTP_CHUNK_ECNE, SCTP_CHUNK_CWR, SCTP_CHUNK_SHUTDOWN_COMPLETE, SCTP_CHUNK_FORWARD_TSN,
  SCTP_CHUNK_TIMESTAMP
}
enum  SctpDestStatus_E { SCTP_DEST_STATUS_INACTIVE, SCTP_DEST_STATUS_ACTIVE }
enum  SctpRtxLimit_E { RTX_LIMIT_ONE_PACKET, RTX_LIMIT_CWND }
enum  SctpState_E {
  SCTP_STATE_UNINITIALIZED, SCTP_STATE_CLOSED, SCTP_STATE_ESTABLISHED, SCTP_STATE_COOKIE_WAIT,
  SCTP_STATE_COOKIE_ECHOED, SCTP_STATE_SHUTDOWN_SENT, SCTP_STATE_SHUTDOWN_RECEIVED, SCTP_STATE_SHUTDOWN_ACK_SENT,
  SCTP_STATE_SHUTDOWN_PENDING
}
enum  SctpStreamMode_E { SCTP_STREAM_RELIABLE, SCTP_STREAM_UNRELIABLE }


Define Documentation

#define DELAYED_SACK_TRIGGER   2
 

Definition at line 55 of file sctp.h.

Referenced by SctpAgent::ProcessChunk().

#define MAX_BURST   4
 

Definition at line 60 of file sctp.h.

Referenced by SctpAgent::RtxMarkedChunks(), TimestampSctpAgent::RtxMarkedChunks(), and SctpAgent::SendMuch().

#define MAX_DATA_CHUNK_SIZE   0xffffffff
 

Definition at line 51 of file sctp.h.

Referenced by SctpAgent::Reset(), and SctpAgent::sendmsg().

#define MAX_NUM_STREAMS   0x0000ffff
 

Definition at line 53 of file sctp.h.

Referenced by SctpAgent::Reset(), and SctpAgent::sendmsg().

#define MAX_RWND_SIZE   0xffffffff
 

Definition at line 50 of file sctp.h.

Referenced by SctpAgent::Reset().

#define MIN_DATA_CHUNK_SIZE   16
 

Definition at line 52 of file sctp.h.

Referenced by SctpAgent::Reset().

#define RTO_ALPHA   0.125
 

Definition at line 57 of file sctp.h.

Referenced by SctpAgent::RttUpdate().

#define RTO_BETA   0.25
 

Definition at line 58 of file sctp.h.

Referenced by SctpAgent::RttUpdate().

#define SCTP_CHUNK_FORWARD_TSN_LENGTH   8
 

Definition at line 275 of file sctp.h.

Referenced by SctpAgent::GenChunk().

#define SCTP_CHUNK_HEARTBEAT_LENGTH   24
 

Definition at line 283 of file sctp.h.

Referenced by SctpAgent::GenChunk(), and SctpAgent::SendHeartbeat().

#define SCTP_DATA_FLAG_BEGINNING   0x02
 

Definition at line 246 of file sctp.h.

#define SCTP_DATA_FLAG_END   0x01
 

Definition at line 245 of file sctp.h.

#define SCTP_DATA_FLAG_UNORDERED   0x04
 

Definition at line 247 of file sctp.h.

Referenced by SctpAgent::GenChunk(), and SctpAgent::PassToStream().

#define SCTP_HDR_SIZE   12
 

Definition at line 48 of file sctp.h.

Referenced by SctpAgent::Reset(), SctpAgent::sendmsg(), and SctpAgent::SendPacket().

#define SCTP_INIT_PARAM_UNREL   0xC000
 

Definition at line 195 of file sctp.h.

Referenced by SctpAgent::GenChunk().


Typedef Documentation

typedef SctpCookieEchoChunk_S SctpCookieAckChunk_S
 

Definition at line 230 of file sctp.h.

typedef SctpHeartbeatChunk_S SctpHeartbeatAckChunk_S
 

Definition at line 292 of file sctp.h.

typedef SctpInitChunk_S SctpInitAckChunk_S
 

Definition at line 222 of file sctp.h.


Enumeration Type Documentation

enum Boolean_E
 

Enumerator:
FALSE 
TRUE 

Definition at line 74 of file sctp.h.

00075 {
00076   FALSE,
00077   TRUE
00078 };

enum DataSource_E
 

Enumerator:
DATA_SOURCE_APPLICATION 
DATA_SOURCE_INFINITE 

Definition at line 100 of file sctp.h.

00101 {
00102   DATA_SOURCE_APPLICATION,
00103   DATA_SOURCE_INFINITE
00104 };

enum DormantAction_E
 

Enumerator:
DORMANT_HOP 
DORMANT_PRIMARY 
DORMANT_LASTDEST 

Definition at line 90 of file sctp.h.

00091 {
00092   DORMANT_HOP,        // keep hopping to another destination
00093   DORMANT_PRIMARY,    // goto primary and stay there
00094   DORMANT_LASTDEST    // stay at the last destination used before dormant state
00095 };

enum MarkedForRtx_E
 

Enumerator:
NO_RTX 
FAST_RTX 
TIMEOUT_RTX 

Definition at line 529 of file sctp.h.

00530 {
00531   NO_RTX,
00532   FAST_RTX,
00533   TIMEOUT_RTX
00534 };

enum MaxBurstUsage_E
 

Enumerator:
MAX_BURST_USAGE_OFF 
MAX_BURST_USAGE_ON 

Definition at line 61 of file sctp.h.

00062 {
00063   MAX_BURST_USAGE_OFF,      // 0
00064   MAX_BURST_USAGE_ON        // 1
00065 };

enum NodeType_E
 

Enumerator:
NODE_TYPE_STREAM_BUFFER 
NODE_TYPE_RECV_TSN_BLOCK 
NODE_TYPE_DUP_TSN 
NODE_TYPE_SEND_BUFFER 
NODE_TYPE_APP_LAYER_BUFFER 
NODE_TYPE_INTERFACE_LIST 
NODE_TYPE_DESTINATION_LIST 
NODE_TYPE_PACKET_BUFFER 

Definition at line 433 of file sctp.h.

enum RtxToAlt_E
 

Enumerator:
RTX_TO_ALT_OFF 
RTX_TO_ALT_ON 
RTX_TO_ALT_TIMEOUTS_ONLY 

Definition at line 80 of file sctp.h.

00081 {
00082   RTX_TO_ALT_OFF,
00083   RTX_TO_ALT_ON,
00084   RTX_TO_ALT_TIMEOUTS_ONLY
00085 };

enum SctpChunkType_E
 

Enumerator:
SCTP_CHUNK_DATA 
SCTP_CHUNK_INIT 
SCTP_CHUNK_INIT_ACK 
SCTP_CHUNK_SACK 
SCTP_CHUNK_HB 
SCTP_CHUNK_HB_ACK 
SCTP_CHUNK_ABORT 
SCTP_CHUNK_SHUTDOWN 
SCTP_CHUNK_SHUTDOWN_ACK 
SCTP_CHUNK_ERROR 
SCTP_CHUNK_COOKIE_ECHO 
SCTP_CHUNK_COOKIE_ACK 
SCTP_CHUNK_ECNE 
SCTP_CHUNK_CWR 
SCTP_CHUNK_SHUTDOWN_COMPLETE 
SCTP_CHUNK_FORWARD_TSN 
SCTP_CHUNK_TIMESTAMP 

Definition at line 108 of file sctp.h.

00109 {
00110   SCTP_CHUNK_DATA,
00111   SCTP_CHUNK_INIT,
00112   SCTP_CHUNK_INIT_ACK,
00113   SCTP_CHUNK_SACK,
00114   SCTP_CHUNK_HB,
00115   SCTP_CHUNK_HB_ACK,
00116   SCTP_CHUNK_ABORT,
00117   SCTP_CHUNK_SHUTDOWN,
00118   SCTP_CHUNK_SHUTDOWN_ACK,
00119   SCTP_CHUNK_ERROR,
00120   SCTP_CHUNK_COOKIE_ECHO,
00121   SCTP_CHUNK_COOKIE_ACK,
00122   SCTP_CHUNK_ECNE,                  // reserved in rfc2960
00123   SCTP_CHUNK_CWR,                   // reserved in rfc2960
00124   SCTP_CHUNK_SHUTDOWN_COMPLETE,
00125 
00126   /* RFC2960 leaves room for later defined chunks */
00127 
00128   /* for U-SCTP/PR-SCTP
00129    */
00130   SCTP_CHUNK_FORWARD_TSN,    // should be 192, but this is a simulation! :-)
00131 
00132   /* for timestamp option (sctp-timestamp.cc)
00133    */
00134   SCTP_CHUNK_TIMESTAMP
00135 };

enum SctpDestStatus_E
 

Enumerator:
SCTP_DEST_STATUS_INACTIVE 
SCTP_DEST_STATUS_ACTIVE 

Definition at line 427 of file sctp.h.

00428 {
00429   SCTP_DEST_STATUS_INACTIVE,
00430   SCTP_DEST_STATUS_ACTIVE
00431 };

enum SctpRtxLimit_E
 

Enumerator:
RTX_LIMIT_ONE_PACKET 
RTX_LIMIT_CWND 

Definition at line 523 of file sctp.h.

00524 {
00525   RTX_LIMIT_ONE_PACKET,
00526   RTX_LIMIT_CWND
00527 };

enum SctpState_E
 

Enumerator:
SCTP_STATE_UNINITIALIZED 
SCTP_STATE_CLOSED 
SCTP_STATE_ESTABLISHED 
SCTP_STATE_COOKIE_WAIT 
SCTP_STATE_COOKIE_ECHOED 
SCTP_STATE_SHUTDOWN_SENT 
SCTP_STATE_SHUTDOWN_RECEIVED 
SCTP_STATE_SHUTDOWN_ACK_SENT 
SCTP_STATE_SHUTDOWN_PENDING 

Definition at line 295 of file sctp.h.

00296 {
00297   SCTP_STATE_UNINITIALIZED,
00298   SCTP_STATE_CLOSED,
00299   SCTP_STATE_ESTABLISHED,
00300   SCTP_STATE_COOKIE_WAIT,
00301   SCTP_STATE_COOKIE_ECHOED,
00302   SCTP_STATE_SHUTDOWN_SENT,        // not currently used
00303   SCTP_STATE_SHUTDOWN_RECEIVED,    // not currently used
00304   SCTP_STATE_SHUTDOWN_ACK_SENT,    // not currently used
00305   SCTP_STATE_SHUTDOWN_PENDING      // not currently used
00306 };

enum SctpStreamMode_E
 

Enumerator:
SCTP_STREAM_RELIABLE 
SCTP_STREAM_UNRELIABLE 

Definition at line 560 of file sctp.h.

00561 {
00562   SCTP_STREAM_RELIABLE,
00563   SCTP_STREAM_UNRELIABLE
00564 };


Generated on Tue Mar 6 17:00:30 2007 for ns2 Network Simulator 2.29 by  doxygen 1.4.6