TxopProcedure

Package: inet.linklayer.ieee80211.mac.originator

simple module TxopProcedure

Implements the Transmission Opportunity (TXOP) mechanism in IEEE 802.11 QoS networks. Manages TXOP periods during which a station has the right to transmit. Tracks TXOP limits based on access category (AC) and PHY mode. Supports both single and multiple protection mechanisms to protect frame exchanges during the TXOP.

inet.linklayer.ieee80211.mac.originator.TxopProcedureTxopProceduresimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

Edcaf

compound module

Implements EDCAF (Enhanced Distributed Channel Access Function) for IEEE 802.11. EDCAF represents one access category within EDCA.

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

txopLimit

double

-1s

Properties

Name

Value

Description

class

TxopProcedure

display

i=block/timer

Signals

Name

Type

Unit

Description

txopEnded

txopStarted

Statistics

Name

Title

Source

Record

Unit

Interpolation Mode

Description

txopActive

txop active

warmup(count(txopStarted)-count(txopEnded))

vector

sample-hold

txopDuration

txop duration

txopDuration(txopEnded)

histogram,vector?

none

txopEnded

txops ended

txopEnded

count,vector?

none

Source code

//
// Implements the Transmission Opportunity (TXOP) mechanism in IEEE 802.11 QoS
// networks. Manages TXOP periods during which a station has the right to transmit.
// Tracks TXOP limits based on access category (AC) and PHY mode. Supports both single
// and multiple protection mechanisms to protect frame exchanges during the TXOP.
//
simple TxopProcedure extends SimpleModule
{
    parameters:
        @class(TxopProcedure);
        double txopLimit @unit(s) = default(-1s);
        @display("i=block/timer");
        @signal[txopStarted](inet::ieee80211::TxopProcedure);
        @signal[txopEnded](inet::ieee80211::TxopProcedure);
        @statistic[txopEnded](title="txops ended"; source=txopEnded; record=count,vector?; interpolationmode=none);
        @statistic[txopDuration](title="txop duration"; source=txopDuration(txopEnded); record=histogram,vector?; interpolationmode=none);
        @statistic[txopActive](title="txop active"; source=warmup(count(txopStarted)-count(txopEnded)); record=vector; interpolationmode=sample-hold; autoWarmupFilter=false);
}

File: src/inet/linklayer/ieee80211/mac/originator/TxopProcedure.ned