--  =======================================================================
--  File        : osIpSla.mib
--  Description : Private MIB support the functionality of Ip SLA
--  By          : Alex

-- 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-IP-SLA-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                MODULE-IDENTITY, OBJECT-TYPE,
                NOTIFICATION-TYPE,Unsigned32                  FROM SNMPv2-SMI
                TEXTUAL-CONVENTION, RowStatus, DateAndTime    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
                NOTIFICATION-GROUP                            FROM SNMPv2-CONF;

osIpSla       MODULE-IDENTITY
                LAST-UPDATED "200901090000Z"
                ORGANIZATION "MRV Communications, Inc."
                CONTACT-INFO
                   "Alex Rozin
                    MRV Communication, Inc
                    http://www.mrv.com
                    Email:  ARozin@mrv.com"
                DESCRIPTION
                    "IP SLA MIB."
                REVISION     "200901090000Z"
                DESCRIPTION
                    "Initial edition."
                ::= { oaOptiSwitch 6 }

-- ************************************************************
-- MIB place Definition
-- ************************************************************
osIpSlaNotifications  OBJECT IDENTIFIER ::= { osIpSla 0 }
osIpSlaCapabilities   OBJECT IDENTIFIER ::= { osIpSla 1 }
osIpSlaConformance    OBJECT IDENTIFIER ::= { osIpSla 100 }
osIpSlaMIBCompliances OBJECT IDENTIFIER ::= { osIpSlaConformance 1 }
osIpSlaMIBGroups      OBJECT IDENTIFIER ::= { osIpSlaConformance 2 }

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

TestRunMethod        ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
       "Indicates the method of the test running:
        slow(2)    
        fast(3)
        none(4)
        When the MEP operation is configured as slow(2) or fast(3), than the test is running 
        now using this method. When the value is changed the test stops. If the new value is
        not none(4) new test is set."
    REFERENCE
       "."
    SYNTAX      INTEGER {
                  unknown (1),
                  slow(2),
                  fast(3),
                  none(4)
                }


--3456789a123456789b123456789c123456789d123456789e123456789f123456789g123456789
-- *******************************************************************
--  osIpSlaCapabilities global configuration, status & capatibilities
-- ******************************************************************* 
 
osIpSlaFeaturesSupport OBJECT-TYPE
    SYNTAX       BITS {
                      icmpSlow                           (0),
                      icmpFast                           (1)
                    }
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
      "Indicates features, that supported by this agent. Additionally this object serves as
       a SupportValue"
    ::= { osIpSlaCapabilities 1 }

-- ************************************************************
-- The osIpSlaCtlTable Table - configuration
-- ************************************************************
osIpSlaCtlTable   OBJECT-TYPE
    SYNTAX       SEQUENCE OF OsIpSlaCtlEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "IpSla UNI per EVC (service) configuration table."
    ::= { osIpSla 2 }

osIpSlaCtlEntry   OBJECT-TYPE
    SYNTAX       OsIpSlaCtlEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Contains an entry of the table."
    INDEX { osIpSlaOwner, osIpSlaTest }
    ::= { osIpSlaCtlTable 1 }

OsIpSlaCtlEntry ::= SEQUENCE {
      osIpSlaOwner                  SnmpAdminString,
      osIpSlaTest                   SnmpAdminString,
      osIpSlaDescr                  SnmpAdminString,

      osIpSlaProtocol               INTEGER,

      osIpSlaTargetAddressType      InetAddressType,
      osIpSlaTargetAddress          InetAddress,

      osIpSlaBurstNumber            Unsigned32,
      osIpSlaBurstInterval          Unsigned32,
      osIpSlaProbeNumber            Unsigned32,
      osIpSlaProbeInterval          Unsigned32,
      osIpSlaProbeTimeout           Unsigned32,

      osIpSlaPacketLength           Unsigned32,
      osIpSlaDataFill               OCTET STRING,
      osIpSlaDSField                Unsigned32,
      osIpSlaTtl                    Unsigned32,

      osIpSlaPriority               Unsigned32,
      osIpSlaFdRiseThold            Unsigned32,
      osIpSlaFdFallThold            Unsigned32,

      osIpSlaJittRiseThold          Unsigned32,
      osIpSlaJittFallThold          Unsigned32,
      
      osIpSlaPcktLossRiseThold      Unsigned32,
      osIpSlaPcktLossFallThold      Unsigned32,

      osIpSlaHistoryMaxRows         Unsigned32,
      osIpSlaTrapGeneration         BITS,
      osIpSlaRunMethod              TestRunMethod,
      osIpSlaRowStatus              RowStatus
      }

