INET Framework for OMNeT++/OMNEST
inet::sctp::SCTPStateVariables Class Reference

#include <SCTPAssociation.h>

Inheritance diagram for inet::sctp::SCTPStateVariables:
inet::sctp::SCTPAlgStateVariables

Classes

struct  requestData
 

Public Types

enum  GLOVariant { GLOV_None = 0, GLOV_Optimized1 = 1, GLOV_Optimized2 = 2, GLOV_Shrunken = 3 }
 
enum  MBVariant {
  MBV_UseItOrLoseIt = 0, MBV_CongestionWindowLimiting = 1, MBV_UseItOrLoseItTempCwnd = 2, MBV_CongestionWindowLimitingTempCwnd = 3,
  MBV_MaxBurst = 4, MBV_AggressiveMaxBurst = 5, MBV_TotalMaxBurst = 6
}
 
enum  CUCVariant { CUCV_Normal = 0, CUCV_PseudoCumAck = 1, CUCV_PseudoCumAckV2 = 2 }
 
enum  BufferSplitVariant { CBSV_None = 0, CBSV_SenderOnly = 1, CBSV_ReceiverOnly = 2, CBSV_BothSides = 3 }
 
enum  ChunkReschedulingVariant {
  CCRV_None = 0, CCRV_SenderOnly = 1, CCRV_ReceiverOnly = 2, CCRV_BothSides = 3,
  CCRV_Test = 99
}
 
enum  CSackPath { CSP_Standard = 0, CSP_Primary = 1, CSP_RoundRobin = 2, CSP_SmallestSRTT = 3 }
 
enum  CCCVariant {
  CCCV_Off = 0, CCCV_CMT = 1, CCCV_CMTRPv1 = 2, CCCV_CMTRPv2 = 3,
  CCCV_CMT_LIA = 4, CCCV_CMT_OLIA = 5, CCCV_CMTRP_Test1 = 100, CCCV_CMTRP_Test2 = 101
}
 
typedef struct inet::sctp::SCTPStateVariables::requestData RequestData
 

Public Member Functions

 SCTPStateVariables ()
 
 ~SCTPStateVariables ()
 
void setPrimaryPath (SCTPPathVariables *path)
 
const L3AddressgetPrimaryPathIndex () const
 
SCTPPathVariablesgetPrimaryPath () const
 
bool findRequestNum (uint32 num)
 
bool findPeerRequestNum (uint32 num)
 
bool findPeerStreamToReset (uint16 sn)
 
bool findMatch (uint16 sn)
 
RequestDatafindTypeInRequests (uint16 type)
 
uint16 getNumRequestsNotPerformed ()
 

Public Attributes

bool active
 
bool fork
 
bool ackPointAdvanced
 
bool dataChunkReceived
 
bool initReceived
 
bool cookieEchoReceived
 
bool newChunkReceived
 
bool firstChunkReceived
 
bool swsAvoidanceInvoked
 
bool probingIsAllowed
 
bool zeroWindowProbing
 
bool alwaysBundleSack
 
bool fastRecoverySupported
 
bool nagleEnabled
 
bool sackAllowed
 
bool sackAlreadySent
 
bool reactivatePrimaryPath
 
bool resetPending
 
bool resetRequested
 
bool stopReceiving
 
bool stopOldData
 
bool queueUpdate
 
bool firstDataSent
 
bool peerWindowFull
 
bool zeroWindow
 
bool stopSending
 
bool stopReading
 
bool inOut
 
bool noMoreOutstanding
 
bool fragInProgress
 
bool incomingRequestSet
 
uint32 numGapReports
 
L3Address initialPrimaryPath
 
std::list< SCTPPathVariables * > lastDataSourceList
 
SCTPPathVariableslastDataSourcePath
 
AddressVector localAddresses
 
std::list< uint32dupList
 
uint32 errorCount
 
uint64 peerRwnd
 
uint64 initialPeerRwnd
 
uint64 localRwnd
 
uint32 nextTSN
 
uint32 lastTsnAck
 
uint32 highestTsnAcked
 
uint32 lastTsnReceived
 
uint32 lastTSN
 
uint32 ackState
 
SCTPGapList gapList
 
uint32 packetsInTotalBurst
 
simtime_t lastTransmission
 
uint64 outstandingBytes
 
uint64 queuedSentBytes
 
uint64 queuedDroppableBytes
 
uint64 queuedReceivedBytes
 
uint32 lastStreamScheduled
 
uint32 assocPmtu
 
uint32 fragPoint
 
uint32 msgNum
 
uint64 bytesRcvd
 
uint32 numRequests
 
uint32 bytesToRetransmit
 
uint32 messagesToPush
 
int32 pushMessagesLeft
 
uint32 count
 
uint8 localTieTag [32]
 
uint8 peerTieTag [32]
 
uint64 queuedMessages
 
uint32 messageAcceptLimit
 
uint32 queueLimit
 
uint16 header
 
uint16 sendResponse
 
uint32 responseSn
 
uint16 numResetRequests
 
int32 probingTimeout
 
std::vector< int32numMsgsReq
 
int32 cookieLifeTime
 
int16 initRetransCounter
 Counter for init and cookie retransmissions. More...
 
simtime_t initRexmitTimeout
 
SCTPInitChunkinitChunk
 pointer to the init chunk data structure (for retransmissions) More...
 
SCTPCookieEchoChunkcookieChunk
 pointer to the cookie chunk data structure (for retransmissions) More...
 
SCTPShutdownChunkshutdownChunk
 pointer to the resetChunk (for retransmission) More...
 
SCTPShutdownAckChunkshutdownAckChunk
 
SCTPMessagesctpmsg
 
uint64 sendQueueLimit
 
