#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.
#define ADD_PADDING | ( | x | ) | ((((x) + 3) >> 2) << 2) |
Definition at line 186 of file SCTPAssociation.h.
Referenced by SCTPMessage::addChunk(), SCTPErrorChunk::addParameters(), SCTPAssociation::decreaseOutstandingBytes(), SCTPAssociation::dequeueAckedChunks(), SCTPAssociation::dequeueOutboundDataMsg(), SCTPAssociation::getOutboundDataChunk(), SCTPAssociation::handleChunkReportedAsAcked(), SCTPAssociation::handleChunkReportedAsMissing(), SCTPAssociation::increaseOutstandingBytes(), SCTPAssociation::makeRoomForTsn(), SCTPAssociation::moveChunkToOtherPath(), SCTPAssociation::nextChunkFitsIntoPacket(), SCTPAssociation::process_SEND(), SCTPAssociation::pushUlp(), SCTPAssociation::putInDeliveryQ(), SCTPMessage::removeChunk(), SCTPMessage::removeLastChunk(), SCTPErrorChunk::removeParameter(), and SCTPAssociation::tsnWasReneged().
#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 |
Definition at line 160 of file SCTPAssociation.h.
Referenced by SCTPAssociation::dequeueOutboundDataMsg(), and SCTPAssociation::nextChunkFitsIntoPacket().
#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 |
Definition at line 184 of file SCTPAssociation.h.
Referenced by SCTPAssociation::removeFromGapList(), and SCTPAssociation::updateGapList().
#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 |
Definition at line 149 of file SCTPAssociation.h.
Referenced by SCTPAssociation::dequeueOutboundDataMsg(), SCTP::handleMessage(), SCTPAssociation::nextChunkFitsIntoPacket(), SCTPMessage::operator=(), SCTPAssociation::retransmitCookieEcho(), SCTPAssociation::retransmitInit(), SCTPAssociation::retransmitShutdown(), SCTPAssociation::retransmitShutdownAck(), SCTPAssociation::sendAbort(), SCTP::sendAbortFromMain(), SCTPAssociation::sendCookieAck(), SCTPAssociation::sendCookieEcho(), SCTPAssociation::sendHeartbeat(), SCTPAssociation::sendHeartbeatAck(), SCTPAssociation::sendInit(), SCTPAssociation::sendInitAck(), SCTPAssociation::sendOnPath(), SCTPAssociation::sendSack(), SCTPAssociation::sendShutdown(), SCTPAssociation::sendShutdownAck(), SCTPAssociation::sendShutdownComplete(), and SCTP::sendShutdownCompleteFromMain().
#define SCTP_COOKIE_ACK_LENGTH 4 |
Definition at line 155 of file SCTPAssociation.h.
Referenced by SCTPAssociation::sendCookieAck(), SCTPAssociation::sendCookieEcho(), and SCTPAssociation::sendShutdownAck().
#define SCTP_COOKIE_LENGTH 76 |
Definition at line 165 of file SCTPAssociation.h.
Referenced by SCTPAssociation::sendInitAck().
#define SCTP_DATA_CHUNK_LENGTH 16 |
Definition at line 151 of file SCTPAssociation.h.
Referenced by SCTPAssociation::calculateBytesToSendOnPath(), SCTPAssociation::decreaseOutstandingBytes(), SCTPAssociation::dequeueAckedChunks(), SCTPAssociation::getOutboundDataChunk(), SCTPAssociation::handleChunkReportedAsAcked(), SCTPAssociation::handleChunkReportedAsMissing(), SCTPAssociation::increaseOutstandingBytes(), SCTPAssociation::makeRoomForTsn(), SCTPAssociation::moveChunkToOtherPath(), SCTPAssociation::nextChunkFitsIntoPacket(), SCTPAssociation::processDataArrived(), SCTPAssociation::pushUlp(), SCTPAssociation::putInDeliveryQ(), SCTPAssociation::transformDataChunk(), and SCTPAssociation::tsnWasReneged().
#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 |
Definition at line 158 of file SCTPAssociation.h.
Referenced by SCTPAssociation::sendShutdownComplete(), and SCTP::sendShutdownCompleteFromMain().
#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 |
Definition at line 170 of file SCTPAssociation.h.
Referenced by SCTPAssociation::process_TIMEOUT_INIT_REXMIT(), and SCTPAssociation::process_TIMEOUT_SHUTDOWN().
#define SHUTDOWN_GUARD_TIMEOUT 180 |
Definition at line 190 of file SCTPAssociation.h.
Referenced by SCTPAssociation::sendShutdown(), and SCTPAssociation::sendShutdownAck().
#define VALID_COOKIE_LIFE_TIME 10 |
Definition at line 164 of file SCTPAssociation.h.
typedef std::vector<IPvXAddress> AddressVector |
Definition at line 49 of file SCTPAssociation.h.
enum SCTPCCModules |
enum SCTPChunkTypes |
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, };
enum SCTPEventCode |
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 |
Definition at line 122 of file SCTPAssociation.h.
{ COMPLETE_MESG_UNORDERED = 1, COMPLETE_MESG_ORDERED = 0 };
enum SCTPParameterTypes |
Definition at line 129 of file SCTPAssociation.h.
{ UNRECOGNIZED_PARAMETER = 8, SUPPORTED_ADDRESS_TYPES = 12, };
enum SctpState |
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) };
enum SCTPStreamSchedulers |
double max | ( | const double | a, | |
const double | b | |||
) | [inline] |
Returns the maximum of a and b.
Definition at line 200 of file SCTPAssociation.h.
Referenced by SCTPAssociation::choosePathForRetransmission(), SCTPAssociation::cwndUpdateAfterCwndTimeout(), SCTPAssociation::cwndUpdateAfterRtxTimeout(), SCTPAssociation::cwndUpdateAfterSack(), TCPBaseAlg::established(), SCTPAssociation::initCCParameters(), SCTPAssociation::pmRttMeasurement(), tcp_old::TCPTahoe::recalculateSlowStartThreshold(), TCPTahoe::recalculateSlowStartThreshold(), tcp_old::TCPReno::recalculateSlowStartThreshold(), TCPReno::recalculateSlowStartThreshold(), TCPNewReno::recalculateSlowStartThreshold(), and TCPBaseAlg::sendData().
{ return (a < b) ? b : a; }
double min | ( | const double | a, | |
const double | b | |||
) | [inline] |
Returns the minimum of a and b.
Definition at line 195 of file SCTPAssociation.h.
Referenced by TCPConnection::addSacks(), SCTPAssociation::cwndUpdateAfterCwndTimeout(), SCTPAssociation::cwndUpdateBytesAcked(), TCPBaseAlg::established(), SCTPAssociation::initCCParameters(), IPSerializer::parse(), SCTPAssociation::pmRttMeasurement(), SCTPAssociation::process_TIMEOUT_HEARTBEAT(), SCTPAssociation::process_TIMEOUT_RTX(), TCPConnection::processMSSOption(), tcp_old::TCPTahoe::recalculateSlowStartThreshold(), TCPTahoe::recalculateSlowStartThreshold(), tcp_old::TCPReno::recalculateSlowStartThreshold(), TCPReno::recalculateSlowStartThreshold(), TCPNewReno::recalculateSlowStartThreshold(), TCPNewReno::receivedDataAck(), SCTPAssociation::removeFromGapList(), tcp_old::TCPConnection::retransmitData(), TCPConnection::retransmitData(), tcp_old::TCPConnection::retransmitOneSegment(), TCPConnection::retransmitOneSegment(), tcp_old::TCPConnection::sendData(), TCPConnection::sendData(), TCPBaseAlg::sendData(), SCTPAssociation::sendInitAck(), TCPConnection::sendOneNewSegment(), TCPSerializer::serialize(), and SCTPAssociation::updateGapList().
{ return (a < b) ? a : b; }