--  =======================================================================
--  File        : osExport.mib
--  Description : Private MIB support the functionality of export data from the device to remote server
--  By          : Moran
  
-- Copyright (c) 2008 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-EXPORT-DATA-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                MODULE-IDENTITY, OBJECT-TYPE,
                Integer32                                     FROM SNMPv2-SMI
                --TEXTUAL-CONVENTION,            
                DateAndTime,                 
                DisplayString                                 FROM SNMPv2-TC
                oaOptiSwitch                                  FROM OS-COMMON-TC-MIB
                SnmpAdminString                               FROM SNMP-FRAMEWORK-MIB           -- RFC2571
                MODULE-COMPLIANCE, OBJECT-GROUP               FROM SNMPv2-CONF
                InetAddressType, InetAddress                  FROM INET-ADDRESS-MIB; -- RFC2851

osExportData    MODULE-IDENTITY
                LAST-UPDATED "201305230000Z" -- 23 may 2013
                ORGANIZATION "MRV Communications, Inc."
                CONTACT-INFO
                   "Reuven Putter
                    MRV Communication, Inc
                    http://www.mrv.com
                    Email:  rputter@mrv.com"
                DESCRIPTION
                    "MEF Ethernet Virtual Connections MIB."

                REVISION     "201305230000Z" -- 23 may 2013
                DESCRIPTION
                    "SOAM-PM support."

                REVISION     "201106010000Z"
                DESCRIPTION
                    "1. Added osExportDataExtTable for remote password security
                     2. Added new bit delayMeasureHrTests(6) for the object osExportDataSampleTypeSup
                     3. Added new enumeration delayMeasureHrTests(6) for the object osExportDataSampleType"

                REVISION     "200911170000Z"
                DESCRIPTION
                    "Initial edition."
                ::= { oaOptiSwitch 16 }

-- ************************************************************
-- MIB place Definition
-- ************************************************************
osExportDataCapabilities            OBJECT IDENTIFIER ::= { osExportData 1 }
osExportDataConformance             OBJECT IDENTIFIER ::= { osExportData 100 }
osExportDataMIBCompliances          OBJECT IDENTIFIER ::= { osExportDataConformance 1 }
osExportDataMIBGroups               OBJECT IDENTIFIER ::= { osExportDataConformance 2 }

-- ************************************************************
-- Textual converions
-- ************************************************************

--3456789a123456789b123456789c123456789d123456789e123456789f123456789g123456789
-- *******************************************************************
--  osExportDataCapabilities global configuration, status & capatibilities
-- ******************************************************************* 
 
osExportDataSampleTypeSup OBJECT-TYPE
    SYNTAX       BITS {
                      serviceCounters              (0),
                      loopbackTests                (1),
                      delayMeasureTests            (2),
                      ipSlaTests                   (3),
                      rfc2544Tests                 (4),
                      delayMeasureHrTests          (5),
                      soamTestDmStatsHistory       (6),
                      soamTestLmStatsHistory       (7)
                 }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Indicates sample types, that supported by this agent. Additionally this object serves as
       a SupportValue"
    ::= { osExportDataCapabilities 1 }
 
osExportDataTransferProtocolSup OBJECT-TYPE
    SYNTAX       BITS {
                       other                (0),
                       tftpClient           (1),
                       ftpClient            (2),
                       scpClient            (3),
                       sftpClient           (4)
                 }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Indicates transfer client types, that are supported by this agent. Additionally this object serves as
       a SupportValue"
    ::= { osExportDataCapabilities 2 }

-- ************************************************************
-- The osExportDataTable Table: Export data... 
-- ************************************************************
osExportDataTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsExportDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "This table contains information for exporting bandwith counters data  of services and flows."
    REFERENCE
       "."
    ::= { osExportData 2 }

osExportDataEntry OBJECT-TYPE
    SYNTAX      OsExportDataEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains an entry of the table."
    INDEX { osExportDataName }
    ::= { osExportDataTable 1 }


OsExportDataEntry ::= SEQUENCE {
    osExportDataName                        SnmpAdminString,
    osExportDataServerAddressType           InetAddressType,
    osExportDataServerAddress               InetAddress,
    osExportDataRemoteDirName               DisplayString,
    osExportDataRemoteFileName              DisplayString,
    osExportDataRemoteUsername              DisplayString,
    osExportDataRemotePassword              DisplayString,
    osExportDataSampleType                  INTEGER,
    osExportDataSampleInterval              INTEGER,
    osExportDataSamplesCounter              Integer32,
    osExportDataTransferProtocol            INTEGER,
    osExportDataTransferBlockSize           Integer32,
    osExportDataTransfersCounter            Integer32,
    osExportDataStartTime                   DateAndTime,
    osExportDataLastStartTime               DateAndTime,
    osExportDataNextSampleTime              DateAndTime,
    osExportDataLastSampleTime              DateAndTime,               
    osExportDataNextTransferTime            DateAndTime,
    osExportDataLastTransferTime            DateAndTime,
    osExportDataOperStatus                  INTEGER,
    osExportDataAdminStatus                 INTEGER,
    osExportDataErrorStatus                 INTEGER,
    osExportDataDescription                 DisplayString,
    osExportDataClientId                    DisplayString
}