osIpSlaOwner         OBJECT-TYPE
    SYNTAX           SnmpAdminString (SIZE (1..32))
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "Owner name."
    ::= { osIpSlaCtlEntry 1 }

osIpSlaTest          OBJECT-TYPE
    SYNTAX           SnmpAdminString (SIZE (1..32))
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "Test name."
    ::= { osIpSlaCtlEntry 2 }

osIpSlaDescr         OBJECT-TYPE
    SYNTAX           SnmpAdminString
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "The purpose of this object is to provide a
        descriptive name of the remote test."
    ::= { osIpSlaCtlEntry 3 }

osIpSlaProtocol      OBJECT-TYPE
    SYNTAX           INTEGER {
                       unknown (1),
                       icmp    (2)
                     }
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Protocol of a test."
    ::= { osIpSlaCtlEntry 9 }

osIpSlaTargetAddressType OBJECT-TYPE
    SYNTAX           InetAddressType
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Specifies the type of host address to be used at a remote
        host for performing an operation."
    ::= { osIpSlaCtlEntry 10 }

osIpSlaTargetAddress OBJECT-TYPE
    SYNTAX           InetAddress
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Specifies the host address to be used at a remote host for
        performing an operation.  The host address type is
        determined by the object value of corresponding
        osIpSlaTargetAddressType."
    ::= { osIpSlaCtlEntry 11 }

osIpSlaBurstNumber   OBJECT-TYPE
    SYNTAX           Unsigned32 (0|1..255)
    UNITS            "bursts"
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Number of bursts. The value 0 means forever."
    DEFVAL { 1 }
    ::= { osIpSlaCtlEntry 16 }

osIpSlaBurstInterval OBJECT-TYPE
    SYNTAX           Unsigned32 (1..86400)
    UNITS            "seconds"
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Time interval between bursts, in seconds."
    DEFVAL { 60 }
    ::= { osIpSlaCtlEntry 17 }

osIpSlaProbeNumber   OBJECT-TYPE
    SYNTAX           Unsigned32 (20..1000000)
    UNITS            "messages"
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Number of bursts."
    ::= { osIpSlaCtlEntry 21 }

osIpSlaProbeInterval OBJECT-TYPE
    SYNTAX           Unsigned32 (1..1000000)
    UNITS            "microseconds"
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Interval between packets."
    DEFVAL { 1000000 }
    ::= { osIpSlaCtlEntry 22 }

osIpSlaProbeTimeout  OBJECT-TYPE
    SYNTAX           Unsigned32 (1..60000)
    UNITS            "milliseconds"
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Specifies the duration to wait for a responce (milliseconds)."
    DEFVAL { 300 }
    ::= { osIpSlaCtlEntry 23 }

osIpSlaPacketLength  OBJECT-TYPE
    SYNTAX           Unsigned32 (82..2048)
    UNITS            "octets"
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Packet length, including VLAN ID and CRC."
    ::= { osIpSlaCtlEntry 26 }

osIpSlaDataFill      OBJECT-TYPE
    SYNTAX           OCTET STRING (SIZE(0..1436))
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Determine how to fill the data portion of a 
       packet, while number of characters is a multiple of 8."
    ::= { osIpSlaCtlEntry 27 }

osIpSlaDSField       OBJECT-TYPE
    SYNTAX           Unsigned32 (0..255)
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Specifies the value to store in the Differentiated
        Services (DS) Field in the IP packet used to
        encapsulate the packet.  The DS Field is defined
        as the Type of Service (TOS) octet in a IPv4 header
        or as the Traffic Class octet in a IPv6 header.

        The value of this object must be a decimal integer
        in the range from 0 to 255.  This option can be used
        to determine what effect an explicit DS Field setting
        has on a response.  Not all values are legal or
        meaningful.  A value of 0 means that the function
        represented by this option is not supported.  DS Field
        usage is often not supported by IP implementations and
        not all values are supported.  Refer to RFC 2474 for
        guidance on usage of this field."
    REFERENCE
        "Refer to RFC 2474 for the definition of the
        Differentiated Services Field and to RFC 1812
        Section 5.3.2 for Type of Service (TOS)."
    DEFVAL { 0 }
    ::= { osIpSlaCtlEntry 28 }

