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.
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.
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 |
Name | Direction | Description |
---|---|---|
lowerLayerIn [ ] | input | see MACRelayUnit |
lowerLayerOut [ ] | output | see MACRelayUnit |
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