WIPIPE-MIB DEFINITIONS ::= BEGIN

-- WiPipe MIB Release 1.13

-- Copyright 2008-2016 by CradlePoint, Inc.  All rights reserved

-- This Specification is supplied "AS IS", CradlePoint makes no warranty,
-- either expressed or implied, as to the use, operation, condition,
-- or performance of the Specification.

IMPORTS
        enterprises
            FROM RFC1155-SMI
        OBJECT-TYPE
             FROM RFC-1212;

-- ===============================================================================================

-- textual conventions

DisplayString ::=
    OCTET STRING
-- This data type is used to model textual information taken
-- from the NVT ASCII character set.  By convention, objects
-- with this syntax are declared as having

--
--      SIZE (0..255)

PhysAddress ::=
    OCTET STRING
-- This data type is used to model media addresses.  For many
-- types of media, this will be in a binary representation.
-- For example, an ethernet address would be represented as
-- a string of 6 octets.



-- groups in WIPIPE

wipipe OBJECT IDENTIFIER	::= { enterprises 20992 }

wipipeMgmt	OBJECT IDENTIFIER ::= { wipipe 1 }

wipipeProd	OBJECT IDENTIFIER ::= { wipipe 2 }

mbr1000 	OBJECT IDENTIFIER ::= { wipipeProd 1 }

ctr500 		OBJECT IDENTIFIER ::= { wipipeProd 2 }

mbr800 		OBJECT IDENTIFIER ::= { wipipeProd 3 }

mbr1100 	OBJECT IDENTIFIER ::= { wipipeProd 4 }

mbr1200 	OBJECT IDENTIFIER ::= { wipipeProd 5 }

mbr900 		OBJECT IDENTIFIER ::= { wipipeProd 6 }

cba250      OBJECT IDENTIFIER ::= { wipipeProd 7 }

cba750      OBJECT IDENTIFIER ::= { wipipeProd 8 }

cx111       OBJECT IDENTIFIER ::= { wipipeProd 9 }

mbr1400       OBJECT IDENTIFIER ::= { wipipeProd 10 }

mbr1200b       OBJECT IDENTIFIER ::= { wipipeProd 11 }

cbr400       OBJECT IDENTIFIER ::= { wipipeProd 12 }

cbr450       OBJECT IDENTIFIER ::= { wipipeProd 13 }

ibr600       OBJECT IDENTIFIER ::= { wipipeProd 14 }

ibr650       OBJECT IDENTIFIER ::= { wipipeProd 15 }

mbr1400v2       OBJECT IDENTIFIER ::= { wipipeProd 16 }

cba750b      OBJECT IDENTIFIER ::= { wipipeProd 17 }

aer2100      OBJECT IDENTIFIER ::= { wipipeProd 18 }

ibr1150      OBJECT IDENTIFIER ::= { wipipeProd 19 }

ibr1100      OBJECT IDENTIFIER ::= { wipipeProd 20 }

cba850      OBJECT IDENTIFIER ::= { wipipeProd 21 }

ibr350      OBJECT IDENTIFIER ::= { wipipeProd 22 }

aer3100      OBJECT IDENTIFIER ::= { wipipeProd 23 }

aer1600      OBJECT IDENTIFIER ::= { wipipeProd 24 }

ibr650b      OBJECT IDENTIFIER ::= { wipipeProd 25 }

aer3150      OBJECT IDENTIFIER ::= { wipipeProd 26 }

aer1650      OBJECT IDENTIFIER ::= { wipipeProd 27 }

aer2150      OBJECT IDENTIFIER ::= { wipipeProd 28 }

ibr600b      OBJECT IDENTIFIER ::= { wipipeProd 29 }

ibr950      OBJECT IDENTIFIER ::= { wipipeProd 30 }

ibr900      OBJECT IDENTIFIER ::= { wipipeProd 31 }

wipipeDevice	OBJECT IDENTIFIER ::= { wipipeMgmt 1 }

wipipeCellMdm	OBJECT IDENTIFIER ::= { wipipeMgmt 2 }


-- the WiPipe Device Management group

devFWVersion OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "A textual description providing the firmware
            version currently running on the device. 
            It is mandatory that this only contain
            printable ASCII characters.
            @GET-FUNC=snmp_get_devFWVersion"
::= { wipipeDevice 1 }
	
