Simple Module EtherBus

File: NetworkInterfaces/Ethernet/EtherBus.ned

C++ definition: click here

A generic bus model.

in[i], out[i] gate pairs represent taps. Messages arriving on a tap travel on the bus on both directions, and copies of it are sent out on every other tap after delays proportional to their distances.

Tap connections should have zero delays and zero data rates!

Messages are not interpreted by the bus model in any way, thus the bus model is not specific to Ethernet in any way. Messages may represent anything, from the beginning of a frame transmission to end (or abortion) of transmission.

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.

EtherBus

Parameters:

Name Type Description
positions string

positions of taps on the cable in meters, as a sequence of numbers separated by spaces. If there are too few values, the distance between the last two positions is repeated, or 5 meters is used.

propagationSpeed numeric

signal propagation speed on the bus, in m/s (typically 200,000 m/s)

writeScalars bool

enable/disable recording statistics in omnetpp.sca

Gates:

Name Direction Description
in [ ] input

to stations; each in[k], out[k] pair represents a tap

out [ ] output

to stations; each in[k], out[k] pair represents a tap

Source code:

simple EtherBus
    parameters:
        positions : string,  // positions of taps on the cable in meters, as a sequence
                             // of numbers separated by spaces. If there are too
                             // few values, the distance between the last two positions
                             // is repeated, or 5 meters is used.
        propagationSpeed : numeric,
                             // signal propagation speed on the bus, in m/s
                             // (typically 200,000 m/s)
        writeScalars: bool;  // enable/disable recording statistics in omnetpp.sca
    gates:
        in: in[];    // to stations; each in[k], out[k] pair represents a tap
        out: out[];  // to stations; each in[k], out[k] pair represents a tap
endsimple