ns2 Network Simulator      C++ Class Hierarchy of version ns-snapshot-20040722
|  Home |  Source Code |  Manual |  FAQ |  Mailing List Archive |  Search |  |  Download | 


Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

SctpAgent Class Reference

#include <sctp.h>

Inheritance diagram for SctpAgent:

Agent Connector NsObject TclObject Handler HbAfterRtoSctpAgent MultipleFastRtxSctpAgent NewRenoSctpAgent TimestampSctpAgent List of all members.

Public Member Functions

 SctpAgent ()
 ~SctpAgent ()
virtual void recv (Packet *pkt, Handler *)
virtual void sendmsg (int nbytes, const char *flags=0)
virtual int command (int argc, const char *const *argv)
void T1InitTimerExpiration ()
void T1CookieTimerExpiration ()
virtual void Timeout (SctpChunkType_E, SctpDest_S *)
void CwndDegradeTimerExpiration (SctpDest_S *)
void HeartbeatGenTimerExpiration (double, SctpDest_S *)
void SackGenTimerExpiration ()

Protected Member Functions

virtual void delay_bind_init_all ()
virtual int delay_bind_dispatch (const char *varName, const char *localName, TclObject *tracer)
void SetDebugOutFile ()
void Reset ()
virtual void OptionReset ()
virtual u_int ControlChunkReservation ()
void TraceVar (const char *)
void TraceAll ()
void trace (TracedVar *)
void InsertNode (List_S *, Node_S *, Node_S *, Node_S *)
void DeleteNode (List_S *, Node_S *)
void ClearList (List_S *)
void AddInterface (int, int, NsObject *, NsObject *)
void AddDestination (int, int)
int SetPrimary (int)
int ForceSource (int)
int GenChunk (SctpChunkType_E, u_char *)
u_int GetNextDataChunkSize ()
int GenOneDataChunk (u_char *)
int GenMultipleDataChunks (u_char *, int)
virtual int BundleControlChunks (u_char *)
void StartT3RtxTimer (SctpDest_S *)
void StopT3RtxTimer (SctpDest_S *)
virtual void AddToSendBuffer (SctpDataChunkHdr_S *, int, u_int, SctpDest_S *)
void RttUpdate (double, SctpDest_S *)
virtual void SendBufferDequeueUpTo (u_int)
void AdjustCwnd (SctpDest_S *)
void AdvancePeerAckPoint ()
virtual void FastRtx ()
void TimeoutRtx (SctpDest_S *)
void MarkChunkForRtx (SctpSendBufferNode_S *)
Boolean_E AnyMarkedChunks ()
virtual void RtxMarkedChunks (SctpRtxLimit_E)
void SendHeartbeat (SctpDest_S *)
SctpDest_S * GetNextDest (SctpDest_S *)
double CalcHeartbeatTime (double)
void SetSource (SctpDest_S *)
void SetDestination (SctpDest_S *)
void SendPacket (u_char *, int, SctpDest_S *)
SctpDest_S * GetReplyDestination (hdr_ip *)
u_int TotalOutstanding ()
void SendMuch ()
Boolean_E UpdateHighestTsn (u_int)
Boolean_E IsDuplicateChunk (u_int)
void InsertDuplicateTsn (u_int)
void UpdateCumAck ()
void UpdateRecvTsnBlocks (u_int)
void PassToUpperLayer (SctpDataChunkHdr_S *)
void InsertInStreamBuffer (List_S *, SctpDataChunkHdr_S *)
void PassToStream (SctpDataChunkHdr_S *)
void UpdateAllStreams ()
void ProcessInitChunk (u_char *)
void ProcessInitAckChunk (u_char *)
void ProcessCookieEchoChunk (SctpCookieEchoChunk_S *)
void ProcessCookieAckChunk (SctpCookieAckChunk_S *)
void ProcessDataChunk (SctpDataChunkHdr_S *)
virtual Boolean_E ProcessGapAckBlocks (u_char *, Boolean_E)
virtual void ProcessSackChunk (u_char *)
void ProcessForwardTsnChunk (SctpForwardTsnChunk_S *)
void ProcessHeartbeatAckChunk (SctpHeartbeatChunk_S *)
virtual void ProcessOptionChunk (u_char *)
int ProcessChunk (u_char *, u_char **)
void NextChunk (u_char **, int *)
void Close ()
void SctpAgent::DumpSendBuffer ()

