 --
 -- CIENA-CES-LOOP-DETECTION-MIB.my
 --
 CIENA-CES-LOOP-DETECTION-MIB DEFINITIONS ::= BEGIN

 IMPORTS                
   Integer32, Unsigned32, Gauge32, Counter32, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
            FROM SNMPv2-SMI
   RowStatus, DisplayString, MacAddress, TruthValue, TEXTUAL-CONVENTION
            FROM SNMPv2-TC 
   cienaGlobalSeverity, cienaGlobalMacAddress
			FROM  CIENA-GLOBAL-MIB	
   CienaGlobalState
			FROM CIENA-TC		
   cienaCesConfig,cienaCesStatistics, cienaCesNotifications         
            FROM CIENA-SMI;
        
 cienaCesLoopDetectionMIB MODULE-IDENTITY
            LAST-UPDATED "201802020000Z"
            ORGANIZATION "Ciena, Inc"
            CONTACT-INFO
                    "Mib Meister
                     115 North Sullivan Road
                     Spokane Valley, WA 99037
                     USA                             
                     Phone:  +1 509 242 9000
                     Email:  support@ciena.com"
            DESCRIPTION
                    "Loop detection via CCMs is built over system 
                     ability to detect loop in the network"

        REVISION    "201802020000Z"
            DESCRIPTION
					"The initial version."

            ::= { cienaCesConfig 50 }
--
-- Node definitions
--
 
cienaCesLoopDetectionMIBObjects OBJECT IDENTIFIER ::= { cienaCesLoopDetectionMIB 1 } 
cienaCesLoopDetection  OBJECT IDENTIFIER ::= { cienaCesLoopDetectionMIBObjects 1 } 
 
-- Notifications 
  
cienaCesLoopDetectionMIBNotificationPrefix     OBJECT IDENTIFIER ::= { cienaCesLoopDetectionMIB 2 } 
cienaCesLoopDetectionMIBNotifications          OBJECT IDENTIFIER ::= { cienaCesLoopDetectionMIBNotificationPrefix 0 }

 
-- Conformance information 
 
