Compound Module Ieee80211NicSTA

File: NetworkInterfaces/Ieee80211/Ieee80211NicSTA.ned

This NIC implements an 802.11 network interface card, in a STA, using infrastructure mode.

agent: Ieee80211AgentSTA mgmt: Ieee80211MgmtSTA 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.

Ieee80211AgentSTA

Used in 802.11 infrastructure mode: in a station (STA), this module controls channel scanning, association and handovers, by sending commands (e.g. Ieee80211Prim_ScanRequest) to the management module (Ieee80211MgmtSTA).

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.)

Ieee80211MgmtSTA

Used in 802.11 infrastructure mode: handles management frames for a station (STA).

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.

Used in compound modules:

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

WirelessHost

Models a host with one wireless (802.11b) card in infrastructure mode. This module is basically a StandardHost with an Ieee80211NicSTA added. It should be used in conjunction with WirelessAP, or any other AP model which contains Ieee80211NicAP.

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
agent.activeScan bool

selects between active and passive scanning

agent.channelsToScan string

list of channel numbers to scan (space delimited); empty means all channels

agent.probeDelay numeric const

delay before sending a probe request during active scanning

agent.minChannelTime numeric const

min interval to spend on a channel during active scanning

agent.maxChannelTime numeric const

channel time for passive scanning, and max channel time for active scanning

agent.authenticationTimeout numeric const

timeout for the authentication procedure

agent.associationTimeout numeric const

timeout for the association procedure

mgmt.frameCapacity numeric const

maximum queue length

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 Ieee80211NicSTA
    gates:
        in: uppergateIn; // to upper layers
        out: uppergateOut; // from upper layers
        in: radioIn; // to receive AirFrames
    submodules:
        agent: Ieee80211AgentSTA;
            display: "p=202,69;i=block/control";
        mgmt: Ieee80211MgmtSTA;
            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;

        mgmt.agentOut --> agent.mgmtIn;
        mgmt.agentIn <-- agent.mgmtOut;

endmodule