Ieee80211AgentSta

Package: inet.linklayer.ieee80211.mgmt

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

inet.linklayer.ieee80211.mgmt.Ieee80211AgentStaIeee80211AgentStasimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

ExtUpperIeee80211Interface

compound module

Provides an IEEE 802.11 network interface suitable for emulation. The upper part of the network interface is realized in the real world using a real TAP device of the host computer which is running the simulation.

Ieee80211Interface

compound module

Implements an IEEE 802.11 network interface. It implements a large subset of the IEEE 802.11 standard, and may use radio models and wireless signal representations of varying levels of detail. It is also extremely configurable, and its component structure makes it easy to experiment with various details of the protocol.

Extends

Name

Type

Description

SimpleModule

simple module

Base module for all INET simple modules.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

interfaceTableModule

string

The path to the InterfaceTable module

mibModule

string

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.

defaultSsid

string

“”

List of allowed SSIDs to connect to; leave empty for no filtering

Properties

Name

Value

Description

class

Ieee80211AgentSta

display

i=block/control

Gates

Name

Direction

Size

Description

mgmtIn

input

mgmtOut

output

Signals

Name

Type

Unit

Description

acceptConfirm

long

ENUM! Ieee80211PrimConfirmCode

dropConfirm

long

ENUM! Ieee80211PrimConfirmCode

l2AssociatedNewAp

inet::NetworkInterface

l2AssociatedOldAp

inet::NetworkInterface

l2Disassociated

inet::NetworkInterface

sentRequest

long

ENUM! Ieee80211PrimRequestCode

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

acceptConfirm

accepted confirms

count,vector

ENUM! Ieee80211PrimConfirmCode

dropConfirm

dropped confirms

count,vector

ENUM! Ieee80211PrimConfirmCode

sentRequest

sent requests

count,vector

ENUM! Ieee80211PrimRequestCode

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).
//
simple Ieee80211AgentSta extends SimpleModule like IIeee80211Agent
{
    parameters:
        @class(Ieee80211AgentSta);
        string interfaceTableModule;   // The path to the InterfaceTable module
        string mibModule;
        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 defaultSsid = default(""); // List of allowed SSIDs to connect to; leave empty for no filtering
        @display("i=block/control");
        @signal[sentRequest](type=long); // ENUM! ~Ieee80211PrimRequestCode
        @signal[acceptConfirm](type=long); // ENUM! ~Ieee80211PrimConfirmCode
        @signal[dropConfirm](type=long); // ENUM! ~Ieee80211PrimConfirmCode
        @signal[l2AssociatedNewAp](type=inet::NetworkInterface);
        @signal[l2AssociatedOldAp](type=inet::NetworkInterface);
        @signal[l2Disassociated](type=inet::NetworkInterface);
        @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;
}

File: src/inet/linklayer/ieee80211/mgmt/Ieee80211AgentSta.ned