--  =======================================================================
--  File        : osLicenseActivation
--  Description : Private MIB to support feature activation in OptiSwitch using
--                License keys
--  By          : Gur Stavi

-- Copyright (c) 2013 MRV.  All Rights Reserved.
--
--
-- Reproduction of this document is authorized on condition that this
-- copyright notice is included.  This MRV SNMP MIB Specification
-- embodies MRV's proprietary intellectual property.  MRV
-- retains all title and ownership in the specification, including any
-- revisions.
--
-- It is MRV's intent to encourage the widespread use of this
-- specification in connection with the management of MRV's
-- products. MRV grants vendor, end-users, and other interested
-- parties a non-exclusive license to use this specification in
-- connection with the management of MRV's products.
--
-- This specification is supplied "AS IS," and MRV makes no
-- warranty, either express or implied, as to the use, operation,
-- condition, or performance of the specification.
--
-- Copyright text courtesy of MRV
--
-- If you have any questions about this MIB, please call MRV
-- Technical Support Center at 1-800-858-7815 from inside USA or
-- 1-818-773-0900 from outside USA.
--
--
-- MRV retains the right to change this MIB without notification.

OS-LICENSE-ACTIVATION-MIB DEFINITIONS ::= BEGIN

IMPORTS
  MODULE-IDENTITY, OBJECT-TYPE,
  enterprises, Unsigned32          FROM SNMPv2-SMI
  TEXTUAL-CONVENTION               FROM SNMPv2-TC
  oaOptiSwitch                     FROM OS-COMMON-TC-MIB
  MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;

osLicenseActivation  MODULE-IDENTITY
  LAST-UPDATED "201402040000Z" -- 4 Feb 2014
  ORGANIZATION "MRV Communications, Inc."
  CONTACT-INFO
    "Gur Stavi
    MRV Communication, Inc
    http://www.mrv.com
    Email: gstavi@mrv.com"
  DESCRIPTION
    "License activation."
  REVISION     "201402040000Z" -- 4 Feb 2014
  DESCRIPTION
    "Initial edition."
  ::= { oaOptiSwitch 27 }

-- ************************************************************
-- MIB place Definition
-- ************************************************************
osRoutingProtocolsActivation       OBJECT IDENTIFIER ::= { osLicenseActivation 1 }
osMplsActivation                   OBJECT IDENTIFIER ::= { osLicenseActivation 2 }
osLicenseActivationConformance     OBJECT IDENTIFIER ::= { osLicenseActivation 100 }
osLicenseActivationMIBCompliances  OBJECT IDENTIFIER ::= { osLicenseActivationConformance 1 }
osLicenseActivationMIBGroups       OBJECT IDENTIFIER ::= { osLicenseActivationConformance 2 }

-- ************************************************************
-- Textual converions
-- ************************************************************
OsActivationLicense ::= TEXTUAL-CONVENTION
  DISPLAY-HINT "12a"
  STATUS current
  DESCRIPTION "An activation license for a MasterOS feature."
  SYNTAX OCTET STRING (SIZE (12))

OsActivationStatus ::= TEXTUAL-CONVENTION
  STATUS current
  DESCRIPTION "Indicates whether a MasterOS feature is activated or not."
  SYNTAX INTEGER {
    unknown      (1),
    active       (2),
    notActive    (3),
    notSupported (4)
    }

-- ************************************************************
-- osLicenseActivationActivation
-- ************************************************************
osRoutingProtocolsActivationLicense OBJECT-TYPE
  SYNTAX      OsActivationLicense
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION
    "License for activating routing protocols features.
    This is a write-only field. Current license is not shown.
    Write 'xxxxxxxxxxxx' to de-activate"
  ::= { osRoutingProtocolsActivation 1 }

osRoutingProtocolsActivationSatus OBJECT-TYPE
  SYNTAX      OsActivationStatus
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "Activation status of routing protocols feature."
  ::= { osRoutingProtocolsActivation 2 }

osMplsActivationLicense OBJECT-TYPE
  SYNTAX      OsActivationLicense
  MAX-ACCESS  read-write
  STATUS      current
  DESCRIPTION
    "License for activating MPLS features.
    This is a write-only field. Current license is not shown.
    Write 'xxxxxxxxxxxx' to de-activate"
  ::= { osMplsActivation 1 }

osMplsActivationSatus OBJECT-TYPE
  SYNTAX      OsActivationStatus
  MAX-ACCESS  read-only
  STATUS      current
  DESCRIPTION
    "Activation status of mpls features."
  ::= { osMplsActivation 2 }

-- This table is not yet implemented
-- ************************************************************
-- The osActvFeatMgmtTable Table
-- ************************************************************
osActvFeatMgmtTable  OBJECT-TYPE
    SYNTAX       SEQUENCE OF OsActvFeatMgmtEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Features management."
    REFERENCE
       "."
    ::= { osLicenseActivation 8 }

osActvFeatMgmtEntry   OBJECT-TYPE
    SYNTAX       OsActvFeatMgmtEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Contains an entry of the table."
    INDEX { osActvFeatMgmtId }
    ::= { osActvFeatMgmtTable 1 }

OsActvFeatMgmtEntry ::= SEQUENCE {
      osActvFeatMgmtId     INTEGER,
      osActvFeatMgmtStatus OsActivationStatus,
      osActvFeatMgmtParam  Unsigned32,
      osActvFeatMgmtKey    OsActivationLicense
}

osActvFeatMgmtId     OBJECT-TYPE
    SYNTAX       INTEGER {
                   os600withGigaPorts (1),
                   securePush         (2),
                   routingProtocols   (3),
                   mplsProtocols      (4)
                 }
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
        "Feature ID"
    ::= { osActvFeatMgmtEntry 1 }

osActvFeatMgmtStatus OBJECT-TYPE
    SYNTAX       OsActivationStatus
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "Status of the feature."
    ::= { osActvFeatMgmtEntry 2 }

osActvFeatMgmtParam  OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "Additional parameter of the feature."
    ::= { osActvFeatMgmtEntry 3 }


osActvFeatMgmtKey    OBJECT-TYPE
    SYNTAX       OsActivationLicense
    MAX-ACCESS   read-write
    STATUS       current
    DESCRIPTION
        "License for activating of the features.
        This is a write-only field. Current license is not shown."
    ::= { osActvFeatMgmtEntry 4 }


-- *******************************************************************
--  Conformance Information
-- *******************************************************************

osLicenseActivationMIBCompliance MODULE-COMPLIANCE
  STATUS current
  DESCRIPTION
    "The core compliance statement for all the implementations."
  MODULE -- this module
  MANDATORY-GROUPS {
    osLicenseActivationMIBGroup
    }

  ::= { osLicenseActivationMIBCompliances 1 }

-- ...................................................................
-- Conformance Groups
-- ...................................................................

osLicenseActivationMIBGroup  OBJECT-GROUP
  OBJECTS {
    osRoutingProtocolsActivationLicense, osRoutingProtocolsActivationSatus,
    osMplsActivationLicense, osMplsActivationSatus,

    osActvFeatMgmtStatus, osActvFeatMgmtParam, osActvFeatMgmtKey
    }
  STATUS current
  DESCRIPTION
    "."
  ::= { osLicenseActivationMIBGroups 1 }

END

