LUM-CIRCUIT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DateAndTime, DisplayString
        FROM SNMPv2-TC
    lumModules, lumCircuitMIB
        FROM LUM-REG
    FaultStatus, MgmtNameString
        FROM LUM-TC;

lumCircuitMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201706150000Z" -- June 15th 2017
    ORGANIZATION
        "Infinera Corporation"
    CONTACT-INFO
        "techsupport@infinera.com"
    DESCRIPTION
        "The circuit MIB.

        - General

        - Circuit status

"
    REVISION
        "201706150000Z" -- June 15th 2017
    DESCRIPTION
        "Changes made for release r29.0:
         - Changed ORGANIZATION and CONTACT-INFO"
    REVISION
        "201103240000Z" -- Mars 24th 2011
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 30 }


-- ----------------------------------------------------
-- Conformance area, containing groups and complicance
-- specifications.
-- ----------------------------------------------------

lumCircuitConfs OBJECT IDENTIFIER ::= { lumCircuitMIB 1 }
lumCircuitGroups OBJECT IDENTIFIER ::= { lumCircuitConfs 1 }
lumCircuitCompl OBJECT IDENTIFIER ::= { lumCircuitConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the CIRCUIT MIB
-- ----------------------------------------------------

lumCircuitMIBObjects OBJECT IDENTIFIER ::= { lumCircuitMIB 2 }

-- ----------------------------------------------------
-- This MIB contains the following groups:
-- ----------------------------------------------------

circuitGeneral OBJECT IDENTIFIER ::= { lumCircuitMIBObjects 1 }
circuitStatusList OBJECT IDENTIFIER ::= { lumCircuitMIBObjects 2 }
l2CircuitStatusList OBJECT IDENTIFIER ::= { lumCircuitMIBObjects 3 }

-- ----------------------------------------------------
-- Textual Conventions
-- ----------------------------------------------------

-- n/a

-------------------------------------------------------
-- General group
-- ----------------------------------------------------

circuitGeneralConfigLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the configuration of the MIB was
        last changed.

"
    ::= { circuitGeneral 1 }

circuitGeneralStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state of the MIB was last
        changed.

"
    ::= { circuitGeneral 2 }

circuitGeneralStatusTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of table.

"
    ::= { circuitGeneral 3 }

------------------------------------------fdfrAssurance-------------
-- Circtuit status table
-- ----------------------------------------------------

circuitStatusTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF CircuitStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The status list."
    ::= { circuitStatusList 1 }

circuitStatusEntry OBJECT-TYPE
    SYNTAX      CircuitStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the status list.

"
    INDEX { circuitStatusIndex }
    ::= { circuitStatusTable 1 }

CircuitStatusEntry ::=
    SEQUENCE {
        circuitStatusIndex                   Unsigned32,
        circuitStatusName                    MgmtNameString,
	circuitStatusDescription	     DisplayString,
        circuitStatusAdminStatus             INTEGER,
        circuitStatusOperStatus              INTEGER,
        circuitStatusDown                    FaultStatus,
        circuitStatusDegraded                FaultStatus,
	circuitStatusIncomplete		     FaultStatus }

circuitStatusIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry.

"
   ::= { circuitStatusEntry 1 }

circuitStatusName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Name of circuit

"
   ::= { circuitStatusEntry 2 }

circuitStatusDescription OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "User configurable description of circuit

"
   ::= { circuitStatusEntry 3 }

circuitStatusAdminStatus  OBJECT-TYPE
    SYNTAX      INTEGER {
		    undefined (0),
                    inService (1),
                    maintenance (2),
                    notUsed (3) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Administrative status of the circuit.

"
   ::= { circuitStatusEntry 4 }

circuitStatusOperStatus  OBJECT-TYPE
    SYNTAX      INTEGER {
                    undefined (0),
		    incomplete (1),
		    down (2),
		    degraded (3),
                    up (4) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Operative status of the circuit.

"
   ::= { circuitStatusEntry 5 }

circuitStatusIncomplete  OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tbd

"
   ::= { circuitStatusEntry 6 }

circuitStatusDegraded  OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tbd

"
   ::= { circuitStatusEntry 7 }

circuitStatusDown  OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "tbd.

"
   ::= { circuitStatusEntry 8 }



-------------------------------------------------------
-- FDFr status table
-- ----------------------------------------------------

fdfrStatusTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF FdfrStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The L2 status list."
    ::= { l2CircuitStatusList 1 }

fdfrStatusEntry OBJECT-TYPE
    SYNTAX      FdfrStatusEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the L2 status list"

    INDEX { fdfrStatusIndex }
    ::= { fdfrStatusTable 1 }

FdfrStatusEntry ::=
    SEQUENCE {
    	fdfrStatusIndex				Unsigned32,
        fdfrStatusDown				FaultStatus,
        fdfrStatusIncomplete			FaultStatus,
	    fdfrStatusUnexpectedMfdfrType		FaultStatus,
	    fdfrStatusDegraded			FaultStatus,
	    fdfrStatusMplsTunnelProtectionFailed	FaultStatus,
	    fdfrStatusMplsTunnelProtectionDegraded	FaultStatus,
		fdfrStatusUnknown			FaultStatus }

fdfrStatusIndex OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An arbitrary index assigned to each entry"
   ::= { fdfrStatusEntry 1 }

fdfrStatusDown OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm type L2 service operation status is down

"
   ::= { fdfrStatusEntry 2 }

fdfrStatusIncomplete OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm type L2 service route incomplete

"
   ::= { fdfrStatusEntry 3 }

fdfrStatusUnexpectedMfdfrType OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "ERP ring contains unexpected configuration

"
   ::= { fdfrStatusEntry 4 }

fdfrStatusDegraded OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm type L2 service operation status is degraded

"
   ::= { fdfrStatusEntry 5 }

fdfrStatusMplsTunnelProtectionFailed OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "MPLS tunnel protection failed

"
   ::= { fdfrStatusEntry 6 }

fdfrStatusMplsTunnelProtectionDegraded OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "MPLS tunnel protection is degraded

"
   ::= { fdfrStatusEntry 7 }

fdfrStatusUnknown OBJECT-TYPE
    SYNTAX      FaultStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Alarm type L2 service operation status is unknown

"
   ::= { fdfrStatusEntry 8 }


-- ----------------------------------------------------
-- Object and event groups
-- ----------------------------------------------------

circuitGeneralGroup OBJECT-GROUP
    OBJECTS {
        circuitGeneralConfigLastChangeTime,
        circuitGeneralStateLastChangeTime,
        circuitGeneralStatusTableSize }
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumCircuitGroups 1 }

circuitStatusGroup OBJECT-GROUP
    OBJECTS {
        circuitStatusIndex,
        circuitStatusName,
        circuitStatusDescription,
        circuitStatusAdminStatus,
        circuitStatusOperStatus,
        circuitStatusDegraded,
        circuitStatusDown,
	circuitStatusIncomplete }
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumCircuitGroups 2 }

fdfrStatusGroup OBJECT-GROUP
    OBJECTS {
        fdfrStatusIndex,
        fdfrStatusDown,
        fdfrStatusIncomplete }
    STATUS      deprecated
    DESCRIPTION
        "The general objects."
    ::= { lumCircuitGroups 3 }

fdfrStatusGroupV2 OBJECT-GROUP
    OBJECTS {
        fdfrStatusIndex,
        fdfrStatusDown,
        fdfrStatusIncomplete,
	fdfrStatusUnexpectedMfdfrType }
    STATUS      deprecated
    DESCRIPTION
        "The general objects."
    ::= { lumCircuitGroups 4 }

fdfrStatusGroupV3 OBJECT-GROUP
    OBJECTS {
        fdfrStatusIndex,
        fdfrStatusDown,
        fdfrStatusIncomplete,
	fdfrStatusUnexpectedMfdfrType,
	fdfrStatusDegraded }
    STATUS      deprecated
    DESCRIPTION
        "The general objects."
    ::= { lumCircuitGroups 5 }

fdfrStatusGroupV4 OBJECT-GROUP
    OBJECTS {
        fdfrStatusIndex,
        fdfrStatusDown,
        fdfrStatusIncomplete,
	fdfrStatusUnexpectedMfdfrType,
	fdfrStatusDegraded,
	fdfrStatusMplsTunnelProtectionFailed,
	fdfrStatusMplsTunnelProtectionDegraded }
    STATUS      deprecated
    DESCRIPTION
        "The general objects."
    ::= { lumCircuitGroups 6 }

fdfrStatusGroupV5 OBJECT-GROUP
    OBJECTS {
        fdfrStatusIndex,
        fdfrStatusDown,
        fdfrStatusIncomplete,
	    fdfrStatusUnexpectedMfdfrType,
	    fdfrStatusDegraded,
	    fdfrStatusMplsTunnelProtectionFailed,
	    fdfrStatusMplsTunnelProtectionDegraded,
	    fdfrStatusUnknown }
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumCircuitGroups 7 }