devFWUpgrade OBJECT-TYPE
    SYNTAX  INTEGER {
    			none (1),
    			auto (2),
    			manual (3)
    		}
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "Initiate a FW upgrade on the device.
               none - 	No upgrade is being performed or initiated.
               auto - 	If no other upgrade is begin performed, when this value
                        is written then an automatic upgrade will be performed.
                        When an automatic upgrade is done then the device will 
                        pull the most current FW image from the Wipipe server
                        and install it.
                      	If this value is read then the router is performing an
                      	automatic upgrade and the devFWUpgradeStatus object should
                      	be read for further information.
               manual - If no other upgrade is begin performed, when this value
                        is written then a manual upgrade will be performed.
                        When an manual upgrade is done it will use the URL set
                        in the devFWUpgradeURL object as the place to get the 
                        firmware image and install.  If the devFWUpgradeURL object
                        is not set then no upgrade will be performed.
                      	If this value is read then the router is performing an
                      	manual upgrade and the devFWUpgradeStatus object should
                      	be read for further information. - 
            @SET-FUNC=snmp_set_devFWUpgrade
            @GET-FUNC=snmp_get_devFWUpgrade"
::= { wipipeDevice 2 }

devFWUpgradeURL OBJECT-TYPE
    SYNTAX  DisplayString (SIZE (0..255))
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "Set the URL that points to the firmware image that will be used
             when doing a manual firmware upgrade.
            @SET-FUNC=snmp_set_devFWUpgradeURL
            @GET-FUNC=snmp_get_devFWUpgradeURL"
::= { wipipeDevice 3 }

devFWUpgradeStatus OBJECT-TYPE
    SYNTAX  INTEGER {
    			idle        (1),
    			upgrading   (2),
    			uptodate    (3),
    			updateAvail (4),
    			failure     (5)
    		}
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "Show the result of the FW upgrade command.
            	idle      = there is no upgrade in process.
            	upgrading = the new FW is being downloaded and written to flash.
            	uptodate  = the device is already at the latest FW.  Nothing to upgrade.
            	updateAvail - the device has an automatic update available.
            	failure   = some sort of failure occurred during the upgrade.
            	            The FW will not be upgraded.
            NOTE - while the FW image is being written to flash interrupts are
            disabled so no status will be returned at this time.
            User should get the FW version string in order to determine if the 
            unit has been updated successfully.
            @GET-FUNC=snmp_get_devFWUpgradeStatus"
::= { wipipeDevice 4 }


devGpioConfigInput OBJECT-TYPE
    SYNTAX  INTEGER {
    			none (1),
    			input (2),
    			reboot (3),
    			ignitionSensing (4)
    		}
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "Set the Input GPIO config on the connector.
               none - 	ignore input value.
               input - 	read the input value.
               reboot - if the input is held low for 10 seconds,
                        reboot the router.
               ignition_sensing - if the input is held low for 300 seconds,
                        power off the router.  IBR11x0 series feature.
            @SET-FUNC=snmp_set_devGpioConfigInput
            @GET-FUNC=snmp_get_devGpioConfigInput"
::= { wipipeDevice 5 }

devGpioReadInput OBJECT-TYPE
    SYNTAX  INTEGER (0..1)
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "Read the Input GPIO value on the connector.
               0 - low.
               1 - high.
            @SET-FUNC=snmp_set_devGpioReadInput
            @GET-FUNC=snmp_get_devGpioReadInput"
::= { wipipeDevice 6 }

devGpioConfigOutput OBJECT-TYPE
    SYNTAX  INTEGER {
    			low (1),
    			high (2),
    			routerRunning (3),
			modemConnected (4)
    		}
    ACCESS  read-write
    STATUS  mandatory
    DESCRIPTION
            "Set the output GPIO config on the connector.
               low - 	Default low output value.
               high - 	high output value.
               routerRunning - high output value once the router completes
                               its boot process.
               modemConnected - high output value when the modem completes a 
                                data connection
            @SET-FUNC=snmp_set_devGpioConfigOutput
            @GET-FUNC=snmp_get_devGpioConfigOutput"
::= { wipipeDevice 7 }

devGpioReadOutput OBJECT-TYPE
    SYNTAX  INTEGER (0..1)
    ACCESS  read-only
    STATUS  mandatory
    DESCRIPTION
            "Read the Output GPIO value on the connector.
               0 - low.
               1 - high.
            @SET-FUNC=snmp_set_devGpioReadOutput
            @GET-FUNC=snmp_get_devGpioReadOutput"
::= { wipipeDevice 8 }

-- The WiPipe Cellular Modem Management Group

mdmNumber  OBJECT-TYPE
    SYNTAX      INTEGER (0..10)
    ACCESS  	read-only
    STATUS      mandatory
    DESCRIPTION
            "The number of Cellular Modems (regardless of their
            current state) present on this system.
            @GET-FUNC=snmp_get_mdmNumber"
    ::= { wipipeCellMdm 1 }


mdmTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF MdmEntry
    ACCESS      not-accessible
    STATUS      mandatory
    DESCRIPTION
            "A list of Modem entries.  The number of entries is
            given by the value of ifNumber."
    ::= { wipipeCellMdm 2 }

