Simple Module Ieee80211AgentSTA

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

C++ definition

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

Author: Andras Varga

Ieee80211AgentSTA

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
Ieee80211Nic compound module

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.

Parameters:

Name Type Default value Description
interfaceTableModule string

The path to the InterfaceTable module

activeScan bool true

selects between active and passive scanning

channelsToScan string ""

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

probeDelay double 100ms

delay before sending a probe request during active scanning

minChannelTime double 150ms

min interval to spend on a channel during active scanning

maxChannelTime double 300ms

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

authenticationTimeout double 5s

timeout for the authentication procedure

associationTimeout double 5s

timeout for the association procedure

startingTime double -1s

agent starting time.

default_ssid string "SSID"

default ssid

Properties:

Name Value Description
display i=block/control

Gates:

Name Direction Size Description
mgmtIn input
mgmtOut output

Signals:

Name Type Unit
dropConfirm long
NF_L2_DISASSOCIATED inet::InterfaceEntry
NF_L2_ASSOCIATED_NEWAP inet::InterfaceEntry
sentRequest long
acceptConfirm long
NF_L2_ASSOCIATED_OLDAP inet::InterfaceEntry

Statistics:

Name Title Source Record Unit Interpolation Mode
dropConfirm dropped confirms count, vector
sentRequest sent requests count, vector
acceptConfirm accepted confirms count, vector

Source code:

//
// 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).
//
// @author Andras Varga
//
simple Ieee80211AgentSTA
{
    parameters:
        string interfaceTableModule;   // The path to the InterfaceTable module
        bool activeScan = default(true);  // selects between active and passive scanning
        string channelsToScan = default("");  // list of channel numbers to scan (space delimited); empty means all channels
        double probeDelay @unit(s) = default(100ms); // delay before sending a probe request during active scanning
        double minChannelTime @unit(s) = default(150ms); // min interval to spend on a channel during active scanning
        double maxChannelTime @unit(s) = default(300ms); // channel time for passive scanning, and max channel time for active scanning
        double authenticationTimeout @unit(s) = default(5s); // timeout for the authentication procedure
        double associationTimeout @unit(s) = default(5s); // timeout for the association procedure
        double startingTime @unit("s") = default(-1s); // agent starting time.
        string default_ssid = default("SSID"); // default ssid
        @display("i=block/control");
        @signal[sentRequest](type=long); // ENUM! ~Ieee80211PrimRequestCode
        @signal[acceptConfirm](type=long); // ENUM! ~Ieee80211PrimConfirmCode
        @signal[dropConfirm](type=long); // ENUM! ~Ieee80211PrimConfirmCode
        @signal[NF_L2_ASSOCIATED_NEWAP](type=inet::InterfaceEntry);
        @signal[NF_L2_ASSOCIATED_OLDAP](type=inet::InterfaceEntry);
        @signal[NF_L2_DISASSOCIATED](type=inet::InterfaceEntry);
        @statistic[sentRequest](title="sent requests"; record=count,vector); // ENUM! ~Ieee80211PrimRequestCode
        @statistic[acceptConfirm](title="accepted confirms"; record=count,vector); // ENUM! ~Ieee80211PrimConfirmCode
        @statistic[dropConfirm](title="dropped confirms"; record=count,vector); // ENUM! ~Ieee80211PrimConfirmCode
    gates:
        input mgmtIn;
        output mgmtOut;
}