uint64 sendBuffer
 
bool appSendAllowed
 
simtime_t lastSendQueueAbated
 
uint32 nextRSid
 
uint32 swsLimit
 
bool lastMsgWasFragment
 
bool enableHeartbeats
 
bool sendHeartbeatsOnActivePaths
 
SCTPMessagesctpMsg
 
uint16 chunksAdded
 
uint16 dataChunksAdded
 
uint32 packetBytes
 
uint16 numAddedOutStreams
 
uint16 numAddedInStreams
 
bool authAdded
 
bool nrSack
 
uint32 gapReportLimit
 
uint32 gapListOptimizationVariant
 
bool smartOverfullSACKHandling
 
bool disableReneging
 
uint32 rtxMethod
 
uint32 maxBurst
 
MBVariant maxBurstVariant
 
uint32 initialWindow
 
bool allowCMT
 
bool(* cmtSendAllComparisonFunction )(const SCTPPathVariables *left, const SCTPPathVariables *right)
 
const char * cmtRetransmissionVariant
 
CUCVariant cmtCUCVariant
 
BufferSplitVariant cmtBufferSplitVariant
 
bool cmtBufferSplittingUsesOSB
 
ChunkReschedulingVariant cmtChunkReschedulingVariant
 
double cmtChunkReschedulingThreshold
 
bool cmtSmartT3Reset
 
bool cmtSmartFastRTX
 
bool cmtSmartReneging
 
bool cmtSlowPathRTTUpdate
 
bool cmtUseSFR
 
bool cmtUseDAC
 
bool cmtUseFRC
 
bool cmtMovedChunksReduceCwnd
 
double movedChunkFastRTXFactor
 
unsigned int blockingTSNsMoved
 
bool strictCwndBooking
 
CSackPath cmtSackPath
 
bool highSpeedCC
 
CCCVariant cmtCCVariant
 
bool rpPathBlocking
 
bool rpScaleBlockingTimeout
 
uint32 rpMinCwnd
 
bool checkSackSeqNumber
 
uint32 outgoingSackSeqNum
 
uint32 incomingSackSeqNum
 
uint32 asconfSn
 
uint16 numberAsconfReceived
 
uint32 corrIdNum
 
bool asconfOutstanding
 
SCTPAsconfChunkasconfChunk
 
bool streamReset
 
bool peerStreamReset
 
bool resetDeferred
 
bool bundleReset
 
bool waitForResponse
 
bool firstPeerRequest
 
bool appLimited
 
bool requestsOverlap
 
uint32 streamResetSequenceNumber
 
uint32 expectedStreamResetSequenceNumber
 
uint32 peerRequestSn
 
uint32 inRequestSn
 
uint32 peerTsnAfterReset
 
uint32 lastTsnBeforeReset
 
SCTPStreamResetChunkresetChunk
 
SCTPParameterincomingRequest
 
std::list< uint16resetOutStreams
 
std::list< uint16resetInStreams
 
std::list< uint16streamsPending
 
std::list< uint16streamsToReset
 
std::list< uint16peerStreamsToReset
 
std::map< uint32, RequestDatarequests
 
std::map< uint32, RequestDatapeerRequests
 
SCTPResetInforesetInfo
 
uint16 peerRequestType
 
uint16 localRequestType
 
uint16 hmacType
 
bool peerAuth
 
bool auth
 
std::vector< uint16chunkList
 
std::vector< uint16peerChunkList
 
uint8 keyVector [512]
 
uint32 sizeKeyVector
 
uint8 peerKeyVector [512]
 
uint32 sizePeerKeyVector
 
uint8 sharedKey [512]
 
bool osbWithHeader
 
bool padding
 
bool pktDropSent
 
bool peerPktDrop
 
uint32 advancedPeerAckPoint
 
uint32 prMethod
 
bool peerAllowsChunks
 
uint32 initialPeerMsgRwnd
 
uint32 localMsgRwnd
 
uint32 peerMsgRwnd
 
uint32 bufferedMessages
 
uint32 outstandingMessages
 
uint32 bytesToAddPerRcvdChunk
 
uint32 bytesToAddPerPeerChunk
 
bool tellArwnd
 
bool swsMsgInvoked
 
simtime_t lastThroughputTime
 
std::map< uint16, uint32streamThroughput
 
simtime_t lastAssocThroughputTime
 
uint32 assocThroughput
 
double throughputInterval
 
bool ssNextStream
 
bool ssLastDataChunkSizeSet
 
bool ssOneStreamLeft
 
std::map< uint16, uint32ssPriorityMap
 
std::map< uint16, int32ssFairBandwidthMap
 
std::map< uint16, int32ssStreamToPathMap
 

Private Attributes

SCTPPathVariablesprimaryPath
 

Member Typedef Documentation

Member Enumeration Documentation

