--  =======================================================================
--  File        : osProvLpbk.mib
--  Description : Private MIB support tag manipulation into the Ethernet Provision services.
--  By          : Alex

-- 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-PROV-LPBK-MIB DEFINITIONS ::= BEGIN

IMPORTS
                MODULE-IDENTITY, OBJECT-TYPE,
                Unsigned32, Integer32                         FROM SNMPv2-SMI
                TEXTUAL-CONVENTION, TruthValue,
                MacAddress                                    FROM SNMPv2-TC
                osEthServId                                   FROM OS-ETH-SERV-MIB
                oaOptiSwitch, TagList, EntryValidator         FROM OS-COMMON-TC-MIB
                MODULE-COMPLIANCE, OBJECT-GROUP               FROM SNMPv2-CONF;

osProvLpbk      MODULE-IDENTITY
                LAST-UPDATED "201010260000Z"
                ORGANIZATION "MRV Communications, Inc."
                CONTACT-INFO
                   "Pavel Fridland
                    MRV Communication, Inc
                    http://www.mrv.com
                    Email:  pfridland@mrv.com"
                DESCRIPTION
                    "This MIB allows to configurate loopback actions in Ethernet
                    Provision services."
                REVISION     "201306020000Z"
                DESCRIPTION
                    "Initial edition."
                ::= { oaOptiSwitch 26 }

-- ************************************************************
-- MIB place Definition
-- ************************************************************

osProvLpbkObjects           OBJECT IDENTIFIER ::= { osProvLpbk 1 }
osProvLpbkConformance       OBJECT IDENTIFIER ::= { osProvLpbk 100 }
osProvLpbkMIBCompliances    OBJECT IDENTIFIER ::= { osProvLpbkConformance 1 }
osProvLpbkMIBGroups         OBJECT IDENTIFIER ::= { osProvLpbkConformance 2 }

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

--3456789a123456789b123456789c123456789d123456789e123456789f123456789g123456789
 
-- ************************************************************
-- The osProvTagsTable Table
-- ************************************************************
osProvLpbkTable  OBJECT-TYPE
    SYNTAX       SEQUENCE OF OsProvLpbkEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This table allows to define loopback in the Ethernet Provision Services."
    REFERENCE
       "."
    ::= { osProvLpbkObjects 3 }

osProvLpbkEntry   OBJECT-TYPE
    SYNTAX       OsProvLpbkEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Contains an entry of the table."
    INDEX { osEthServId, osProvLpbkDir, osProvLpbkInd } 
    ::= { osProvLpbkTable 1 }

OsProvLpbkEntry ::= SEQUENCE {
      osProvLpbkDir                INTEGER,
      osProvLpbkInd                Unsigned32,
      osProvLpbkPort               Integer32,
      osProvLpbkTags               TagList,
      osProvLpbkIncludesUntagged   TruthValue,       
      osProvLpbkDestMacAddress     MacAddress,
      osProvLpbkDestMacMask        MacAddress,
      osProvLpbkSrcMacAddress      MacAddress,
      osProvLpbkSrcMacMask         MacAddress,
      osProvLpbkAction             INTEGER,
      osProvLpbkAdminStatus        INTEGER,
      osProvLpbkOperStatus         INTEGER,
      osProvLpbkCfgBits            BITS

}

osProvLpbkDir        OBJECT-TYPE
    SYNTAX           INTEGER {
                       sport      (1),
                       cport      (2)
                     }
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "This object defines the type of port which make loopback action."
    ::= { osProvLpbkEntry 5 }

osProvLpbkInd       OBJECT-TYPE
    SYNTAX          Unsigned32
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "This object defines the index of loopback entity for specific service 
       and specific port type inside service."
    ::= { osProvLpbkEntry 6 }

osProvLpbkPort      OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS       read-create
    STATUS           current
    DESCRIPTION
       "This object defines the number of port on the device."
    DEFVAL { 0 }
    ::= { osProvLpbkEntry 7 }

osProvLpbkTags      OBJECT-TYPE
    SYNTAX           TagList
    MAX-ACCESS       read-create
    STATUS           current
    DESCRIPTION
       "This object defines the tag-list for loopback calssification.
        The emtpy taglist means clear parameter."
    DEFVAL { "" }
    ::= { osProvLpbkEntry 8 }

osProvLpbkIncludesUntagged OBJECT-TYPE
    SYNTAX                 TruthValue
    MAX-ACCESS             read-write
    STATUS                 current
    DESCRIPTION
       "True indicates that the loopback must be untagged frames."
    DEFVAL { false }
    ::= { osProvLpbkEntry 9 }

