WIPIPE-MIB DEFINITIONS ::= BEGIN

-- WiPipe MIB Release 1.19

-- Copyright 2008-2019 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 }

wipipeEthernet	OBJECT IDENTIFIER ::= { wipipe 3 }

wipipeSystem	OBJECT IDENTIFIER ::= { wipipe 4 }

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 }

ibr650c     OBJECT IDENTIFIER ::= { wipipeProd 32 }

ibr600c     OBJECT IDENTIFIER ::= { wipipeProd 33 }

ibr1700     OBJECT IDENTIFIER ::= { wipipeProd 34 }

aer2200     OBJECT IDENTIFIER ::= { wipipeProd 35 }

aer2250     OBJECT IDENTIFIER ::= { wipipeProd 36 }

ap22        OBJECT IDENTIFIER ::= { wipipeProd 37 }

ibr200      OBJECT IDENTIFIER ::= { wipipeProd 38 }

ibr250      OBJECT IDENTIFIER ::= { wipipeProd 39 }

ibr900-fips OBJECT IDENTIFIER ::= { wipipeProd 40 }

ibr950-fips OBJECT IDENTIFIER ::= { wipipeProd 41 }

ibr1700-fips OBJECT IDENTIFIER ::= { wipipeProd 42 }

aer2200-fips OBJECT IDENTIFIER ::= { wipipeProd 43 }

aer2250-fips OBJECT IDENTIFIER ::= { wipipeProd 44 }

cr4250 OBJECT IDENTIFIER ::= { wipipeProd 45 }

cba550 OBJECT IDENTIFIER ::= { wipipeProd 46 }

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-only
    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, IBR9x0, IBR6x0C series feature.
            @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.
            @GET-FUNC=snmp_get_devGpioReadInput"
::= { wipipeDevice 6 }

devGpioConfigOutput OBJECT-TYPE
    SYNTAX  INTEGER {
    			low (1),
    			high (2),
    			routerRunning (3),
			modemConnected (4)
    		}
    ACCESS  read-only
    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
            @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.
            @GET-FUNC=snmp_get_devGpioReadOutput"
::= { wipipeDevice 8 }

devGpioPinTable        OBJECT-TYPE
    SYNTAX     SEQUENCE OF GpioPinEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
        "This table contains the status information of the GPIO pins."
            ::= { wipipeDevice 9 }

gpioPinEntry OBJECT-TYPE
    SYNTAX      GpioPinEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing management information applicable to a
            particular GPIO pin."
    INDEX   { pinIndex }
    ::= { devGpioPinTable 1 }

GpioPinEntry ::=
    SEQUENCE {
        pinIndex                 INTEGER,
        pinName                  DisplayString,
        pinDirection             DisplayString,
        pinLocation              DisplayString,
        pinValue                 DisplayString,
        pinState                 DisplayString,
    }

pinIndex OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A unique value, starting at 1, for each GPIO pin.
             The value is expected to remain constant for a given port after
                reboot."
    ::= { gpioPinEntry 1 }

pinName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "User configured name of the Pin."
    ::= { gpioPinEntry 2 }

pinDirection OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Pin direction."
    ::= { gpioPinEntry 3 }


pinLocation OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Physical location of the pin on the router,(eg. on expander or power cable) ."
    ::= { gpioPinEntry 4 }

pinValue OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "Value of pin."
    ::= { gpioPinEntry 5 }

pinState OBJECT-TYPE
    SYNTAX      DisplayString (SIZE (0..255))
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "State of the Pin."
    ::= { gpioPinEntry 6 }


devGpioPinTrap      OBJECT IDENTIFIER ::= { wipipeDevice 10 }

gpioPinTrap NOTIFICATION-TYPE
    OBJECTS { pinDescr, pinValue, pinDirection, pinLocation, pinName, pinState }
    STATUS  current
    DESCRIPTION
            "Notification indicating status change of a GPIO pin."
    ::= { devGpioPinTrap 1 }


-- 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
