classdef edcaStats < Simulink.IntEnumType
%edcaStats is an enumeration to indicate the statistics of the
%simulation
%
%   This is an example helper class (Enumeration).
%
%   FORMAT = edcaStats.<ENUMVALUE> creates an enumeration with the
%   value specified by the ENUMVALUE. Valid values for ENUMVALUE are
%   mentioned below.
%
%   edcaStats properties: 
%
%    AppTx (0)                            - Data packets transmitted
%    AC0AppTx (1)                         - AC0 application packets transmitted
%    AC1AppTx (2)                         - AC1 application packets transmitted
%    AC2AppTx (3)                         - AC2 application packets transmitted
%    AC3AppTx (4)                         - AC3 application packets transmitted
%    AppRx (5)                            - Packets received at application
%    AC0AppRx (6)                         - AC0 application packets received
%    AC1AppRx (7)                         - AC1 application packets received
%    AC2AppRx (8)                         - AC2 application packets received
%    AC3AppRx (9)                         - AC3 application packets received
%    MACDataTx (201)                      - MAC data frames transmitted
%    MACAC0Tx (202)                       - MAC AC0 data frames transmitted
%    MACAC1Tx (203)                       - MAC AC1 data frames transmitted
%    MACAC2Tx (204)                       - MAC AC2 data frames transmitted
%    MACAC3Tx (205)                       - MAC AC3 data frames transmitted
%    MACAC0AggTx (206)                    - MAC AC0 aggregated frames transmitted
%    MACAC1AggTx (207)                    - MAC AC1 aggregated frames transmitted
%    MACAC2AggTx (208)                    - MAC AC2 aggregated frames transmitted
%    MACAC3AggTx (209)                    - MAC AC3 aggregated frames transmitted
%    MACAckTx (210)                       - MAC acknowledgment frames transmitted
%    MACBATx (211)                        - MAC block acknowledgment frames transmitted
%    MACRetries (212)                     - MAC data frames retransmission
%    MACAC0TxRetries (213)                - MAC AC0 frame retries
%    MACAC1TxRetries (214)                - MAC AC1 frame retries
%    MACAC2TxRetries (215)                - MAC AC2 frame retries
%    MACAC3TxRetries (216)                - MAC AC3 frame retries
%    MACAC0TxDiscarded (217)              - MAC AC0 frame discarded
%    MACAC1TxDiscarded (218)              - MAC AC1 frame discarded
%    MACAC2TxDiscarded (219)              - MAC AC2 frame discarded
%    MACAC3TxDiscarded (220)              - MAC AC3 frame discarded
%    MACAC0InternalCollisions (221)       - MAC AC0 internal collisions
%    MACAC1InternalCollisions (222)       - MAC AC1 internal collisions
%    MACAC2InternalCollisions (223)       - MAC AC2 internal collisions
%    MACAC3InternalCollisions (224)       - MAC AC3 internal collisions
%    MACAC0Backoff (225)                  - MAC AC0 random backoff slots
%    MACAC1Backoff (226)                  - MAC AC1 random backoff slots
%    MACAC2Backoff (227)                  - MAC AC2 random backoff slots
%    MACAC3Backoff (228)                  - MAC AC3 random backoff slots
%    MACRespErrors (229)                  - MAC error responses
%    MACNonRespFrames (230)               - MAC other than response frames while waiting for response
%    MACOthersFramesInWaitForResp (231)   - MAC others frames while waiting for response
%    MACTxFails (232)                     - MAC transmission failures
%    MACRTSTx (233)                       - MAC RTS frames transmitted
%    MACCTSTx (234)                       - MAC CTS frames transmitted
%    MACTxQueueOverflow (235)             - MAC transmission queue overflows
%    MACRx (236)                          - MAC frames received
%    MACAC0Rx (237)                       - MAC AC0 frames received
%    MACAC1Rx (238)                       - MAC AC1 frames received
%    MACAC2Rx (239)                       - MAC AC2 frames received
%    MACAC3Rx (240)                       - MAC AC3 frames received
%    MACRxDrop (241)                      - MAC Rx drop
%    MACDataRx (242)                      - MAC data frames received
%    MACAckRx (243)                       - MAC acknowledgment frames received
%    MACRTSRx (244)                       - MAC RTS frames received
%    MACCTSRx (245)                       - MAC CTS frames received
%    MACBARx (246)                        - MAC block acknowledgment frames received
%    MACTxBytes (247)                     - MAC bytes transmitted
%    MACAC0AggRx (248)                    - MAC AC0 aggregated frames received
%    MACAC1AggRx (249)                    - MAC AC1 aggregated frames received
%    MACAC2AggRx (250)                    - MAC AC2 aggregated frames received
%    MACAC3AggRx (251)                    - MAC AC3 aggregated frames received
%    MACAggRx (252)                       - MAC aggregated frames received
%    MACDuplicateAMPDURx (253)            - MAC aggregated duplicate frames received
%    MACNonHTRx (254)                     - MAC non-HT frames received
%    MACHTRx (255)                        - MAC HT frames received
%    MACVHTRx (256)                       - MAC VHT frames received
%    MACHESURx (257)                      - MAC HE-SU frames received
%    MACHEEXTSURx (258)                   - MAC HE-Extended-SU frames received
%    IdleStateTime (259)                  - MAC idle state time (in Microseconds)
%    ContendStateTime (260)               - MAC contend state time (in Microseconds)
%    SendingDataStateTime (261)           - MAC frame sending time (in Microseconds)
%    WaitForRxStateTime (262)             - MAC wait for response time (in Microseconds)
%    EIFSStateTime (263)                  - MAC error recovery time (in Microseconds)
%    RxStateTime (264)                    - MAC Rx state time (in Microseconds)
%    Throughput(265)                      - MAC layer throughput of the node
%    MACAverageTimePerFrame (266)         - Average queuing delay in MAC
%    MACTxSuccess (267)                   - MAC data frames success
%    MACAC0MaxQueueLength (268)           - MAC AC0 maximum queue length
%    MACAC1MaxQueueLength (269)           - MAC AC1 maximum queue length
%    MACAC2MaxQueueLength (270)           - MAC AC2 maximum queue length
%    MACAC3MaxQueueLength (271)           - MAC AC3 maximum queue length
%    MACAC0Queueoverflow (272)            - MAC AC0 queue overflows
%    MACAC1Queueoverflow (273)            - MAC AC1 queue overflows
%    MACAC2Queueoverflow (274)            - MAC AC2 queue overflows
%    MACAC3Queueoverflow (275)            - MAC AC3 queue overflows
%    MACAC0DuplicateRx (276)              - MAC AC0 duplicate Rx
%    MACAC1DuplicateRx (277)              - MAC AC1 duplicate Rx
%    MACAC2DuplicateRx (278)              - MAC AC2 duplicate Rx
%    MACAC3DuplicateRx (279)              - MAC AC3 duplicate Rx
%    MACRTSSuccess (280)                  - MAC RTS success
%    MACRecentFrameStatusTimestamp (281)  - Timestamp at where recent frame status is known
%    MACHEMURx (282)                      - MAC HE-MU frames received
%    MACNumIntraNavUpdates (283)          - Number of intra NAV updates
%    MACNumBasicNavUpdates (284)          - Number of inter or basic NAV updates when spatial reuse (SR)                                          
%                                           operation is enabled or Number of NAV updates when there is no SR operation
%    EnergyDetectionsLessThanED (701)     - PHY energy detections less than ED threshold
%    RxTriggersWhilePrevRxIsInProgress (702) - PHY Rx triggers while previous Rx is in progress
%    RxTriggersWhileTxInProgress (703)	  - PHY Rx triggers while Tx is in progress
%    PhyPreambleDecodeFailures (704)      - PHY preamble decode failures
%    PhyHeaderDecodeFailures (705)        - PHY header decode failures
%    MUPPDUsDestinedToOthers (706)         - Rx MU PPDUs destined to others
%    PhyTx (707)                          - Waveforms transmitted
%    PhyTxBytes (708)                     - Number of bytes transmitted from PHY
%    PhyTxTime (709)                      - Time for which PHY is transmitting
%    PhyRx (710)                          - Waveforms received
%    PhyRxDrop (711)                      - Waveforms dropped
%    PhyNumInterFrames (712)              - Number of inter-BSS frames received to PHY 
%    PhyNumInterFrameDrops (713)          - Number of inter-BSS frames dropped at PHY using OBSS PD threshold
%    PhyNumIntraFrames (714)              - Number of intra-BSS frames
%    EnergyDetectionGreaterThanOBSSPD (715) - Number of PHY energy detections greater than OBSS PD threshold
%    PhyNumParallelTransmissions (716)    - Number of parallel transmissions

