-- ****************************************************************************
--  ALVARION-MAINTENANCE-MIB definitions
--
--  Copyright (c) 2007, Alvarion Ltd.
--  All Rights Reserved.
--
--  Alvarion Maintenance MIB file.
--
-- ****************************************************************************


ALVARION-MAINTENANCE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE
        FROM    SNMPv2-SMI
    DisplayString, TruthValue
        FROM    SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
        FROM    SNMPv2-CONF
    alvarionMgmtV2
        FROM    ALVARION-SMI
    systemConfigurationVersion, systemFirmwareRevision
        FROM    ALVARION-SYSTEM-MIB
    AlvarionNotificationEnable
        FROM    ALVARION-TC
;

alvarionMaintenanceMIB MODULE-IDENTITY
    LAST-UPDATED    "200710310000Z"
    ORGANIZATION    "Alvarion Ltd."
    CONTACT-INFO    "Alvarion Ltd.
                     Postal: 21a HaBarzel St.
                             P.O. Box 13139
                             Tel-Aviv 69710
                             Israel
                     Phone:  +972 3 645 6262"
    DESCRIPTION     "Alvarion Maintenance MIB."

    ::= { alvarionMgmtV2 2 }


-- alvarionMaintenanceMIB definition
alvarionMaintenanceMIBObjects OBJECT IDENTIFIER ::= { alvarionMaintenanceMIB 1 }

-- Maintenance MIB groups
firmwareUpdate      OBJECT IDENTIFIER ::= { alvarionMaintenanceMIBObjects 1 }
configurationUpdate OBJECT IDENTIFIER ::= { alvarionMaintenanceMIBObjects 2 }
certificate         OBJECT IDENTIFIER ::= { alvarionMaintenanceMIBObjects 3 }


-- firmware update group
firmwarePeriodicUpdate OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if firmware updates are automatically triggered 
                 on a periodic basis or not.
                   'true': Automatically update the firmware based on
                           the information specified in the
                           firmwareUpdateDay and firmwareUpdateTime
                           attributes. 
                   'false': No firmware update is triggered unless a request 
                            is specifically issude using the
                            firmwareUpdateInitiate attribute."
    ::= { firmwareUpdate 1 }

firmwareUpdateDay OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    monday(1),
                    tuesday(2),
                    wednesday(3),
                    thursday(4),
                    friday(5),
                    saturday(6),
                    sunday(7),
                    everyday(8)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "When firmwarePeriodicUpdate is set to true, this attribute
                 specifies the day that automatic updates will occur."
    ::= { firmwareUpdate 2 }

firmwareUpdateTime OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (5))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "When firmwarePeriodicUpdate is set to true, this attribute 
                 specifies the time of the day for an automatic firmware update.
                 Specify the time in hours (00-23) and minutes (00-59) in the
                 format HH:MM. The ':' character is mandatory between the fields."
    ::= { firmwareUpdate 3 }

firmwareUpdateLocation OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the URL where the new firmware file is located. This is
                 used when the firmware update is triggered manually or automatically
                 on a periodic basis."
    ::= { firmwareUpdate 4 }