osExportDataName               OBJECT-TYPE
    SYNTAX           SnmpAdminString (SIZE(1..32))
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "Export unique identifier (index)."
    REFERENCE
      "."
    ::= { osExportDataEntry 1 }

osExportDataServerAddressType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the type of host address to be used as a server
         for performing an export (mandatory)."
    DEFVAL { ipv4 }
    ::= { osExportDataEntry 2 }

osExportDataServerAddress    OBJECT-TYPE
    SYNTAX  InetAddress                 (SIZE(1..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the host address to be used as a server for
         performing an export. The server address type is
         determined by the object value of corresponding
         osExportDataServerAddressType (mandatory)."
    REFERENCE
      "."
    ::= { osExportDataEntry 3 }

osExportDataRemoteDirName   OBJECT-TYPE
    SYNTAX          DisplayString       (SIZE(1..128))
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Export remote directory (mandatory)."
    ::= { osExportDataEntry 4 }

osExportDataRemoteFileName   OBJECT-TYPE
    SYNTAX  DisplayString               (SIZE(0..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Export remote file name (optional)."
    ::= { osExportDataEntry 5 }

osExportDataRemoteUsername   OBJECT-TYPE
    SYNTAX  DisplayString               (SIZE(1..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Username for remote login (mandatory)."
    ::= { osExportDataEntry 6 }

osExportDataRemotePassword   OBJECT-TYPE
    SYNTAX  DisplayString               (SIZE(1..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Password for remote login (optional)."
    ::= { osExportDataEntry 7 }

osExportDataSampleType OBJECT-TYPE
    SYNTAX  INTEGER {
              --none                       (0),
              serviceCounters              (1),
              loopbackTests                (2),
              delayMeasureTests            (3),
              ipSlaTests                   (4),
              rfc2544Tests                 (5),
              delayMeasureHrTests          (6),
              soamTestDmStatsHistory       (7),
              soamTestLmStatsHistory       (8)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Sample type (optinal)"
    DEFVAL { serviceCounters }
    ::= { osExportDataEntry 10 }

osExportDataSampleInterval OBJECT-TYPE
    SYNTAX  INTEGER {
               --none        (0),
               once        (1),
               month       (2),
               week        (3),
               day         (4),
               every12hrs  (5),
               every8hrs   (6),
               every6hrs   (7),
               every4hrs   (8),
               every2hrs   (9),
               every1hr    (10),
               every30mins (11),
               every15mins (12),
               every10mins (13),
               every5mins  (14),
               every2mins  (15),
               every1min   (16),
               every30secs (17),
               every15secs (18),
               every10secs (19),
               every5secs  (20),
               every2secs  (21),
               every1sec   (22)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Time interval between 2 successive scheduled samples (optional).
        Time interval 'once' initiates a single 'sample & transfer' event."
    DEFVAL { once }
    ::= { osExportDataEntry 11 }

osExportDataSamplesCounter    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Counts how many samples took place since 'lastTransferTime' or 'lastStartTime' (which ever came last)."
    DEFVAL { 0 }
    ::= { osExportDataEntry 12 }

osExportDataTransferProtocol    OBJECT-TYPE
    SYNTAX  INTEGER {
       --none        (0),
       other       (1),
       tftpClient  (2),
       ftpClient   (3),
       scpClient   (4),
       sftpClient  (5)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Transfer application protocol used for export (optional)."
    DEFVAL { ftpClient }
    ::= { osExportDataEntry 15 }

osExportDataTransferBlockSize    OBJECT-TYPE
    SYNTAX       Integer32 (1..2000)
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Transfer blcok size, i.e. 'transfer after BLOCK-SIZE samples accumulated' (optional)."
    DEFVAL { 10 }
    ::= { osExportDataEntry 16 }

osExportDataTransfersCounter    OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Counts how many transfers took place since 'lastStartTime'."
    DEFVAL { 0 }
    ::= { osExportDataEntry 17 }

osExportDataStartTime   OBJECT-TYPE
    SYNTAX     DateAndTime  (SIZE(8))
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
        "Date and time for export start (optional)."
    ::= { osExportDataEntry 20 }

osExportDataLastStartTime   OBJECT-TYPE
    SYNTAX     DateAndTime  (SIZE(8))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Date and time of last export start."
    ::= { osExportDataEntry 21 }

osExportDataNextSampleTime   OBJECT-TYPE
    SYNTAX     DateAndTime  (SIZE(8))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Date and time of next scheduled sample."
    ::= { osExportDataEntry 22 }

osExportDataLastSampleTime   OBJECT-TYPE
    SYNTAX     DateAndTime  (SIZE(8))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Date and time of last executed sample."
    ::= { osExportDataEntry 23 }

osExportDataNextTransferTime   OBJECT-TYPE
    SYNTAX     DateAndTime  (SIZE(8))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Date and time of next scheduled transfer."
    ::= { osExportDataEntry 24 }

osExportDataLastTransferTime   OBJECT-TYPE
    SYNTAX     DateAndTime  (SIZE(8))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
        "Date and time of last executed transfer."
    ::= { osExportDataEntry 25 }

osExportDataOperStatus  OBJECT-TYPE
    SYNTAX  INTEGER  {
               --none                     (0),
               waitForSchedule          (1),
               waitForSample            (2),
               sampleInProcess          (3),
               transferInProcess        (4),
               sampleCompletedOk        (5),
               transferCompletedOk      (6),
               sampleError              (7),
               transferError            (8),
               exportCanceled           (9)                     
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Operational status of export."
    DEFVAL { waitForSchedule }
    ::= { osExportDataEntry 30 }
        
osExportDataAdminStatus OBJECT-TYPE
    SYNTAX  INTEGER  {
               --none                     (0),
               stop                     (1),
               start                    (2),
               continue                 (3),
               sample                   (4),
               transfer                 (5),
               invalid                  (6),
               waitForInit              (7)
    }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Administrative status for activating & deactivating the export (mandatory)."
    DEFVAL { stop }
    ::= { osExportDataEntry 31 }


osExportDataErrorStatus    OBJECT-TYPE
    SYNTAX  INTEGER  {
               --none                     (0),
               noError                  (1),
               transferFailure          (2),
               sampleFailure            (3),
               stopFailure              (4),
               startFailure             (5),
               deleteFailure            (6),
               unknownError             (7)
   }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Specifies the error which occurred (if at all) during the export (used in Traps)."
    DEFVAL { noError }
    ::= { osExportDataEntry 32 }


osExportDataDescription    OBJECT-TYPE
    SYNTAX  DisplayString                   (SIZE(0..80))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The description of the export (optional)."
    ::= { osExportDataEntry 40 }


osExportDataClientId    OBJECT-TYPE
    SYNTAX  DisplayString                   (SIZE(1..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The client's unique ID (mandatory)."
    ::= { osExportDataEntry 41 }

-- ************************************************************
--  The osExportDataExtTable Table: Extended Export data... 
-- ************************************************************
osExportDataExtTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsExportDataExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "The table contains extended data for osExportDataTable."
    ::= { osExportData 3 }
    
osExportDataExtEntry OBJECT-TYPE
    SYNTAX      OsExportDataExtEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains extended data for osExportDataEntry."
    AUGMENTS    { osExportDataEntry }
    ::= { osExportDataExtTable 1 }

OsExportDataExtEntry ::= SEQUENCE {
      osExportDataSecureRemotePassword   DisplayString,
      osExportDataSecureMode             INTEGER
      }
    
osExportDataSecureRemotePassword   OBJECT-TYPE
    SYNTAX  DisplayString               (SIZE(1..128))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is similar to osExportDataRemotePassword object. It is used to SET remote 
         password and any SHOW/GET operation will return it as encrypted string.
         Note that SET value is plain string."
    ::= { osExportDataExtEntry 1 }

osExportDataSecureMode OBJECT-TYPE
    SYNTAX  INTEGER {
              plainPassword         (1),
              encryptedPassword     (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "'plainPassword' - unsecured mode, osExportDataRemotePassword returns plain string;
         'encryptedPassword' - secured mode, osExportDataRemotePassword returns encrypted string."
    DEFVAL { plainPassword }
    ::= { osExportDataExtEntry 2 }
    
-- *******************************************************************
--  Conformance Information 
-- ******************************************************************* 

osExportMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "The core compliance statement for all the implementations." 

    MODULE -- this module 
        MANDATORY-GROUPS { 
                          osExportMandatoryGroup
                         }

    ::= { osExportDataMIBCompliances 1 }

-- ...................................................................
-- Conformance Groups 
-- ................................................................... 
 
osExportMandatoryGroup  OBJECT-GROUP
    OBJECTS { 
              osExportDataSampleTypeSup,
              osExportDataTransferProtocolSup,

              osExportDataServerAddressType,
              osExportDataServerAddress,
              osExportDataRemoteDirName,
              osExportDataRemoteFileName,
              osExportDataRemoteUsername,
              osExportDataRemotePassword,
              osExportDataSampleType,
              osExportDataSampleInterval,
              osExportDataSamplesCounter,
              osExportDataTransferProtocol,
              osExportDataTransferBlockSize,
              osExportDataTransfersCounter,
              osExportDataStartTime,
              osExportDataLastStartTime,
              osExportDataNextSampleTime,
              osExportDataLastSampleTime,               
              osExportDataNextTransferTime,
              osExportDataLastTransferTime,
              
              osExportDataOperStatus,
              osExportDataAdminStatus,
              osExportDataErrorStatus,
              osExportDataDescription,
              osExportDataClientId,
              osExportDataSecureRemotePassword,
              osExportDataSecureMode              
            }
    STATUS current 
    DESCRIPTION 
        "."

    ::= { osExportDataMIBGroups 1 }


END

