RINASim  October 2016
Documentation of framework for OMNeT++
RA Class Reference

#include <RA.h>

Inheritance diagram for RA:
RABase

Public Member Functions

virtual void createNM1Flow (Flow *flow)
 
virtual void createNM1FlowWithoutAllocate (Flow *flow)
 
virtual void removeNM1Flow (Flow *flow)
 
virtual void removeNM1FlowBindings (NM1FlowTableItem *ftItem)
 
virtual void createNFlow (Flow *flow)
 
virtual bool bindNFlowToNM1Flow (Flow *flow)
 
virtual void blockNM1PortOutput (NM1FlowTableItem *ftItem)
 
virtual void unblockNM1PortOutput (NM1FlowTableItem *ftItem)
 
virtual NM1FlowTablegetFlowTable ()
 
virtual bool hasFlow (std::string addr, std::string qosId)
 
virtual bool sleepFlow (Flow *flow, simtime_t wakeUp)
 
virtual void postNFlowAllocation (Flow *flow)
 
virtual void postNM1FlowAllocation (NM1FlowTableItem *ftItem)
 
- Public Member Functions inherited from RABase
 RABase ()
 
virtual ~RABase ()
 
const QoSCubeSetgetQoSCubes () const
 
const QoSCubegetQoSCubeById (std::string qosId) const
 

Protected Member Functions

virtual void initialize (int stage)
 
int numInitStages () const
 
virtual void handleMessage (cMessage *msg)
 

Private Member Functions

void initQoSCubes ()
 
QoSReqinitQoSReqById (const char *id)
 
void initSignalsAndListeners ()
 
void initFlowAlloc ()
 
void setRMTMode ()
 
void bindMediumToRMT ()
 
RMTPortbindNM1FlowToRMT (cModule *ipc, FABase *fab, Flow *flow)
 
std::string normalizePortID (std::string ipcName, int flowPortID)
 
void signalizeCreateFlowPositiveToRIBd (Flow *flow)
 
void signalizeCreateFlowNegativeToRIBd (Flow *flow)
 
void signalizeSlowdownRequestToRIBd (cPacket *pdu)
 
void signalizeSlowdownRequestToEFCP (cObject *obj)
 
void signalizeMgmtAllocToEnrollment (APNIPair *apnip)
 
void signalizeMgmtDeallocToEnrollment (Flow *flow)
 

Private Attributes

DAdifAllocator
 
cModule * thisIPC
 
cModule * rmtModule
 
RMTrmt
 
RMTModuleAllocatorrmtAllocator
 
FABasefa
 
NM1FlowTableflowTable
 
QueueAllocBaseqAllocPolicy
 
IntPDUFGfwdtg
 
std::string processName
 
std::map< simtime_t, std::list< Flow * > * > preAllocs
 
std::map< simtime_t, std::list< Flow * > * > preDeallocs
 
std::map< std::string, std::list< Flow * > * > pendingFlows
 
QoSReq mgmtReqs
 
simsignal_t sigRACreFloPosi
 
simsignal_t sigRACreFloNega
 
simsignal_t sigRASDReqFromRMT
 
simsignal_t sigRASDReqFromRIB
 
simsignal_t sigRAMgmtAllocd
 
simsignal_t sigRAMgmtDeallocd
 
LisRACreFlowlisRACreFlow
 
LisRAAllocResPoslisRAAllocResPos
 
LisRACreAllocResPoslisRACreAllocResPos
 
LisRACreResPosilisRACreResPosi
 
LisRADelFlowlisRADelFlow
 
LisEFCPStopSendinglisEFCPStopSending
 
LisEFCPStartSendinglisEFCPStartSending
 
LisRMTSlowdownRequestlisRMTSDReq
 
LisRIBCongNotiflisRIBCongNotif
 

Additional Inherited Members

- Protected Attributes inherited from RABase
QoSCubeSet QoSCubes
 

Detailed Description

Definition at line 61 of file RA.h.

Member Function Documentation

void RA::bindMediumToRMT ( )
private

Connects the medium defined in NED to the RMT module. Used only for bottom IPC processes in a computing systems.

Definition at line 389 of file RA.cc.

Referenced by setRMTMode().

bool RA::bindNFlowToNM1Flow ( Flow flow)
virtual