cienaCesLoopDetectionMIBConformance OBJECT IDENTIFIER ::= { cienaCesLoopDetectionMIB 3 } 
cienaCesLoopDetectionMIBCompliances OBJECT IDENTIFIER ::= { cienaCesLoopDetectionMIBConformance 1 } 		
cienaCesLoopDetectionMIBGroups      OBJECT IDENTIFIER ::= { cienaCesLoopDetectionMIBConformance 2 } 
 
 --
 -- Loop Detection  Global Attributes
 --
 cienaCesLoopDetectionAdminStatus  OBJECT-TYPE
     SYNTAX       CienaGlobalState
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
             "Specifies if Loop Detection is enabled or disabled on system level." 
     ::= { cienaCesLoopDetection 1 }	 
 --
 -- Loop Detection Port Parameters
 --	 
  CienaCesLoopDetectionPortEntry ::= SEQUENCE {
     cienaCesLoopDetectionPortId              Integer32,
     cienaCesLoopDetectionPortName	      DisplayString,
     cienaCesLoopDetectionPortAdminStatus     INTEGER,
     cienaCesLoopDetectionPortAction          INTEGER,
     cienaCesLoopDetectionPortRevertiveMode   INTEGER,
     cienaCesLoopDetectionPortOperState       INTEGER,
     cienaCesLoopDetectionPortLoopStatus      INTEGER,
     cienaCesLoopDetectionPortLoopOccurence   Counter32,
     cienaCesLoopDetectionHoldOffTime         Integer32
 }
 
  cienaCesLoopDetectionPortTable OBJECT-TYPE
     SYNTAX       SEQUENCE OF CienaCesLoopDetectionPortEntry
     MAX-ACCESS   not-accessible
     STATUS       current
     DESCRIPTION
             "A table of Loop Detection Port Entries. "
     ::= { cienaCesLoopDetection 2 }
	 
 cienaCesLoopDetectionPortEntry  OBJECT-TYPE
     SYNTAX       CienaCesLoopDetectionPortEntry
     MAX-ACCESS   not-accessible
     STATUS       current
     DESCRIPTION
             "The Loop Detection Port entry in the Table."
     INDEX { cienaCesLoopDetectionPortId }
     ::= {  cienaCesLoopDetectionPortTable 1 }

 cienaCesLoopDetectionPortId  OBJECT-TYPE
     SYNTAX       Integer32 (1..65535)
     MAX-ACCESS   not-accessible
     STATUS       current
     DESCRIPTION
             "Port ID for the instance. This Port ID refers to 
              index in loop Detection Port Entry."
     ::= { cienaCesLoopDetectionPortEntry 1 }

 cienaCesLoopDetectionPortName OBJECT-TYPE
             SYNTAX      DisplayString (SIZE (0..32))
             MAX-ACCESS  read-only
             STATUS      current
             DESCRIPTION
                     "A textual string containing information about the
                     port. This string should indicate the physical
                     location of the port as well."
             ::= { cienaCesLoopDetectionPortEntry 2 }
			 
 cienaCesLoopDetectionPortAdminStatus  OBJECT-TYPE
     SYNTAX       INTEGER {
                        enabled(1),
                        disabled(2)
                        }
     MAX-ACCESS   read-write
     STATUS       current
     DESCRIPTION
             "This object specifies the current status of Per Port of Loop
              Detection, i.e. whether loop-detection is enabled or disabled
              on port level."
          DEFVAL {disabled}
     ::= { cienaCesLoopDetectionPortEntry 3 }

 cienaCesLoopDetectionPortAction  OBJECT-TYPE
     SYNTAX       INTEGER {
                        g8032(1),
                        portshut(2),
                        notify(3)
                        }
     MAX-ACCESS   read-write
     STATUS       current
     DESCRIPTION
             "This object specifies the current action configured on port
              if loop is detected in network.
              1)g8032 - It will Block the traffic.
              2)portshut - It will shut down the Port in order to completely 
              stop the traffic.
              3)notify - It will only report event and send trap."
          DEFVAL {notify}
     ::= { cienaCesLoopDetectionPortEntry 4 }

 cienaCesLoopDetectionPortRevertiveMode  OBJECT-TYPE
     SYNTAX       INTEGER {
                        on(1),
                        off(2)
                        }
     MAX-ACCESS   read-write
     STATUS       current
     DESCRIPTION
             "This object specifies the ability to revert action on port 
              after expiry of configured reversion hold-off time
              if no loop is present on port, it will  resume traffic.
              If revertive mode is off, then loop-detection is required to set 
              disabled to revoke running action from port."
          DEFVAL {off}
     ::= { cienaCesLoopDetectionPortEntry 5 }

 cienaCesLoopDetectionPortOperState   OBJECT-TYPE
     SYNTAX       INTEGER {
                          enabled(1),
                          disabled(2)
                          }
      MAX-ACCESS     read-only
      STATUS         current
      DESCRIPTION
             "This object specifies the current operational state for the given Port,
              i.e. If loop-detection is enabled on both system and port level and conditioning done, it will
              be shown enabled."
          DEFVAL {disabled}
      ::= { cienaCesLoopDetectionPortEntry 6 }


 cienaCesLoopDetectionPortLoopStatus  OBJECT-TYPE
     SYNTAX       INTEGER {
                          yes(1),
                          no(2)
                          }
      MAX-ACCESS     read-only
      STATUS         current
      DESCRIPTION
             "This object specifies whether loop is present on given Port,
              If loop is present then configured action will be applied 
              automatically."
          DEFVAL {no}
      ::= { cienaCesLoopDetectionPortEntry 7 }