Enumerator
CBSV_None 
CBSV_SenderOnly 
CBSV_ReceiverOnly 
CBSV_BothSides 
716  {
717  CBSV_None = 0,
718  CBSV_SenderOnly = 1,
719  CBSV_ReceiverOnly = 2,
720  CBSV_BothSides = 3
721  };
Definition: SCTPAssociation.h:717
Definition: SCTPAssociation.h:718
Definition: SCTPAssociation.h:719
Definition: SCTPAssociation.h:720
Enumerator
CCCV_Off 
CCCV_CMT 
CCCV_CMTRPv1 
CCCV_CMTRPv2 
CCCV_CMT_LIA 
CCCV_CMT_OLIA 
CCCV_CMTRP_Test1 
CCCV_CMTRP_Test2 
757  {
758  CCCV_Off = 0, // Standard SCTP
759  CCCV_CMT = 1, // CMT-SCTP
760  CCCV_CMTRPv1 = 2, // CMT/RPv1-SCTP (old CMT/RP)
761  CCCV_CMTRPv2 = 3, // CMT/RPv2-SCTP (new CMT/RP with bandwidth consideration)
762  CCCV_CMT_LIA = 4, // LIA CC
763  CCCV_CMT_OLIA = 5, // OLIA CC
764  CCCV_CMTRP_Test1 = 100,
765  CCCV_CMTRP_Test2 = 101
766  };
Definition: SCTPAssociation.h:760
Definition: SCTPAssociation.h:765
Definition: SCTPAssociation.h:759
Definition: SCTPAssociation.h:762
Definition: SCTPAssociation.h:761
Definition: SCTPAssociation.h:763
Definition: SCTPAssociation.h:758
Definition: SCTPAssociation.h:764
Enumerator
CCRV_None 
CCRV_SenderOnly 
CCRV_ReceiverOnly 
CCRV_BothSides 
CCRV_Test 
725  {
726  CCRV_None = 0,
727  CCRV_SenderOnly = 1,
728  CCRV_ReceiverOnly = 2,
729  CCRV_BothSides = 3,
730  CCRV_Test = 99 // Test only!
731  };
Definition: SCTPAssociation.h:730
Definition: SCTPAssociation.h:727
Definition: SCTPAssociation.h:728
Definition: SCTPAssociation.h:726
Definition: SCTPAssociation.h:729
Enumerator
CSP_Standard 
CSP_Primary 
CSP_RoundRobin 
CSP_SmallestSRTT 
746  {
747  CSP_Standard = 0,
748  CSP_Primary = 1,
749  CSP_RoundRobin = 2,
750  CSP_SmallestSRTT = 3
751  };
Definition: SCTPAssociation.h:749
Definition: SCTPAssociation.h:748
Definition: SCTPAssociation.h:747
Definition: SCTPAssociation.h:750
Enumerator
CUCV_Normal 
CUCV_PseudoCumAck 
CUCV_PseudoCumAckV2 
709  {
710  CUCV_Normal = 0,
711  CUCV_PseudoCumAck = 1,
713  };
Definition: SCTPAssociation.h:710
Definition: SCTPAssociation.h:711
Enumerator
GLOV_None 
GLOV_Optimized1 
GLOV_Optimized2 
GLOV_Shrunken 
679  {
680  GLOV_None = 0,
681  GLOV_Optimized1 = 1,
682  GLOV_Optimized2 = 2,
683  GLOV_Shrunken = 3
684  };
Definition: SCTPAssociation.h:682
Definition: SCTPAssociation.h:680
Definition: SCTPAssociation.h:683
Definition: SCTPAssociation.h:681
Enumerator
MBV_UseItOrLoseIt 
MBV_CongestionWindowLimiting 
MBV_UseItOrLoseItTempCwnd 
MBV_CongestionWindowLimitingTempCwnd 
MBV_MaxBurst 
MBV_AggressiveMaxBurst 
MBV_TotalMaxBurst 

Constructor & Destructor Documentation

