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.
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.
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. |
Name | Type | Description |
---|---|---|
mgmtType | string | name of the management module type |
Name | Direction | Description |
---|---|---|
uppergateIn | input | to upper layers |
uppergateOut | output | from upper layers |
radioIn | input | to receive AirFrames |
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 |
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