Assigns a suitable (N-1)-flow to the (N)-flow (and creates one if there isn't any)

Parameters
flowspecified flow object
Returns
true if an interface or an (N-1)-flow is ready to serve, false otherwise

Implements RABase.

Definition at line 732 of file RA.cc.

RMTPort * RA::bindNM1FlowToRMT ( cModule *  bottomIPC,
FABase fab,
Flow flow 
)
private

Connects the specified (N-1)-flow to the RMT.

Parameters
bottomIPCIPC process containing the (N-1)-flow
fabthe (N-1)-FA
flowthe (N-1)-flow
Returns
RMT port (handle) for the (N-1)-flow

Definition at line 427 of file RA.cc.

Referenced by createNM1Flow(), and createNM1FlowWithoutAllocate().

void RA::blockNM1PortOutput ( NM1FlowTableItem ftItem)
virtual

Implements RABase.

Definition at line 796 of file RA.cc.

void RA::createNFlow ( Flow flow)
virtual

Invokes allocation of an (N)-flow (used for allocation of management flows).

Parameters
flowspecified flow object

Implements RABase.

Definition at line 477 of file RA.cc.

Referenced by handleMessage().

void RA::createNM1Flow ( Flow flow)
virtual

Invokes allocation of an (N-1)-flow (this is the mechanism behind Allocate() call).

Parameters
flowspecified flow object

Implements RABase.

Definition at line 487 of file RA.cc.

Referenced by bindNFlowToNM1Flow(), and handleMessage().

void RA::createNM1FlowWithoutAllocate ( Flow flow)
virtual

Handles receiver-side allocation of an (N-1)-flow requested by other IPC. (this is the mechanism behind answering an M_CREATE request).

Parameters
flowspecified flow object

Implements RABase.

Definition at line 564 of file RA.cc.

NM1FlowTable * RA::getFlowTable ( )
virtual

Implements RABase.

Definition at line 843 of file RA.cc.

void RA::handleMessage ( cMessage *  msg)
protectedvirtual

Implements RABase.

Definition at line 81 of file RA.cc.

bool RA::hasFlow ( std::string  addr,
std::string  qosId 
)
virtual

Implements RABase.

Definition at line 848 of file RA.cc.

void RA::initFlowAlloc ( )
private

Definition at line 182 of file RA.cc.

Referenced by initialize().

void RA::initialize ( int  stage)
protectedvirtual

Implements RABase.

Definition at line 43 of file RA.cc.

void RA::initQoSCubes ( )
private

Initializes QoS cubes from given XML configuration directive.

Definition at line 303 of file RA.cc.

Referenced by initialize().

QoSReq * RA::initQoSReqById ( const char *  id)
private

Initializes QoS requirement identified by given id

Parameters
idID of the QoSReq to be initialized

Definition at line 361 of file RA.cc.

Referenced by initFlowAlloc().

void RA::initSignalsAndListeners ( )
private

Definition at line 141 of file RA.cc.

Referenced by initialize().

std::string RA::normalizePortID ( std::string  ipcName,
int  flowPortID 
)
private

Prefixes given port-id (originally returned by an FAI) with IPC process's ID to prevent name collisions in current IPC process.

Parameters
ipcNamemodule identifier of an underlying IPC process
flowPortIDoriginal portId to be expanded
Returns
normalized port-id

Definition at line 465 of file RA.cc.

Referenced by bindNM1FlowToRMT().

int RA::numInitStages ( ) const
inlineprotected

Definition at line 83 of file RA.h.

void RA::postNFlowAllocation ( Flow flow)
virtual

Event hook handler invoked after an (N)-flow is successfully established

Parameters
flowestablished (N)-flow

Implements RABase.

Definition at line 637 of file RA.cc.

void RA::postNM1FlowAllocation ( NM1FlowTableItem ftItem)
virtual

Event hook handler invoked after an (N-1)-flow is successfully established

Parameters
flowestablished (N-1)-flow

Implements RABase.

Definition at line 663 of file RA.cc.

void RA::removeNM1Flow ( Flow flow)
virtual

Removes specified (N-1)-flow and bindings (this is the mechanism behind Deallocate() call).

Parameters
flowspecified flow object

Implements RABase.

Definition at line 714 of file RA.cc.

Referenced by handleMessage().

void RA::removeNM1FlowBindings ( NM1FlowTableItem ftItem)
virtual

Implements RABase.

Definition at line 681 of file RA.cc.

Referenced by removeNM1Flow().

void RA::setRMTMode ( )
private

Sets up RMT's mode of operation by "recursion level" of this IPC process

Definition at line 277 of file RA.cc.

Referenced by initialize().

void RA::signalizeCreateFlowNegativeToRIBd ( Flow flow)
private

Definition at line 813 of file RA.cc.

Referenced by createNM1FlowWithoutAllocate().

void RA::signalizeCreateFlowPositiveToRIBd ( Flow flow)
private

Definition at line 808 of file RA.cc.

Referenced by createNM1FlowWithoutAllocate().

void RA::signalizeMgmtAllocToEnrollment ( APNIPair apnip)
private

Definition at line 831 of file RA.cc.

Referenced by postNM1FlowAllocation().

void RA::signalizeMgmtDeallocToEnrollment ( Flow flow)
private

Definition at line 837 of file RA.cc.

void RA::signalizeSlowdownRequestToEFCP ( cObject *  obj)
privatevirtual

Implements RABase.

Definition at line 824 of file RA.cc.

void RA::signalizeSlowdownRequestToRIBd ( cPacket *  pdu)
privatevirtual

Implements RABase.

Definition at line 818 of file RA.cc.

bool RA::sleepFlow ( Flow flow,
simtime_t  wakeUp 
)
virtual

Definition at line 852 of file RA.cc.

void RA::unblockNM1PortOutput ( NM1FlowTableItem ftItem)
virtual

Implements RABase.

Definition at line 802 of file RA.cc.

Member Data Documentation

DA* RA::difAllocator
private

Definition at line 87 of file RA.h.

Referenced by createNM1Flow(), createNM1FlowWithoutAllocate(), and initialize().

FABase* RA::fa
private

Definition at line 92 of file RA.h.

Referenced by createNFlow(), and initialize().

IntPDUFG* RA::fwdtg
private
LisEFCPStartSending* RA::lisEFCPStartSending
private

Definition at line 127 of file RA.h.

Referenced by initSignalsAndListeners().

LisEFCPStopSending* RA::lisEFCPStopSending
private

Definition at line 126 of file RA.h.

Referenced by initSignalsAndListeners().

LisRAAllocResPos* RA::lisRAAllocResPos
private

Definition at line 122 of file RA.h.

Referenced by initSignalsAndListeners().

LisRACreAllocResPos* RA::lisRACreAllocResPos
private

Definition at line 123 of file RA.h.

Referenced by initSignalsAndListeners().

LisRACreFlow* RA::lisRACreFlow
private

Definition at line 121 of file RA.h.

Referenced by initSignalsAndListeners().

LisRACreResPosi* RA::lisRACreResPosi
private

Definition at line 124 of file RA.h.

Referenced by initSignalsAndListeners().

LisRADelFlow* RA::lisRADelFlow
private

Definition at line 125 of file RA.h.

Referenced by initSignalsAndListeners().

LisRIBCongNotif* RA::lisRIBCongNotif
private

Definition at line 130 of file RA.h.

Referenced by initSignalsAndListeners().

LisRMTSlowdownRequest* RA::lisRMTSDReq
private

Definition at line 129 of file RA.h.

Referenced by initSignalsAndListeners().

QoSReq RA::mgmtReqs
private

Definition at line 103 of file RA.h.

Referenced by initFlowAlloc(), and initQoSCubes().

std::map<std::string, std::list<Flow*>*> RA::pendingFlows
private

Definition at line 102 of file RA.h.

std::map<simtime_t, std::list<Flow*>*> RA::preAllocs
private

Definition at line 100 of file RA.h.

Referenced by handleMessage(), initFlowAlloc(), and sleepFlow().

std::map<simtime_t, std::list<Flow*>*> RA::preDeallocs
private

Definition at line 101 of file RA.h.

Referenced by handleMessage(), initFlowAlloc(), and sleepFlow().

std::string RA::processName
private

Definition at line 99 of file RA.h.

Referenced by bindNFlowToNM1Flow(), initFlowAlloc(), and initialize().

QueueAllocBase* RA::qAllocPolicy
private

Definition at line 94 of file RA.h.

Referenced by bindMediumToRMT(), bindNM1FlowToRMT(), initialize(), and postNFlowAllocation().

RMT* RA::rmt
private

Definition at line 90 of file RA.h.

Referenced by bindNFlowToNM1Flow(), hasFlow(), initialize(), postNFlowAllocation(), and setRMTMode().

RMTModuleAllocator* RA::rmtAllocator
private
cModule* RA::rmtModule
private

Definition at line 89 of file RA.h.

Referenced by bindMediumToRMT(), bindNM1FlowToRMT(), initialize(), and removeNM1FlowBindings().

simsignal_t RA::sigRACreFloNega
private

Definition at line 115 of file RA.h.

Referenced by initSignalsAndListeners(), and signalizeCreateFlowNegativeToRIBd().

simsignal_t RA::sigRACreFloPosi
private

Definition at line 114 of file RA.h.

Referenced by initSignalsAndListeners(), and signalizeCreateFlowPositiveToRIBd().

simsignal_t RA::sigRAMgmtAllocd
private

Definition at line 118 of file RA.h.

Referenced by initSignalsAndListeners(), and signalizeMgmtAllocToEnrollment().

simsignal_t RA::sigRAMgmtDeallocd
private

Definition at line 119 of file RA.h.

Referenced by initSignalsAndListeners(), and signalizeMgmtDeallocToEnrollment().

simsignal_t RA::sigRASDReqFromRIB
private

Definition at line 117 of file RA.h.

Referenced by initSignalsAndListeners(), and signalizeSlowdownRequestToEFCP().

simsignal_t RA::sigRASDReqFromRMT
private

Definition at line 116 of file RA.h.

Referenced by initSignalsAndListeners(), and signalizeSlowdownRequestToRIBd().

cModule* RA::thisIPC
private

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