inet::sctp::SCTPStateVariables::SCTPStateVariables ( )
318 {
319  active = false;
320  fork = false;
321  initReceived = false;
322  cookieEchoReceived = false;
323  ackPointAdvanced = false;
324  swsAvoidanceInvoked = false;
325  firstChunkReceived = false;
326  probingIsAllowed = false;
327  zeroWindowProbing = true;
328  alwaysBundleSack = true;
329  fastRecoverySupported = true;
330  reactivatePrimaryPath = false;
331  newChunkReceived = false;
332  dataChunkReceived = false;
333  sackAllowed = false;
334  sackAlreadySent = false;
335  resetPending = false;
336  resetRequested = false;
337  stopReceiving = false;
338  stopOldData = false;
339  stopSending = false;
340  stopReading = false;
341  inOut = false;
342  asconfOutstanding = false;
343  streamReset = false;
344  peerStreamReset = false;
345  queueUpdate = false;
346  firstDataSent = false;
347  peerWindowFull = false;
348  zeroWindow = false;
349  padding = false;
350  pktDropSent = false;
351  peerPktDrop = false;
352  appSendAllowed = true;
353  noMoreOutstanding = false;
354  fragInProgress = false;
355  resetDeferred = false;
356  bundleReset = false;
357  waitForResponse = false;
358  firstPeerRequest = true;
359  incomingRequestSet = false;
360  appLimited = false;
361  requestsOverlap = false;
362  primaryPath = nullptr;
363  lastDataSourcePath = nullptr;
364  resetChunk = nullptr;
365  asconfChunk = nullptr;
366  shutdownChunk = nullptr;
367  shutdownAckChunk = nullptr;
368  initChunk = nullptr;
369  cookieChunk = nullptr;
370  resetInfo = nullptr;
371  sctpmsg = nullptr;
372  sctpMsg = nullptr;
373  incomingRequest = nullptr;
374  peerRequestType = 0;
375  localRequestType = 0;
376  bytesToRetransmit = 0;
379  errorCount = 0;
380  initRetransCounter = 0;
381  nextTSN = 0;
382  chunksAdded = 0;
383  dataChunksAdded = 0;
384  packetBytes = 0;
385  lastTsnAck = 0;
386  highestTsnAcked = 0;
387  nextRSid = 0;
388  lastTsnBeforeReset = 0;
390  ackState = 0;
392  peerRwnd = 0;
393  initialPeerRwnd = 0;
394  assocPmtu = 0;
395  fragPoint = 0;
396  outstandingBytes = 0;
397  messagesToPush = 1;
398  pushMessagesLeft = 0;
399  msgNum = 0;
400  bytesRcvd = 0;
401  sendBuffer = 0;
403  prMethod = 0;
404  assocThroughput = 0;
405  queuedSentBytes = 0;
407  numAddedOutStreams = 0;
408  numAddedInStreams = 0;
409  lastMsgWasFragment = false;
410  enableHeartbeats = true;
412  sizeKeyVector = 0;
413  sizePeerKeyVector = 0;
414  auth = false;
415  peerAuth = false;
416  hmacType = 0;
417  bufferedMessages = 0;
418  initialPeerMsgRwnd = 0;
419  localMsgRwnd = 0;
420  peerMsgRwnd = 0;
421  peerAllowsChunks = false;
424  tellArwnd = false;
425  swsMsgInvoked = false;
427  ssNextStream = true;
428  ssOneStreamLeft = false;
429  ssLastDataChunkSizeSet = false;
430  lastSendQueueAbated = simTime();
431  queuedMessages = 0;
432  queueLimit = 0;
433  probingTimeout = 1;
434  numRequests = 0;
435  sendQueueLimit = 0;
436  swsLimit = 0;
437  authAdded = false;
438  nrSack = false;
439  gapReportLimit = 0;
442  disableReneging = false;
443  rtxMethod = 0;
444  maxBurst = 0;
445  sendResponse = 0;
446  responseSn = 0;
447  numResetRequests = 0;
449  initialWindow = 0;
450  allowCMT = false;
452  cmtRetransmissionVariant = nullptr;
458  cmtSmartT3Reset = true;
459  cmtSmartFastRTX = true;
460  cmtSmartReneging = false;
461  cmtSlowPathRTTUpdate = false;
462  cmtUseSFR = true;
463  numMsgsReq.resize(65536);
464 
465  for (unsigned int i = 0; i < 65536; i++) {
466  numMsgsReq[i] = 0;
467  }
468  for (unsigned int i = 0; i < 32; i++) {
469  localTieTag[i] = 0;
470  peerTieTag[i] = 0;
471  }
472 
473  count = 0;
474  blockingTSNsMoved = 0;
475 
476  cmtUseDAC = true;
477  cmtUseFRC = true;
480  strictCwndBooking = false;
482  highSpeedCC = false;
484  rpPathBlocking = false;
485  rpScaleBlockingTimeout = false;
486  rpMinCwnd = 1;
487  checkSackSeqNumber = false;
488  outgoingSackSeqNum = 0;
489  incomingSackSeqNum = 0;
490  asconfSn = 0;
492  corrIdNum = 0;
495  peerRequestSn = 0;
496  inRequestSn = 0;
497  peerTsnAfterReset = 0;
498  osbWithHeader = false;
499  throughputInterval = 1.0;
500 }
uint64 sendQueueLimit
Definition: SCTPAssociation.h:659
#define SCTP_TIMEOUT_INIT_REXMIT
Definition: SCTPAssociation.h:246
Definition: SCTPAssociation.h:717
MBVariant maxBurstVariant
Definition: SCTPAssociation.h:702
bool dataChunkReceived
Definition: SCTPAssociation.h:575
bool lastMsgWasFragment
Definition: SCTPAssociation.h:665
bool smartOverfullSACKHandling
Definition: SCTPAssociation.h:686
bool swsMsgInvoked
Definition: SCTPAssociation.h:847
int32 probingTimeout
Definition: SCTPAssociation.h:645
uint32 asconfSn
Definition: SCTPAssociation.h:778
bool sendHeartbeatsOnActivePaths
Definition: SCTPAssociation.h:667
CUCVariant cmtCUCVariant
Definition: SCTPAssociation.h:714
bool cmtUseFRC
Definition: SCTPAssociation.h:741
uint32 queueLimit
Definition: SCTPAssociation.h:640
SCTPPathVariables * lastDataSourcePath
Definition: SCTPAssociation.h:606
bool peerPktDrop
Definition: SCTPAssociation.h:835
bool appLimited
Definition: SCTPAssociation.h:791
uint16 peerRequestType
Definition: SCTPAssociation.h:809
uint32 streamResetSequenceNumber
Definition: SCTPAssociation.h:793
bool initReceived
Definition: SCTPAssociation.h:576
uint32 lastStreamScheduled
Definition: SCTPAssociation.h:626
bool swsAvoidanceInvoked
Definition: SCTPAssociation.h:580
uint32 lastTsnAck
Definition: SCTPAssociation.h:614
bool inOut
Definition: SCTPAssociation.h:599
bool resetRequested
Definition: SCTPAssociation.h:590
#define SCTP_DEFAULT_ARWND
Definition: SCTPAssociation.h:237
bool fragInProgress
Definition: SCTPAssociation.h:601
bool ssOneStreamLeft
Definition: SCTPAssociation.h:855
uint32 corrIdNum
Definition: SCTPAssociation.h:780
bool zeroWindowProbing
Definition: SCTPAssociation.h:582
bool rpScaleBlockingTimeout
Definition: SCTPAssociation.h:769
uint32 bufferedMessages
Definition: SCTPAssociation.h:842
SCTPMessage * sctpmsg
Definition: SCTPAssociation.h:658
bool cookieEchoReceived
Definition: SCTPAssociation.h:577
uint32 maxBurst
Definition: SCTPAssociation.h:692
SCTPAsconfChunk * asconfChunk
Definition: SCTPAssociation.h:782
bool bundleReset
Definition: SCTPAssociation.h:788
bool stopReading
Definition: SCTPAssociation.h:598
Definition: SCTPAssociation.h:698
bool cmtMovedChunksReduceCwnd
Definition: SCTPAssociation.h:742
bool firstChunkReceived
Definition: SCTPAssociation.h:579
uint64 peerRwnd
Definition: SCTPAssociation.h:610
bool ssNextStream
Definition: SCTPAssociation.h:853
bool cmtBufferSplittingUsesOSB
Definition: SCTPAssociation.h:723
uint16 hmacType
Definition: SCTPAssociation.h:820
uint32 highestTsnAcked
Definition: SCTPAssociation.h:615
uint32 swsLimit
Definition: SCTPAssociation.h:664
uint32 nextRSid
Definition: SCTPAssociation.h:663
uint32 gapListOptimizationVariant
Definition: SCTPAssociation.h:685
bool pktDropSent
Definition: SCTPAssociation.h:834
Definition: SCTPAssociation.h:710
uint32 inRequestSn
Definition: SCTPAssociation.h:796
bool sackAllowed
Definition: SCTPAssociation.h:586
bool allowCMT
Definition: SCTPAssociation.h:705
bool active
Definition: SCTPAssociation.h:572
uint16 sendResponse
Definition: SCTPAssociation.h:642
SCTPResetInfo * resetInfo
Definition: SCTPAssociation.h:808
BufferSplitVariant cmtBufferSplitVariant
Definition: SCTPAssociation.h:722
uint32 fragPoint
Definition: SCTPAssociation.h:628
uint16 localRequestType
Definition: SCTPAssociation.h:810
ChunkReschedulingVariant cmtChunkReschedulingVariant
Definition: SCTPAssociation.h:732
bool padding
Definition: SCTPAssociation.h:833
uint64 localRwnd
Definition: SCTPAssociation.h:612
bool checkSackSeqNumber
Definition: SCTPAssociation.h:773
bool nrSack
Definition: SCTPAssociation.h:677
uint32 prMethod
Definition: SCTPAssociation.h:837
uint32 initialWindow
Definition: SCTPAssociation.h:703
uint64 sendBuffer
Definition: SCTPAssociation.h:660
bool waitForResponse
Definition: SCTPAssociation.h:789
uint32 errorCount
Definition: SCTPAssociation.h:609
uint32 expectedStreamResetSequenceNumber
Definition: SCTPAssociation.h:794
bool fastRecoverySupported
Definition: SCTPAssociation.h:584
bool firstPeerRequest
Definition: SCTPAssociation.h:790
bool disableReneging
Definition: SCTPAssociation.h:687
bool sackAlreadySent
Definition: SCTPAssociation.h:587
uint16 numAddedOutStreams
Definition: SCTPAssociation.h:672
double cmtChunkReschedulingThreshold
Definition: SCTPAssociation.h:733
bool queueUpdate
Definition: SCTPAssociation.h:593
CCCVariant cmtCCVariant
Definition: SCTPAssociation.h:767
bool alwaysBundleSack
Definition: SCTPAssociation.h:583
uint32 bytesToRetransmit
Definition: SCTPAssociation.h:632
uint32 incomingSackSeqNum
Definition: SCTPAssociation.h:775
uint32 localMsgRwnd
Definition: SCTPAssociation.h:840
uint16 numberAsconfReceived
Definition: SCTPAssociation.h:779
bool cmtUseDAC
Definition: SCTPAssociation.h:740
SCTPShutdownAckChunk * shutdownAckChunk
Definition: SCTPAssociation.h:657
bool newChunkReceived
Definition: SCTPAssociation.h:578
bool auth
Definition: SCTPAssociation.h:822
uint64 queuedMessages
Definition: SCTPAssociation.h:638
uint32 lastTsnBeforeReset
Definition: SCTPAssociation.h:798
bool ssLastDataChunkSizeSet
Definition: SCTPAssociation.h:854
bool cmtSlowPathRTTUpdate
Definition: SCTPAssociation.h:738
bool fork
Definition: SCTPAssociation.h:573
uint16 chunksAdded
Definition: SCTPAssociation.h:669
bool osbWithHeader
Definition: SCTPAssociation.h:832
SCTPInitChunk * initChunk
pointer to the init chunk data structure (for retransmissions)
Definition: SCTPAssociation.h:652
uint8 peerTieTag[32]
Definition: SCTPAssociation.h:637
uint32 ackState
Definition: SCTPAssociation.h:618
uint64 initialPeerRwnd
Definition: SCTPAssociation.h:611
uint32 peerMsgRwnd
Definition: SCTPAssociation.h:841
SCTPMessage * sctpMsg
Definition: SCTPAssociation.h:668
bool rpPathBlocking
Definition: SCTPAssociation.h:768
bool cmtSmartFastRTX
Definition: SCTPAssociation.h:736
bool requestsOverlap
Definition: SCTPAssociation.h:792
bool strictCwndBooking
Definition: SCTPAssociation.h:745
bool cmtUseSFR
Definition: SCTPAssociation.h:739
bool cmtSmartT3Reset
Definition: SCTPAssociation.h:735
simtime_t initRexmitTimeout
Definition: SCTPAssociation.h:650
int16 initRetransCounter
Counter for init and cookie retransmissions.
Definition: SCTPAssociation.h:649
uint32 msgNum
Definition: SCTPAssociation.h:629
uint64 outstandingBytes
Definition: SCTPAssociation.h:622
uint32 outgoingSackSeqNum
Definition: SCTPAssociation.h:774
bool probingIsAllowed
Definition: SCTPAssociation.h:581
uint32 numRequests
Definition: SCTPAssociation.h:631
Definition: SCTPAssociation.h:726
bool peerAllowsChunks
Definition: SCTPAssociation.h:838
bool zeroWindow
Definition: SCTPAssociation.h:596
uint32 bytesToAddPerPeerChunk
Definition: SCTPAssociation.h:845
uint32 sizePeerKeyVector
Definition: SCTPAssociation.h:828
bool reactivatePrimaryPath
Definition: SCTPAssociation.h:588
SCTPPathVariables * primaryPath
Definition: SCTPAssociation.h:861
const char * cmtRetransmissionVariant
Definition: SCTPAssociation.h:707
uint32 advancedPeerAckPoint
Definition: SCTPAssociation.h:836
bool stopReceiving
Definition: SCTPAssociation.h:591
SCTPStreamResetChunk * resetChunk
Definition: SCTPAssociation.h:799
std::vector< int32 > numMsgsReq
Definition: SCTPAssociation.h:646
uint32 rtxMethod
Definition: SCTPAssociation.h:690
uint16 numResetRequests
Definition: SCTPAssociation.h:644
double movedChunkFastRTXFactor
Definition: SCTPAssociation.h:743
uint32 messagesToPush
Definition: SCTPAssociation.h:633
uint8 localTieTag[32]
Definition: SCTPAssociation.h:636
SCTPCookieEchoChunk * cookieChunk
pointer to the cookie chunk data structure (for retransmissions)
Definition: SCTPAssociation.h:654
Definition: SCTPAssociation.h:747
SCTPParameter * incomingRequest
Definition: SCTPAssociation.h:800
uint32 bytesToAddPerRcvdChunk
Definition: SCTPAssociation.h:844
bool peerStreamReset
Definition: SCTPAssociation.h:786
bool highSpeedCC
Definition: SCTPAssociation.h:754
bool authAdded
Definition: SCTPAssociation.h:674
bool appSendAllowed
Definition: SCTPAssociation.h:661
uint16 numAddedInStreams
Definition: SCTPAssociation.h:673
int32 pushMessagesLeft
Definition: SCTPAssociation.h:634
bool asconfOutstanding
Definition: SCTPAssociation.h:781
uint32 outstandingMessages
Definition: SCTPAssociation.h:843
bool firstDataSent
Definition: SCTPAssociation.h:594
bool resetDeferred
Definition: SCTPAssociation.h:787
bool noMoreOutstanding
Definition: SCTPAssociation.h:600
bool stopOldData
Definition: SCTPAssociation.h:592
uint32 assocPmtu
Definition: SCTPAssociation.h:627
uint32 nextTSN
Definition: SCTPAssociation.h:613
bool peerAuth
Definition: SCTPAssociation.h:821
SCTPShutdownChunk * shutdownChunk
pointer to the resetChunk (for retransmission)
Definition: SCTPAssociation.h:656
bool resetPending
Definition: SCTPAssociation.h:589
uint32 packetBytes
Definition: SCTPAssociation.h:671
bool stopSending
Definition: SCTPAssociation.h:597
bool ackPointAdvanced
Definition: SCTPAssociation.h:574
bool cmtSmartReneging
Definition: SCTPAssociation.h:737
bool enableHeartbeats
Definition: SCTPAssociation.h:666
uint64 queuedReceivedBytes
Definition: SCTPAssociation.h:625
uint32 assocThroughput
Definition: SCTPAssociation.h:851
bool peerWindowFull
Definition: SCTPAssociation.h:595
uint64 queuedSentBytes
Definition: SCTPAssociation.h:623
unsigned int blockingTSNsMoved
Definition: SCTPAssociation.h:744
uint32 gapReportLimit
Definition: SCTPAssociation.h:678
uint64 bytesRcvd
Definition: SCTPAssociation.h:630
uint64 queuedDroppableBytes
Definition: SCTPAssociation.h:624
Definition: SCTPAssociation.h:758
bool(* cmtSendAllComparisonFunction)(const SCTPPathVariables *left, const SCTPPathVariables *right)
Definition: SCTPAssociation.h:706
uint32 rpMinCwnd
Definition: SCTPAssociation.h:770
uint16 dataChunksAdded
Definition: SCTPAssociation.h:670
simtime_t lastSendQueueAbated
Definition: SCTPAssociation.h:662
uint32 sizeKeyVector
Definition: SCTPAssociation.h:826
bool tellArwnd
Definition: SCTPAssociation.h:846
CSackPath cmtSackPath
Definition: SCTPAssociation.h:752
uint32 count
Definition: SCTPAssociation.h:635
uint32 responseSn
Definition: SCTPAssociation.h:643
uint32 initialPeerMsgRwnd
Definition: SCTPAssociation.h:839
uint32 peerRequestSn
Definition: SCTPAssociation.h:795
bool incomingRequestSet
Definition: SCTPAssociation.h:602
double throughputInterval
Definition: SCTPAssociation.h:852
uint32 peerTsnAfterReset
Definition: SCTPAssociation.h:797
bool streamReset
Definition: SCTPAssociation.h:785
inet::sctp::SCTPStateVariables::~SCTPStateVariables ( )
503 {
504  if (incomingRequestSet) {
505  delete incomingRequest;
506  }
507  if (initChunk != nullptr)
508  delete initChunk;
509 }
SCTPInitChunk * initChunk
pointer to the init chunk data structure (for retransmissions)
Definition: SCTPAssociation.h:652
SCTPParameter * incomingRequest
Definition: SCTPAssociation.h:800
bool incomingRequestSet
Definition: SCTPAssociation.h:602

