-- =====================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: The file defines a MIB to provide WLAN QoS configuration.
-- configuration information.
-- Reference:
-- Version: V1.2
-- History:
-- V1.0 2008-7-23 created by heziqi
-- V1.1 2010-03-15 Modified by Wang Lu
--      Add hpnicfDot11RadioWmmEdcaCfg2Table
-- V1.2 2013-02-17 Modified by Xiao min
--      Change SYNTAX of hpnicfDot11RadioCacUserNum
-- =====================================================================
HPN-ICF-DOT11-QOS-MIB DEFINITIONS ::= BEGIN

IMPORTS
        TruthValue,
        TEXTUAL-CONVENTION
    FROM SNMPv2-TC
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32
    FROM SNMPv2-SMI
        hpnicfDot11,
        HpnicfDot11QosAcType,
        HpnicfDot11RadioElementIndex,
        HpnicfDot11ObjectIDType,
        HpnicfDot11RadioScopeType
    FROM HPN-ICF-DOT11-REF-MIB;

hpnicfDot11QoS MODULE-IDENTITY
    LAST-UPDATED "200807231200Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB provides information about WLAN QoS configuration.

        GLOSSARY

        IEEE 802.11
        Standard to encourage interoperability among
        wireless networking equipment.

        WMM
        WMM is a wireless QoS protocol designed to preferentially
        transmit packets with high priority, thus guaranteeing
        better QoS services for voice and video applications in
        a wireless network.

        EDCA
        Enhanced distributed channel access (EDCA) is a channel
        contention mechanism designed by WMM to preferentially
        transmit packets with high priority and allocate more
        bandwidth to such packets.

        AC
        Access category (AC), is used for channel contention.
        WMM defines four access categories; they are AC-VO (voice),
        AC-VI (video), AC-BE (best-effort), and AC-BK (background)
        in the descending order of priority.  When contending for a
        channel, a high-priority AC preempts a low-priority AC.

        CAC
        Connection admission control (CAC) limits the number of
        clients that are using high-priority ACs (AC-VO and AC-VI)
        to guarantee sufficient bandwidth for existing high-priority
        traffic.

        U-APSD
        Unscheduled automatic power-save delivery (U-APSD) is a new
        power saving mechanism defined by WMM to enhance the power
        saving capability of clients.

        SVP
        SpectraLink voice priority (SVP) is a voice priority protocol
        designed by the Spectralink company to guarantee QoS for voice
        traffic."

    REVISION "200807231200Z"
    DESCRIPTION
            "The initial revision of this MIB module."
    ::= { hpnicfDot11 9 }

-- ==================================================================
-- Textual Conventions
-- ==================================================================
HpnicfDot11WMMSVPMapAC ::=  TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The AC level which SVP packets are assigned to.
         acbk    : for background access category,
         acbe    : for best-effort access category,
         acvi    : for voice access category,
         acvo    : for video access category,
         disable : for disable SVP feature
        "
    SYNTAX      INTEGER
        {
            acbk(1),
            acbe(2),
            acvi(3),
            acvo(4),
            disable(5)
        }

HpnicfDot11WMMCACPolicy ::=  TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "The policy of CAC.
         channelUtilization : the channel utilization-based admission policy
                                 for CAC,
         userNumber         : the users-based admission policy for CAC"
    SYNTAX      INTEGER
        {
            channelUtilization(1),
            userNumber(2)
        }



-- ==================================================================
-- Major sections
-- ==================================================================
hpnicfDot11WmmCfgGroup OBJECT IDENTIFIER   ::= { hpnicfDot11QoS 1 }
--  Roaming Configuration Group has the following children:
--  hpnicfDot11RadioWmmCfgTable            ::= { hpnicfDot11WmmCfgGroup 1 }
--  hpnicfDot11RadioWmmEdcaCfgTable        ::= { hpnicfDot11WmmCfgGroup 2 }
--  hpnicfDot11StationWmmEdcaTable         ::= { hpnicfDot11WmmCfgGroup 3 }
--  hpnicfDot11WmmResetGroup               ::= { hpnicfDot11WmmCfgGroup 4 }

