-- =============================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description:
--   The file defines a MIB to provide spectrum analysis information.
-- Reference:
-- Version: V1.0
-- History:
--   V1.0 Created by Wang Lu
--     Initial version 2011-08-05
-- =============================================================================
HPN-ICF-DOT11-SA-MIB DEFINITIONS ::= BEGIN

IMPORTS
        TruthValue,
        DateAndTime
    FROM SNMPv2-TC
        MODULE-IDENTITY,
        Integer32, Unsigned32, OBJECT-TYPE, NOTIFICATION-TYPE
    FROM SNMPv2-SMI
        hpnicfDot11,
        HpnicfDot11ChannelScopeType,
        HpnicfDot11ObjectIDType,
        HpnicfDot11RadioScopeType,
        HpnicfDot11SaIntfDevType
    FROM HPN-ICF-DOT11-REF-MIB;

hpnicfDot11Sa MODULE-IDENTITY
    LAST-UPDATED "201108262000Z"        -- Aug 26, 2011 at 20:00 GMT
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "This MIB module provides spectrum analysis information.
        The initial revision of this MIB module.

        The spectrum analysis module on APs is able to examine the radio
        frequency (RF) environment in which the Wi-Fi network is operating,
        identify interference and classify its sources. An analysis of the
        results can then be used to quickly isolate issues with packet
        transmission, channel quality, and traffic congestion caused by
        contention with other devices operating in the same band or channel."
    REVISION "201108262000Z"
    DESCRIPTION
        "The initial revision of this MIB module."
    ::= { hpnicfDot11 13 }

-- *****************************************************************************
-- *  Major sections
-- *****************************************************************************

hpnicfDot11SaCfgGroup OBJECT IDENTIFIER  ::= { hpnicfDot11Sa 1 }
hpnicfDot11SaStatusGroup OBJECT IDENTIFIER  ::= { hpnicfDot11Sa 2 }
hpnicfDot11SaNotifyGroup OBJECT IDENTIFIER  ::= { hpnicfDot11Sa 3 }

-- cfg table
hpnicfDot11SaCfgTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfDot11SaCfgEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table is used to configure spectrum analysis."
    ::= { hpnicfDot11SaCfgGroup 1 }

hpnicfDot11SaCfgEntry OBJECT-TYPE
    SYNTAX HpnicfDot11SaCfgEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This entry contains the spectrum analysis configuration."
    INDEX { hpnicfDot11SaCfgRadioType }
    ::= { hpnicfDot11SaCfgTable 1 }

HpnicfDot11SaCfgEntry ::= SEQUENCE
    {
        hpnicfDot11SaCfgRadioType       INTEGER,
        hpnicfDot11SaEnable             TruthValue,
        hpnicfDot11SaRptDevType         BITS,
        hpnicfDot11SaTrapDevEnable      TruthValue,
        hpnicfDot11SaTrapDevType        BITS,
        hpnicfDot11SaTrapAQEnable       TruthValue,
        hpnicfDot11SaTrapAQThreshold    Integer32,
        hpnicfDot11SaDrivenRRMEnable    TruthValue,
        hpnicfDot11SaDrivenRRMSnt       INTEGER
    }

hpnicfDot11SaCfgRadioType OBJECT-TYPE
    SYNTAX INTEGER
    {
        dot11bg(1),
        dot11a(2)
    }
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Represents the radio type of the configuration."
    ::= { hpnicfDot11SaCfgEntry 1 }

hpnicfDot11SaEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Represents whether spectrum analysis is enabled globally."
    ::= { hpnicfDot11SaCfgEntry 2 }

