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

#include <RMT.h>

Inheritance diagram for RMT:
RMTBase

Public Member Functions

virtual ~RMT ()
 
virtual bool getRelayStatus ()
 
virtual bool isOnWire ()
 
virtual void preQueueArrival (cObject *obj)
 
virtual void postQueueArrival (cObject *obj)
 
virtual void preQueueDeparture (cObject *obj)
 
virtual void postQueueDeparture (cObject *obj)
 
virtual void writeToPort (cObject *obj)
 
virtual void readFromPort (cObject *obj)
 
- Public Member Functions inherited from RMTBase
 RMTBase ()
 
virtual ~RMTBase ()
 

Protected Member Functions

virtual void initialize ()
 
virtual void handleMessage (cMessage *msg)
 
virtual void finish ()
 
void recDel (cPacket *p)
 

Private Types

enum  TraceEventType {
  MSG_SEND = 's', MSG_RECEIVE = 'r', MSG_ENQUEUE = '+', MSG_DEQUEUE = '-',
  MSG_DROP = 'd'
}
 

Private Member Functions

void processMessage (cMessage *msg)
 
void relayPDUToPort (PDU *msg)
 
void relayPDUToEFCPI (PDU *msg)
 
std::vector< RMTPort * > fwTableLookup (const PDU *pdu)
 
void tracePDUEvent (const cPacket *pkt, TraceEventType eventType)
 
void setOnWire (bool status)
 
void enableRelay ()
 
void disableRelay ()
 
void createEfcpiGate (unsigned int efcpiId)
 
void deleteEfcpiGate (unsigned int efcpiId)
 

Private Attributes

IntPDUForwardingfwd
 
RMTModuleAllocatorrmtAllocator
 
bool relayOn
 
bool onWire
 
EfcpiMapping efcpiOut
 
EfcpiMapping efcpiIn
 
RMTQMonitorBaseqMonPolicy
 
RMTMaxQBasemaxQPolicy
 
RMTSchedulingBaseschedPolicy
 
QueueAllocBaseqAllocPolicy
 
QueueIDGenBasequeueIdGenerator
 
AddressComparatorBaseaddrComparator
 
bool tracing
 
std::deque< cMessage * > invalidPDUs
 
simsignal_t sigRMTNoConnID
 
simsignal_t sigRMTPacketError
 
LisRMTQueuePDUPreRcvdlisRMTQueuePDUPreRcvd
 
LisRMTQueuePDUPostRcvdlisRMTQueuePDUPostRcvd
 
LisRMTQueuePDUPreSendlisRMTQueuePDUPreSend
 
LisRMTQueuePDUSentlisRMTQueuePDUSent
 
LisRMTPortReadyToServelisRMTPortReadyToServe
 
LisRMTPortReadyForReadlisRMTPortReadyForRead
 

Friends

class RA
 
class FAI
 

Detailed Description

Definition at line 60 of file RMT.h.

Member Enumeration Documentation

enum RMT::TraceEventType
private
Enumerator
MSG_SEND 
MSG_RECEIVE 
MSG_ENQUEUE 
MSG_DEQUEUE 
MSG_DROP 

Definition at line 103 of file RMT.h.

Constructor & Destructor Documentation

RMT::~RMT ( )
virtual

Definition at line 40 of file RMT.cc.

Member Function Documentation

void RMT::createEfcpiGate ( unsigned int  efcpiId)
private

Creates a gate to be used for connection to an EFCP instance.

Parameters
efcpiIdCEP-id to be used in the gate's name

Definition at line 339 of file RMT.cc.

Referenced by FAI::createBindings().

void RMT::deleteEfcpiGate ( unsigned int  efcpiId)
private

Removes a gate used for an EFCP instance.

Parameters
efcpiIdCEP-id of the gate meant for removal

Definition at line 373 of file RMT.cc.

Referenced by FAI::deleteBindings().

void RMT::disableRelay ( )
inlineprivate