-- ==================================================================
-- hpnicfDot11WmmCfgGroup Definition
-- ==================================================================
-- ==================================================================
-- hpnicfDot11RadioWmmCfgTable Definition
-- ==================================================================
hpnicfDot11RadioWmmCfgTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfDot11RadioWmmCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table defines the basic parameters for WMM configuration."
    ::= { hpnicfDot11WmmCfgGroup 1 }

hpnicfDot11RadioWmmCfgEntry OBJECT-TYPE
    SYNTAX      HpnicfDot11RadioWmmCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry contains the basic information for WMM configuration."
    INDEX
        {
            hpnicfDot11WmmRadioIndex
        }
    ::= { hpnicfDot11RadioWmmCfgTable 1 }

HpnicfDot11RadioWmmCfgEntry ::= SEQUENCE
    {
        hpnicfDot11WmmRadioIndex           HpnicfDot11RadioElementIndex,
        hpnicfDot11RadioWmmEnabled         TruthValue,
        hpnicfDot11RadioSVPMapToAC         HpnicfDot11WMMSVPMapAC,
        hpnicfDot11RadioCacPolicy          HpnicfDot11WMMCACPolicy,
        hpnicfDot11RadioCacChlUtlValue     Integer32,
        hpnicfDot11RadioCacUserNum         Integer32
    }

hpnicfDot11WmmRadioIndex OBJECT-TYPE
    SYNTAX      HpnicfDot11RadioElementIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Represents index of the radio."
    ::= { hpnicfDot11RadioWmmCfgEntry 1 }

hpnicfDot11RadioWmmEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents the status of WMM in radio.
         'true' : The WMM function is enabled.
         'false': The WMM function is disabled."
    ::= { hpnicfDot11RadioWmmCfgEntry 2 }

hpnicfDot11RadioSVPMapToAC OBJECT-TYPE
    SYNTAX      HpnicfDot11WMMSVPMapAC
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents the AC level which SVP packets are assigned to.
         'acbk'   : Specifies the AC-BK (background traffic) queue.
         'acbe'   : Specifies the AC-BE (best-effort traffic) queue.
         'acvi'   : Specifies the AC-VI (video traffic) queue.
         'acvo'   : Specifies the AC-VO (voice traffic) queue.
         'disable' : Disable SVP packet mapping."
    ::= { hpnicfDot11RadioWmmCfgEntry 3 }

hpnicfDot11RadioCacPolicy OBJECT-TYPE
    SYNTAX      HpnicfDot11WMMCACPolicy
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents the policy for CAC.
         CAC requires that a client obtain permission of the AP before it can
         use a high-priority AC for transmission, thus guaranteeing bandwidth
         to the clients that have gained access.  CAC controls real time traffic
         (AC-VO and AC-VI traffic) but not common data traffic (AC-BE and AC-BK
         traffic)."
    ::= { hpnicfDot11RadioWmmCfgEntry 4 }

hpnicfDot11RadioCacChlUtlValue OBJECT-TYPE
    SYNTAX      Integer32(0..100)
    UNITS       "percent"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents Maximum channel utilization rate, that is, the medium
         time of the accepted AC-VO traffic and AC-VI traffic to the valid
         time during the unit time.
         This object can be set only if the value of hpnicfDot11RadioCacPolicy is
         ChannelUtilization."
    ::= { hpnicfDot11RadioWmmCfgEntry 5 }

hpnicfDot11RadioCacUserNum OBJECT-TYPE
    SYNTAX      Integer32(0..124)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents the users-based admission policy for CAC.
         This object can be set only if the value of hpnicfDot11RadioCacPolicy is
         userNumber."
    ::= { hpnicfDot11RadioWmmCfgEntry 6 }

