--  =======================================================================
--  File        : osL2PduGuard.mib
--  Description : Private MIB supports L2 Control PDU guard
--  By          : 

-- 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-L2-PDU-GUARD-MIB DEFINITIONS ::= BEGIN

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

osL2PduGuard    MODULE-IDENTITY
                LAST-UPDATED "201001090000Z"
                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     "201001090000Z"
                DESCRIPTION
                    "Initial edition."
                ::= { oaOptiSwitch 17 }

-- ************************************************************
-- MIB place Definition
-- ************************************************************
osL2PduGuardCpGen               OBJECT IDENTIFIER ::= { osL2PduGuard 1 }
osL2PduGuardCpConformance       OBJECT IDENTIFIER ::= { osL2PduGuard 100 }
osL2PduGuardCpMIBCompliances    OBJECT IDENTIFIER ::= { osL2PduGuardCpConformance 1 }
osL2PduGuardCpMIBGroups         OBJECT IDENTIFIER ::= { osL2PduGuardCpConformance 2 }

-- ************************************************************
-- Textual conventions
-- ************************************************************

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

SupportValue ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
       "Represents a value, that reflects support of the feature on the Device." 
    SYNTAX       INTEGER { notSupported(1), supported(2) }

osL2PduGuardSupprt      OBJECT-TYPE
                        SYNTAX     SupportValue
                        MAX-ACCESS read-only
                        STATUS     current
                        DESCRIPTION
                          "Indicates, that this MIB is supported."
                        ::= { osL2PduGuardCpGen 1 }


-- ************************************************************
-- The osL2PduGuardTable Table
-- ************************************************************
osL2PduGuardTable   OBJECT-TYPE
    SYNTAX       SEQUENCE OF OsL2PduGuardEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This table allows to define L2 Control PDU guard for every protocol."
    ::= { osL2PduGuard 2 }

osL2PduGuardEntry   OBJECT-TYPE
    SYNTAX       OsL2PduGuardEntry
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "Contains an entry of the table."
    INDEX { osL2PduGuardProtocol, osL2PduGuardPort } 
    ::= { osL2PduGuardTable 1 }

OsL2PduGuardEntry ::= SEQUENCE {
      osL2PduGuardProtocol		   L2ProtocolId,
      osL2PduGuardPort             Integer32,
      osL2PduGuardIsolateRate      Unsigned32,
      osL2PduGuardInformRate       Unsigned32,
      osL2PduGuardState            L2PortState
}
    
    
osL2PduGuardProtocol OBJECT-TYPE
    SYNTAX          L2ProtocolId
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
       "."
    ::= { osL2PduGuardEntry 1 }
  
osL2PduGuardPort  	OBJECT-TYPE
    SYNTAX          	Integer32 (1..2147483647)
    MAX-ACCESS      	not-accessible
    STATUS          	current
    DESCRIPTION
       "."
    ::= { osL2PduGuardEntry 2 }  
    
osL2PduGuardIsolateRate OBJECT-TYPE
    SYNTAX          Unsigned32 (0|1..300)
    UNITS           "packets per second"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
       "PDU storm guard. When the number of packets of the protocol, which came on the specific port 
       exceeds this threshold, the port is neutralized.
       The value 0 means 'do not check!'."
    DEFVAL { 0 }
    ::= { osL2PduGuardEntry 3 }
    
    
osL2PduGuardInformRate OBJECT-TYPE
    SYNTAX          Unsigned32 (0|1..300)
    UNITS           "packets per second"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
    	"PDU storm guard. When the number of packets of the protocol, which came on the specific port 
       	exceeds this threshold but not the Isolate threshold, a log is written to the syslog.
       	The value 0 means 'do not check!'."
    DEFVAL { 0 }
    ::= { osL2PduGuardEntry 4 }
    
    
osL2PduGuardState   OBJECT-TYPE
    SYNTAX          L2PortState
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
       "The is in inform state in case the number of packets which came on the specific port exceeded
        the inform threshold, and in isolate state in case they exceeded the isolate threshold."
    ::= { osL2PduGuardEntry 5 }
    
-- *******************************************************************
--  Conformance Information 
-- ******************************************************************* 

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

    MODULE -- this module 
        MANDATORY-GROUPS { 
                          osL2PduGuardMandatoryGroup
                         }

    ::= { osL2PduGuardCpMIBCompliances 1 }

-- ...................................................................
-- Conformance Groups 
-- ................................................................... 
 
osL2PduGuardMandatoryGroup  OBJECT-GROUP
    OBJECTS { 
      osL2PduGuardSupprt,
      osL2PduGuardIsolateRate,
      osL2PduGuardInformRate,
      osL2PduGuardState
    }
    STATUS current 
    DESCRIPTION 
        "."
    ::= { osL2PduGuardCpMIBGroups 1 }
    

END