firmwareUpdateInitiate OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    idle(0),
                    update(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Triggers a firmware update using the firmware specified in the
                 firmwareUpdateLocation attribute. Reading this attribute always
                 returns 'idle'."
    ::= { firmwareUpdate 5 }

firmwareUpdateNotificationEnabled OBJECT-TYPE
    SYNTAX      AlvarionNotificationEnable
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if firmwareUpdateNotification notifications are
                 generated."
    DEFVAL      { enable }
    ::= { firmwareUpdate 6 }

firmwareUpdateInfo OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "Contains various information about the firmware update and is
                 used with firmware update notifications to provide more 
                 detailed information."
    ::= { firmwareUpdate 7 }

-- configuration update group
configurationPeriodicUpdate OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if configuration file updates are automatically triggered 
                 on a periodic basis or not.

                   'true': Automatically update the configuration file based on
                           the information specified in the
                           configurationUpdateDay and configurationUpdateTime 
                           attributes. 

                   'false': No configuration file update is triggered unless a request 
                            is specifically issude using the
                            configurationUpdateInitiate attribute."
    ::= { configurationUpdate 1 }
    
configurationUpdateDay OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    monday(1),
                    tuesday(2),
                    wednesday(3),
                    thursday(4),
                    friday(5),
                    saturday(6),
                    sunday(7),
                    everyday(8)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "When configurationPeriodicUpdate is set to true, this attribute
                 specifies the day that automatic updates will occur."
    ::= { configurationUpdate 2 }

configurationUpdateTime OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (5))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "When configurationPeriodicUpdateis set to true, this attribute 
                 specifies the time of the day for an automatic configuration file update.
                 Specify the time in hours (00-23) and minutes (00-59) in the
                 format HH:MM. The ':' character is mandatory between the fields."
    ::= { configurationUpdate 3 }

configurationUpdateLocation OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the URL where the new configuration file is located. This is
                 used when the update is triggered manually or automatically
                 on a periodic basis."
    ::= { configurationUpdate 4 }