Member Function Documentation

bool inet::sctp::SCTPStateVariables::findMatch ( uint16  sn)
536 {
537  std::list<uint16>::iterator it;
538  for (it = resetOutStreams.begin(); it != resetOutStreams.end(); it++) {
539  if ((*it) == num)
540  return true;
541  }
542  return false;
543 }
std::list< uint16 > resetOutStreams
Definition: SCTPAssociation.h:801
bool inet::sctp::SCTPStateVariables::findPeerRequestNum ( uint32  num)

Referenced by inet::sctp::SCTPAssociation::processStreamResetArrived(), and inet::sctp::SCTPAssociation::sendOutgoingResetRequest().

519 {
520  if (peerRequests.find(num) != peerRequests.end())
521  return true;
522  return false;
523 }
std::map< uint32, RequestData > peerRequests
Definition: SCTPAssociation.h:807
bool inet::sctp::SCTPStateVariables::findPeerStreamToReset ( uint16  sn)

Referenced by inet::sctp::SCTPAssociation::processIncomingResetRequestArrived().

526 {
527  std::list<uint16>::iterator it;
528  for (it = peerStreamsToReset.begin(); it != peerStreamsToReset.end(); it++) {
529  if ((*it) == num)
530  return true;
531  }
532  return false;
533 }
std::list< uint16 > peerStreamsToReset
Definition: SCTPAssociation.h:805
bool inet::sctp::SCTPStateVariables::findRequestNum ( uint32  num)

