-- ****************************************************************************
--  COLUBRIS-CONTROLLER-MIB definitions
--
--  (c) Copyright 2009-2010,2012 Hewlett-Packard Development Company, L.P.
--  The information contained herein is subject to change without notice.
--  All Rights Reserved.
--
--  Colubris Controller MIB file.
--
-- ****************************************************************************


COLUBRIS-CONTROLLER-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32, IpAddress, Unsigned32
        FROM    SNMPv2-SMI
    DisplayString, MacAddress
        FROM    SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM    SNMPv2-CONF
    colubrisMgmtV2
        FROM    COLUBRIS-SMI
    ColubrisNotificationEnable
        FROM    COLUBRIS-TC
;


colubrisControllerMIB MODULE-IDENTITY
    LAST-UPDATED    "201112160000Z"
    ORGANIZATION    "Colubris Networks, Inc."
    CONTACT-INFO    "Colubris Networks
                     Postal: 200 West Street Ste 300
                             Waltham, Massachusetts 02451-1121
                             UNITED STATES
                     Phone:  +1 781 684 0001
                     Fax:    +1 781 684 0009

                     E-mail: cn-snmp@colubris.com"
    DESCRIPTION     "Colubris Controller MIB."

    ::= { colubrisMgmtV2 27 }


-- colubrisControllerMIB definition
colubrisControllerMIBObjects OBJECT IDENTIFIER ::= { colubrisControllerMIB 1 }

-- colubris Controller groups
coControllerConfigGroup OBJECT IDENTIFIER ::= { colubrisControllerMIBObjects 1 }
coControllerDiscoveryGroup OBJECT IDENTIFIER ::= { colubrisControllerMIBObjects 2 }

-- The Controller configuration Group
coControllerStateNotificationEnabled OBJECT-TYPE
    SYNTAX      ColubrisNotificationEnable
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if coControllerStateNotification notification
                 is generated."
    DEFVAL      { disable }
    ::= { coControllerConfigGroup 1 }

coControllerTeamIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The IP address of the controller team."
    ::= { coControllerConfigGroup 2 }

coControllerTeamName OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The name of the controller team."
    ::= { coControllerConfigGroup 3 }

-- The Controller discoevry Group
coControllerNbDisController OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Number of controllers in the controller discovery
                 table."
    ::= { coControllerDiscoveryGroup 1 }

coControllerDiscoveryTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CoControllerDiscoveryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Controller discovery attributes."
    ::= { coControllerDiscoveryGroup 2 }

coControllerDiscoveryEntry OBJECT-TYPE
    SYNTAX      CoControllerDiscoveryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "An entry in the coControllerDiscoveryTable.
                 coControllerDisIndex - Uniquely identify a Controller
                                        in the stack."
    INDEX       { coControllerDisIndex }
    ::= { coControllerDiscoveryTable 1 }

CoControllerDiscoveryEntry ::= SEQUENCE
{
    coControllerDisIndex        Integer32,
    coControllerDisSerialNumber DisplayString,
    coControllerDisMacAddress   MacAddress,
    coControllerDisIpAddress    IpAddress,
    coControllerDisState        INTEGER
}

coControllerDisIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION "Uniquely identify a controller ."
    ::= { coControllerDiscoveryEntry 1 }

coControllerDisSerialNumber OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The serial number of a controller ."
    ::= { coControllerDiscoveryEntry 2 }

coControllerDisMacAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "MAC address of a controller ."
    ::= { coControllerDiscoveryEntry 3 }

coControllerDisIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "IP address of a controller ."
    ::= { coControllerDiscoveryEntry 4 }

coControllerDisState OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    disconnected(1),
                    authorized(2),
                    join(3),
                    firmware(4),
                    security(5),
                    configuration(6),
                    running(7)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "The state of a controller ."
    ::= { coControllerDiscoveryEntry 5 }


-- Controller notifications
colubrisControllerMIBNotificationPrefix OBJECT IDENTIFIER ::= { colubrisControllerMIB 2 }
colubrisControllerMIBNotifications OBJECT IDENTIFIER ::= { colubrisControllerMIBNotificationPrefix 0 }

coControllerStateNotification NOTIFICATION-TYPE
    OBJECTS     {
                    coControllerDisSerialNumber,
                    coControllerDisMacAddress,
                    coControllerDisIpAddress,
                    coControllerDisState
                }
    STATUS      current
    DESCRIPTION "Iindicates whether the controller is
                 entering or leaving the running state."
    ::= { colubrisControllerMIBNotifications 1 }


-- conformance information
colubrisControllerMIBConformance OBJECT IDENTIFIER ::= { colubrisControllerMIB 3 }
colubrisControllerMIBCompliances OBJECT IDENTIFIER ::= { colubrisControllerMIBConformance 1 }
colubrisControllerMIBGroups      OBJECT IDENTIFIER ::= { colubrisControllerMIBConformance 2 }


-- compliance statements
colubrisControllerMIBCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION "The compliance statement for the Controller MIB."
    MODULE      MANDATORY-GROUPS
                    {
                        colubrisControllerMIBGroup,
                        colubrisControllerNotificationGroup
                    }
    ::= { colubrisControllerMIBCompliances 1 }

-- units of conformance
colubrisControllerMIBGroup OBJECT-GROUP
    OBJECTS     {
                        coControllerStateNotificationEnabled,
                        coControllerTeamIpAddress,
                        coControllerTeamName,
                        coControllerNbDisController,
                        coControllerDisSerialNumber,
                        coControllerDisMacAddress,
                        coControllerDisIpAddress,
                        coControllerDisState
                }
    STATUS      current
    DESCRIPTION "A collection of objects for the controller status."
    ::= { colubrisControllerMIBGroups 1 }

colubrisControllerNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS   {
                        coControllerStateNotification
                    }
    STATUS      current
    DESCRIPTION "A collection of supported controller notifications."
    ::= { colubrisControllerMIBGroups 2 }

END