configurationUpdateInitiate OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    idle(0),
                    update(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Triggers a configuration file update using the configuration file
                 specified in the configurationUpdateLocation attribute. Reading this 
                 attribute always returns 'idle'."
    ::= { configurationUpdate 5 }

configurationUpdateOperation OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    backup(1),
                    restore(2)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies the operation that is performed on the
                 configuration file.

                    'backup':  Saves the current device configuration into the file
                               specified in the configurationUpdateLocation attribute.

                    'restore':  Loads the file specified in the
                                configurationUpdateLocation attribute into the device."
    ::= { configurationUpdate 6 }

configurationUpdateNotificationEnabled OBJECT-TYPE 
    SYNTAX      AlvarionNotificationEnable
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if configurationUpdateNotification notifications are generated."
    DEFVAL      { enable }
    ::= { configurationUpdate 7 }

configurationLocalUpdateNotificationEnabled OBJECT-TYPE 
    SYNTAX      AlvarionNotificationEnable
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if configurationLocalUpdateNotification notifications
                 are generated."
    DEFVAL      { enable }
    ::= { configurationUpdate 8 }

configurationUpdateInfo OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION "Contains various information about the configuration update and is
                 used with configuration update notifications to provide more 
                 detailed information."
    ::= { configurationUpdate 9 }

configurationFactoryDefaults OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    idle(0),
                    resetToFactoryDefaults(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Resets the device configuration to Factory Default. 
                 Important: This will reset the community names and shut down all
                 connections. Reading this object will always return 'idle'."
    ::= { configurationUpdate 10 }

configurationRestart OBJECT-TYPE
    SYNTAX      INTEGER
                {
                    idle(0),
                    restart(1)
                }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Restarts the device.
                 Important: This will shut down all connections. Reading this object
		     will always return 'idle'."
    ::= { configurationUpdate 11 }

-- certificates configuration group
certificateAboutToExpireNotificationEnabled OBJECT-TYPE 
    SYNTAX      AlvarionNotificationEnable
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if certificateAboutToExpireNotification notifications
                 are generated."
    DEFVAL      { enable }
    ::= { certificate 1 }

certificateExpiredNotificationEnabled OBJECT-TYPE 
    SYNTAX      AlvarionNotificationEnable
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION "Specifies if certificateExpiredNotification notifications are generated."
    DEFVAL      { enable }
    ::= { certificate 2 }

certificateExpiryDate OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION "Indicates the current expiry date of the certificate."
    ::= { certificate 3 }

-- notifications
alvarionMaintenanceMIBNotificationPrefix OBJECT IDENTIFIER ::= { alvarionMaintenanceMIB 2 }
alvarionMaintenanceMIBNotifications OBJECT IDENTIFIER ::= { alvarionMaintenanceMIBNotificationPrefix 0 }

firmwareUpdateNotification NOTIFICATION-TYPE
    OBJECTS     {
                    firmwareUpdateInfo,
                    systemFirmwareRevision
                }
    STATUS      current
    DESCRIPTION "Sent when a firmware update was attempted from a remote
                 server."
    ::= { alvarionMaintenanceMIBNotifications 5 }

configurationUpdateNotification NOTIFICATION-TYPE
    OBJECTS     {
                    configurationUpdateInfo,
                    systemConfigurationVersion
                }
    STATUS      current
    DESCRIPTION "Sent when a configuration update was attempted from a remote
                 server."
    ::= { alvarionMaintenanceMIBNotifications 1 }

configurationLocalUpdateNotification NOTIFICATION-TYPE
    OBJECTS     {
                    configurationUpdateInfo
                }
    STATUS      current
    DESCRIPTION "Sent whenever the configuration changes."
    ::= { alvarionMaintenanceMIBNotifications 2 }

certificateAboutToExpireNotification NOTIFICATION-TYPE
    OBJECTS     {
                    certificateExpiryDate
                }
    STATUS      current
    DESCRIPTION "Sent when a certificate is about to expire."
    ::= { alvarionMaintenanceMIBNotifications 3 }

certificateExpiredNotification NOTIFICATION-TYPE
    OBJECTS     {
                    certificateExpiryDate
                }
    STATUS      current
    DESCRIPTION "Sent when a certificate has expired."
    ::= { alvarionMaintenanceMIBNotifications 4 }


-- conformance information
alvarionMaintenanceMIBConformance OBJECT IDENTIFIER ::= { alvarionMaintenanceMIB 3 }
alvarionMaintenanceMIBCompliances OBJECT IDENTIFIER ::= { alvarionMaintenanceMIBConformance 1 }
alvarionMaintenanceMIBGroups      OBJECT IDENTIFIER ::= { alvarionMaintenanceMIBConformance 2 }

-- compliance statements     
alvarionMaintenanceMIBCompliance MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION "The compliance statement for entities which implement
                the Alvarion Maintenance MIB."
    MODULE      MANDATORY-GROUPS
                    {
                        alvarionMaintenanceMIBGroup,
                        alvarionMaintenanceNotificationGroup
                    }
    ::= { alvarionMaintenanceMIBCompliances 1 }

-- units of conformance
alvarionMaintenanceMIBGroup OBJECT-GROUP
    OBJECTS     {
                    firmwarePeriodicUpdate,
                    firmwareUpdateDay,
                    firmwareUpdateTime,
                    firmwareUpdateLocation,
                    firmwareUpdateInitiate,
                    firmwareUpdateNotificationEnabled,
                    firmwareUpdateInfo,
                    configurationPeriodicUpdate,
                    configurationUpdateDay,
                    configurationUpdateTime,
                    configurationUpdateLocation,
                    configurationUpdateInitiate,
                    configurationUpdateOperation,
                    configurationUpdateNotificationEnabled,
                    configurationUpdateInfo,
		    configurationFactoryDefaults,
		    configurationRestart,
                    configurationLocalUpdateNotificationEnabled,
                    certificateAboutToExpireNotificationEnabled,
                    certificateExpiredNotificationEnabled,
                    certificateExpiryDate
                }
    STATUS      current
    DESCRIPTION "A collection of objects providing the Maintenance MIB
                 capability."
    ::= { alvarionMaintenanceMIBGroups 1 }

alvarionMaintenanceNotificationGroup NOTIFICATION-GROUP
    NOTIFICATIONS   {
                        firmwareUpdateNotification,
                        configurationUpdateNotification,
                        configurationLocalUpdateNotification,
                        certificateAboutToExpireNotification,
                        certificateExpiredNotification
                    }
    STATUS      current
    DESCRIPTION "A collection of supported notifications"
    ::= { alvarionMaintenanceMIBGroups 2 }

END
