LUM-IFXC-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DateAndTime
        FROM SNMPv2-TC
    lumModules, lumIfXcMIB
        FROM LUM-REG
    MgmtNameString, Unsigned32WithNA, CommandString
        FROM LUM-TC;

lumIfXcMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201706150000Z" -- June 15th 2017
    ORGANIZATION
        "Infinera Corporation"
    CONTACT-INFO
        "techsupport@infinera.com"
    DESCRIPTION
        "The MIB module for management of cross-connection objects.

        The tables contained in this MIB are:

        (1) The General group contains some general attributes as time stamps
            and tables sizes.

        (2) The static cross-connect (staticXcOdu) group contains information and
	        configuration for all static Odu cross-connect objects. Notice table
	        is uni-directional meaning one entry for each direction.

        (3) The dynamic cross-connect (dynamicXcOdu) group contains information and
            configuration for all dynamic Odu cross-connect objects. Notice table
            is uni-directional meaning one entry for each direction.

"
    REVISION
        "201706150000Z" -- June 15th 2017
    DESCRIPTION
        "Changes made for release r29.0:
         - Changed ORGANIZATION and CONTACT-INFO"
    REVISION
        "201311150000Z" -- November 15th 2013
    DESCRIPTION
        "Updated with read-write to be able to set dynamic cross-connections
         using SNMP."
    REVISION
        "201211200000Z" -- November 20th 2012
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 51 }


-- ----------------------------------------------------
-- Compliance area, containing groups and compliance
-- specifications.
-- ----------------------------------------------------

lumIfXcConfs OBJECT IDENTIFIER ::= { lumIfXcMIB 1 }
lumIfXcGroups OBJECT IDENTIFIER ::= { lumIfXcConfs 1 }
lumIfXcCompl OBJECT IDENTIFIER ::= { lumIfXcConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the IFXC MIB
-- ----------------------------------------------------

lumIfXcMIBObjects OBJECT IDENTIFIER ::= { lumIfXcMIB 2 }


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

ifXcGeneral OBJECT IDENTIFIER ::= { lumIfXcMIBObjects 1 }
ifXcStaticXcOduList OBJECT IDENTIFIER ::= { lumIfXcMIBObjects 2 }
ifXcDynamicXcOduList OBJECT IDENTIFIER ::= { lumIfXcMIBObjects 3 }

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

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

"
    ::= { ifXcGeneral 1 }

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

"
    ::= { ifXcGeneral 2 }

ifXcGeneralIfXcStaticXcOduTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of static Odu xc table.

"
    ::= { ifXcGeneral 3 }

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

"
    ::= { ifXcGeneral 4 }

ifXcGeneralIfXcStaticXcOduStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state and/or configuration of
	    the table was last changed.

"
    ::= { ifXcGeneral 5 }

ifXcGeneralIfXcDynamicXcOduTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of dynamic Odu xc table.

"
    ::= { ifXcGeneral 6 }

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

"
    ::= { ifXcGeneral 7 }

ifXcGeneralIfXcDynamicXcOduStateLastChangeTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The time when the state and/or configuration of
        the table was last changed.

"
    ::= { ifXcGeneral 8 }

-- ----------------------------------------------------
-- Static XC group
-- ----------------------------------------------------

ifXcStaticXcOduTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfXcStaticXcOduEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Odu static cross-connect (staticXcOdu) group contains information and
	 configuration for all static Odu cross-connect objects. Notice table
	 is uni-directional meaning one entry for each direction."

    ::= { ifXcStaticXcOduList 1 }

ifXcStaticXcOduEntry OBJECT-TYPE
    SYNTAX      IfXcStaticXcOduEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifXc staticXcOdu list.

"
    INDEX { ifXcStaticXcOduIndex }
    ::= { ifXcStaticXcOduTable 1 }

IfXcStaticXcOduEntry ::=
    SEQUENCE {
        ifXcStaticXcOduIndex                        Unsigned32,
        ifXcStaticXcOduName                         MgmtNameString,
        ifXcStaticXcOduFromIndex                    Unsigned32WithNA,
        ifXcStaticXcOduToIndex                      Unsigned32WithNA }

ifXcStaticXcOduIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index assigned to each entry.

"
    ::= { ifXcStaticXcOduEntry 1 }

ifXcStaticXcOduName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the static Odu cross-connect object, for
	 example 'OduCc:1:2:1:5:1:2:4:5', where the first number indicates
         subrack, the second slot number, the third is the physical port
	 number from where the CC origins, the fourth one is the subport
	 used, e.g. odu number. The rest describes where the cross-connect
	 ends.

"
    ::= { ifXcStaticXcOduEntry 2 }

ifXcStaticXcOduFromIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An Oid describes from which index the Odu CC origins from.

"
    ::= { ifXcStaticXcOduEntry 3 }

ifXcStaticXcOduToIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index describes which index the CC is connected to.

"
    ::= { ifXcStaticXcOduEntry 4 }

-- ----------------------------------------------------
-- Dynamic XC group
-- ----------------------------------------------------

ifXcDynamicXcOduTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfXcDynamicXcOduEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The Odu dynamic cross-connect (dynamicXcOdu) group contains information and
        configuration for all dynamic Odu cross-connect objects. Notice table
        is uni-directional meaning one entry for each direction."

    ::= { ifXcDynamicXcOduList 1 }

ifXcDynamicXcOduEntry OBJECT-TYPE
    SYNTAX      IfXcDynamicXcOduEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifXc dynamicXcOdu list.

"
    INDEX { ifXcDynamicXcOduIndex }
    ::= { ifXcDynamicXcOduTable 1 }

IfXcDynamicXcOduEntry ::=
    SEQUENCE {
        ifXcDynamicXcOduIndex                        Unsigned32,
        ifXcDynamicXcOduName                         MgmtNameString,
        ifXcDynamicXcOduFromIndex                    Unsigned32WithNA,
        ifXcDynamicXcOduToIndex                      Unsigned32WithNA }

ifXcDynamicXcOduIndex OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index assigned to each entry.

"
    ::= { ifXcDynamicXcOduEntry 1 }

ifXcDynamicXcOduName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The management name of the dynamic Odu cross-connect object, for
         example 'OduCc:1:2:1:5:1:2:4:5', where the first number indicates
         subrack, the second slot number, the third is the physical port
         number from where the CC origins, the fourth one is the subport
         used, e.g. odu number. The rest describes where the cross-connect
         ends.

"
    ::= { ifXcDynamicXcOduEntry 2 }

ifXcDynamicXcOduFromIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An index describes which index the CC is connected from.

"
    ::= { ifXcDynamicXcOduEntry 3 }

ifXcDynamicXcOduToIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "An index describes which index the CC is connected to.

"
    ::= { ifXcDynamicXcOduEntry 4 }

-- ----------------------------------------------------
-- Notifications
-- ----------------------------------------------------


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

ifXcGeneralGroupV1 OBJECT-GROUP
    OBJECTS {
        ifXcGeneralConfigLastChangeTime,
        ifXcGeneralStateLastChangeTime,
        ifXcGeneralIfXcStaticXcOduTableSize,
        ifXcGeneralIfXcStaticXcOduConfigLastChangeTime,
        ifXcGeneralIfXcStaticXcOduStateLastChangeTime,
        ifXcGeneralIfXcDynamicXcOduTableSize,
        ifXcGeneralIfXcDynamicXcOduConfigLastChangeTime,
        ifXcGeneralIfXcDynamicXcOduStateLastChangeTime }
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumIfXcGroups 1 }