Definition at line 131 of file RMT.h.

void RMT::enableRelay ( )
inlineprivate

Definition at line 130 of file RMT.h.

Referenced by RA::setRMTMode().

void RMT::finish ( )
protectedvirtual

Notify the user of PDUs left in this RMT on simulation end.

Definition at line 120 of file RMT.cc.

std::vector< RMTPort * > RMT::fwTableLookup ( const PDU pdu)
private

A wrapper for forwarding table lookup.

Parameters
pduPDU to forward
Returns
output ports

Definition at line 404 of file RMT.cc.

Referenced by relayPDUToPort().

virtual bool RMT::getRelayStatus ( )
inlinevirtual

Implements RMTBase.

Definition at line 69 of file RMT.h.

void RMT::handleMessage ( cMessage *  msg)
protectedvirtual

Implements RMTBase.

Definition at line 552 of file RMT.cc.

void RMT::initialize ( )
protectedvirtual

Implements RMTBase.

Definition at line 50 of file RMT.cc.

virtual bool RMT::isOnWire ( )
inlinevirtual

Implements RMTBase.

Definition at line 70 of file RMT.h.

Referenced by RA::bindNFlowToNM1Flow(), RA::hasFlow(), and RA::postNFlowAllocation().

void RMT::postQueueArrival ( cObject *  obj)
virtual

Implements RMTBase.

Definition at line 203 of file RMT.cc.

void RMT::postQueueDeparture ( cObject *  obj)
virtual

Procedures executed after a PDU leaves its queue.

Parameters
objRMT queue object

Implements RMTBase.

Definition at line 284 of file RMT.cc.

void RMT::preQueueArrival ( cObject *  obj)
virtual

Procedures executed when before a PDU arrives into a queue.

Parameters
objRMT queue object

Implements RMTBase.

Definition at line 183 of file RMT.cc.

void RMT::preQueueDeparture ( cObject *  obj)
virtual

Procedures executed right before a PDU leaves its queue.

Parameters
objRMT queue object

Implements RMTBase.

Definition at line 262 of file RMT.cc.

void RMT::processMessage ( cMessage *  msg)
private

The main finite state machine of Relaying and Multiplexing task. Makes a decision about what to do with incoming message based on arrival gate, message type, message destination address and RMT mode of operation.

Parameters
msgeither a PDU or a CDAP message

Definition at line 510 of file RMT.cc.

Referenced by handleMessage().

void RMT::readFromPort ( cObject *  obj)
virtual

Invokes the scheduling policy for input queues.

Parameters
objRMT queue object

Implements RMTBase.

Definition at line 327 of file RMT.cc.

void RMT::recDel ( cPacket *  p)
protected

Procedures executed when a PDU arrives into a queue.

Parameters
objRMT queue object

Definition at line 197 of file RMT.cc.

Referenced by postQueueArrival().

void RMT::relayPDUToEFCPI ( PDU pdu)
private

Passes a PDU from an (N-1)-port to an EFCP instance.

Parameters
pduPDU to be passed

Definition at line 481 of file RMT.cc.

Referenced by processMessage().

void RMT::relayPDUToPort ( PDU pdu)
private

Passes a PDU from an EFCP instance to an appropriate output port.

Parameters
pduPDU to be passed

Definition at line 425 of file RMT.cc.

Referenced by processMessage().

void RMT::setOnWire ( bool  status)
inlineprivate

Definition at line 129 of file RMT.h.

Referenced by RA::setRMTMode().

void RMT::tracePDUEvent ( const cPacket *  pkt,
TraceEventType  eventType 
)
private

Append a line into the trace file.

Parameters
pktpacket
eventTypeevent (receive/send/enqueue/dequeue/drop)

Definition at line 148 of file RMT.cc.

Referenced by postQueueArrival(), and preQueueDeparture().

void RMT::writeToPort ( cObject *  obj)
virtual