osIpSlaTtl           OBJECT-TYPE
    SYNTAX           Unsigned32 (1..255)
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
      "Time To Live."
    DEFVAL { 128 }
    ::= { osIpSlaCtlEntry 29 }

osIpSlaPriority      OBJECT-TYPE
    SYNTAX           Unsigned32 (0..7)
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "Priority number."              
    ::= { osIpSlaCtlEntry 30 }
    
osIpSlaFdRiseThold OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "microseconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Frame delay (Average of Round Trip Time) Rising threshold.
        Value 0 means, that this the agent will not check this type of threshold."
    DEFVAL { 0 }
    ::= { osIpSlaCtlEntry 35 }

osIpSlaFdFallThold OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "microseconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Frame delay (Average of Round Trip Time) Falling threshold"
    DEFVAL { 0 }
    ::= { osIpSlaCtlEntry 36 }

osIpSlaJittRiseThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Jitter Rising threshold.
        Value 0 means, that this the agent will not check this type of threshold."
    DEFVAL { 0 }
    ::= { osIpSlaCtlEntry 63 }

osIpSlaJittFallThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Jitter Falling threshold."
    DEFVAL { 0 }
    ::= { osIpSlaCtlEntry 64 }

osIpSlaPcktLossRiseThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "The packet loss Rising threshold."
    DEFVAL { 0 }
    ::= { osIpSlaCtlEntry 68 }
    
osIpSlaPcktLossFallThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "The packet loss Falling threshold."
    DEFVAL { 0 }
    ::= { osIpSlaCtlEntry 69 }


osIpSlaHistoryMaxRows OBJECT-TYPE
    SYNTAX           Unsigned32 (2..65535)
    UNITS            "rows"
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "The maximum number of entries allowed in the
        osIpSlaHistTable.  An implementation of this
        MIB will remove the oldest entry in the
        osIpSlaHistTable to allow the addition of an
        new entry once the number of rows in the
        osIpSlaHistTable reaches this value.

        A value of 0 for this object disables creation of
        osIpSlaHistTable entries."
    DEFVAL { 10 }
    ::= { osIpSlaCtlEntry 91 }
    
osIpSlaTrapGeneration OBJECT-TYPE
    SYNTAX           BITS {
                       reserve1(0),
                       burstFailed(1),
                       burstCompleted(2),
                       testFailed(3),
                       testCompleted(4),
                       fdHold(5),
                       jittHold(6),
                       pcktLossHold(7)
                      }
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "The value of this object determines when and if
        to generate a notification for this entry:

        burstFailed   (1) - Generate a osIpSlaBurstFailed notification
        burstCompleted(2) - Generate a osIpSlaBurstCompleted notification
        testFailed    (3) - Generate a osIpSlaTestFailed notification
        testCompleted (4) - Generate a osIpSlaTestComplete notification.
        fdHold        (5) - Generate a osIpSlaFdAlarm notification.
        jittHold      (6) - Generate a osIpSlaJittAlarm notification.
        pcktLossHold  (7) - Generate a osIpSlaPcktLossAlarm notification.

        The value of this object defaults to zero, indicating
        that none of the above options have been selected."
    DEFVAL { {} }
    ::= { osIpSlaCtlEntry 92 }

osIpSlaRunMethod     OBJECT-TYPE
    SYNTAX           TestRunMethod
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "The method of the test."
    DEFVAL { 4 }
    ::= { osIpSlaCtlEntry 93 }

osIpSlaRowStatus     OBJECT-TYPE
    SYNTAX           RowStatus
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "This object allows entries to be created and deleted.
        Deletion of an entry in this table results in all
        corresponding tables being deleted.

        Activation of an operation is controlled
        via osIpSlaRunMethod and not by changing
        this object's value to active(1)."
    REFERENCE
        "See definition of RowStatus in RFC 2579, 'Textual
        Conventions for SMIv2.'"
    ::= { osIpSlaCtlEntry 99 }

