--  =======================================================================
--  File        : osServL2Cp.mib
--  Description : Private MIB supports L2 Control Protocols Processing in Service Provision
--  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-SERV-L2CP-MIB DEFINITIONS ::= BEGIN

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

osServL2Cp      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
                    "This MIB allows to configurate L2 Control Protocols Processing in Service Provision."
                REVISION     "200901090000Z"
                DESCRIPTION
                    "Initial edition."
                ::= { oaOptiSwitch 15 }

-- ************************************************************
-- MIB place Definition
-- ************************************************************
osServL2CpGen               OBJECT IDENTIFIER ::= { osServL2Cp 1 }
osServL2CpConformance       OBJECT IDENTIFIER ::= { osServL2Cp 100 }
osServL2CpMIBCompliances    OBJECT IDENTIFIER ::= { osServL2CpConformance 1 }
osServL2CpMIBGroups         OBJECT IDENTIFIER ::= { osServL2CpConformance 2 }

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

L2CpProtocol ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
       "Type of L2 Control Protocol."
    SYNTAX      INTEGER {
                  unknown   (1),
                  stp       (2),
                  vtp       (3),
                  cdp       (4),
                  pvst      (5),
                  lacp      (6),
                  dot1x     (7),
                  udld      (8),
                  efm       (9),
                  esmc      (10),
                  dtp       (11),
                  ethoam    (12),
                  pagp      (13),
                  erp       (14),       
                  lamp		(15),
    			  elmi		(16),
    			  lldp		(17),
    			  garp		(18)   
                }

--3456789a123456789b123456789c123456789d123456789e123456789f123456789g123456789
osServL2CpL2TpMac   OBJECT-TYPE
    SYNTAX          MacAddress
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "This MAC replaces destination MAC in incoming frames of protocols,
       when tunnelL2Tp is used.
       Additionally this object serves as a SupportValue."
    DEFVAL { '01000CCDCDD0'H }
    ::= { osServL2CpGen 2 }

-- ************************************************************
-- The osServL2CpOptTable Table
-- ************************************************************
osServL2CpOptTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF OsServL2CpOptEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This table allows to a manager to get information about supported options
       for any protocol."
    ::= { osServL2Cp 3 }

osServL2CpOptEntry   OBJECT-TYPE
    SYNTAX       OsServL2CpOptEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Contains an entry of the table."
    INDEX { osServL2CpOptSrvType, osServL2CpOptProtocol } 
    ::= { osServL2CpOptTable 1 }

OsServL2CpOptEntry ::= SEQUENCE {
      osServL2CpOptSrvType            ServiceType,
      osServL2CpOptProtocol           L2CpProtocol,
      osServL2CpOptSupported          BITS
}

osServL2CpOptSrvType OBJECT-TYPE
    SYNTAX           ServiceType
    MAX-ACCESS       not-accessible
    STATUS           current
    DESCRIPTION
       "Type of the service"
    REFERENCE
      "MEF 6.1, Clauses 7.1 - 7.6."
    ::= { osServL2CpOptEntry 1 }

osServL2CpOptProtocol OBJECT-TYPE
    SYNTAX          L2CpProtocol
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
       "."
    ::= { osServL2CpOptEntry 2 }


osServL2CpOptSupported OBJECT-TYPE
    SYNTAX            BITS
                      {
                      discard           (0),
                      peer              (1),
                      tunnelTransparent (2),
                      tunnelL2Tp        (3)
                      }
    MAX-ACCESS       read-only
    STATUS           current
    DESCRIPTION
       "."
    ::= { osServL2CpOptEntry 3 }

-- ************************************************************
-- The osServL2CpSrvTable Table
-- ************************************************************
osServL2CpSrvTable   OBJECT-TYPE
    SYNTAX       SEQUENCE OF OsServL2CpSrvEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This table allows to define L2 Control Protocols Processing in the service for every protocol."
    ::= { osServL2Cp 4 }

osServL2CpSrvEntry   OBJECT-TYPE
    SYNTAX       OsServL2CpSrvEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Contains an entry of the table."
    INDEX { osEthServId, osServL2CpOptProtocol } 
    ::= { osServL2CpSrvTable 1 }

OsServL2CpSrvEntry ::= SEQUENCE {
      osServL2CpSrvOption             INTEGER
}

osServL2CpSrvOption OBJECT-TYPE
    SYNTAX          INTEGER {
                      unknown           (1),
                      transparent       (2),
                      discard           (3),
                      peer              (4),
                      tunnelL2Tp        (5)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "."
    DEFVAL { transparent }
    ::= { osServL2CpSrvEntry 5 }

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

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

    ::= { osServL2CpMIBCompliances 1 }

-- ...................................................................
-- Conformance Groups 
-- ................................................................... 
 
osServL2CpMandatoryGroup  OBJECT-GROUP
    OBJECTS { 
              osServL2CpL2TpMac,
              osServL2CpOptSupported,
              osServL2CpSrvOption
            }
    STATUS current 
    DESCRIPTION 
        "."

    ::= { osServL2CpMIBGroups 1 }
END

