-- ********************************************************************
        PEPLINK-CELLULAR 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
        peplink OBJECT IDENTIFIER ::= { enterprises 23695 }

        productMib  OBJECT IDENTIFIER ::= { peplink 200 }

        generalMib OBJECT IDENTIFIER ::= { productMib 1 }

        cellularMib MODULE-IDENTITY
                    LAST-UPDATED "202005221200Z"        -- 05 22, 2020 at 12:00 GMT
                    ORGANIZATION "PEPLINK"
                    CONTACT-INFO ""
                    DESCRIPTION
                        "MIB module for CELLULAR."
            ::= { generalMib 12 }

-- #####################################################################
--
-- **********************************************************************
-- *  MIB attribute OBJECT-TYPE definitions follow
-- **********************************************************************
        cellularSignalInfo OBJECT IDENTIFIER ::= { cellularMib 1 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        cellularSignalInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CellularSignalInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Cellular signal info table"
            ::= { cellularSignalInfo 1 }

            cellularSignalInfoEntry OBJECT-TYPE
            SYNTAX CellularSignalInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the cellularSignalInfoTable"
            INDEX { cellularSignalInfoId }
            ::= { cellularSignalInfoTable 1 }

            CellularSignalInfoEntry ::=
            SEQUENCE {
                cellularSignalInfoId
                    Integer32,
                cellularSignalInfoWanId
                    Integer32,
                cellularSignalRssi
                    Integer32,
                cellularSignalSnr
                    Integer32,
                cellularSignalSinr
                    Integer32,
                cellularSignalEcio
                    Integer32,
                cellularSignalRsrp
                    Integer32,
                cellularSignalRsrq
                    Integer32,
                cellularNetworkType
                    OCTET STRING,
                cellularBand
                    OCTET STRING,
                cellularLac
                    Integer32,
                cellularTac
                    Integer32,
                cellularENodeBId
                    Integer32
            }

            cellularSignalInfoId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular signal info id."
                ::= { cellularSignalInfoEntry 1 }

            cellularSignalInfoWanId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular signal info WAN id."
                ::= { cellularSignalInfoEntry 2 }

            cellularSignalRssi OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dBm"
                    MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular RSSI (units: dBm).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularSignalInfoEntry 3 }

            cellularSignalSnr OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SNR (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularSignalInfoEntry 4 }

            cellularSignalSinr OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SINR (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularSignalInfoEntry 5 }

            cellularSignalEcio OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular Ec/Io (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularSignalInfoEntry 6 }

            cellularSignalRsrp OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dBm"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular RSRP (units: dBm).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularSignalInfoEntry 7 }

            cellularSignalRsrq OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular RSRQ (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularSignalInfoEntry 8 }

            cellularNetworkType OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular Network Type."
                ::= { cellularSignalInfoEntry 9 }

            cellularBand OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular Band."
                ::= { cellularSignalInfoEntry 10 }

            cellularLac OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular Location Area Code(LAC).
                    Remark:
                    If the value equals -1, means LAC not applicable in this cellular."
                ::= { cellularSignalInfoEntry 11 }

            cellularTac OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular Tracking Area Code(TAC).
                    Remark:
                    If the value equals -1, means TAC not applicable in this cellular."
                ::= { cellularSignalInfoEntry 12 }

            cellularENodeBId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular eNodeB id.
                    Remark:
                    If the value equals -1, means eNodeB ID not applicable in this cellular."
                ::= { cellularSignalInfoEntry 13 }

        cellularIdentityInfo OBJECT IDENTIFIER ::= { cellularMib 2 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        cellularIdentityInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CellularIdentityInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Cellular identity info table"
            ::= { cellularIdentityInfo 1 }

            cellularIdentityInfoEntry OBJECT-TYPE
            SYNTAX CellularIdentityInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the cellularIdentityInfoTable"
            INDEX { cellularIdentityInfoId }
            ::= { cellularIdentityInfoTable 1 }

            CellularIdentityInfoEntry ::=
            SEQUENCE {
                cellularIdentityInfoId
                    Integer32,
                cellularIdentityInfoImei
                    OCTET STRING
            }

            cellularIdentityInfoId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular identity id."
                ::= { cellularIdentityInfoEntry 1 }

            cellularIdentityInfoImei OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular IMEI."
                ::= { cellularIdentityInfoEntry 2 }

        cellularModemInfo OBJECT IDENTIFIER ::= { cellularMib 3 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        cellularModemInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CellularModemInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Cellular modem info table"
            ::= { cellularModemInfo 1 }

            cellularModemInfoEntry OBJECT-TYPE
            SYNTAX CellularModemInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the cellularModemInfoTable"
            INDEX { cellularId }
            ::= { cellularModemInfoTable 1 }

            CellularModemInfoEntry ::=
            SEQUENCE {
                cellularId
                    Integer32,
                cellularModel
                    OCTET STRING,
                cellularMeidHex
                    OCTET STRING,
                cellularMeidDecimal
                    OCTET STRING,
                cellularHardwareRevision
                    OCTET STRING,
                cellularFirmwareVersion
                    OCTET STRING
            }

            cellularId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular info id."
                ::= { cellularModemInfoEntry 1 }

            cellularModel OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular model."
                ::= { cellularModemInfoEntry 2 }

            cellularMeidHex OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular MEID (in HEX format)."
                ::= { cellularModemInfoEntry 3 }

            cellularMeidDecimal OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular MEID (in decimal format)."
                ::= { cellularModemInfoEntry 4 }

            cellularHardwareRevision OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular hardware revision."
                ::= { cellularModemInfoEntry 5 }

            cellularFirmwareVersion OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular firmware version."
                ::= { cellularModemInfoEntry 6 }

        cellularServiceInfo OBJECT IDENTIFIER ::= { cellularMib 4 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        cellularServiceInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CellularServiceInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Cellular PIN status table"
            ::= { cellularServiceInfo 1 }

            cellularServiceInfoEntry OBJECT-TYPE
            SYNTAX CellularServiceInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the cellularServiceInfoTable"
            INDEX { cellularId }
            ::= { cellularServiceInfoTable 1 }

            CellularServiceInfoEntry ::=
            SEQUENCE {
                cellularCarrier
                    OCTET STRING
            }

            cellularCarrier OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular carrier."
                ::= { cellularServiceInfoEntry 1 }

        cellularSimInfo OBJECT IDENTIFIER ::= { cellularMib 5 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        cellularSimInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CellularSimInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Cellular SIM info table"
            ::= { cellularSimInfo 1 }

            cellularSimInfoEntry OBJECT-TYPE
            SYNTAX CellularSimInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the cellularSimInfoTable"
            INDEX { cellularId, cellularSimId }
            ::= { cellularSimInfoTable 1 }

            CellularSimInfoEntry ::=
            SEQUENCE {
                cellularSimId
                    Integer32,
                cellularSimCardDetected
                    INTEGER,
                cellularSimInUse
                    INTEGER,
                cellularSimPinCodeStatus
                    INTEGER,
                cellularSimImsi
                    OCTET STRING,
                cellularSimIccid
                    OCTET STRING,
                cellularSimMtn
                    OCTET STRING
            }

            cellularSimId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SIM id."
                ::= { cellularSimInfoEntry 1 }

            cellularSimCardDetected OBJECT-TYPE
                SYNTAX INTEGER {
                        no(0),
                        yes(1)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SIM card detected status."
                ::= { cellularSimInfoEntry 2 }

            cellularSimInUse OBJECT-TYPE
                SYNTAX INTEGER {
                        no(0),
                        yes(1)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SIM card in use status."
                ::= { cellularSimInfoEntry 3 }

            cellularSimPinCodeStatus OBJECT-TYPE
                SYNTAX INTEGER {
                        unknown(0),
                        locked(1),
                        unlocked(2)
                }
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SIM PIN code status."
                ::= { cellularSimInfoEntry 4 }

            cellularSimImsi OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SIM IMSI."
                ::= { cellularSimInfoEntry 5 }

            cellularSimIccid OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SIM ICCID."
                ::= { cellularSimInfoEntry 6 }

            cellularSimMtn OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SIM MTN."
                ::= { cellularSimInfoEntry 7 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        cellularSimAvailableBandTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CellularSimAvailableBandEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Cellular available band table"
            ::= { cellularSimInfo 2 }

            cellularSimAvailableBandEntry OBJECT-TYPE
            SYNTAX CellularSimAvailableBandEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the cellularSimAvailableBandTable"
            INDEX { cellularId, cellularSimId, cellularSimAvailableBandId  }
            ::= { cellularSimAvailableBandTable 1 }

            CellularSimAvailableBandEntry ::=
            SEQUENCE {
                cellularSimAvailableBandId
                    Integer32,
                cellularSimAvailableBand
                    OCTET STRING
            }

            cellularSimAvailableBandId  OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular available band id."
                ::= { cellularSimAvailableBandEntry 1 }

            cellularSimAvailableBand OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular available band."
                ::= { cellularSimAvailableBandEntry 2 }

        cellularBandInfo OBJECT IDENTIFIER ::= { cellularMib 6 }

-- **********************************************************************
-- *  Table
-- **********************************************************************
        cellularBandInfoTable OBJECT-TYPE
            SYNTAX SEQUENCE OF CellularBandInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Cellular band signal info table"
            ::= { cellularBandInfo 1 }

            cellularBandInfoEntry OBJECT-TYPE
            SYNTAX CellularBandInfoEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "An entry in the cellularBandInfoTable"
            INDEX { cellularId, cellularBandId }
            ::= { cellularBandInfoTable 1 }

            CellularBandInfoEntry ::=
            SEQUENCE {
                cellularBandId
                    Integer32,
                cellularBandName
                    OCTET STRING,
                cellularBandRssi
                    Integer32,
                cellularBandSnr
                    Integer32,
                cellularBandSinr
                    Integer32,
                cellularBandEcio
                    Integer32,
                cellularBandRsrp
                    Integer32,
                cellularBandRsrq
                    Integer32,
                cellularBandRscp
                    Integer32
            }

            cellularBandId OBJECT-TYPE
                SYNTAX Integer32
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular band signal info id."
                ::= { cellularBandInfoEntry 1 }

            cellularBandName OBJECT-TYPE
                SYNTAX OCTET STRING
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular band."
                ::= { cellularBandInfoEntry 2 }

            cellularBandRssi OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dBm"
                    MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular RSSI (units: dBm).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularBandInfoEntry 3 }

            cellularBandSnr OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SNR (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularBandInfoEntry 4 }

            cellularBandSinr OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular SINR (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularBandInfoEntry 5 }

            cellularBandEcio OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular Ec/Io (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularBandInfoEntry 6 }

            cellularBandRsrp OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dBm"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular RSRP (units: dBm).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularBandInfoEntry 7 }

            cellularBandRsrq OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dB"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular RSRQ (units: dB).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularBandInfoEntry 8 }

            cellularBandRscp OBJECT-TYPE
                SYNTAX Integer32
                UNITS "dBm"
                MAX-ACCESS read-only
                STATUS current
                DESCRIPTION
                    "Cellular RSCP (units: dBm).
                    Remark:
                    If the value equals -9999, means signal strength
                    not applicable in this cellular."
                ::= { cellularBandInfoEntry 9 }
END