-- ----------------------------------------------------
-- Compliance
-- ----------------------------------------------------

lumCircuitBasicComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the CIRCUIT MIB V1."
    MODULE
        MANDATORY-GROUPS {
            circuitGeneralGroup,
            circuitStatusGroup,
            fdfrStatusGroup }
    ::= { lumCircuitCompl 1 }

lumCircuitBasicComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the CIRCUIT MIB V2."
    MODULE
        MANDATORY-GROUPS {
            circuitGeneralGroup,
            circuitStatusGroup,
            fdfrStatusGroupV2 }
    ::= { lumCircuitCompl 2 }

lumCircuitBasicComplV3 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the CIRCUIT MIB V3."
    MODULE
        MANDATORY-GROUPS {
            circuitGeneralGroup,
            circuitStatusGroup,
            fdfrStatusGroupV3 }
    ::= { lumCircuitCompl 3 }

lumCircuitBasicComplV4 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the CIRCUIT MIB V4."
    MODULE
        MANDATORY-GROUPS {
            circuitGeneralGroup,
            circuitStatusGroup,
            fdfrStatusGroupV4 }
    ::= { lumCircuitCompl 4 }

lumCircuitBasicComplV5 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the CIRCUIT MIB V4."
    MODULE
        MANDATORY-GROUPS {
            circuitGeneralGroup,
            circuitStatusGroup,
            fdfrStatusGroupV5 }
    ::= { lumCircuitCompl 5 }


END