-- ************************************************************
-- The osIpSlaResultsTable - last complete result
-- ************************************************************
osIpSlaResultsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsIpSlaResultsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Ethernet OAM Loopback last completed test results Table."
    ::= { osIpSla 3 }

osIpSlaResultsEntry OBJECT-TYPE
    SYNTAX      OsIpSlaResultsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains results of Ethernet OAM Loopback test."
    AUGMENTS { osIpSlaCtlEntry }
    --INDEX { osIpSlaOwner, osIpSlaTest }
    ::= { osIpSlaResultsTable 1 }

OsIpSlaResultsEntry ::= SEQUENCE {
      osIpSlaResultsStarted               DateAndTime,
      osIpSlaResultsRunMethod             TestRunMethod,
      osIpSlaResultsIpTargetAddrType      InetAddressType,
      osIpSlaResultsIpTargetAddr          InetAddress,
      osIpSlaResultsMsgTransmitted        Unsigned32,
      osIpSlaResultsMsgReceived           Unsigned32,
      osIpSlaResultsRttMin                Unsigned32,
      osIpSlaResultsRttMax                Unsigned32,
      osIpSlaResultsRttAverage            Unsigned32,
      osIpSlaResultsRttSum2               Unsigned32,
      osIpSlaResultsJittMin               Unsigned32,
      osIpSlaResultsJittMax               Unsigned32,
      osIpSlaResultsJittAverage           Unsigned32,
      osIpSlaResultsJittSum2              Unsigned32,

      osIpSlaResultsTimedOut              Unsigned32,
      osIpSlaResultsWrongSequenced        Unsigned32,
      osIpSlaResultsRxErrors              Unsigned32,
      osIpSlaResultsSendFailed            Unsigned32,
      osIpSlaResultsHistoryRows           Unsigned32,
      osIpSlaResultsPriority              Unsigned32,
      osIpSlaResultsTos                   Unsigned32,
      osIpSlaResultsPcktLoss              Unsigned32,

      osIpSlaResultsHistIndx              Unsigned32
}

osIpSlaResultsStarted OBJECT-TYPE
    SYNTAX           DateAndTime
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Timestamp, when this test has been started."
    ::= { osIpSlaResultsEntry 4 }

osIpSlaResultsRunMethod OBJECT-TYPE
    SYNTAX           TestRunMethod
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The method, which was launched this test."
    ::= { osIpSlaResultsEntry 5 }

osIpSlaResultsIpTargetAddrType OBJECT-TYPE
    SYNTAX           InetAddressType
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This objects indicates the type of address stored
        in the corresponding osIpSlaResultsIpTargetAddr
        object."
    ::= { osIpSlaResultsEntry 8 }

osIpSlaResultsIpTargetAddr OBJECT-TYPE
    SYNTAX           InetAddress
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This objects reports the IP address associated
        with a osIpSlaTargetAddress value when the destination
        address is specified as a DNS name.  The value of
        this object should be a zero length octet string
        when a DNS name is not specified or when a
        specified DNS name fails to resolve."
    ::= { osIpSlaResultsEntry 9 }

osIpSlaResultsMsgTransmitted OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "messages"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of request packets transmitted."
    ::= { osIpSlaResultsEntry 12 }

osIpSlaResultsMsgReceived OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "messages"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of reply packets received."
    ::= { osIpSlaResultsEntry 13 }

osIpSlaResultsRttMin OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The minimum round-trip-time (RTT) received."
    ::= { osIpSlaResultsEntry 17 }

osIpSlaResultsRttMax OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The maximum round-trip-time (RTT) received."
    ::= { osIpSlaResultsEntry 18 }

osIpSlaResultsRttAverage OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The average round-trip-time (RTT) received."
    ::= { osIpSlaResultsEntry 19 }

osIpSlaResultsRttSum2 OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "square of milliseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This object contains the sum of the squares for all 
        round-trip-times (RTT) received.  Its purpose is to enable standard
        deviation calculation."
    ::= { osIpSlaResultsEntry 20 }

osIpSlaResultsJittMin OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The minimum value of all jitter values."
    ::= { osIpSlaResultsEntry 25 }

osIpSlaResultsJittMax OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The mahimum value of all jitter values."
    ::= { osIpSlaResultsEntry 26 }

osIpSlaResultsJittAverage OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The average value of all jitter values."
    ::= { osIpSlaResultsEntry 27 }