%   Copyright 2019-2020 The MathWorks, Inc.

%#codegen

enumeration
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %         Application layer statistics            %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    % Total number of application packets transmitted
    AppTx (0)
    % Number of AC0 application packets transmitted
    AC0AppTx (1)
    % Number of AC1 application packets transmitted
    AC1AppTx (2)
    % Number of AC2 application packets transmitted
    AC2AppTx (3)
    % Number of AC3 application packets transmitted
    AC3AppTx (4)
    % Total number of application packets received
    AppRx (5)
    % Number of AC0 application packets received
    AC0AppRx (6)
    % Number of AC1 application packets received
    AC1AppRx (7)
    % Number of AC2 application packets received
    AC2AppRx (8)
    % Number of AC3 application packets received
    AC3AppRx (9)
    
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %              MAC layer statistics               %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    % Total number of data MPDUs transmitted
    MACDataTx (201)
    % Number of AC0 data MPDUs transmitted
    MACAC0Tx (202)
    % Number of AC1 data MPDUs transmitted
    MACAC1Tx (203)
    % Number of AC2 data MPDUs transmitted
    MACAC2Tx (204)
    % Number of AC3 data MPDUs transmitted
    MACAC3Tx (205)
    % Number of AC0 A-MPDUs transmitted
    MACAC0AggTx (206)
    % Number of AC1 A-MPDUs transmitted
    MACAC1AggTx (207)
    % Number of AC2 A-MPDUs transmitted
    MACAC2AggTx (208)
    % Number of AC3 A-MPDUs transmitted
    MACAC3AggTx (209)
    % Number of acknowledgments transmitted from MAC layer
    MACAckTx (210)
    % Number of block acknowledgments transmitted from MAC layer
    MACBATx (211)
    % Number of data MPDU retransmissions
    MACRetries (212)
    % Number of data MPDU retransmissions from AC0
    MACAC0TxRetries (213)
    % Number of data MPDU retransmissions from AC1
    MACAC1TxRetries (214)
    % Number of data MPDU retransmissions from AC2
    MACAC2TxRetries (215)
    % Number of data MPDU retransmissions from AC3
    MACAC3TxRetries (216)
    % Number of AC0 MPDUs discarded
    MACAC0TxDiscarded (217)
    % Number of AC1 MPDUs discarded
    MACAC1TxDiscarded (218)
    % Number of AC2 MPDUs discarded
    MACAC2TxDiscarded (219)
    % Number of AC3 MPDUs discarded
    MACAC3TxDiscarded (220)
    % Number of AC0 internal collisions in MAC layer
    MACAC0InternalCollisions (221)
    % Number of AC1 internal collisions in MAC layer
    MACAC1InternalCollisions (222)
    % Number of AC2 internal collisions in MAC layer
    MACAC2InternalCollisions (223)
    % Number of AC3 internal collisions in MAC layer
    MACAC3InternalCollisions (224)
    % Sum of random backoff slots selected for AC0 during the simulation
    MACAC0Backoff (225)
    % Sum of random backoff slots selected for AC1 during the simulation
    MACAC1Backoff (226)
    % Sum of random backoff slots selected for AC2 during the simulation
    MACAC2Backoff (227)
    % Sum of random backoff slots selected for AC3 during the simulation
    MACAC3Backoff (228)
    % Number of errored frames received while waiting for a response
    MACRespErrors (229)
    % Number of invalid response frames (frame type is not as expected)
    MACNonRespFrames (230)
    % Number of invalid response frames (response frame destined for others)
    MACOthersFramesInWaitForResp (231)
    % Number of transmission failures even after completing the maximum
    % number of retransmission attempts
    MACTxFails (232)
    % Number of RTS frames transmitted from MAC layer
    MACRTSTx (233)
    % Number of CTS frames transmitted from MAC layer
    MACCTSTx (234)
    % Total number of application packets discarded due to buffer overflow
    % in MAC layer
    MACTxQueueOverflow (235)
    % Total number of MPDUs received at MAC layer with valid FCS
    MACRx (236)
    % AC0 data MPDUs received at MAC layer
    MACAC0Rx (237)
    % AC1 data MPDUs received at MAC layer
    MACAC1Rx (238)
    % AC2 data MPDUs received at MAC layer
    MACAC2Rx (239)
    % AC3 data MPDUs received at MAC layer
    MACAC3Rx (240)
    % Total number of FCS errored frames received at MAC layer
    MACRxDrop (241)
    % Total number of data MPDUs received at MAC layer
    MACDataRx (242)
    % Number of acknowledgments received at MAC layer
    MACAckRx (243)
    % Number of RTS frames received at MAC layer
    MACRTSRx (244)
    % Number of CTS frames received at MAC layer
    MACCTSRx (245)
    % Number of block acknowledgments received at MAC layer
    MACBARx (246)
    % Number of MSDU data bytes transmitted from MAC layer
    MACTxBytes (247)
    % AC0 A-MPDUs received at MAC layer
    MACAC0AggRx (248)
    % AC1 A-MPDUs received at MAC layer
    MACAC1AggRx (249)
    % AC2 A-MPDUs received at MAC layer
    MACAC2AggRx (250)
    % AC3 A-MPDUs received at MAC layer
    MACAC3AggRx (251)
    % Total number of A-MPDUs received at MAC layer
    MACAggRx (252)
    % Number of duplicate A-MPDUs received (as per section-10.24.7.3 in
    % IEEE Std 802.11-2016)
    MACDuplicateAMPDURx (253)
    % Number of non-HT frames received at MAC layer
    MACNonHTRx (254)
    % Number of HT frames received at MAC layer
    MACHTRx (255)
    % Number of VHT frames received at MAC layer
    MACVHTRx (256)
    % Number of HE-SU frames received at MAC layer
    MACHESURx (257)
    % Number of HE-Extended-SU frames received at MAC layer
    MACHEEXTSURx (258)
    % Time spent in idle state (microseconds)
    IdleStateTime (259)
    % Time spent in contend state (microseconds)
    ContendStateTime (260)
    % Time spent in sending data state (microseconds)
    SendingDataStateTime (261)
    % Time spent in wait for Rx state (microseconds)
    WaitForRxStateTime (262)
    % Time spent in EIFS state (microseconds)
    EIFSStateTime (263)
    % Time spent in Rx state (microseconds)
    RxStateTime (264)
    % MAC layer throughput of the node
    Throughput(265)
    % Average queuing delay in MAC
    MACAverageTimePerFrame (266)
    % Number of acknowledged MPDUs/A-MPDU subframes
    MACTxSuccess (267)
    % Maximum recorded peak for AC0 queued frame count. The count
    % corresponds to the sum of frames in all per destination queues for
    % AC0.
    MACAC0MaxQueueLength (268)
    % Maximum recorded peak for AC1 queued frame count. The count
    % corresponds to the sum of frames in all per destination queues for
    % AC1.
    MACAC1MaxQueueLength (269)
    % Maximum recorded peak for AC2 queued frame count. The count
    % corresponds to the sum of frames in all per destination queues for
    % AC2.
    MACAC2MaxQueueLength (270)
    % Maximum recorded peak for AC3 queued frame count. The count
    % corresponds to the sum of all frames in per destination queues for
    % AC3.
    MACAC3MaxQueueLength (271)
    % Number of AC0 application packets discarded due to AC0 buffer
    % overflow in MAC layer
    MACAC0Queueoverflow (272)
    % Number of AC1 application packets discarded due to AC0 buffer
    % overflow in MAC layer
    MACAC1Queueoverflow (273)
    % Number of AC2 application packets discarded due to AC0 buffer
    % overflow in MAC layer
    MACAC2Queueoverflow (274)
    % Number of AC3 application packets discarded due to AC0 buffer
    % overflow in MAC layer
    MACAC3Queueoverflow (275)
    % Number of AC0 duplicate MPDUs received
    MACAC0DuplicateRx (276)
    % Number of AC1 duplicate MPDUs received
    MACAC1DuplicateRx (277)
    % Number of AC2 duplicate MPDUs received
    MACAC2DuplicateRx (278)
    % Number of AC3 duplicate MPDUs received
    MACAC3DuplicateRx (279)
    % Number of successful RTS transmissions
    MACRTSSuccess (280)
    % Timestamp at which recent frame transmission status is known
    MACRecentFrameStatusTimestamp (281)
    % Number of HE-MU frames received at MAC layer
    MACHEMURx (282)
    % Number of intra NAV updates
    MACNumIntraNavUpdates (283)
    % Number of inter or basic NAV updates when spatial reuse (SR)
    % operation is enabled or Number of NAV updates when there is no SR
    % operation
    MACNumBasicNavUpdates (284)

    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    %         Physical layer statistics               %
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    
    % Number of PHY energy detections less than ED threshold
    EnergyDetectionsLessThanED (701)
    % Number of PHY Rx triggers while previous Rx is in progress
    RxTriggersWhilePrevRxIsInProgress (702)
    % Number of PHY Rx triggers while Tx is in progress
    RxTriggersWhileTxInProgress (703)
    % Number of PHY preamble decode failures
    PhyPreambleDecodeFailures (704)
    % Number of PHY header decode failures
    PhyHeaderDecodeFailures (705)
    % Number of multi-user PPDUs received that are not intended to the
    % receiving node
    MUPPDUsDestinedToOthers (706)
    % Number of waveforms transmitted
    PhyTx (707)
    % Number of bytes transmitted from PHY
    PhyTxBytes (708)
    % Amount of time where PHY is transmitting
    PhyTxTime (709)
    % Number of waveforms received
    PhyRx (710)
    % Number of waveforms dropped
    PhyRxDrop (711)
    % Number of inter-BSS frames
    PhyNumInterFrames (712)
    % Number of inter-BSS frames dropped
    PhyNumInterFrameDrops (713)
    % Number of intra-BSS frames
    PhyNumIntraFrames (714)
    % Number of PHY energy detections greater than OBSS PD threshold
    EnergyDetectionGreaterThanOBSSPD (715)
    % Number of parallel transmissions
    PhyNumParallelTransmissions (716)
end
end
