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

#include <SctpAlg.h>

Inheritance diagram for inet::sctp::SctpAlg:
inet::sctp::SctpAlgorithm

Public Member Functions

 SctpAlg ()
 Ctor. More...
 
virtual ~SctpAlg ()
 Virtual dtor. More...
 
virtual SctpStateVariablescreateStateVariables () override
 Creates and returns a SctpStateVariables object. More...
 
virtual void established (bool active) override
 
virtual void connectionClosed () override
 
virtual void processTimer (cMessage *timer, SctpEventCode &event) override
 
virtual void sendCommandInvoked (SctpPathVariables *path) override
 
virtual void receivedDataAck (uint32_t firstSeqAcked) override
 
virtual void receivedDuplicateAck () override
 
virtual void receivedAckForDataNotYetSent (uint32_t seq) override
 
virtual void sackSent () override
 
virtual void dataSent (uint32_t fromseq) override
 
- Public Member Functions inherited from inet::sctp::SctpAlgorithm
 SctpAlgorithm ()
 Ctor. More...
 
virtual ~SctpAlgorithm ()
 Virtual dtor. More...
 
void setAssociation (SctpAssociation *_assoc)
 
virtual void initialize ()
 

Protected Attributes

SctpAlgStateVariablesstate
 
- Protected Attributes inherited from inet::sctp::SctpAlgorithm
SctpAssociationassoc
 
SctpQueuetransmissionQ
 
SctpQueueretransmissionQ
 

Constructor & Destructor Documentation

◆ SctpAlg()

inet::sctp::SctpAlg::SctpAlg ( )

Ctor.

18  : SctpAlgorithm()
19 {
20  state = nullptr;
21 }

◆ ~SctpAlg()

inet::sctp::SctpAlg::~SctpAlg ( )
virtual

Virtual dtor.

24 {
25  EV_DEBUG << "Destructor SctpAlg" << endl;
26  // Note: don't delete "state" here, it'll be deleted from SctpAssociation
27 }

Member Function Documentation

◆ connectionClosed()

void inet::sctp::SctpAlg::connectionClosed ( )
overridevirtual

Implements inet::sctp::SctpAlgorithm.

44 {
45 }

◆ createStateVariables()

SctpStateVariables * inet::sctp::SctpAlg::createStateVariables ( )
overridevirtual

Creates and returns a SctpStateVariables object.

Implements inet::sctp::SctpAlgorithm.

30 {
31  ASSERT(state == nullptr);
32  state = new SctpAlgStateVariables();
33  return state;
34 }

◆ dataSent()

void inet::sctp::SctpAlg::dataSent ( uint32_t  fromseq)
overridevirtual

Implements inet::sctp::SctpAlgorithm.

81 {
82 }

◆ established()

void inet::sctp::SctpAlg::established ( bool  active)
overridevirtual

Implements inet::sctp::SctpAlgorithm.

37 {
38  if (active) {
39  EV_INFO << "Completing connection: sending DATA" << endl;
40  }
41 }

◆ processTimer()

void inet::sctp::SctpAlg::processTimer ( cMessage *  timer,
SctpEventCode event 
)
overridevirtual

Implements inet::sctp::SctpAlgorithm.

48 {
49  EV_INFO << "no extra timers in this SCTP variant" << endl;
50 }

◆ receivedAckForDataNotYetSent()

void inet::sctp::SctpAlg::receivedAckForDataNotYetSent ( uint32_t  seq)
overridevirtual

Implements inet::sctp::SctpAlgorithm.

72 {
73  EV_INFO << "ACK acks something not yet sent, sending immediate ACK" << endl;
74 }

◆ receivedDataAck()

void inet::sctp::SctpAlg::receivedDataAck ( uint32_t  firstSeqAcked)
overridevirtual

Implements inet::sctp::SctpAlgorithm.

63 {
64 }

◆ receivedDuplicateAck()

void inet::sctp::SctpAlg::receivedDuplicateAck ( )
overridevirtual

Implements inet::sctp::SctpAlgorithm.

67 {
68  EV_INFO << "Duplicate ACK #" << endl;
69 }

◆ sackSent()

void inet::sctp::SctpAlg::sackSent ( )
overridevirtual

Implements inet::sctp::SctpAlgorithm.

77 {
78 }

◆ sendCommandInvoked()

void inet::sctp::SctpAlg::sendCommandInvoked ( SctpPathVariables path)
overridevirtual

Implements inet::sctp::SctpAlgorithm.

53 {
54  if (state->allowCMT) {
55  assoc->sendOnAllPaths(path);
56  }
57  else {
58  assoc->sendOnPath(path);
59  }
60 }

Member Data Documentation

◆ state

SctpAlgStateVariables* inet::sctp::SctpAlg::state
protected

The documentation for this class was generated from the following files:
inet::sctp::SctpAlgorithm::SctpAlgorithm
SctpAlgorithm()
Ctor.
Definition: SctpAlgorithm.h:34
inet::sctp::SctpAlg::state
SctpAlgStateVariables * state
Definition: SctpAlg.h:29
inet::sctp::SctpAssociation::sendOnAllPaths
void sendOnAllPaths(SctpPathVariables *firstPath)
Definition: SctpAssociationSendAll.cc:269
inet::sctp::SctpStateVariables::allowCMT
bool allowCMT
Definition: SctpAssociation.h:694
inet::sctp::SctpAlgorithm::assoc
SctpAssociation * assoc
Definition: SctpAlgorithm.h:26
inet::sctp::SctpAssociation::sendOnPath
void sendOnPath(SctpPathVariables *pathId, const bool firstPass=true)
Utility: Send data from sendQueue.
Definition: SctpAssociationSendAll.cc:659