Compound Module Ieee80211Nic

File: NetworkInterfaces/Ieee80211/Ieee80211Nic.ned

This NIC implements an 802.11 network interface card. It can be configured via the mgmtType parameter to act as an AP or a STA, or for ad-hoc mode.

mgmt: mgmtType like Ieee80211Mgmt mac: Ieee80211Mac radio: Ieee80211Radio

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.

Contains the following modules:

If a module type shows up more than once, that means it has been defined in more than one NED file.

Ieee80211Mac

Implementation of the 802.11b MAC protocol. This module is intended to be used in combination with the Ieee80211Radio module as the physical layer. (The SnrEval80211 and Decider80211 modules should also work if per-packet bitrate setting gets implemented.)

Ieee80211Mgmt

This is not a concrete module type, but a prototype for all IEEE 802.11 management module types. It exists to specify what gates a management module should have in order to be usable within Ieee80211Nic.

Ieee80211Radio

Physical layer for the IEEE 802.11 models. Its external interface (including gates and how it communicates with other modules) is the same as the Radio module's.

Parameters:

Name Type Description
mgmtType string

name of the management module type

Gates:

Name Direction Description
uppergateIn input

to upper layers

uppergateOut output

from upper layers

radioIn input

to receive AirFrames

Unassigned submodule parameters:

Name Type Description
mac.address string

MAC address as hex string (12 hex digits), or "auto". "auto" values will be replaced by a generated MAC address in init stage 0.

mac.maxQueueSize numeric const

max queue length in frames; only used if queueModule==""

mac.bitrate numeric const
mac.rtsThresholdBytes numeric const

longer messages will be sent using RTS/CTS; use 2346 for default

mac.retryLimit numeric const

maximum number of retries per message, -1 means default

mac.cwMinData numeric const

contention window for normal data frames, -1 means default

mac.cwMinBroadcast numeric const

contention window for broadcast messages, -1 means default

radio.channelNumber numeric const

channel identifier

radio.transmitterPower numeric const

power used for transmission of messages (in mW)

radio.bitrate numeric const

(in bits/s)

radio.thermalNoise numeric const

base noise level (dBm)

radio.pathLossAlpha numeric const

used by the path loss calculation

radio.snirThreshold numeric const

if signal-noise ratio is below this threshold, frame is considered noise (in dB)

radio.sensitivity numeric const

received signals with power below sensitivity are ignored

Source code:

module Ieee80211Nic
    parameters:
        mgmtType: string; // name of the management module type
    gates:
        in: uppergateIn; // to upper layers
        out: uppergateOut; // from upper layers
        in: radioIn; // to receive AirFrames
    submodules:
        mgmt: mgmtType like Ieee80211Mgmt;
            display: "p=96,69;i=block/cogwheel;q=wlanDataQueue";
        mac: Ieee80211Mac;
            parameters:
                queueModule = "mgmt";
            display: "p=96,155;i=block/layer";
        radio: Ieee80211Radio;
            display: "p=96,240;i=block/wrxtx";
    connections:
        radioIn --> radio.radioIn;
        radio.uppergateIn <-- mac.lowergateOut;
        radio.uppergateOut --> mac.lowergateIn;

        mac.uppergateOut --> mgmt.macIn;
        mac.uppergateIn <-- mgmt.macOut;

        mgmt.uppergateOut --> uppergateOut;
        mgmt.uppergateIn <-- uppergateIn;

endmodule