hpnicfDot11SaRptDevType OBJECT-TYPE
    SYNTAX BITS
        {
            microwave(0),
            microwaveInverter(1),
            bluetooth(2),
            fixedFreqOthers(3),
            fixedFreqCordlessPhone(4),
            fixedFreqVideo(5),
            fixedFreqAudio(6),
            freqHopperOthers(7),
            freqHopperCordlessBase(8),
            freqHopperCordlessNetwork(9),
            freqHopperXbox(10),
            genericInterferer(11)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Represents which types of interference devices should be reported."
    ::= { hpnicfDot11SaCfgEntry 3 }

hpnicfDot11SaTrapDevEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Represents whether the interference device trap is enabled."
    ::= { hpnicfDot11SaCfgEntry 4 }

hpnicfDot11SaTrapDevType OBJECT-TYPE
    SYNTAX BITS
        {
            microwave(0),
            microwaveInverter(1),
            bluetooth(2),
            fixedFreqOthers(3),
            fixedFreqCordlessPhone(4),
            fixedFreqVideo(5),
            fixedFreqAudio(6),
            freqHopperOthers(7),
            freqHopperCordlessBase(8),
            freqHopperCordlessNetwork(9),
            freqHopperXbox(10),
            genericInterferer(11)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Represents which types of interference device will send traps
         when the interference device trap is enabled."
    ::= { hpnicfDot11SaCfgEntry 5 }

hpnicfDot11SaTrapAQEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Represents whether the air quality trap is enabled."
    ::= { hpnicfDot11SaCfgEntry 6 }

hpnicfDot11SaTrapAQThreshold OBJECT-TYPE
    SYNTAX Integer32(1..100)
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Represents the air quality trap threshold.  When the air quality
        is below this value, the air quality trap will be sent."
    ::= { hpnicfDot11SaCfgEntry 7 }

hpnicfDot11SaDrivenRRMEnable OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Configure whether to trigger RRM to run when an access point detects
         a certain level of interference."
    ::= { hpnicfDot11SaCfgEntry 8 }

hpnicfDot11SaDrivenRRMSnt OBJECT-TYPE
    SYNTAX INTEGER
    {
        low(1),
        medium(2),
        high(3)
    }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "Configure the threshold at which RRM will be triggered.  When the
         interference level for the access point rises above the threshold
         level, RRM initiates a local dynamic channel assignment (DCA) run
         and changes the channel of the affected access point radio if
         possible to improve network performance.  Low represents a decreased
         sensitivity to changes in the environment while high represents an
         increased sensitivity."
    ::= { hpnicfDot11SaCfgEntry 9 }

-- fft table
hpnicfDot11SaRtFFTDataTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfDot11SaRtFFTDataEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains the real-time FFT data for spectrum analysis."
    ::= { hpnicfDot11SaStatusGroup 1 }

hpnicfDot11SaRtFFTDataEntry OBJECT-TYPE
    SYNTAX HpnicfDot11SaRtFFTDataEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This entry contains the real-time FFT data for spectrum analysis."
    INDEX
        {
            hpnicfDot11SaAPID,
            hpnicfDot11SaRadioID,
            hpnicfDot11SaRtDataGroupID,
            hpnicfDot11SaFrequency
        }
    ::= { hpnicfDot11SaRtFFTDataTable 1 }

HpnicfDot11SaRtFFTDataEntry ::= SEQUENCE
    {
        hpnicfDot11SaAPID               HpnicfDot11ObjectIDType,
        hpnicfDot11SaRadioID            HpnicfDot11RadioScopeType,
        hpnicfDot11SaRtDataGroupID      Integer32,
        hpnicfDot11SaFrequency          Integer32,
        hpnicfDot11SaRtFreqPower        Integer32,
        hpnicfDot11SaRtFreqMaxPower     Integer32,
        hpnicfDot11SaRtFreqDutyCycle    Integer32,
        hpnicfDot11SaRtFreqDataSeqNo    Unsigned32
    }

hpnicfDot11SaAPID OBJECT-TYPE
    SYNTAX HpnicfDot11ObjectIDType
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Represents the serial ID of the AP."
    ::= { hpnicfDot11SaRtFFTDataEntry 1 }

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

hpnicfDot11SaRtDataGroupID OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Represents group ID of the collected data.  Maybe the device collects
         multiple groups of data at the collected interval."
    ::= { hpnicfDot11SaRtFFTDataEntry 3 }

hpnicfDot11SaFrequency OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Represents the frequency number in 100 Hz."
    ::= { hpnicfDot11SaRtFFTDataEntry 4 }

hpnicfDot11SaRtFreqPower OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the power of the frequency point."
    ::= { hpnicfDot11SaRtFFTDataEntry 5 }

hpnicfDot11SaRtFreqMaxPower OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the max power of the frequency point."
    ::= { hpnicfDot11SaRtFFTDataEntry 6 }

hpnicfDot11SaRtFreqDutyCycle OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the duty cycle of the frequency point."
    ::= { hpnicfDot11SaRtFFTDataEntry 7 }

hpnicfDot11SaRtFreqDataSeqNo OBJECT-TYPE
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the sequence number of the data."
    ::= { hpnicfDot11SaRtFFTDataEntry 8 }

-- interfering device table
hpnicfDot11SaIntfDevTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfDot11SaIntfDevEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains the information of the interfering devices."
    ::= { hpnicfDot11SaStatusGroup 2 }

hpnicfDot11SaIntfDevEntry OBJECT-TYPE
    SYNTAX HpnicfDot11SaIntfDevEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This entry contains the information of the interfering devices."
    INDEX
        {
            hpnicfDot11SaAPID,
            hpnicfDot11SaRadioID,
            hpnicfDot11SaDevID
        }
    ::= { hpnicfDot11SaIntfDevTable 1 }

HpnicfDot11SaIntfDevEntry ::= SEQUENCE
    {
        hpnicfDot11SaDevID              Integer32,
        hpnicfDot11SaDevType            HpnicfDot11SaIntfDevType,
        hpnicfDot11SaDevSI              Integer32,
        hpnicfDot11SaDevRSSI            Integer32,
        hpnicfDot11SaDevDutyCycle       Integer32,
        hpnicfDot11SaDevAffectedChls    OCTET STRING,
        hpnicfDot11SaDevDetectedTime    DateAndTime
    }

hpnicfDot11SaDevID OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Represents the device identification number that uniquely
         identified the interfering device."
    ::= { hpnicfDot11SaIntfDevEntry 1 }

hpnicfDot11SaDevType OBJECT-TYPE
    SYNTAX HpnicfDot11SaIntfDevType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents type of the interferer."
    ::= { hpnicfDot11SaIntfDevEntry 2 }

hpnicfDot11SaDevSI OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents severity index of the interfering device.  Severity index
         is calculated, a positive integer between 0 and 100(with 100 being the
         most severe)."
    ::= { hpnicfDot11SaIntfDevEntry 3 }

hpnicfDot11SaDevRSSI OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents receive signal strength indicator (RSSI) of interfering
         device."
    ::= { hpnicfDot11SaIntfDevEntry 4 }

hpnicfDot11SaDevDutyCycle OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents proportion of time in percentage during which the
         interfering device was active."
    ::= { hpnicfDot11SaIntfDevEntry 5 }

hpnicfDot11SaDevAffectedChls OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents channels that the interfering device affects."
    ::= { hpnicfDot11SaIntfDevEntry 6 }

hpnicfDot11SaDevDetectedTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents time at which the interference was detected."
    ::= { hpnicfDot11SaIntfDevEntry 7 }

-- air quality table
hpnicfDot11SaAirQualityTable OBJECT-TYPE
    SYNTAX SEQUENCE OF HpnicfDot11SaAirQualityEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This table contains the air quality of the channels."
    ::= { hpnicfDot11SaStatusGroup 3 }

hpnicfDot11SaAirQualityEntry OBJECT-TYPE
    SYNTAX HpnicfDot11SaAirQualityEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This entry contains the air quality of the channels."
    INDEX
        {
            hpnicfDot11SaAPID,
            hpnicfDot11SaRadioID,
            hpnicfDot11SaChlNum
        }
    ::= { hpnicfDot11SaAirQualityTable 1 }

HpnicfDot11SaAirQualityEntry ::= SEQUENCE
    {
        hpnicfDot11SaChlNum             HpnicfDot11ChannelScopeType,
        hpnicfDot11SaAvgQuality         Integer32,
        hpnicfDot11SaMinQuality         Integer32,
        hpnicfDot11SaIntfDevNum         Integer32,
        hpnicfDot11SaWiFiUtil           Integer32,
        hpnicfDot11SaNonWiFiUtil        Integer32,
        hpnicfDot11SaNoiseFloor         Integer32
    }

hpnicfDot11SaChlNum OBJECT-TYPE
    SYNTAX HpnicfDot11ChannelScopeType
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "Represents the radio channel where the air quality is monitored."
    ::= { hpnicfDot11SaAirQualityEntry 1 }

hpnicfDot11SaAvgQuality OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the average air quality for this radio channel."
    ::= { hpnicfDot11SaAirQualityEntry 2 }

hpnicfDot11SaMinQuality OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the minimum air quality for this radio channel."
    ::= { hpnicfDot11SaAirQualityEntry 3 }

hpnicfDot11SaIntfDevNum OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the number of interferers detected by the radios
         on the 802.11a/n or 802.11b/g/n radio band."
    ::= { hpnicfDot11SaAirQualityEntry 4 }

hpnicfDot11SaWiFiUtil OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the percentage of the channel currently being
         used by Wi-Fi devices."
    ::= { hpnicfDot11SaAirQualityEntry 5 }

hpnicfDot11SaNonWiFiUtil OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents the percentage of the channel currently being
         used by non-Wi-Fi interference."
    ::= { hpnicfDot11SaAirQualityEntry 6 }

hpnicfDot11SaNoiseFloor OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Represents current noise floor recorded on the channel."
    ::= { hpnicfDot11SaAirQualityEntry 7 }

--Notify Group
hpnicfDot11SaTraps OBJECT IDENTIFIER  ::= { hpnicfDot11SaNotifyGroup 0 }
hpnicfDot11SaIntfDevDetected NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfDot11SaTrapAPID,
            hpnicfDot11SaTrapRadioID,
            hpnicfDot11SaTrapDevID,
            hpnicfDot11SaTrapIntfDevType,
            hpnicfDot11APTrapDevSI,
            hpnicfDot11SaTrapDevRSSI,
            hpnicfDot11APTrapDevDC,
            hpnicfDot11APTrapDevChls,
            hpnicfDot11APTrapDevDctTime
        }
    STATUS current
    DESCRIPTION
        "Interfering device is detected."
    ::= { hpnicfDot11SaTraps 1 }

hpnicfDot11SaIntfDevDisappear NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfDot11SaTrapAPID,
            hpnicfDot11SaTrapRadioID,
            hpnicfDot11SaTrapDevID,
            hpnicfDot11SaTrapIntfDevType
        }
    STATUS current
    DESCRIPTION
        "Interfering device disappeared."
    ::= { hpnicfDot11SaTraps 2 }