osIpSlaResultsJittSum2 OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "square of milliseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This object contains the sum of the squares for all 
        jitter values.  Its purpose is to enable standard
        deviation calculation."
    ::= { osIpSlaResultsEntry 28 }

osIpSlaResultsTimedOut OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of timed out packets."
    ::= { osIpSlaResultsEntry 30 }

osIpSlaResultsWrongSequenced OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of wrong sequenced packets."
    ::= { osIpSlaResultsEntry 31 }

osIpSlaResultsRxErrors OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of receive errors."
    ::= { osIpSlaResultsEntry 32 }

osIpSlaResultsSendFailed OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of send errors."
    ::= { osIpSlaResultsEntry 33 }

osIpSlaResultsHistoryRows OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of rows in history table."
    ::= { osIpSlaResultsEntry 34 }

osIpSlaResultsPriority OBJECT-TYPE
    SYNTAX           Unsigned32 (0..7)
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Priority number."
    ::= { osIpSlaResultsEntry 35 }

osIpSlaResultsTos OBJECT-TYPE
    SYNTAX           Unsigned32 (0..255)
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Tos value."
    ::= { osIpSlaResultsEntry 36 }

osIpSlaResultsPcktLoss OBJECT-TYPE 
    SYNTAX      Unsigned32
    UNITS       "0.001%"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The calculation of packet loss value."
    REFERENCE
       "."
    ::= { osIpSlaResultsEntry 37 }

osIpSlaResultsHistIndx OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
       "Corresponding osIpSlaHistoryIndex."
    ::= { osIpSlaResultsEntry 60 }


-- ************************************************************
-- The osIpSlaHistoryTable - history table
-- ************************************************************
osIpSlaHistoryTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsIpSlaHistoryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Ethernet OAM Loopback last completed test results Table."
    ::= { osIpSla 4 }

osIpSlaHistoryEntry OBJECT-TYPE
    SYNTAX      OsIpSlaHistoryEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains results of Ethernet OAM Loopback test."
    INDEX { osIpSlaOwner, osIpSlaTest, osIpSlaHistoryIndex }
    ::= { osIpSlaHistoryTable 1 }

OsIpSlaHistoryEntry ::= SEQUENCE {
      osIpSlaHistoryIndex                 Unsigned32,
      osIpSlaHistoryStarted               DateAndTime,
      osIpSlaHistoryRunMethod             TestRunMethod,
      osIpSlaHistoryIpTargetAddrType      InetAddressType,
      osIpSlaHistoryIpTargetAddr          InetAddress,
      osIpSlaHistoryMsgTransmitted        Unsigned32,
      osIpSlaHistoryMsgReceived           Unsigned32,
      osIpSlaHistoryRttMin                Unsigned32,
      osIpSlaHistoryRttMax                Unsigned32,
      osIpSlaHistoryRttAverage            Unsigned32,
      osIpSlaHistoryRttSum2               Unsigned32,
      osIpSlaHistoryJittMin               Unsigned32,
      osIpSlaHistoryJittMax               Unsigned32,
      osIpSlaHistoryJittAverage           Unsigned32,
      osIpSlaHistoryJittSum2              Unsigned32,

      osIpSlaHistoryTimedOut              Unsigned32,
      osIpSlaHistoryWrongSequenced        Unsigned32,
      osIpSlaHistoryRxErrors              Unsigned32,
      osIpSlaHistorySendFailed            Unsigned32,
      osIpSlaHistoryPriority              Unsigned32,
      osIpSlaHistoryTos                   Unsigned32
    }

osIpSlaHistoryIndex  OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "An index that uniquely identifies the sample. 
        This index starts at 1 and increases by one
        as each new sample is taken."
    REFERENCE
       "."
    ::= { osIpSlaHistoryEntry 3 }

osIpSlaHistoryStarted OBJECT-TYPE
    SYNTAX           DateAndTime
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Timestamp, when this test has been started."
    ::= { osIpSlaHistoryEntry 4 }

osIpSlaHistoryRunMethod OBJECT-TYPE
    SYNTAX           TestRunMethod
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The method, which was launched this test."
    ::= { osIpSlaHistoryEntry 5 }