Referenced by inet::sctp::SCTPAssociation::processOutgoingResetRequestArrived(), and inet::sctp::SCTPAssociation::processStreamResetArrived().

512 {
513  if (requests.find(num) != requests.end())
514  return true;
515  return false;
516 }
std::map< uint32, RequestData > requests
Definition: SCTPAssociation.h:806
SCTPStateVariables::RequestData * inet::sctp::SCTPStateVariables::findTypeInRequests ( uint16  type)

Referenced by inet::sctp::SCTPAssociation::sendAddOutgoingStreamsRequest(), and inet::sctp::SCTPAssociation::sendOutgoingResetRequest().

546 {
547  for (auto & elem : requests) {
548  if (elem.second.type == type) {
549  return &(elem.second);
550  }
551  }
552  return nullptr;
553 }
std::map< uint32, RequestData > requests
Definition: SCTPAssociation.h:806
uint16 inet::sctp::SCTPStateVariables::getNumRequestsNotPerformed ( )

Referenced by inet::sctp::SCTPAssociation::processResetResponseArrived().

556 {
557  uint16 count = 0;
558  for (auto & elem : requests) {
559  if (elem.second.result != PERFORMED && elem.second.result != DEFERRED) {
560  count++;
561  }
562  }
563  return count;
564 }
std::map< uint32, RequestData > requests
Definition: SCTPAssociation.h:806
Definition: SCTPAssociation.h:149
uint16_t uint16
Definition: Compat.h:32
Definition: SCTPAssociation.h:144
uint32 count
Definition: SCTPAssociation.h:635
const L3Address& inet::sctp::SCTPStateVariables::getPrimaryPathIndex ( ) const
inline

