-- ********************************************************************
        PEPXIM-WiFi DEFINITIONS ::= BEGIN

                IMPORTS
                        OBJECT-GROUP
                                FROM SNMPv2-CONF
                        enterprises, Integer32, IpAddress, Unsigned32, Counter64, OBJECT-TYPE, MODULE-IDENTITY
                                FROM SNMPv2-SMI
                        DisplayString, RowStatus, TruthValue, MacAddress
                                FROM SNMPv2-TC;

--
-- Node definitions
--
-- ********************************************************************
-- *  MODULE IDENTITY
-- ********************************************************************
-- The Enterprises Number
        pepxim OBJECT IDENTIFIER ::= { enterprises 52467 }

        productMib  OBJECT IDENTIFIER ::= { pepxim 200 }

        generalMib OBJECT IDENTIFIER ::= { productMib 1 }

        wifiMib MODULE-IDENTITY
                    LAST-UPDATED "202005221200Z"        -- 05 22, 2020 at 12:00 GMT
                    ORGANIZATION "PEPXIM"
                    CONTACT-INFO ""
                    DESCRIPTION
                        "MIB module for Wi-Fi."
            ::= { generalMib 14 }

-- #####################################################################
--
-- **********************************************************************
-- *  MIB attribute OBJECT-TYPE definitions follow
-- **********************************************************************
        wifiRadio OBJECT IDENTIFIER ::= { wifiMib 1 }

        wifiRadioInfo OBJECT IDENTIFIER ::= { wifiRadio 1 }

        wifiAp OBJECT IDENTIFIER ::= { wifiMib 2 }

        wifiApInfo OBJECT IDENTIFIER ::= { wifiAp 1 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiRadioInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiRadioInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Wi-Fi radio info table"
            ::= { wifiRadioInfo 1 }

            wifiRadioInfoEntry OBJECT-TYPE
            SYNTAX WifiRadioInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiRadioInfoTable"
            INDEX { wifiRadioId }
            ::= { wifiRadioInfoTable 1 }

            WifiRadioInfoEntry ::=
            SEQUENCE {
                wifiRadioId
                    Integer32,
                wifiRadioMacAddress
                    MacAddress,
                wifiRadioBand
                    INTEGER,
                wifiRadioChannel
                    Integer32,
                wifiRadioTxPower
                    Integer32,
                wifiRadioNumConnectedClients
                    Integer32
            }

            wifiRadioId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi radio id."
                ::= { wifiRadioInfoEntry 1 }

            wifiRadioMacAddress OBJECT-TYPE
                SYNTAX MacAddress
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi radio MAC address."
                ::= { wifiRadioInfoEntry 2 }

            wifiRadioBand OBJECT-TYPE
                SYNTAX INTEGER {
                        band2dot4GHz(2400),
                        band5GHz(5000)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi radio band."
                ::= { wifiRadioInfoEntry 3 }

            wifiRadioChannel OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi radio channel."
                ::= { wifiRadioInfoEntry 4 }

            wifiRadioTxPower OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi radio transmitted power (units:dBm).
                    Remark:
                    If the value equals -1, means transmitted power 
                    not applicable in this radio."
                ::= { wifiRadioInfoEntry 5 }

            wifiRadioNumConnectedClients OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi radio number of connected clients."
                ::= { wifiRadioInfoEntry 6 }

        wifiApWlanInfo OBJECT IDENTIFIER ::= { wifiApInfo 2 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiApWlanInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiApWlanInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Wi-Fi AP WLAN info table"
            ::= { wifiApWlanInfo 1 }

            wifiApWlanInfoEntry OBJECT-TYPE
            SYNTAX WifiApWlanInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiApWlanInfoTable"
            INDEX { wifiApWlanId }
            ::= { wifiApWlanInfoTable 1 }

            WifiApWlanInfoEntry ::=
            SEQUENCE {
                wifiApWlanId
                    Integer32,
                wifiApWlanInfoSsid
                    OCTET STRING,
                wifiApWlanInfoSsidStatus
                    INTEGER,
                wifiApWlanInfoBroadcastSsid
                    INTEGER,
                wifiApWlanInfoVlanId
                    INTEGER
            }

            wifiApWlanId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN id."
                ::= { wifiApWlanInfoEntry 1 }

            wifiApWlanInfoSsid OBJECT-TYPE
                SYNTAX OCTET STRING(SIZE(1..32))
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN SSID."
                ::= { wifiApWlanInfoEntry 2 }

            wifiApWlanInfoSsidStatus OBJECT-TYPE
                SYNTAX INTEGER {
                        disable(0),
                        enable(1)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN SSID status."
                ::= { wifiApWlanInfoEntry 3 }

            wifiApWlanInfoBroadcastSsid OBJECT-TYPE
                SYNTAX INTEGER {
                        disable(0),
                        enable(1)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN broadcast SSID status."
                ::= { wifiApWlanInfoEntry 4 }

            wifiApWlanInfoVlanId OBJECT-TYPE
                SYNTAX INTEGER(0..4095)
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN vlan id.
                     Remarks: Non-zero value means valid tagged vlan id"
                ::= { wifiApWlanInfoEntry 5 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiApWlanBandInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiApWlanBandInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Wi-Fi AP WLAN MAC table"
            ::= { wifiApWlanInfo 2 }

            wifiApWlanBandInfoEntry OBJECT-TYPE
            SYNTAX WifiApWlanBandInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiApWlanBandInfoTable"
            INDEX { wifiRadioId, wifiApWlanId }
            ::= { wifiApWlanBandInfoTable 1 }

            WifiApWlanBandInfoEntry ::=
            SEQUENCE {
                wifiApWlanBssid
                    MacAddress
            }

            wifiApWlanBssid OBJECT-TYPE
                SYNTAX MacAddress
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN BSSID."
                ::= { wifiApWlanBandInfoEntry 1 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiApWlanAdvancedInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiApWlanAdvancedInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Wi-Fi AP WLAN info table"
            ::= { wifiApWlanInfo 3 }

            wifiApWlanAdvancedInfoEntry OBJECT-TYPE
            SYNTAX WifiApWlanAdvancedInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiApWlanAdvancedInfoTable"
            INDEX { wifiApWlanId }
            ::= { wifiApWlanAdvancedInfoTable 1 }

            WifiApWlanAdvancedInfoEntry ::=
            SEQUENCE {
                wifiApWlanInfoPmkCaching
                    INTEGER
            }

            wifiApWlanInfoPmkCaching OBJECT-TYPE
                SYNTAX INTEGER {
                        disable(0),
                        enable(1)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN PMK caching status."
                ::= { wifiApWlanAdvancedInfoEntry 1 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiApWlanSecurityInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiApWlanSecurityInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Wi-Fi AP WLAN security table"
            ::= { wifiApWlanInfo 4 }

            wifiApWlanSecurityInfoEntry OBJECT-TYPE
            SYNTAX WifiApWlanSecurityInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiApWlanSecurityInfoTable"
            INDEX { wifiApWlanId }
            ::= { wifiApWlanSecurityInfoTable 1 }

            WifiApWlanSecurityInfoEntry ::=
            SEQUENCE {
                wifiApWlanInfoSecurityPolicy
                    INTEGER,
                wifiApWlanInfoEncryption
                    INTEGER
            }

            wifiApWlanInfoSecurityPolicy OBJECT-TYPE
                SYNTAX INTEGER {
                        open(0),
                        wpa2Psk(1),
                        wpaOrWpa2Psk(2),
                        wpa3Psk(3),
                        wpa2OrWpa3Psk(4),
                        wpa2(5),
                        wpaOrWpa2(6)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN security policy."
                ::= { wifiApWlanSecurityInfoEntry 1 }

            wifiApWlanInfoEncryption OBJECT-TYPE
                SYNTAX INTEGER {
                        none(0),
                        aes(1),
                        tkipOrAes(2)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN encryption."
                ::= { wifiApWlanSecurityInfoEntry 2 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiApWlanStatTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiApWlanStatEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Wi-Fi AP WLAN stat table"
            ::= { wifiApWlanInfo 5 }

            wifiApWlanStatEntry OBJECT-TYPE
            SYNTAX WifiApWlanStatEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiApWlanStatTable"
            INDEX { wifiApWlanId }
            ::= { wifiApWlanStatTable 1 }

            WifiApWlanStatEntry ::=
            SEQUENCE {
                wifiApWlanNumConnectedClients
                    Integer32,
                wifiApWlanTxPackets
                    Counter64,
                wifiApWlanRxPackets
                    Counter64,
                wifiApWlanTxByte
                    Counter64,
                wifiApWlanRxByte
                    Counter64
            }

            wifiApWlanNumConnectedClients OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN number of connected clients."
                ::= { wifiApWlanStatEntry 1 }

            wifiApWlanTxPackets OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN transmitted packets."
                ::= { wifiApWlanStatEntry 2 }

            wifiApWlanRxPackets OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN revceived packets."
                ::= { wifiApWlanStatEntry 3 }

            wifiApWlanTxByte OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN transmitted bytes."
                ::= { wifiApWlanStatEntry 4 }

            wifiApWlanRxByte OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP WLAN revceived bytes."
                ::= { wifiApWlanStatEntry 5 }

        wifiApStaInfo OBJECT IDENTIFIER ::= { wifiApInfo 3 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiApStaInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiApStaInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "AP station info table"
            ::= { wifiApStaInfo 1 }

            wifiApStaInfoEntry OBJECT-TYPE
            SYNTAX WifiApStaInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiApStaInfoTable"
            INDEX { wifiRadioId, wifiApWlanId, wifiApStaId }
            ::= { wifiApStaInfoTable 1 }

            WifiApStaInfoEntry ::=
            SEQUENCE {
                wifiApStaId
                    Integer32,
                wifiApStaMacAddress
                    MacAddress,
                wifiApStaIpAddress
                    IpAddress,
                wifiApStaRadioPolicy
                    INTEGER,
                wifiApStaConnectionTime
                    OCTET STRING,
                wifiApStaSignalRssi
                    Integer32
            }

            wifiApStaId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station id."
                ::= { wifiApStaInfoEntry 1 }

            wifiApStaMacAddress OBJECT-TYPE
                SYNTAX MacAddress
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station MAC address."
                ::= { wifiApStaInfoEntry 2 }

            wifiApStaIpAddress OBJECT-TYPE
                SYNTAX IpAddress
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station IP address."
                ::= { wifiApStaInfoEntry 3 }

            wifiApStaRadioPolicy OBJECT-TYPE
                SYNTAX INTEGER{
                        radio802dot11b(0),
                        radio802dot11g(1), 
                        radio802dot11a(2), 
                        radio802dot11ng(3),
                        radio802dot11na(4),
                        radio802dot11ac(5)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station radio policy."
                ::= { wifiApStaInfoEntry 4 }

            wifiApStaConnectionTime OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station connection time."
                ::= { wifiApStaInfoEntry 5 }

            wifiApStaSignalRssi OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station RSSI."
                ::= { wifiApStaInfoEntry 6 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        wifiApStaStatTable OBJECT-TYPE
            SYNTAX SEQUENCE OF WifiApStaStatEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "AP station stat table"
            ::= { wifiApStaInfo 2 }

            wifiApStaStatEntry OBJECT-TYPE
            SYNTAX WifiApStaStatEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the wifiApStaStatTable"
            INDEX { wifiRadioId, wifiApWlanId, wifiApStaId }
            ::= { wifiApStaStatTable 1 }

            WifiApStaStatEntry ::=
            SEQUENCE {
                wifiApStaTxPackets
                    Counter64,
                wifiApStaRxPackets
                    Counter64,
                wifiApStaTxBytes
                    Counter64,
                wifiApStaRxBytes
                    Counter64,
                wifiApStaTxErrorPackets
                    Counter64,
                wifiApStaRxErrorPackets
                    Counter64,
                wifiApStaTxRate
                    Counter64,
                wifiApStaRxRate
                    Counter64
            }

            wifiApStaTxPackets OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station transmitted packets."
                ::= { wifiApStaStatEntry 1 }

            wifiApStaRxPackets OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station received packets."
                ::= { wifiApStaStatEntry 2 }

            wifiApStaTxBytes OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station transmitted bytes."
                ::= { wifiApStaStatEntry 3 }

            wifiApStaRxBytes OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station received bytes."
                ::= { wifiApStaStatEntry 4 }

            wifiApStaTxErrorPackets OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station transmitted error packets."
                ::= { wifiApStaStatEntry 5 }

           wifiApStaRxErrorPackets OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station received error packets."
                ::= { wifiApStaStatEntry 6 }

            wifiApStaTxRate OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station transmitted rate (units:bps)."
                ::= { wifiApStaStatEntry 7 }

            wifiApStaRxRate OBJECT-TYPE
                SYNTAX Counter64
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Wi-Fi AP Station received rate (units:bps)."
                ::= { wifiApStaStatEntry 8 }
END
