Simple Module MACRelayUnitPP

File: NetworkInterfaces/EtherSwitch/MACRelayUnitPP.ned

C++ definition: click here

A MACRelayUnit implementation which models one CPU assigned to each incoming port, working with shared memory but separate queues.

It also models fixed delay for precessing each frame. Finite memory is taken into account by dropping frames if total number of bits enqueued exceed a given limit.

A simple scheme for sending PAUSE frames is built in (although users will probably change it). When the buffer level goes above a high watermark, PAUSE frames are sent on all ports. The watermark and the pause time is configurable; use zero values to disable the PAUSE feature.

Usage diagram:

The following diagram shows usage relationships between modules, networks and channels. Unresolved module (and channel) types are missing from the diagram. Click here to see the full picture.

Parameters:

Name Type Description
addressTableFile string

see MACRelayUnit

addressTableSize numeric

see MACRelayUnit

agingTime numeric

see MACRelayUnit

processingTime numeric

processing time of one frame

bufferSize numeric

memory (bytes)

highWatermark numeric

buffer usage threshold to send PAUSE frame (bytes)

pauseUnits numeric

time to put in PAUSE frames (in units of 512 bit times)

writeScalars bool

enable/disable recording statistics in omnetpp.sca

Gates:

Name Direction Description
lowerLayerIn [ ] input

see MACRelayUnit

lowerLayerOut [ ] output

see MACRelayUnit

Source code:

simple MACRelayUnitPP
    parameters:
        addressTableFile : string,  // see MACRelayUnit
        addressTableSize : numeric, // see MACRelayUnit
        agingTime : numeric,        // see MACRelayUnit
        processingTime : numeric,   // processing time of one frame
        bufferSize : numeric,       // memory (bytes)
        highWatermark : numeric,    // buffer usage threshold to send PAUSE frame (bytes)
        pauseUnits : numeric,       // time to put in PAUSE frames (in units of 512 bit times)
        writeScalars: bool;         // enable/disable recording statistics in omnetpp.sca

    gates:
        in:  lowerLayerIn[];       // see MACRelayUnit
        out: lowerLayerOut[];      // see MACRelayUnit
endsimple