Protected Attributes

SctpState_E eState
List_S sAppLayerBuffer
Classifier * opCoreTarget
List_S sInterfaceList
List_S sDestList
SctpDest_S * spPrimaryDest
SctpDest_S * spNewTxDest
SctpDest_S * spReplyDest
Boolean_E eForceSource
int iAssocErrorCount
HeartbeatGenTimer * opHeartbeatGenTimer
HeartbeatTimeoutTimer * opHeartbeatTimeoutTimer
T1InitTimer * opT1InitTimer
T1CookieTimer * opT1CookieTimer
int iInitTryCount
u_int uiNextTsn
u_short usNextStreamId
SctpOutStream_S * spOutStreams
u_int uiPeerRwnd
u_int uiCumAckPoint
u_int uiAdvancedPeerAckPoint
List_S sSendBuffer
Boolean_E eForwardTsnNeeded
Boolean_E eSendNewDataChunks
Boolean_E eMarkedChunksPending
Boolean_E eApplyMaxBurst
DataSource_E eDataSource
u_int uiBurstLength
u_int uiMyRwnd
u_int uiCumAck
u_int uiHighestRecvTsn
List_S sRecvTsnBlockList
List_S sDupTsnList
int iNumInStreams
SctpInStream_S * spInStreams
Boolean_E eStartOfPacket
int iDataPktCountSinceLastSack
Boolean_E eSackChunkNeeded
SackGenTimer * opSackGenTimer
u_int uiDebugMask
int iDebugFileIndex
u_int uiPathMaxRetrans
u_int uiAssociationMaxRetrans
u_int uiMaxInitRetransmits
Boolean_E eOneHeartbeatTimer
u_int uiHeartbeatInterval
u_int uiMtu
u_int uiInitialRwnd
int iInitialSsthresh
u_int uiIpHeaderSize
u_int uiDataChunkSize
u_int uiNumOutStreams
Boolean_E eUseDelayedSacks
MaxBurstUsage_E eUseMaxBurst
int iInitialCwnd
u_int uiNumUnrelStreams
u_int uiReliability
Boolean_E eUnordered
Boolean_E eRtxToAlt
Boolean_E eTraceAll
TracedInt tiCwnd
TracedDouble tdRto
TracedInt tiErrorCount
u_int uiMaxPayloadSize
u_int uiMaxDataSize
FILE * fhpDebugFile
u_int uiNumChunks
SctpTrace_S * spSctpTrace

Constructor & Destructor Documentation

SctpAgent::SctpAgent (    ) 
 

SctpAgent::~SctpAgent (    ) 
 


Member Function Documentation

void SctpAgent::AddDestination (  int   ,
int   
)  [protected]
 

void SctpAgent::AddInterface (  int   ,
int   ,
NsObject *   ,
NsObject *   
)  [protected]
 

void SctpAgent::AddToSendBuffer (  SctpDataChunkHdr_S *   ,
int   ,
u_int   ,
SctpDest_S *   
)  [protected, virtual]
 

Reimplemented in MultipleFastRtxSctpAgent, and TimestampSctpAgent.

void SctpAgent::AdjustCwnd (  SctpDest_S *    )  [protected]
 

void SctpAgent::AdvancePeerAckPoint (    )  [protected]
 

Boolean_E SctpAgent::AnyMarkedChunks (    )  [protected]
 

int SctpAgent::BundleControlChunks (  u_char *    )  [protected, virtual]
 

Reimplemented in TimestampSctpAgent.

double SctpAgent::CalcHeartbeatTime (  double    )  [protected]
 

void SctpAgent::ClearList (  List_S *    )  [protected]
 

void SctpAgent::Close (    )  [protected]
 

int SctpAgent::command (  int    argc,
const char *const *    argv
)  [virtual]
 

Reimplemented from Agent.

u_int SctpAgent::ControlChunkReservation (    )  [protected, virtual]
 

Reimplemented in TimestampSctpAgent.

void SctpAgent::CwndDegradeTimerExpiration (  SctpDest_S *    ) 
 

int SctpAgent::delay_bind_dispatch (  const char *    varName,
const char *    localName,
TclObject *    tracer
)  [protected, virtual]
 

Reimplemented from Agent.

Reimplemented in HbAfterRtoSctpAgent, MultipleFastRtxSctpAgent, NewRenoSctpAgent, and TimestampSctpAgent.

void SctpAgent::delay_bind_init_all (    )  [protected, virtual]
 

Reimplemented from Agent.

Reimplemented in HbAfterRtoSctpAgent, MultipleFastRtxSctpAgent, NewRenoSctpAgent, and TimestampSctpAgent.

void SctpAgent::DeleteNode (  List_S *   ,
Node_S *   
)  [protected]
 

void SctpAgent::FastRtx (    )  [protected, virtual]
 

Reimplemented in NewRenoSctpAgent.

int SctpAgent::ForceSource (  int    )  [protected]
 

int SctpAgent::GenChunk (  SctpChunkType_E   ,
u_char *   
)  [protected]
 

int SctpAgent::GenMultipleDataChunks (  u_char *   ,
int   
)  [protected]
 

int SctpAgent::GenOneDataChunk (  u_char *    )  [protected]
 

u_int SctpAgent::GetNextDataChunkSize (    )  [protected]
 

SctpDest_S * SctpAgent::GetNextDest (  SctpDest_S *    )  [protected]
 

SctpDest_S * SctpAgent::GetReplyDestination (  hdr_ip *    )  [protected]
 

void SctpAgent::HeartbeatGenTimerExpiration (  double   ,
SctpDest_S *   
) 
 

void SctpAgent::InsertDuplicateTsn (  u_int    )  [protected]
 

void SctpAgent::InsertInStreamBuffer (  List_S *   ,
SctpDataChunkHdr_S *   
)  [protected]
 

void SctpAgent::InsertNode (  List_S *   ,
Node_S *   ,
Node_S *   ,
Node_S *   
)  [protected]
 

Boolean_E SctpAgent::IsDuplicateChunk (  u_int    )  [protected]
 

void SctpAgent::MarkChunkForRtx (  SctpSendBufferNode_S *    )  [protected]
 

void SctpAgent::NextChunk (  u_char **   ,
int *   
)  [protected]
 

void SctpAgent::OptionReset (    )  [protected, virtual]
 

Reimplemented in NewRenoSctpAgent, and TimestampSctpAgent.

void SctpAgent::PassToStream (  SctpDataChunkHdr_S *    )  [protected]
 

void SctpAgent::PassToUpperLayer (  SctpDataChunkHdr_S *    )  [protected]
 

int SctpAgent::ProcessChunk (  u_char *   ,
u_char **   
)  [protected]
 

void SctpAgent::ProcessCookieAckChunk (  SctpCookieAckChunk_S *    )  [protected]
 

void SctpAgent::ProcessCookieEchoChunk (  SctpCookieEchoChunk_S *    )  [protected]
 

void SctpAgent::ProcessDataChunk (  SctpDataChunkHdr_S *    )  [protected]
 

void SctpAgent::ProcessForwardTsnChunk (  SctpForwardTsnChunk_S *    )  [protected]
 

Boolean_E SctpAgent::ProcessGapAckBlocks (  u_char *   ,
Boolean_E   
)  [protected, virtual]
 

Reimplemented in MultipleFastRtxSctpAgent, NewRenoSctpAgent, and TimestampSctpAgent.

void SctpAgent::ProcessHeartbeatAckChunk (  SctpHeartbeatChunk_S *    )  [protected]
 

void SctpAgent::ProcessInitAckChunk (  u_char *    )  [protected]
 

void SctpAgent::ProcessInitChunk (  u_char *    )  [protected]
 

void SctpAgent::ProcessOptionChunk (  u_char *    )  [protected, virtual]
 

Reimplemented in TimestampSctpAgent.

void SctpAgent::ProcessSackChunk (  u_char *    )  [protected, virtual]
 

Reimplemented in NewRenoSctpAgent.

void SctpAgent::recv (  Packet *    pkt,
Handler *   
)  [virtual]
 

Reimplemented from Agent.

void SctpAgent::Reset (    )  [protected]
 

void SctpAgent::RttUpdate (  double   ,
SctpDest_S *   
)  [protected]
 

void SctpAgent::RtxMarkedChunks (  SctpRtxLimit_E    )  [protected, virtual]
 

Reimplemented in TimestampSctpAgent.

void SctpAgent::SackGenTimerExpiration (    ) 
 

void SctpAgent::SctpAgent::DumpSendBuffer (    )  [protected]
 

void SctpAgent::SendBufferDequeueUpTo (  u_int    )  [protected, virtual]
 

Reimplemented in MultipleFastRtxSctpAgent, NewRenoSctpAgent, and TimestampSctpAgent.

void SctpAgent::SendHeartbeat (  SctpDest_S *    )  [protected]
 

void SctpAgent::sendmsg (  int    nbytes,
const char *    flags = 0
)  [virtual]
 

Reimplemented from Agent.

void SctpAgent::SendMuch (    )  [protected]
 

void SctpAgent::SendPacket (  u_char *   ,
int   ,
SctpDest_S *   
)  [protected]
 

void SctpAgent::SetDebugOutFile (    )  [protected]
 

void SctpAgent::SetDestination (  SctpDest_S *    )  [protected]
 

int SctpAgent::SetPrimary (  int    )  [protected]
 

void SctpAgent::SetSource (  SctpDest_S *    )  [protected]
 

void SctpAgent::StartT3RtxTimer (  SctpDest_S *    )  [protected]
 

void SctpAgent::StopT3RtxTimer (  SctpDest_S *    )  [protected]
 

void SctpAgent::T1CookieTimerExpiration (    ) 
 

void SctpAgent::T1InitTimerExpiration (    ) 
 

void SctpAgent::Timeout (  SctpChunkType_E   ,
SctpDest_S *   
)  [virtual]
 

Reimplemented in HbAfterRtoSctpAgent.

void SctpAgent::TimeoutRtx (  SctpDest_S *    )  [protected]
 

u_int SctpAgent::TotalOutstanding (    )  [protected]
 

void SctpAgent::trace (  TracedVar *    )  [protected, virtual]
 

Reimplemented from Agent.

void SctpAgent::TraceAll (    )  [protected]
 

void SctpAgent::TraceVar (  const char *    )  [protected]
 

void SctpAgent::UpdateAllStreams (    )  [protected]
 

void SctpAgent::UpdateCumAck (    )  [protected]
 

Boolean_E SctpAgent::UpdateHighestTsn (  u_int    )  [protected]
 

void SctpAgent::UpdateRecvTsnBlocks (  u_int    uiTsn )  [protected]
 

Helper function to do the correct update the received tsn blocks. This function will also call UpdateCumAck() when necessary.


Member Data Documentation

Boolean_E SctpAgent::eApplyMaxBurst [protected]
 

DataSource_E SctpAgent::eDataSource [protected]
 

Boolean_E SctpAgent::eForceSource [protected]
 

Boolean_E SctpAgent::eForwardTsnNeeded [protected]
 

Boolean_E SctpAgent::eMarkedChunksPending [protected]
 

Boolean_E SctpAgent::eOneHeartbeatTimer [protected]
 

Boolean_E SctpAgent::eRtxToAlt [protected]
 

Boolean_E SctpAgent::eSackChunkNeeded [protected]
 

Boolean_E SctpAgent::eSendNewDataChunks [protected]
 

Boolean_E SctpAgent::eStartOfPacket [protected]
 

SctpState_E SctpAgent::eState [protected]
 

Boolean_E SctpAgent::eTraceAll [protected]
 

Boolean_E SctpAgent::eUnordered [protected]
 

Boolean_E SctpAgent::eUseDelayedSacks [protected]
 

MaxBurstUsage_E SctpAgent::eUseMaxBurst [protected]
 

FILE* SctpAgent::fhpDebugFile [protected]
 

int SctpAgent::iAssocErrorCount [protected]
 

int SctpAgent::iDataPktCountSinceLastSack [protected]
 

int SctpAgent::iDebugFileIndex [protected]
 

int SctpAgent::iInitialCwnd [protected]
 

int SctpAgent::iInitialSsthresh [protected]
 

int SctpAgent::iInitTryCount [protected]
 

int SctpAgent::iNumInStreams [protected]
 

Classifier* SctpAgent::opCoreTarget [protected]
 

HeartbeatGenTimer* SctpAgent::opHeartbeatGenTimer [protected]
 

HeartbeatTimeoutTimer* SctpAgent::opHeartbeatTimeoutTimer [protected]
 

SackGenTimer* SctpAgent::opSackGenTimer [protected]
 

T1CookieTimer* SctpAgent::opT1CookieTimer [protected]
 

T1InitTimer* SctpAgent::opT1InitTimer [protected]
 

List_S SctpAgent::sAppLayerBuffer [protected]
 

List_S SctpAgent::sDestList [protected]
 

List_S SctpAgent::sDupTsnList [protected]
 

List_S SctpAgent::sInterfaceList [protected]
 

SctpInStream_S* SctpAgent::spInStreams [protected]
 

SctpDest_S* SctpAgent::spNewTxDest [protected]
 

SctpOutStream_S* SctpAgent::spOutStreams [protected]
 

SctpDest_S* SctpAgent::spPrimaryDest [protected]
 

SctpDest_S* SctpAgent::spReplyDest [protected]
 

SctpTrace_S* SctpAgent::spSctpTrace [protected]
 

List_S SctpAgent::sRecvTsnBlockList [protected]
 

List_S SctpAgent::sSendBuffer [protected]
 

TracedDouble SctpAgent::tdRto [protected]
 

TracedInt SctpAgent::tiCwnd [protected]
 

TracedInt SctpAgent::tiErrorCount [protected]
 

u_int SctpAgent::uiAdvancedPeerAckPoint [protected]
 

u_int SctpAgent::uiAssociationMaxRetrans [protected]
 

u_int SctpAgent::uiBurstLength [protected]
 

u_int SctpAgent::uiCumAck [protected]
 

u_int SctpAgent::uiCumAckPoint [protected]
 

u_int SctpAgent::uiDataChunkSize [protected]
 

u_int SctpAgent::uiDebugMask [protected]
 

u_int SctpAgent::uiHeartbeatInterval [protected]
 

u_int SctpAgent::uiHighestRecvTsn [protected]
 

u_int SctpAgent::uiInitialRwnd [protected]
 

u_int SctpAgent::uiIpHeaderSize [protected]
 

u_int SctpAgent::uiMaxDataSize [protected]
 

u_int SctpAgent::uiMaxInitRetransmits [protected]
 

u_int SctpAgent::uiMaxPayloadSize [protected]
 

u_int SctpAgent::uiMtu [protected]
 

u_int SctpAgent::uiMyRwnd [protected]
 

u_int SctpAgent::uiNextTsn [protected]
 

u_int SctpAgent::uiNumChunks [protected]
 

u_int SctpAgent::uiNumOutStreams [protected]
 

u_int SctpAgent::uiNumUnrelStreams [protected]
 

u_int SctpAgent::uiPathMaxRetrans [protected]
 

u_int SctpAgent::uiPeerRwnd [protected]
 

u_int SctpAgent::uiReliability [protected]
 

u_short SctpAgent::usNextStreamId [protected]
 


The documentation for this class was generated from the following files:
This document is generated by doxygen.