-- Cambium MIB Release CAMBIUM_MIB_VERSION
   CAMBIUM-CNMAESTRO-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE,
       enterprises, Counter32, Counter64, Integer32
           FROM SNMPv2-SMI
     OBJECT-GROUP
           FROM SNMPv2-CONF
       MacAddress, DisplayString, DateAndTime
           FROM SNMPv2-TC;

   cnMaestroMIB MODULE-IDENTITY
       LAST-UPDATED "201705010808Z"
       ORGANIZATION "Cambium Networks Inc."
       CONTACT-INFO
            "Cambium Networks Support
             http://www.cambiumnetworks.com/support/
            E-mail:     support@cambiumnetworks.com"
       DESCRIPTION
           "This module contains MIB definitions for cnMaestro"
       REVISION        "201705010808Z"
       DESCRIPTION
           "Production version of cnMaestro MIB."
       ::= { cambium 23 }

   cambium                       OBJECT IDENTIFIER ::= { enterprises 17713 }
   cnMaestroTrap                 OBJECT IDENTIFIER ::= { cnMaestroMIB 1 }
   cnMaestroServer               OBJECT IDENTIFIER ::= { cnMaestroMIB 2 }
   --cnMaestroSystem             OBJECT IDENTIFIER ::= { cnMaestroMIB 3 }
   cnMaestroDevice               OBJECT IDENTIFIER ::= { cnMaestroMIB 4 }

   cnMaestroTrapName OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "Internal name for the trap."
       ::= { cnMaestroTrap 1 }

   cnMaestroTrapCategory OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..32))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "Category of the trap."
       ::= { cnMaestroTrap 2 }

   cnMaestroTrapSource OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..256))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "Originator of the trap -- currently the name of the
       device that generated the trap."
       ::= { cnMaestroTrap 3 }

   cnMaestroTrapSourceType OBJECT-TYPE
       SYNTAX      INTEGER {
            device(0)
           }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "The source of the trap. Currently the only option is device (0)."
       ::= { cnMaestroTrap 4 }

   cnMaestroTrapMessage OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..1024))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "Clear description of the trap."
       ::= { cnMaestroTrap 5 }

   cnMaestroTrapSeverity OBJECT-TYPE
       SYNTAX      INTEGER {
            critical(0),
            major(1),
            minor(2),
            clear(3)
           }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "Severity of the trap."
       ::= { cnMaestroTrap 6 }

   cnMaestroTrapTime OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "Time the trap was generated in milliseconds."
       ::= { cnMaestroTrap 7 }

   cnMaestroTrapDeviceMAC OBJECT-TYPE
       SYNTAX       MacAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
            "MAC Address of the Device that generated the trap."
      ::= { cnMaestroTrap 8 }

   cnMaestroTrapClientMAC OBJECT-TYPE
       SYNTAX       MacAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
            "MAC Address of the Wireless LAN Client referenced by the trap."
      ::= { cnMaestroTrap 9 }

   --cnMaestroServerStatus               OBJECT IDENTIFIER ::= { cnMaestroServer 1 }
   --cnMaestroServerClusterTable         OBJECT IDENTIFIER ::= { cnMaestroServer 2 }
   cnMaestroServerTrap                 OBJECT IDENTIFIER ::= { cnMaestroServer 3 }

   cnMaestroServerTrapDeviceOnline NOTIFICATION-TYPE
       OBJECTS { cnMaestroTrapName,
                 cnMaestroTrapCategory,
                 cnMaestroTrapSource,
                 cnMaestroTrapSourceType,
                 cnMaestroTrapMessage,
                 cnMaestroTrapSeverity,
                 cnMaestroTrapTime,
                 cnMaestroTrapDeviceMAC
      }
       STATUS    current
       DESCRIPTION
         "The device is online with respect to cnMaestro."
       ::= { cnMaestroServerTrap 1 }

   cnMaestroServerTrapDeviceOffline NOTIFICATION-TYPE
       OBJECTS { cnMaestroTrapName,
                 cnMaestroTrapCategory,
                 cnMaestroTrapSource,
                 cnMaestroTrapSourceType,
                 cnMaestroTrapMessage,
                 cnMaestroTrapSeverity,
                 cnMaestroTrapTime,
                 cnMaestroTrapDeviceMAC
      }
       STATUS      current
       DESCRIPTION
         "The device is offline with respect to cnMaestro."
       ::= { cnMaestroServerTrap 2 }


   cnMaestroDeviceTable  OBJECT-TYPE
       SYNTAX       SEQUENCE OF CnMaestroDeviceEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
         "Shared details about devices managed by cnMaestro."
       ::= { cnMaestroDevice 1 }

   cnMaestroDeviceEntry OBJECT-TYPE
       SYNTAX       CnMaestroDeviceEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
         " "
          INDEX { cnMaestroDeviceMAC }
       ::= { cnMaestroDeviceTable 1 }

   CnMaestroDeviceEntry ::=
   SEQUENCE {
        cnMaestroDeviceMAC            MacAddress,
        cnMaestroDeviceName           DisplayString,
        cnMaestroDeviceType           DisplayString,
        cnMaestroDeviceIP             DisplayString,
        cnMaestroDeviceStatus         INTEGER,
        cnMaestroDeviceStatusInterval Counter64,
        cnMaestroDeviceSWVersion      DisplayString,
        cnMaestroDeviceHWVersion      DisplayString,
        cnMaestroDeviceCountry        DisplayString,
        cnMaestroDeviceLatitude       DisplayString,
        cnMaestroDeviceLongitude      DisplayString
   }

   cnMaestroDeviceMAC OBJECT-TYPE
       SYNTAX       MacAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Device MAC address."
      ::= { cnMaestroDeviceEntry 1 }

   cnMaestroDeviceName OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Device name."
       ::= { cnMaestroDeviceEntry 2 }

   cnMaestroDeviceType OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..32))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Device type (cnPilot R200P, PMP 450 SM, etc.)."
       ::= { cnMaestroDeviceEntry 3 }

   cnMaestroDeviceIP OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Device IP address."
       ::= { cnMaestroDeviceEntry 4 }

   cnMaestroDeviceStatus OBJECT-TYPE
       SYNTAX      INTEGER {
            online(0),
            offline(1),
            onboarding(3)
           }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "The current cnMaestro connection status of the device."
       ::= { cnMaestroDeviceEntry 5 }

   cnMaestroDeviceStatusInterval OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "The number of milliseconds the device has been in the status state."
       ::= { cnMaestroDeviceEntry 6 }

   cnMaestroDeviceSWVersion OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Device software version."
       ::= { cnMaestroDeviceEntry 7 }

   cnMaestroDeviceHWVersion OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Device hardware version."
       ::= { cnMaestroDeviceEntry 8 }

   cnMaestroDeviceCountry OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Country where the device is located."
       ::= { cnMaestroDeviceEntry 9 }

   cnMaestroDeviceLatitude   OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
    "Device GPS Location Latitude. Coordinates of device
     in (h ddd.ddddd) format."
    ::= { cnMaestroDeviceEntry 10 }

   cnMaestroDeviceLongitude  OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..128))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
    "Device GPS Location Longitude. Coordinates of device
     in (h ddd.ddddd) format."
    ::= { cnMaestroDeviceEntry 11 }

   cnMaestroCnPilot              OBJECT IDENTIFIER ::= { cnMaestroDevice 2 }

   cnMaestroCnPilotAPTable  OBJECT-TYPE
       SYNTAX       SEQUENCE OF CnMaestroCnPilotAPEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
         "General details about the cnPilot APs."
       ::= { cnMaestroCnPilot 1 }

   cnMaestroCnPilotAPEntry OBJECT-TYPE
       SYNTAX       CnMaestroCnPilotAPEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
             " "
          INDEX { cnMaestroCnPilotAPMAC }
       ::= { cnMaestroCnPilotAPTable 1 }

   CnMaestroCnPilotAPEntry ::=
   SEQUENCE {
        cnMaestroCnPilotAPMAC             MacAddress,
        cnMaestroCnPilotAPName            DisplayString,
        cnMaestroCnPilotAPIP              DisplayString,
        cnMaestroCnPilotAPSerialNumber    DisplayString,
        cnMaestroCnPilotAPModel           DisplayString,
        cnMaestroCnPilotAPCPUUtilization  Integer32,
        cnMaestroCnPilotAPSWVersion       DisplayString,
        cnMaestroCnPilotAPUptime          Counter64,
        cnMaestroCnPilotAPHWType          DisplayString,
        cnMaestroCnPilotAPTotalClients    Integer32
   }

   cnMaestroCnPilotAPMAC OBJECT-TYPE
       SYNTAX       MacAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Access Point MAC address."
      ::= { cnMaestroCnPilotAPEntry 1 }

   cnMaestroCnPilotAPName OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point name."
       ::= { cnMaestroCnPilotAPEntry 2 }

   cnMaestroCnPilotAPIP OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point IP Address."
       ::= { cnMaestroCnPilotAPEntry 3 }

   cnMaestroCnPilotAPSerialNumber OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point serial number."
       ::= { cnMaestroCnPilotAPEntry 4 }

   cnMaestroCnPilotAPModel OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..32))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point model name."
       ::= { cnMaestroCnPilotAPEntry 5 }

   cnMaestroCnPilotAPCPUUtilization OBJECT-TYPE
       SYNTAX      Integer32(0..100)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point CPU utilization percentage."
       ::= { cnMaestroCnPilotAPEntry 6 }

   cnMaestroCnPilotAPSWVersion OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..64))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point software version."
       ::= { cnMaestroCnPilotAPEntry 7 }

   cnMaestroCnPilotAPUptime OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point uptime in milliseconds."
       ::= { cnMaestroCnPilotAPEntry 8 }

   cnMaestroCnPilotAPHWType OBJECT-TYPE
       SYNTAX      DisplayString (SIZE(0..32))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Access Point hardware type."
       ::= { cnMaestroCnPilotAPEntry 9 }

   cnMaestroCnPilotAPTotalClients OBJECT-TYPE
       SYNTAX      Integer32(0..1024)
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
         "Total clients connected to this Access Point."
       ::= { cnMaestroCnPilotAPEntry 10 }


   cnMaestroCnPilotRadioTable  OBJECT-TYPE
       SYNTAX       SEQUENCE OF CnMaestroCnPilotRadioEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
         "Statistics for all radios managed by cnMaestro."
       ::= { cnMaestroCnPilot 2 }

   cnMaestroCnPilotRadioEntry OBJECT-TYPE
       SYNTAX       CnMaestroCnPilotRadioEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
             " "
          INDEX { cnMaestroCnPilotRadioAPMAC, cnMaestroCnPilotRadioIndex }
       ::= { cnMaestroCnPilotRadioTable 1 }

   CnMaestroCnPilotRadioEntry ::=
   SEQUENCE {
        cnMaestroCnPilotRadioAPMAC             MacAddress,
        cnMaestroCnPilotRadioIndex             Integer32,
        cnMaestroCnPilotRadioMAC               MacAddress,
        cnMaestroCnPilotRadioBandType          DisplayString,
        cnMaestroCnPilotRadioWLAN              Integer32,
        cnMaestroCnPilotRadioNumClients        Integer32,
        cnMaestroCnPilotRadioChannel           DisplayString,
        cnMaestroCnPilotRadioTransmitPower     Integer32,
        cnMaestroCnPilotRadioTxDataBytes       Counter64,
        cnMaestroCnPilotRadioRxDataBytes       Counter64,
        cnMaestroCnPilotRadioState             INTEGER
   }

   cnMaestroCnPilotRadioAPMAC OBJECT-TYPE
       SYNTAX       MacAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Access Point MAC address."
      ::= { cnMaestroCnPilotRadioEntry 1 }

   cnMaestroCnPilotRadioIndex OBJECT-TYPE
       SYNTAX       Integer32(1..3)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Radio number."
      ::= { cnMaestroCnPilotRadioEntry 2 }

   cnMaestroCnPilotRadioMAC OBJECT-TYPE
       SYNTAX       MacAddress
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Radio MAC address."
      ::= { cnMaestroCnPilotRadioEntry 3 }

   cnMaestroCnPilotRadioBandType OBJECT-TYPE
       SYNTAX       DisplayString (SIZE(0..32))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Radio band type."
      ::= { cnMaestroCnPilotRadioEntry 4 }

   cnMaestroCnPilotRadioWLAN OBJECT-TYPE
       SYNTAX       Integer32(0..16)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Radio WLAN number"
      ::= { cnMaestroCnPilotRadioEntry 5 }

   cnMaestroCnPilotRadioNumClients OBJECT-TYPE
       SYNTAX       Integer32(0..512)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Number of clients connected with a radio."
      ::= { cnMaestroCnPilotRadioEntry 6 }

   cnMaestroCnPilotRadioChannel OBJECT-TYPE
       SYNTAX       DisplayString (SIZE(0..32))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Radio channel."
      ::= { cnMaestroCnPilotRadioEntry 7 }

   cnMaestroCnPilotRadioTransmitPower OBJECT-TYPE
       SYNTAX       Integer32(0..30)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Radio power."
      ::= { cnMaestroCnPilotRadioEntry 8 }

   cnMaestroCnPilotRadioTxDataBytes OBJECT-TYPE
       SYNTAX       Counter64
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Transmitted data packets in bytes by a radio."
      ::= { cnMaestroCnPilotRadioEntry 9 }

   cnMaestroCnPilotRadioRxDataBytes OBJECT-TYPE
       SYNTAX       Counter64
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Received data packets in bytes by a radio."
      ::= { cnMaestroCnPilotRadioEntry 10 }

   cnMaestroCnPilotRadioState OBJECT-TYPE
       SYNTAX       INTEGER {
            on(0),
            off(1)
           }
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
         "Radio state (on/off)."
      ::= { cnMaestroCnPilotRadioEntry 11   }
END