Simple Module Ieee80211MgmtAP

Package: inet.linklayer.ieee80211.mgmt
File: src/inet/linklayer/ieee80211/mgmt/Ieee80211MgmtAP.ned

C++ definition

Used in 802.11 infrastructure mode: handles management frames for an access point (AP). It relies on a connected Ieee80211Mac for actual reception and transmission of frames.

When simulating an AP that has other (Ethernet or wireless) interfaces as well, this module can be connected to a IMACRelayUnit which performs bridging of Ethernet frames. This module will perform conversion from/to EtherFrame for IMACRelayUnit.

This module never switches channels, that is, it will operate on the channel the physical layer is configured for (see channelNumber in Ieee80211Radio).

This module checks if there is an other module connected above the management module (e.g. RelayUnit) and sends the frame there if the frame's destination is not on the associated station's list. Multicast frames are broadcasted on the wireless card and a copy sent also up to the relay unit so it can broadcast it on other interfaces.

Author: Andras Varga

Ieee80211MgmtAP

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.

Parameters:

Name Type Default value Description
ssid string "SSID"
beaconInterval double 100ms
numAuthSteps int 4

use 2 for Open System auth, 4 for WEP

encapDecap string "eth"

if "eth", frames sent up are converted to EthernetIIFrame

radioModule string "^.radio"

dataRate: numeric; XXX TBD

macModule string

The path to the MAC module

Properties:

Name Value Description
display i=block/cogwheel

Gates:

Name Direction Size Description
upperLayerIn input

from IMACRelayUnit; can be left unconnected

upperLayerOut output

to IMACRelayUnit; can be left unconnected

macIn input

from Ieee80211Mac

macOut output

to Ieee80211Mac

agentIn input

unused dummy to statisfy the IIeee80211Mgmt interface

agentOut output

unused dummy to statisfy the IIeee80211Mgmt interface

Signals:

Name Type Unit
NF_L2_AP_ASSOCIATED Ieee80211MgmtAP::NotificationInfoSta
NF_L2_AP_DISASSOCIATED Ieee80211MgmtAP::NotificationInfoSta

Source code:

//
// Used in 802.11 infrastructure mode: handles management frames for
// an access point (AP). It relies on a connected ~Ieee80211Mac for actual
// reception and transmission of frames.
//
// When simulating an AP that has other (Ethernet or wireless) interfaces
// as well, this module can be connected to a ~IMACRelayUnit which performs
// bridging of Ethernet frames. This module will perform conversion from/to
// ~EtherFrame for ~IMACRelayUnit.
//
// This module never switches channels, that is, it will operate on the channel
// the physical layer is configured for (see channelNumber in ~Ieee80211Radio).
//
// This module checks if there is an other module connected above the management
// module (e.g. RelayUnit) and sends the frame there if the frame's destination
// is not on the associated station's list. Multicast frames are broadcasted on
// the wireless card and a copy sent also up to the relay unit so it can broadcast
// it on other interfaces.
//
// @author Andras Varga
//
simple Ieee80211MgmtAP like IIeee80211Mgmt
{
    parameters:
        string ssid = default("SSID");
        double beaconInterval @unit("s") = default(100ms);
        int numAuthSteps = default(4); // use 2 for Open System auth, 4 for WEP
        string encapDecap @enum("true","false","eth") = default("eth");   // if "eth", frames sent up are converted to EthernetIIFrame
        //dataRate: numeric; XXX TBD
        string radioModule = default("^.radio");   // The path to the Radio module  //FIXME remove default value
        string macModule;               // The path to the MAC module
        @display("i=block/cogwheel");
        @signal[NF_L2_AP_ASSOCIATED](type="Ieee80211MgmtAP::NotificationInfoSta");
        @signal[NF_L2_AP_DISASSOCIATED](type="Ieee80211MgmtAP::NotificationInfoSta");
    gates:
        input upperLayerIn; // from ~IMACRelayUnit; can be left unconnected
        output upperLayerOut; // to ~IMACRelayUnit; can be left unconnected
        input macIn @labels(Ieee80211Frame); // from ~Ieee80211Mac
        output macOut @labels(Ieee80211Frame); // to ~Ieee80211Mac
        input agentIn @loose;   // unused dummy to statisfy the IIeee80211Mgmt interface
        output agentOut @loose; // unused dummy to statisfy the IIeee80211Mgmt interface
}