mdmEntry OBJECT-TYPE
    SYNTAX      MdmEntry
    ACCESS      not-accessible
    STATUS      mandatory
    DESCRIPTION
            "An entry containing management information applicable to a
            particular modem.
            @ROW-FUNC=snmp_get_mdmTable_row"
    INDEX   { mdmIndex }::= { mdmTable 1 }

MdmEntry ::=
    SEQUENCE {
        mdmIndex                INTEGER,
        mdmDescr                DisplayString,
        mdmPort                 DisplayString,
        mdmSignalStrength       INTEGER, 
        mdmStatus               INTEGER,
        mdmECIO                 INTEGER,
        mdmSerialNumber         DisplayString,
        mdmFirmwareVersion      DisplayString,
	mdmMDN			DisplayString,
	mdmSERDIS		DisplayString,
	mdmPROF			DisplayString,
	mdmCINR			INTEGER,
	mdmSINR			INTEGER,
	mdmRSRP			INTEGER,
	mdmRSRQ			INTEGER,
	mdmROAM			INTEGER,
	mdmRFBAND		DisplayString,
	mdmHOMECARRIER		DisplayString,
	mdmIMSI			DisplayString,
	mdmIMEI			DisplayString,
	mdmAPN			DisplayString,
	mdmRFCHANNEL		DisplayString
    }



mdmIndex OBJECT-TYPE
    SYNTAX      INTEGER (0..10)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A unique value, greater than zero, for each cellular modem.  It
            is recommended that values are assigned contiguously
            starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization."
    ::= { mdmEntry 1 }

mdmDescr OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A textual string containing information about the
            modem."
    ::= { mdmEntry 2 }

mdmPort OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A textual string containing information about what
            port the modem is installed in."
    ::= { mdmEntry 3 }

mdmSignalStrength OBJECT-TYPE
    SYNTAX      INTEGER (-120..-30)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems signal strength, given in
            dBm's."
    ::= { mdmEntry 4 }

mdmStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                        established     (1),
                        establishing    (2),
                        ready           (3),
                        error           (4),
                        disconnected    (5),
                        disconnecting   (6), 
                        suspended       (7), 
                        empty           (8),
                        notconfigured   (9), 
                        userstopped     (10)
                }
        ACCESS          read-only       
        STATUS          mandatory
        DESCRIPTION
                        "A textual string containing infomation of the state
                        of the modem."
        ::= { mdmEntry 5 }

mdmECIO OBJECT-TYPE
    SYNTAX      INTEGER (-120..0)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems Ec/Io ratio given in dBm's."
    ::= { mdmEntry 6 }

mdmSerialNumber OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A textual string representing the unique serial number of the device."
    ::= { mdmEntry 7 }

mdmFirmwareVersion OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..64))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A textual string representing the current firmware version of the modem. 
	     Not all modems report this value."
    ::= { mdmEntry 8 }

mdmMDN OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A textual string representing the unique Mobile Directory Number of the device."
    ::= { mdmEntry 9 }

mdmSERDIS OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A textual string representing the Service Display of the device."
    ::= { mdmEntry 10 }

mdmPROF OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "A textual string representing the Profile of the device."
    ::= { mdmEntry 11 }

mdmCINR OBJECT-TYPE
    SYNTAX      INTEGER (-120..0)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems CINR ratio given in dBm's."
    ::= { mdmEntry 12 }

mdmSINR OBJECT-TYPE
    SYNTAX      INTEGER (-20..40)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems SINR ratio given in dBm's."
    ::= { mdmEntry 13 }

mdmRSRP OBJECT-TYPE
    SYNTAX      INTEGER (-120..100)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems RSRP given in dBm's."
    ::= { mdmEntry 14 }

mdmRSRQ OBJECT-TYPE
    SYNTAX      INTEGER (-120..50)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems RSRQ given in dBm's."
    ::= { mdmEntry 15 }

mdmROAM OBJECT-TYPE
    SYNTAX      INTEGER (0..2)
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems Roaming Status."
    ::= { mdmEntry 16 }

mdmRFBAND OBJECT-TYPE
    SYNTAX      DisplayString
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems RF band."
    ::= { mdmEntry 17 }

mdmHOMECARRIER OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems Home Carrier."
    ::= { mdmEntry 18 }

mdmIMSI OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems IMSI."
    ::= { mdmEntry 19 }

mdmIMEI OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems IMEI."
    ::= { mdmEntry 20 }

mdmAPN OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems APN."
    ::= { mdmEntry 21 }

mdmRFCHANNEL OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..32))
    ACCESS      read-only
    STATUS      mandatory
    DESCRIPTION
            "The cellular modems RF Channel."
    ::= { mdmEntry 22 }

END