Simple Module MACRelayUnitNP

File: NetworkInterfaces/EtherSwitch/MACRelayUnitNP.ned

C++ definition: click here

A MACRelayUnit implementation which models one or more CPUs with shared memory, working from a single shared queue.

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.

MACRelayUnitNP

Parameters:

Name Type Description
addressTableFile string

see MACRelayUnit

addressTableSize numeric

see MACRelayUnit

agingTime numeric

see MACRelayUnit

numCPUs numeric

number of CPUs

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 MACRelayUnitNP
    parameters:
        addressTableFile : string,  // see MACRelayUnit
        addressTableSize : numeric, // see MACRelayUnit
        agingTime : numeric,        // see MACRelayUnit
        numCPUs: numeric,           // number of CPUs
        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