-- ==================================================================
-- hpnicfDot11RadioWmmEdcaCfgTable Definition
-- ==================================================================
hpnicfDot11RadioWmmEdcaCfgTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfDot11RadioWmmEdcaCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table defines the basic parameters for EDCA configuration of
         radio."
    ::= { hpnicfDot11WmmCfgGroup 2 }

hpnicfDot11RadioWmmEdcaCfgEntry OBJECT-TYPE
    SYNTAX      HpnicfDot11RadioWmmEdcaCfgEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry contains the basic information for EDCA configuration of
         radio."
    INDEX
        {
            hpnicfDot11WmmRadioIndex,
            hpnicfDot11RadioWmmAC
        }
    ::= { hpnicfDot11RadioWmmEdcaCfgTable 1 }

HpnicfDot11RadioWmmEdcaCfgEntry ::= SEQUENCE
    {
        hpnicfDot11RadioWmmAC          HpnicfDot11QosAcType,
        hpnicfDot11RadioWmmAifsn       Integer32,
        hpnicfDot11RadioWmmEcwMin      Integer32,
        hpnicfDot11RadioWmmEcwMax      Integer32,
        hpnicfDot11RadioWmmTxoplimit   Integer32,
        hpnicfDot11RadioWmmNoAck       TruthValue
    }

hpnicfDot11RadioWmmAC OBJECT-TYPE
    SYNTAX      HpnicfDot11QosAcType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Represents the AC level index of EDCA parameters of radio.
         'acbk' : Specifies AC-BK (background traffic).
         'acbe' : Specifies AC-BE (best-effort traffic).
         'acvi' : Specifies AC-VI (video traffic).
         'acvo' : Specifies AC-VO (voice traffic)."
    ::= { hpnicfDot11RadioWmmEdcaCfgEntry 1 }