Referenced by inet::sctp::SCTPAssociation::process_SEND(), inet::sctp::SCTPAssociation::process_TIMEOUT_HEARTBEAT(), inet::sctp::SCTPAssociation::process_TIMEOUT_RTX(), and inet::sctp::SCTPAssociation::processHeartbeatAckArrived().

551  {
552  if (primaryPath != nullptr) {
553  return primaryPath->remoteAddress;
554  }
556  }
static const L3Address zeroAddress
Definition: SCTPAssociation.h:528
SCTPPathVariables * primaryPath
Definition: SCTPAssociation.h:861
L3Address remoteAddress
Definition: SCTPAssociation.h:284

Member Data Documentation

bool inet::sctp::SCTPStateVariables::active
bool inet::sctp::SCTPStateVariables::alwaysBundleSack
bool inet::sctp::SCTPStateVariables::appLimited
bool inet::sctp::SCTPStateVariables::appSendAllowed
bool inet::sctp::SCTPStateVariables::asconfOutstanding
uint32 inet::sctp::SCTPStateVariables::assocThroughput
bool inet::sctp::SCTPStateVariables::authAdded
unsigned int inet::sctp::SCTPStateVariables::blockingTSNsMoved
uint64 inet::sctp::SCTPStateVariables::bytesRcvd
uint32 inet::sctp::SCTPStateVariables::bytesToRetransmit
bool inet::sctp::SCTPStateVariables::checkSackSeqNumber
uint16 inet::sctp::SCTPStateVariables::chunksAdded
bool inet::sctp::SCTPStateVariables::cmtBufferSplittingUsesOSB
BufferSplitVariant inet::sctp::SCTPStateVariables::cmtBufferSplitVariant
CCCVariant inet::sctp::SCTPStateVariables::cmtCCVariant
double inet::sctp::SCTPStateVariables::cmtChunkReschedulingThreshold
ChunkReschedulingVariant inet::sctp::SCTPStateVariables::cmtChunkReschedulingVariant
const char* inet::sctp::SCTPStateVariables::cmtRetransmissionVariant
CSackPath inet::sctp::SCTPStateVariables::cmtSackPath
bool(* inet::sctp::SCTPStateVariables::cmtSendAllComparisonFunction) (const SCTPPathVariables *left, const SCTPPathVariables *right)
bool inet::sctp::SCTPStateVariables::cmtSmartFastRTX
bool inet::sctp::SCTPStateVariables::cmtSmartReneging
bool inet::sctp::SCTPStateVariables::cmtSmartT3Reset
bool inet::sctp::SCTPStateVariables::cmtUseFRC
bool inet::sctp::SCTPStateVariables::cmtUseSFR
SCTPCookieEchoChunk* inet::sctp::SCTPStateVariables::cookieChunk
bool inet::sctp::SCTPStateVariables::cookieEchoReceived
int32 inet::sctp::SCTPStateVariables::cookieLifeTime
uint32 inet::sctp::SCTPStateVariables::count
bool inet::sctp::SCTPStateVariables::dataChunkReceived
uint16 inet::sctp::SCTPStateVariables::dataChunksAdded
bool inet::sctp::SCTPStateVariables::disableReneging
bool inet::sctp::SCTPStateVariables::enableHeartbeats
bool inet::sctp::SCTPStateVariables::fastRecoverySupported
bool inet::sctp::SCTPStateVariables::firstChunkReceived
bool inet::sctp::SCTPStateVariables::firstDataSent
uint32 inet::sctp::SCTPStateVariables::gapListOptimizationVariant
uint32 inet::sctp::SCTPStateVariables::gapReportLimit
uint32 inet::sctp::SCTPStateVariables::highestTsnAcked
bool inet::sctp::SCTPStateVariables::highSpeedCC
uint16 inet::sctp::SCTPStateVariables::hmacType
uint32 inet::sctp::SCTPStateVariables::incomingSackSeqNum
SCTPInitChunk* inet::sctp::SCTPStateVariables::initChunk

