TxopProcedure

Package: inet.linklayer.ieee80211.mac.originator

TxopProcedure

simple module

C++ definition

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.

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
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
txopDuration txop duration txopDuration(txopEnded) histogram, vector? none
txopEnded txops ended txopEnded count, vector? none
txopActive txop active warmup(count(txopStarted)-count(txopEnded)) vector sample-hold

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