hpnicfDot11RadioWmmAifsn OBJECT-TYPE
    SYNTAX      Integer32(1..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents AIFSN parameter of EDCA.  The value range of this
         object is limited by the radio chip capability."
    ::= { hpnicfDot11RadioWmmEdcaCfgEntry 2 }

hpnicfDot11RadioWmmEcwMin OBJECT-TYPE
    SYNTAX      Integer32(0..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents ECWmin parameter of EDCA.  The value range of this
         object is limited by the radio chip capability.
         ECWmin parameter of EDCA must be smaller than ECWmax parameter."
    ::= { hpnicfDot11RadioWmmEdcaCfgEntry 3 }

hpnicfDot11RadioWmmEcwMax OBJECT-TYPE
    SYNTAX      Integer32(0..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents ECWmax parameter of EDCA.  The value range of this
         object is limited by the radio chip capability.
         ECWmin parameter of EDCA must be larger than ECWmax parameter."
    ::= { hpnicfDot11RadioWmmEdcaCfgEntry 4 }

hpnicfDot11RadioWmmTxoplimit OBJECT-TYPE
    SYNTAX      Integer32(0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents TXOPLimit parameter of EDCA, the value must be
         in the range of 0 to 65535 (in units of 32 microseconds).
         The TXOP value of 0 indicates that only one MPDU can be
         transmitted.  The range of this argument is limited by the
         radio chip capability."
    ::= { hpnicfDot11RadioWmmEdcaCfgEntry 5 }

hpnicfDot11RadioWmmNoAck OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents the AC to adopt the No ACK policy.  The protocol
         defines two ACK policies: Normal ACK and No ACK."
    ::= { hpnicfDot11RadioWmmEdcaCfgEntry 6 }

-- ==================================================================
-- hpnicfDot11StationWmmEdcaTable Definition
-- ==================================================================
hpnicfDot11StationWmmEdcaTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfDot11StationWmmEdcaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table defines the basic parameters for EDCA configuration of
         station."
    ::= { hpnicfDot11WmmCfgGroup 3 }

hpnicfDot11StationWmmEdcaEntry OBJECT-TYPE
    SYNTAX      HpnicfDot11StationWmmEdcaEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry contains the basic information for EDCA configuration of
         client.  If CAC is enabled for an AC, CAC is also enabled for ACs with
         higher priority.  For example, if CAC is enabled for AC-VI, CAC
         is also enabled for AC-VO.  However, enabling CAC for AC-VO does
         not enable CAC for AC-VI."
    INDEX
        {
            hpnicfDot11WmmRadioIndex,
            hpnicfDot11StationWmmAC
        }
    ::= { hpnicfDot11StationWmmEdcaTable 1 }

HpnicfDot11StationWmmEdcaEntry ::= SEQUENCE
    {
        hpnicfDot11StationWmmAC            HpnicfDot11QosAcType,
        hpnicfDot11StationWmmAifsn         Integer32,
        hpnicfDot11StationWmmEcwMin        Integer32,
        hpnicfDot11StationWmmEcwMax        Integer32,
        hpnicfDot11StationWmmTxoplimit     Integer32,
        hpnicfDot11StationWmmCacEnabled    TruthValue
    }

hpnicfDot11StationWmmAC OBJECT-TYPE
    SYNTAX      HpnicfDot11QosAcType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Represents the AC level index of EDCA parameters of client.
         'acbk' : Specifies AC-BK (background traffic).
         'acbe' : Specifies AC-BE (best-effort traffic).
         'acvi' : Specifies AC-VI (video traffic).
         'acvo' : Specifies AC-VO (voice traffic)."
    ::= { hpnicfDot11StationWmmEdcaEntry 1 }

hpnicfDot11StationWmmAifsn OBJECT-TYPE
    SYNTAX      Integer32(2..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents AIFSN parameter of EDCA."
    ::= { hpnicfDot11StationWmmEdcaEntry 2 }

hpnicfDot11StationWmmEcwMin OBJECT-TYPE
    SYNTAX      Integer32(0..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents ECWmin parameter of EDCA."
    ::= { hpnicfDot11StationWmmEdcaEntry 3 }

hpnicfDot11StationWmmEcwMax OBJECT-TYPE
    SYNTAX      Integer32(0..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents ECWmax parameter of EDCA."
    ::= { hpnicfDot11StationWmmEdcaEntry 4 }

hpnicfDot11StationWmmTxoplimit OBJECT-TYPE
    SYNTAX      Integer32(0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents TXOPLimit parameter of EDCA, the value is in units of 32
         microseconds.
         The TXOP value of 0 indicates that only one MPDU can be
         transmitted."
    ::= { hpnicfDot11StationWmmEdcaEntry 5 }

hpnicfDot11StationWmmCacEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents the AC to adopt the No ACK policy.  The protocol
         defines two ACK policies: Normal ACK and No ACK.  Only if
         the value of hpnicfDot11StationWmmAC is 'acvo' or 'acvi', Cac
         can be set correctly here."
    ::= { hpnicfDot11StationWmmEdcaEntry 6 }

-- ==================================================================
-- end of hpnicfDot11StationWmmEdcaTable Definition
-- ==================================================================
hpnicfDot11WmmResetGroup OBJECT IDENTIFIER  ::= { hpnicfDot11WmmCfgGroup 4 }

hpnicfDot11WmmResetRadioByAP OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Clear the WMM statistics information of the radio of the
         specified AP or all radios.
         The meaning of this object is the same as hpnicfDot11APElementIndex,
         it represents the index of AP element.  If the value of this object
         is set to 0xFFFFFFFF, WMM statistics information of all radios
         will be cleared.
         The value of this object is always 0 with the get operation."
    ::= { hpnicfDot11WmmResetGroup 1 }

hpnicfDot11WmmResetStationByAP OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Clear the WMM statistics information of the clients associated
         with the specified AP, or of all clients.
         The meaning of this object is the same as hpnicfDot11APElementIndex,
         it represents the index of AP element.  If set with the
         0xFFFFFFFF, it will clear the WMM statistics information of all
         clients.
         The value of this object is always 0 with the get operation."
    ::= { hpnicfDot11WmmResetGroup 2 }

hpnicfDot11RadioWmmEdcaCfg2Table OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfDot11RadioWmmEdcaCfg2Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The table defines the basic parameters for EDCA configuration of
         radio."
    ::= { hpnicfDot11WmmCfgGroup 5 }

hpnicfDot11RadioWmmEdcaCfg2Entry OBJECT-TYPE
    SYNTAX      HpnicfDot11RadioWmmEdcaCfg2Entry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This entry contains the basic information for EDCA configuration of
         radio."
    INDEX
        {
            hpnicfDot11WMMAPSerialID,
            hpnicfDot11WMMRdId,
            hpnicfDot11RdWmmAC
        }
    ::= { hpnicfDot11RadioWmmEdcaCfg2Table 1 }

HpnicfDot11RadioWmmEdcaCfg2Entry ::= SEQUENCE
    {
        hpnicfDot11WMMAPSerialID    HpnicfDot11ObjectIDType,
        hpnicfDot11WMMRdId          HpnicfDot11RadioScopeType,
        hpnicfDot11RdWmmAC          HpnicfDot11QosAcType,
        hpnicfDot11RdWmmAifsn       Integer32,
        hpnicfDot11RdWmmEcwMin      Integer32,
        hpnicfDot11RdWmmEcwMax      Integer32,
        hpnicfDot11RdWmmTxoplimit   Integer32
    }

hpnicfDot11WMMAPSerialID OBJECT-TYPE
    SYNTAX      HpnicfDot11ObjectIDType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Serial ID of the AP."
    ::= { hpnicfDot11RadioWmmEdcaCfg2Entry 1 }

hpnicfDot11WMMRdId OBJECT-TYPE
    SYNTAX      HpnicfDot11RadioScopeType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "radio ID of the radio."
    ::= { hpnicfDot11RadioWmmEdcaCfg2Entry 2 }


hpnicfDot11RdWmmAC OBJECT-TYPE
    SYNTAX      HpnicfDot11QosAcType
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Represents the AC level index of EDCA parameters of radio.
         'acbk' : Specifies AC-BK (background traffic).
         'acbe' : Specifies AC-BE (best-effort traffic).
         'acvi' : Specifies AC-VI (video traffic).
         'acvo' : Specifies AC-VO (voice traffic)."
    ::= { hpnicfDot11RadioWmmEdcaCfg2Entry 3 }

hpnicfDot11RdWmmAifsn OBJECT-TYPE
    SYNTAX      Integer32(1..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents AIFSN parameter of EDCA.  The value range of this
         object is limited by the radio chip capability."
    ::= { hpnicfDot11RadioWmmEdcaCfg2Entry 4 }

hpnicfDot11RdWmmEcwMin OBJECT-TYPE
    SYNTAX      Integer32(0..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents ECWmin parameter of EDCA.  The value range of this
         object is limited by the radio chip capability.
         ECWmin parameter of EDCA must be smaller than ECWmax parameter."
    ::= { hpnicfDot11RadioWmmEdcaCfg2Entry 5 }

hpnicfDot11RdWmmEcwMax OBJECT-TYPE
    SYNTAX      Integer32(0..15)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents ECWmax parameter of EDCA.  The value range of this
         object is limited by the radio chip capability.
         ECWmin parameter of EDCA must be larger than ECWmax parameter."
    ::= { hpnicfDot11RadioWmmEdcaCfg2Entry 6 }

hpnicfDot11RdWmmTxoplimit OBJECT-TYPE
    SYNTAX      Integer32(0..65535)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Represents TXOPLimit parameter of EDCA, the value must be
         in the range of 0 to 65535 (in units of 32 microseconds).
         The TXOP value of 0 indicates that only one MPDU can be
         transmitted.  The range of this argument is limited by the
         radio chip capability."
    ::= { hpnicfDot11RadioWmmEdcaCfg2Entry 7 }

END