osIpSlaHistoryIpTargetAddrType OBJECT-TYPE
    SYNTAX           InetAddressType
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This objects indicates the type of address stored
        in the corresponding osIpSlaHistoryIpTargetAddr
        object."
    ::= { osIpSlaHistoryEntry 8 }

osIpSlaHistoryIpTargetAddr OBJECT-TYPE
    SYNTAX           InetAddress
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This objects reports the IP address associated
        with a osIpSlaTargetAddress value when the destination
        address is specified as a DNS name.  The value of
        this object should be a zero length octet string
        when a DNS name is not specified or when a
        specified DNS name fails to resolve."
    ::= { osIpSlaHistoryEntry 9 }

osIpSlaHistoryMsgTransmitted OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "messages"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of request packets transmitted."
    ::= { osIpSlaHistoryEntry 12 }

osIpSlaHistoryMsgReceived OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "messages"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of reply packets received."
    ::= { osIpSlaHistoryEntry 13 }

osIpSlaHistoryRttMin OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The minimum round-trip-time (RTT) received."
    ::= { osIpSlaHistoryEntry 17 }

osIpSlaHistoryRttMax OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The maximum round-trip-time (RTT) received."
    ::= { osIpSlaHistoryEntry 18 }

osIpSlaHistoryRttAverage OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The average round-trip-time (RTT) received."
    ::= { osIpSlaHistoryEntry 19 }

osIpSlaHistoryRttSum2 OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "square of milliseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This object contains the sum of the squares for all 
        round-trip-times (RTT) received.  Its purpose is to enable standard
        deviation calculation."
    ::= { osIpSlaHistoryEntry 20 }

osIpSlaHistoryJittMin OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The minimum value of all jitter values."
    ::= { osIpSlaHistoryEntry 25 }

osIpSlaHistoryJittMax OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The mahimum value of all jitter values."
    ::= { osIpSlaHistoryEntry 26 }

osIpSlaHistoryJittAverage OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "microseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "The average value of all jitter values."
    ::= { osIpSlaHistoryEntry 27 }

osIpSlaHistoryJittSum2 OBJECT-TYPE
    SYNTAX           Unsigned32
    UNITS            "square of milliseconds"
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "This object contains the sum of the squares for all 
        jitter values.  Its purpose is to enable standard
        deviation calculation."
    ::= { osIpSlaHistoryEntry 28 }

osIpSlaHistoryTimedOut OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of timed out packets."
    ::= { osIpSlaHistoryEntry 30 }

osIpSlaHistoryWrongSequenced OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of wrong sequenced packets."
    ::= { osIpSlaHistoryEntry 31 }

osIpSlaHistoryRxErrors OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of receive errors."
    ::= { osIpSlaHistoryEntry 32 }

osIpSlaHistorySendFailed OBJECT-TYPE
    SYNTAX           Unsigned32
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Number of send errors."
    ::= { osIpSlaHistoryEntry 33 }


osIpSlaHistoryPriority OBJECT-TYPE
    SYNTAX           Unsigned32 (0..7)
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Priority number."
    ::= { osIpSlaHistoryEntry 35 }

osIpSlaHistoryTos OBJECT-TYPE
    SYNTAX           Unsigned32 (0..255)
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
      "Tos value."
    ::= { osIpSlaHistoryEntry 36 }

-- *******************************************************************
-- The osIpSlaTrapTable - Traps table
-- ******************************************************************* 


osIpSlaTrapTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF OsIpSlaTrapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Ip Sla trap table."
    REFERENCE
       "."
    ::= { osIpSla 20 }

osIpSlaTrapEntry OBJECT-TYPE
    SYNTAX      OsIpSlaTrapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
       "Contains configuration of Ip Sla traps."
    INDEX { osIpSlaOwner, osIpSlaTest}
    ::= { osIpSlaTrapTable 1 }

OsIpSlaTrapEntry ::= SEQUENCE {
      osIpSlaTrapReason             INTEGER,
      osIpSlaTrapFdRiseThold               Unsigned32,
      osIpSlaTrapFdFallThold               Unsigned32,

      osIpSlaTrapJittRiseThold             Unsigned32,
      osIpSlaTrapJittFallThold             Unsigned32,
      
      osIpSlaTrapPcktLossRiseThold         Unsigned32,
      osIpSlaTrapPcktLossFallThold         Unsigned32
    }