Invokes the scheduling policy for output queues.

Parameters
objRMT queue object

Implements RMTBase.

Definition at line 315 of file RMT.cc.

Friends And Related Function Documentation

friend class FAI
friend

Definition at line 63 of file RMT.h.

friend class RA
friend

Definition at line 62 of file RMT.h.

Member Data Documentation

AddressComparatorBase* RMT::addrComparator
private

Definition at line 101 of file RMT.h.

Referenced by initialize(), and processMessage().

EfcpiMapping RMT::efcpiIn
private

Definition at line 93 of file RMT.h.

Referenced by createEfcpiGate(), deleteEfcpiGate(), and initialize().

EfcpiMapping RMT::efcpiOut
private

Definition at line 92 of file RMT.h.

Referenced by createEfcpiGate(), deleteEfcpiGate(), initialize(), and relayPDUToEFCPI().

IntPDUForwarding* RMT::fwd
private

Definition at line 86 of file RMT.h.

Referenced by fwTableLookup(), initialize(), and relayPDUToPort().

std::deque<cMessage*> RMT::invalidPDUs
private

Definition at line 115 of file RMT.h.

Referenced by finish(), handleMessage(), processMessage(), relayPDUToEFCPI(), relayPDUToPort(), and ~RMT().

LisRMTPortReadyForRead* RMT::lisRMTPortReadyForRead
private

Definition at line 126 of file RMT.h.

Referenced by initialize().

LisRMTPortReadyToServe* RMT::lisRMTPortReadyToServe
private

Definition at line 125 of file RMT.h.

Referenced by initialize().

LisRMTQueuePDUPostRcvd* RMT::lisRMTQueuePDUPostRcvd
private

Definition at line 122 of file RMT.h.

Referenced by initialize().

LisRMTQueuePDUPreRcvd* RMT::lisRMTQueuePDUPreRcvd
private

Definition at line 121 of file RMT.h.

Referenced by initialize().

LisRMTQueuePDUPreSend* RMT::lisRMTQueuePDUPreSend
private

Definition at line 123 of file RMT.h.

Referenced by initialize().

LisRMTQueuePDUSent* RMT::lisRMTQueuePDUSent
private

Definition at line 124 of file RMT.h.

Referenced by initialize().

RMTMaxQBase* RMT::maxQPolicy
private

Definition at line 96 of file RMT.h.

Referenced by initialize(), postQueueArrival(), and postQueueDeparture().

bool RMT::onWire
private

Definition at line 90 of file RMT.h.

Referenced by fwTableLookup(), initialize(), and isOnWire().

QueueAllocBase* RMT::qAllocPolicy
private

Definition at line 99 of file RMT.h.

Referenced by initialize().

RMTQMonitorBase* RMT::qMonPolicy
private
QueueIDGenBase* RMT::queueIdGenerator
private

Definition at line 100 of file RMT.h.

Referenced by initialize(), and relayPDUToPort().

bool RMT::relayOn
private

Definition at line 89 of file RMT.h.

Referenced by getRelayStatus(), initialize(), and processMessage().

RMTModuleAllocator* RMT::rmtAllocator
private

Definition at line 87 of file RMT.h.

Referenced by fwTableLookup(), initialize(), postQueueArrival(), and postQueueDeparture().

RMTSchedulingBase* RMT::schedPolicy
private

Definition at line 97 of file RMT.h.

Referenced by initialize(), postQueueArrival(), readFromPort(), and writeToPort().

simsignal_t RMT::sigRMTNoConnID
private

Definition at line 119 of file RMT.h.

Referenced by initialize(), and relayPDUToEFCPI().

simsignal_t RMT::sigRMTPacketError
private

Definition at line 120 of file RMT.h.

Referenced by initialize(), and postQueueArrival().

bool RMT::tracing
private

Definition at line 108 of file RMT.h.

Referenced by initialize(), postQueueArrival(), and preQueueDeparture().


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