hpnicfDot11SaChlQltLow NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfDot11SaTrapAPID,
            hpnicfDot11SaTrapRadioID,
            hpnicfDot11SaTrapChlNum,
            hpnicfDot11SaTrapChlQlt,
            hpnicfDot11SaTrapChlIntfNum
        }
    STATUS current
    DESCRIPTION
        "The quality of the channel is below the specified threshold."
    ::= { hpnicfDot11SaTraps 3 }

hpnicfDot11SaChlQltRecover NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfDot11SaTrapAPID,
            hpnicfDot11SaTrapRadioID,
            hpnicfDot11SaTrapChlNum,
            hpnicfDot11SaTrapChlQlt,
            hpnicfDot11SaTrapChlIntfNum
        }
    STATUS current
    DESCRIPTION
        "The quality of the channel recovered from low status."
    ::= { hpnicfDot11SaTraps 4 }

hpnicfDot11SaTrapVars OBJECT IDENTIFIER  ::= { hpnicfDot11SaNotifyGroup 1 }

hpnicfDot11SaTrapAPID OBJECT-TYPE
    SYNTAX      HpnicfDot11ObjectIDType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Represents the identifier of the AP."
    ::= { hpnicfDot11SaTrapVars 1 }

hpnicfDot11SaTrapRadioID OBJECT-TYPE
    SYNTAX      HpnicfDot11RadioScopeType
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "Represents the identifier of the radio."
    ::= { hpnicfDot11SaTrapVars 2 }