osIpSlaTrapReason OBJECT-TYPE
    SYNTAX          INTEGER {
                      risingAlarm(1),
                      fallingAlarm(2)
                    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "."
    ::= { osIpSlaTrapEntry 30 }

osIpSlaTrapFdRiseThold OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "microseconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Frame delay (Average of Round Trip Time) Rising threshold.
        Value 0 means, that this the agent will not check this type of threshold."
    DEFVAL { 0 }
    ::= { osIpSlaTrapEntry 35 }

osIpSlaTrapFdFallThold OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "microseconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Frame delay (Average of Round Trip Time) Falling threshold"
    DEFVAL { 0 }
    ::= { osIpSlaTrapEntry 36 }

osIpSlaTrapJittRiseThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Jitter Rising threshold.
        Value 0 means, that this the agent will not check this type of threshold."
    DEFVAL { 0 }
    ::= { osIpSlaTrapEntry 63 }

osIpSlaTrapJittFallThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "Jitter Falling threshold."
    DEFVAL { 0 }
    ::= { osIpSlaTrapEntry 64 }

osIpSlaTrapPcktLossRiseThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "The packet loss Rising threshold."
    DEFVAL { 0 }
    ::= { osIpSlaTrapEntry 68 }
    
osIpSlaTrapPcktLossFallThold OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "The packet loss Falling threshold."
    DEFVAL { 0 }
    ::= { osIpSlaTrapEntry 69 }

-- ******************************************************************
-- NOTIFICATIONS (TRAPS)
-- These notifications will be sent to the management entity
-- whenever a MEP loses/restores contact with one or more other MEPs.
-- ******************************************************************

osIpSlaBurstFailed NOTIFICATION-TYPE
      OBJECTS {
        osIpSlaResultsMsgTransmitted,
      }
      STATUS  current
      DESCRIPTION
          "Generated when a burst failure is detected when the
          corresponding osIpSlaTrapGeneration object is set to
          burstFailed(1) subject to the value of
          osIpSlaTrapProbeFailureFilter.  The object
          osIpSlaTrapProbeFailureFilter can be used to specify the
          number of successive burst failures that are required
          before this notification can be generated."
      ::= { osIpSlaNotifications 1 }

osIpSlaBurstCompleted NOTIFICATION-TYPE
      OBJECTS {
        osIpSlaResultsMsgTransmitted,
        osIpSlaResultsMsgReceived,
        osIpSlaResultsRttAverage,
        osIpSlaResultsJittAverage,
        osIpSlaResultsPcktLoss
      }
      STATUS  current
      DESCRIPTION
          "Generated at the completion of a osIpSla probe interval(burst)."
      ::= { osIpSlaNotifications 2 }

osIpSlaTestFailed NOTIFICATION-TYPE
      OBJECTS {
        osIpSlaResultsMsgTransmitted,
      }

      STATUS  current
      DESCRIPTION
          "Generated when a osIpSla test is determined to have failed
          when the corresponding osIpSlaTrapGeneration object is
          set to testFailed(3)."
      ::= { osIpSlaNotifications 3 }

osIpSlaTestCompleted NOTIFICATION-TYPE
      OBJECTS {
        osIpSlaResultsMsgTransmitted,
        osIpSlaResultsMsgReceived,
        osIpSlaResultsRttAverage,
        osIpSlaResultsJittAverage,
        osIpSlaResultsPcktLoss
      }
      STATUS  current
      DESCRIPTION
          "Generated at the completion of a osIpSla test when the
          corresponding osIpSlaTrapGeneration object is set to
          testCompleted(3)."
      ::= { osIpSlaNotifications 4 }

osIpSlaFdAlarm NOTIFICATION-TYPE
    OBJECTS     { osIpSlaResultsRttAverage,
                  osIpSlaTrapReason
                }
    STATUS      current
    DESCRIPTION
       "Frame delay trap."
    ::= { osIpSlaNotifications 5 }

osIpSlaJittAlarm NOTIFICATION-TYPE
    OBJECTS     { osIpSlaResultsJittAverage,
                  osIpSlaTrapReason
                }
    STATUS      current
    DESCRIPTION
       "Jitter trap."
    ::= { osIpSlaNotifications 6 }
   
osIpSlaPcktLossAlarm NOTIFICATION-TYPE
    OBJECTS     { osIpSlaResultsPcktLoss,
                  osIpSlaTrapReason
                }
    STATUS      current
    DESCRIPTION
       "Packet loss trap."
    ::= { osIpSlaNotifications 7 }    

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

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

    MODULE -- this module 
        MANDATORY-GROUPS { 
                          osIpSlaMandatoryGroup,
                          osIpSlaNotificationsGroup
             }

    ::= { osIpSlaMIBCompliances 1 }

-- ...................................................................
-- Conformance Groups 
-- ................................................................... 
 
osIpSlaMandatoryGroup  OBJECT-GROUP
    OBJECTS { 
      osIpSlaFeaturesSupport,

      osIpSlaProtocol,
      osIpSlaDescr,
      osIpSlaTargetAddressType, osIpSlaTargetAddress,
      osIpSlaBurstNumber, osIpSlaBurstInterval,
      osIpSlaProbeNumber, osIpSlaProbeInterval, osIpSlaProbeTimeout,
      osIpSlaPacketLength, osIpSlaDataFill,
      osIpSlaDSField, osIpSlaTtl, osIpSlaPriority,
      osIpSlaFdRiseThold, osIpSlaFdFallThold, osIpSlaJittRiseThold, osIpSlaJittFallThold,
      osIpSlaPcktLossRiseThold, osIpSlaPcktLossFallThold,


      osIpSlaHistoryMaxRows,
      osIpSlaTrapGeneration,
      osIpSlaRunMethod, osIpSlaRowStatus,

      osIpSlaResultsStarted, osIpSlaResultsRunMethod,
      osIpSlaResultsIpTargetAddrType, osIpSlaResultsIpTargetAddr,
      osIpSlaResultsMsgTransmitted, osIpSlaResultsMsgReceived,
      osIpSlaResultsRttMin, osIpSlaResultsRttMax, osIpSlaResultsRttAverage, osIpSlaResultsRttSum2,
      osIpSlaResultsJittMin, osIpSlaResultsJittMax, osIpSlaResultsJittAverage, osIpSlaResultsJittSum2,
      osIpSlaResultsTimedOut, osIpSlaResultsWrongSequenced,
      osIpSlaResultsRxErrors, osIpSlaResultsSendFailed, osIpSlaResultsHistoryRows,
      osIpSlaResultsPriority, osIpSlaResultsTos, osIpSlaResultsPcktLoss, osIpSlaResultsHistIndx,

      osIpSlaHistoryStarted, osIpSlaHistoryRunMethod,
      osIpSlaHistoryIpTargetAddrType, osIpSlaHistoryIpTargetAddr,
      osIpSlaHistoryMsgTransmitted, osIpSlaHistoryMsgReceived,
      osIpSlaHistoryRttMin, osIpSlaHistoryRttMax, osIpSlaHistoryRttAverage, osIpSlaHistoryRttSum2,
      osIpSlaHistoryJittMin, osIpSlaHistoryJittMax, osIpSlaHistoryJittAverage, osIpSlaHistoryJittSum2,
      osIpSlaHistoryTimedOut, osIpSlaHistoryWrongSequenced, 
      osIpSlaHistoryRxErrors, osIpSlaHistorySendFailed, osIpSlaHistoryPriority, 
      osIpSlaHistoryTos,

      osIpSlaTrapReason, osIpSlaTrapFdRiseThold, osIpSlaTrapFdFallThold, osIpSlaTrapJittRiseThold,
      osIpSlaTrapJittFallThold, osIpSlaTrapPcktLossRiseThold, osIpSlaTrapPcktLossFallThold         

    }
    STATUS current 
    DESCRIPTION 
        "."

    ::= { osIpSlaMIBGroups 1 }

osIpSlaNotificationsGroup NOTIFICATION-GROUP
   NOTIFICATIONS {
         osIpSlaBurstFailed,
         osIpSlaBurstCompleted,
         osIpSlaTestFailed,
         osIpSlaTestCompleted,
         osIpSlaFdAlarm,
         osIpSlaJittAlarm, 
         osIpSlaPcktLossAlarm 
          }
   STATUS        current
   DESCRIPTION
       "The notification which are required to be supported by
       implementations of this MIB."
   ::= { osIpSlaMIBGroups 2 }

END