osProvLpbkDestMacAddress OBJECT-TYPE
    SYNTAX               MacAddress
    MAX-ACCESS           read-write
    STATUS               current
    DESCRIPTION
       "The Destination MAC Address will be used for loopback classification.
        In case of Destination MAC Address will be removed from loopback 
        classification, the value is 00:00:00:00:00:00 (DEFVAL).
       "
      DEFVAL   { '000000000000'H }    -- 0:0:0:0:0:0
    ::= { osProvLpbkEntry 10 }

osProvLpbkDestMacMask OBJECT-TYPE
    SYNTAX            MacAddress
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
       "The Mask for Destination MAC Address which will be used for loopback classification.
        In case of Destination MAC Mask will be removed from loopback 
        classification, the value is ff:ff:ff:ff:ff:ff (DEFVAL).
       "
      DEFVAL   { 'ffffffffffff'H }    -- ff:ff:ff:ff:ff:ff
    ::= { osProvLpbkEntry 11 }

osProvLpbkSrcMacAddress OBJECT-TYPE
    SYNTAX              MacAddress
    MAX-ACCESS          read-write
    STATUS              current
    DESCRIPTION
       "The Source MAC Address will be used for loopback classification.
        In case of Source MAC Address will be removed from loopback 
        classification, the value is 00:00:00:00:00:00 (DEFVAL).
       "
      DEFVAL   { '000000000000'H }    -- 0:0:0:0:0:0
    ::= { osProvLpbkEntry 12 }

osProvLpbkSrcMacMask OBJECT-TYPE
    SYNTAX           MacAddress
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "The Mask for source MAC Address which will be used for loopback classification.
        In case of Source MAC Mask will be removed from loopback 
        classification, the value is ff:ff:ff:ff:ff:ff (DEFVAL).
       "
      DEFVAL   { 'ffffffffffff'H }    -- ff:ff:ff:ff:ff:ff

    ::= { osProvLpbkEntry 13 }

osProvLpbkAction     OBJECT-TYPE
    SYNTAX            INTEGER {
                        unknown (1),
                        none    (2),
                        reflect (3),
                        macSwap (4)
                      }
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
       "Option of loopback on s-ports and c-ports.
          reflect - all egress packets are redirected back to selected port.
          macSwap - all packets are redirected back to egress port 
                    with the source/destination mac address swapped."
    DEFVAL { macSwap }
    ::= { osProvLpbkEntry 14 }

osProvLpbkAdminStatus OBJECT-TYPE
    SYNTAX           INTEGER {
                       unknown    (1),
                       nothing    (2),
                       delete     (3),
                       create     (4)
                       enable     (5),
                       disable    (6)
                     }
    MAX-ACCESS       read-write
    STATUS           current
    DESCRIPTION
       "."
    DEFVAL { disable }
    ::= { osProvLpbkEntry 15 }

osProvLpbkOperStatus OBJECT-TYPE
    SYNTAX           INTEGER {
                       enabled       (1),
                       disabled      (2)
                     }
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
       "."
    DEFVAL { notActive }
    ::= { osProvLpbkEntry 16 }


osProvLpbkCfgBits   OBJECT-TYPE
    SYNTAX          BITS {
                      reserved       (0),
                      portCfg        (3),
                      tagsCfg        (5),
                      actionCfg      (11),
                      enableCfg      (12),
                      incUntaggedCfg (13),
                      dstMacAddrCfg  (14),
                      srcMacAddrCfg  (15),
                      dstMacMaskCfg  (16),
                      srcMacMaskCfg  (17)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
       "The bits reserved are not used."
    DEFVAL { {} }
    ::= { osProvLpbkEntry 17 }



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

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

    MODULE -- this module 
        MANDATORY-GROUPS { 
                          osProvLpbkMandatoryGroup
                         }

    ::= { osProvLpbkMIBCompliances 1 }

-- ...................................................................
-- Conformance Groups 
-- ................................................................... 
osProvLpbkMandatoryGroup  OBJECT-GROUP
    OBJECTS { 
              osProvLpbkPort,
              osProvLpbkTags,
              osProvLpbkIncludesUntagged,
              osProvLpbkDestMacAddress,
              osProvLpbkDestMacMask,
              osProvLpbkSrcMacAddress,
              osProvLpbkSrcMacMask,
              osProvLpbkAction,
              osProvLpbkAdminStatus,
              osProvLpbkOperStatus,
              osProvLpbkCfgBits
            }
    STATUS current 
    DESCRIPTION 
        "."

    ::= { osProvLpbkMIBGroups 1 }


END