cienaCesLoopDetectionPortLoopOccurence  OBJECT-TYPE
     SYNTAX       Counter32 
     MAX-ACCESS   read-only
     STATUS         current
      DESCRIPTION
             "This object specifies the current Loop Occurrence Count,
              i.e. how many times loop has been detected on per port 
              basis"
      ::= { cienaCesLoopDetectionPortEntry 8 }

 cienaCesLoopDetectionHoldOffTime   OBJECT-TYPE
      SYNTAX         Integer32 (0..10000)
      UNITS          "milliseconds"
      MAX-ACCESS     read-write
      STATUS         current
      DESCRIPTION
             "This object specifies the hold-off time in which the action 
              applied on detection of loop should be applied after expiry
              of configured hold-off time."
          DEFVAL {500}
      ::= { cienaCesLoopDetectionPortEntry 9 }	

 --
 -- Loop Detection Port CFM Service Parameters
 --	 
 cienaCesLoopDetectionPortCfmServiceTable OBJECT-TYPE
     SYNTAX     SEQUENCE OF CienaCesLoopDetectionPortCfmServiceEntry
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
            "The (conceptual) table listing CFM domain entry service index used for loop detection for each port."  
     ::= { cienaCesLoopDetection 3 }
		
 cienaCesLoopDetectionPortCfmServiceEntry OBJECT-TYPE
     SYNTAX      CienaCesLoopDetectionPortCfmServiceEntry
     MAX-ACCESS  not-accessible
     STATUS      current
     DESCRIPTION
           "An entry (conceptual row) in the cienaCesLoopDetectionPortCfmServiceTable."
     INDEX { cienaCesLoopDetectionPortId, cienaCesLoopDetectionCfmServiceIndex  }
     ::= { cienaCesLoopDetectionPortCfmServiceTable 1 }
		
 CienaCesLoopDetectionPortCfmServiceEntry ::=  SEQUENCE {      
     cienaCesLoopDetectionCfmServiceIndex				Unsigned32
 }
 
 cienaCesLoopDetectionCfmServiceIndex OBJECT-TYPE
     SYNTAX      Unsigned32
     MAX-ACCESS  read-only
     STATUS      current
     DESCRIPTION
           "This object specifies the CFM domain entry service index . It is also used as an index in the table." 
     ::= { cienaCesLoopDetectionPortCfmServiceEntry 1 }
	 
  --
  -- Notification
  --  
	 
  cienaCesLoopDetectionLoopFound NOTIFICATION-TYPE
        OBJECTS {
		cienaGlobalSeverity, 
		cienaGlobalMacAddress,
                cienaCesLoopDetectionCfmServiceIndex,
                cienaCesLoopDetectionPortName
                }
        STATUS     current
        DESCRIPTION
                "A cienaCesLoopDetectionLoopFound supports the ability to 
                 notify the existence of a loop within a network."
        ::= { cienaCesLoopDetectionMIBNotifications 1 }
		

cienaCesLoopDetectionLoopClear NOTIFICATION-TYPE
        OBJECTS {
		cienaGlobalSeverity, 
		cienaGlobalMacAddress,
                cienaCesLoopDetectionCfmServiceIndex,
                cienaCesLoopDetectionPortName
                }
        STATUS     current
        DESCRIPTION
                "A cienaCesLoopDetectionLoopClear is sent whenever loop gets 
                 cleared on Port."
        ::= { cienaCesLoopDetectionMIBNotifications 2 }

cienaCesLoopDetectionPortOperActionSet NOTIFICATION-TYPE
        OBJECTS {
		cienaGlobalSeverity, 
		cienaGlobalMacAddress,
                cienaCesLoopDetectionPortName
                }
        STATUS     current
        DESCRIPTION
                "A cienaCesLoopDetectionPortOperActionSet supports the ability to 
                 notify that a loop termination action has been taken."
        ::= { cienaCesLoopDetectionMIBNotifications 3 }

cienaCesLoopDetectionPortOperActionClear NOTIFICATION-TYPE
        OBJECTS {
		cienaGlobalSeverity, 
		cienaGlobalMacAddress,
                cienaCesLoopDetectionPortName
                }
        STATUS     current
        DESCRIPTION
                "A cienaCesLoopDetectionPortOperActionClear supports the ability to 
                 notify that a loop termination action has been cleared."
        ::= { cienaCesLoopDetectionMIBNotifications 4 }
	
END

 --
 -- CIENA-CES-LOOP-DETECTION-MIB
 --