hpnicfDot11SaTrapDevID OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents the device identification number that uniquely
         identified the interfering device."
    ::= { hpnicfDot11SaTrapVars 3 }

hpnicfDot11SaTrapIntfDevType OBJECT-TYPE
    SYNTAX HpnicfDot11SaIntfDevType
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents type of the interferer."
    ::= { hpnicfDot11SaTrapVars 4 }

hpnicfDot11APTrapDevSI OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents severity index of the interfering device.  Severity index
         is calculated, a positive integer between 0 and 100(with 100 being the
         most severe)."
    ::= { hpnicfDot11SaTrapVars 5 }

hpnicfDot11SaTrapDevRSSI OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents receive signal strength indicator (RSSI) of interfering
         device."
    ::= { hpnicfDot11SaTrapVars 6 }

hpnicfDot11APTrapDevDC OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents proportion of time in percentage during which the
         interfering device was active."
    ::= { hpnicfDot11SaTrapVars 7 }

hpnicfDot11APTrapDevChls OBJECT-TYPE
    SYNTAX OCTET STRING
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents channels that the interfering device affects."
    ::= { hpnicfDot11SaTrapVars 8 }

hpnicfDot11APTrapDevDctTime OBJECT-TYPE
    SYNTAX DateAndTime
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents time at which the interference was detected."
    ::= { hpnicfDot11SaTrapVars 9 }

hpnicfDot11SaTrapChlNum OBJECT-TYPE
    SYNTAX HpnicfDot11ChannelScopeType
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents the radio channel where the air quality is monitored."
    ::= { hpnicfDot11SaTrapVars 10 }

hpnicfDot11SaTrapChlQlt OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents the quality for this radio channel."
    ::= { hpnicfDot11SaTrapVars 11 }

hpnicfDot11SaTrapChlIntfNum OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS accessible-for-notify
    STATUS current
    DESCRIPTION
        "Represents the number of interferers detected by the radios
         on the 802.11a/n or 802.11b/g/n radio band."
    ::= { hpnicfDot11SaTrapVars 12 }
END
