Compound Module Nic80211

Package: inet.linklayer.mf80211
File: src/linklayer/mf80211/Nic80211.ned

This NIC implements an 802.11 network interface card.

This component has been taken over from Mobility Framework 1.0a5.

See also: Mac80211, Decider80211, SnrEval80211

Author: Marc Loebbers

Mac80211 Decider80211 SnrEval80211

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram.

Used in compound modules:

Name Type Description
MFMobileHost compound module

Models a mobile host with a wireless (802.11b) card in ad-hoc mode. This model contains the Mobility Framework's 802.11 implementation, Nic80211, and IP, TCP and UDP protocols. The mobility model can be dynamically specified with the mobilityType parameter.

Properties:

Name Value Description
display i=block/ifcard

Gates:

Name Direction Size Description
uppergateIn input

to upper layers

uppergateOut output

from upper layers

radioIn input

to receive AirFrames

Unassigned submodule parameters:

Name Type Default value Description
mac.address string "auto"

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 int
mac.rtsCts bool false
mac.bitrate double
mac.broadcastBackoff int
mac.mtu int 1500
decider.debug bool false

debug switch

decider.snirThreshold double 4dB
decider.bitrate double
snrEval.channelNumber int

channel identifier

snrEval.debug bool false

debug switch

snrEval.transmitterPower double
snrEval.bitrate double
snrEval.headerLength int
snrEval.carrierFrequency double
snrEval.thermalNoise double
snrEval.pathLossAlpha double
snrEval.sensitivity double

Source code:

//
// This NIC implements an 802.11 network interface card.
//
// This component has been taken over from Mobility Framework 1.0a5.
//
// @see Mac80211, Decider80211, SnrEval80211
// @author Marc Loebbers
//
module Nic80211
{
    parameters:
        @display("i=block/ifcard");
    gates:
        input uppergateIn @labels(Ieee802Ctrl); // to upper layers
        output uppergateOut; // from upper layers
        input radioIn @labels(AirFrame); // to receive AirFrames
    submodules:
        mac: Mac80211 {
            parameters:
                @display("p=96,87");
        }
        decider: Decider80211 {
            parameters:
                @display("p=106,157");
        }
        snrEval: SnrEval80211 {
            parameters:
                @display("p=96,236");
        }
    connections:
        radioIn --> snrEval.radioIn;
        decider.uppergateOut --> { @display("m=m,50,50,75,0"); } --> mac.lowergateIn;
        snrEval.uppergateIn <-- { @display("m=m,25,0,25,0"); } <-- mac.lowergateOut;
        snrEval.uppergateOut --> { @display("m=m,73,0,50,50"); } --> decider.lowergateIn;

        mac.uppergateOut --> uppergateOut;
        mac.uppergateIn <-- uppergateIn;
}