pointer to the init chunk data structure (for retransmissions)

Referenced by inet::sctp::SCTPAssociation::retransmitInit(), and inet::sctp::SCTPAssociation::sendInit().

uint32 inet::sctp::SCTPStateVariables::initialWindow
bool inet::sctp::SCTPStateVariables::initReceived
int16 inet::sctp::SCTPStateVariables::initRetransCounter
simtime_t inet::sctp::SCTPStateVariables::lastAssocThroughputTime
std::list<SCTPPathVariables *> inet::sctp::SCTPStateVariables::lastDataSourceList
bool inet::sctp::SCTPStateVariables::lastMsgWasFragment
simtime_t inet::sctp::SCTPStateVariables::lastSendQueueAbated
simtime_t inet::sctp::SCTPStateVariables::lastThroughputTime
simtime_t inet::sctp::SCTPStateVariables::lastTransmission
uint32 inet::sctp::SCTPStateVariables::lastTSN
uint32 inet::sctp::SCTPStateVariables::lastTsnReceived
uint8 inet::sctp::SCTPStateVariables::localTieTag[32]
uint32 inet::sctp::SCTPStateVariables::maxBurst
uint32 inet::sctp::SCTPStateVariables::messagesToPush
double inet::sctp::SCTPStateVariables::movedChunkFastRTXFactor
uint32 inet::sctp::SCTPStateVariables::msgNum
bool inet::sctp::SCTPStateVariables::nagleEnabled
bool inet::sctp::SCTPStateVariables::newChunkReceived
uint32 inet::sctp::SCTPStateVariables::nextRSid
bool inet::sctp::SCTPStateVariables::noMoreOutstanding
bool inet::sctp::SCTPStateVariables::nrSack
uint16 inet::sctp::SCTPStateVariables::numberAsconfReceived
uint32 inet::sctp::SCTPStateVariables::numGapReports
uint32 inet::sctp::SCTPStateVariables::outgoingSackSeqNum
uint32 inet::sctp::SCTPStateVariables::packetsInTotalBurst
bool inet::sctp::SCTPStateVariables::padding
uint8 inet::sctp::SCTPStateVariables::peerKeyVector[512]
bool inet::sctp::SCTPStateVariables::peerStreamReset
std::list<uint16> inet::sctp::SCTPStateVariables::peerStreamsToReset
uint8 inet::sctp::SCTPStateVariables::peerTieTag[32]
SCTPPathVariables* inet::sctp::SCTPStateVariables::primaryPath
private
bool inet::sctp::SCTPStateVariables::probingIsAllowed
int32 inet::sctp::SCTPStateVariables::probingTimeout
int32 inet::sctp::SCTPStateVariables::pushMessagesLeft
uint64 inet::sctp::SCTPStateVariables::queuedDroppableBytes
bool inet::sctp::SCTPStateVariables::queueUpdate
bool inet::sctp::SCTPStateVariables::reactivatePrimaryPath
bool inet::sctp::SCTPStateVariables::requestsOverlap
uint32 inet::sctp::SCTPStateVariables::rpMinCwnd
bool inet::sctp::SCTPStateVariables::rpPathBlocking
bool inet::sctp::SCTPStateVariables::rpScaleBlockingTimeout
uint32 inet::sctp::SCTPStateVariables::rtxMethod
bool inet::sctp::SCTPStateVariables::sackAlreadySent
bool inet::sctp::SCTPStateVariables::sendHeartbeatsOnActivePaths
uint8 inet::sctp::SCTPStateVariables::sharedKey[512]
SCTPShutdownChunk* inet::sctp::SCTPStateVariables::shutdownChunk
uint32 inet::sctp::SCTPStateVariables::sizeKeyVector
uint32 inet::sctp::SCTPStateVariables::sizePeerKeyVector
bool inet::sctp::SCTPStateVariables::smartOverfullSACKHandling
std::map<uint16, int32> inet::sctp::SCTPStateVariables::ssFairBandwidthMap
bool inet::sctp::SCTPStateVariables::ssOneStreamLeft
std::map<uint16, uint32> inet::sctp::SCTPStateVariables::ssPriorityMap
std::map<uint16, int32> inet::sctp::SCTPStateVariables::ssStreamToPathMap
bool inet::sctp::SCTPStateVariables::stopReading
bool inet::sctp::SCTPStateVariables::stopSending
std::map<uint16, uint32> inet::sctp::SCTPStateVariables::streamThroughput
bool inet::sctp::SCTPStateVariables::strictCwndBooking
bool inet::sctp::SCTPStateVariables::swsMsgInvoked
bool inet::sctp::SCTPStateVariables::tellArwnd
double inet::sctp::SCTPStateVariables::throughputInterval
bool inet::sctp::SCTPStateVariables::zeroWindow

The documentation for this class was generated from the following files: