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_SGetNextDest (SctpDest_S *)
double CalcHeartbeatTime (double)
void SetSource (SctpDest_S *)
void SetDestination (SctpDest_S *)
void SendPacket (u_char *, int, SctpDest_S *)
SctpDest_SGetReplyDestination (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
ClassifieropCoreTarget
List_S sInterfaceList
List_S sDestList
SctpDest_SspPrimaryDest
SctpDest_SspNewTxDest
SctpDest_SspReplyDest
Boolean_E eForceSource
int iAssocErrorCount
HeartbeatGenTimeropHeartbeatGenTimer
HeartbeatTimeoutTimeropHeartbeatTimeoutTimer
T1InitTimeropT1InitTimer
T1CookieTimeropT1CookieTimer
int iInitTryCount
u_int uiNextTsn
u_short usNextStreamId
SctpOutStream_SspOutStreams
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_SspInStreams
Boolean_E eStartOfPacket
int iDataPktCountSinceLastSack
Boolean_E eSackChunkNeeded
SackGenTimeropSackGenTimer
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_SspSctpTrace

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.