ifXcStaticXcOduGroupV1 OBJECT-GROUP
    OBJECTS {
    	ifXcStaticXcOduIndex,
        ifXcStaticXcOduName,
        ifXcStaticXcOduFromIndex,
        ifXcStaticXcOduToIndex }
    STATUS      current
    DESCRIPTION
        "The ifXcStaticXcOdu cc objects (R20.0)."
    ::= { lumIfXcGroups 2 }

ifXcDynamicXcOduGroupV1 OBJECT-GROUP
    OBJECTS {
        ifXcDynamicXcOduIndex,
        ifXcDynamicXcOduName,
        ifXcDynamicXcOduFromIndex,
        ifXcDynamicXcOduToIndex }
    STATUS      deprecated
    DESCRIPTION
        "The ifXcDynamicXcOdu cc objects (R21.0)."
    ::= { lumIfXcGroups 3 }

ifXcDynamicXcOduGroupV2 OBJECT-GROUP
    OBJECTS {
        ifXcDynamicXcOduIndex,
        ifXcDynamicXcOduName,
        ifXcDynamicXcOduFromIndex,
        ifXcDynamicXcOduToIndex }
    STATUS      deprecated
    DESCRIPTION
        "The ifXcDynamicXcOdu cc objects (R22.0)."
    ::= { lumIfXcGroups 4 }

ifXcDynamicXcOduGroupV3 OBJECT-GROUP
    OBJECTS {
        ifXcDynamicXcOduIndex,
        ifXcDynamicXcOduName,
        ifXcDynamicXcOduFromIndex,
        ifXcDynamicXcOduToIndex }
    STATUS      current
    DESCRIPTION
        "The ifXcDynamicXcOdu cc objects (R23.0)."
    ::= { lumIfXcGroups 5 }

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

lumIfXcComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the ifXc MIB. (R21.0)"
    MODULE
        MANDATORY-GROUPS {
            ifXcGeneralGroupV1,
            ifXcStaticXcOduGroupV1,
            ifXcDynamicXcOduGroupV1 }
    ::= { lumIfXcCompl 1 }

lumIfXcComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the ifXc MIB. (R22.0)"
    MODULE
        MANDATORY-GROUPS {
            ifXcGeneralGroupV1,
            ifXcStaticXcOduGroupV1,
            ifXcDynamicXcOduGroupV2 }
    ::= { lumIfXcCompl 2 }

lumIfXcComplV3 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the ifXc MIB. (R23.0)"
    MODULE
        MANDATORY-GROUPS {
            ifXcGeneralGroupV1,
            ifXcStaticXcOduGroupV1,
            ifXcDynamicXcOduGroupV3 }
    ::= { lumIfXcCompl 3 }

END

