LUM-IFXCFLEX-MIB DEFINITIONS ::= BEGIN

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

lumIfXcFlexMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201706150000Z" -- June 15th 2017
    ORGANIZATION
        "Infinera"
    CONTACT-INFO
        "techsupport@infinera.com"
    DESCRIPTION
        "The MIB module for management of flexible 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 interface configuration (InterfaceConfig) group contains
                information and configuration for all cross-connect objects.
                Notice table is uni-directional meaning one entry for each
                direction.

        (3) The traffic processing function map(TrafficProcessingFunctionMap)
                group contains information and configuration for all of the
                XcFlex objects TrafficProcessingFunctionIndex.

"
    REVISION
        "201706150000Z" -- June 15th 2017
    DESCRIPTION
        "Changes made for release r29.0:
         - Changed ORGANIZATION and CONTACT-INFO"
    REVISION
        "201608180000Z" -- August 18th 2016
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 70 }


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

lumIfXcFlexConfs OBJECT IDENTIFIER ::= { lumIfXcFlexMIB 1 }
lumIfXcFlexGroups OBJECT IDENTIFIER ::= { lumIfXcFlexConfs 1 }
lumIfXcFlexCompl OBJECT IDENTIFIER ::= { lumIfXcFlexConfs 2 }


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

lumIfXcFlexMIBObjects OBJECT IDENTIFIER ::= { lumIfXcFlexMIB 2 }


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

ifXcFlexGeneral OBJECT IDENTIFIER ::= { lumIfXcFlexMIBObjects 1 }
ifXcFlexInterfaceConfigList OBJECT IDENTIFIER ::= { lumIfXcFlexMIBObjects 2 }
ifXcFlexProcFuncMapList OBJECT IDENTIFIER ::= { lumIfXcFlexMIBObjects 3 }

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

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

"
    ::= { ifXcFlexGeneral 1 }

ifXcFlexGeneralStateLastChangeTime 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.

"
    ::= { ifXcFlexGeneral 2 }

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

"
    ::= { ifXcFlexGeneral 3 }

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

"
    ::= { ifXcFlexGeneral 4 }

ifXcFlexInterfaceConfigStateLastChangeTime 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.

"
    ::= { ifXcFlexGeneral 5 }

ifXcFlexProcFuncMapTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of traffic processing function map table.

"
    ::= { ifXcFlexGeneral 6 }

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

"
    ::= { ifXcFlexGeneral 7 }

ifXcFlexProcFuncMapStateLastChangeTime 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.

"
    ::= { ifXcFlexGeneral 8 }

-- ----------------------------------------------------
-- Flexible XC group
-- ----------------------------------------------------

ifXcFlexInterfaceConfigTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfXcFlexInterfaceConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The interface configuration (InterfaceConfig) group contains
         information and configuration for all cross-connect objects."

    ::= { ifXcFlexInterfaceConfigList 1 }

ifXcFlexInterfaceConfigEntry OBJECT-TYPE
    SYNTAX      IfXcFlexInterfaceConfigEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifXcFlexInterfaceConfig list.

"
    INDEX { ifXcFlexInterfaceConfigIndex }
    ::= { ifXcFlexInterfaceConfigTable 1 }

IfXcFlexInterfaceConfigEntry ::=
    SEQUENCE {
        ifXcFlexInterfaceConfigIndex                          Unsigned32,
        ifXcFlexInterfaceConfigName                           MgmtNameString,
        ifXcFlexInterfaceConfigUId                            Unsigned32,
        ifXcFlexInterfaceConfigProcFuncIndex                  Unsigned32WithNA,
        ifXcFlexInterfaceConfigInterfaceType                  INTEGER }

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

"
    ::= { ifXcFlexInterfaceConfigEntry 1 }

ifXcFlexInterfaceConfigName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the flexible cross-connect interface
         configuration object, for example 'clientInterfaceConfig:1:2:1-2',
         where the first number indicates subrack, the second slot
         number, and the third/fourth are the physical interface numbers.

"
    ::= { ifXcFlexInterfaceConfigEntry 2 }

ifXcFlexInterfaceConfigUId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An unique identifier assigned to each entry.

"
    ::= { ifXcFlexInterfaceConfigEntry 3 }

ifXcFlexInterfaceConfigProcFuncIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The traffic processing function index to which a client/line
         belongs.

"
    ::= { ifXcFlexInterfaceConfigEntry 4 }

ifXcFlexInterfaceConfigInterfaceType OBJECT-TYPE
    SYNTAX      INTEGER {
        unused        (1),
        client        (2),
        line          (3),
        secondaryLine (4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of interface, client, line or secondary line, or unused
         if the interface is not part of a traffic processing function.

"
    ::= { ifXcFlexInterfaceConfigEntry 5 }

-- ----------------------------------------------------
-- XC ProcFuncMap group
-- ----------------------------------------------------

ifXcFlexProcFuncMapTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF IfXcFlexProcFuncMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The traffic processing function map(ProcFuncMap)
         group contains information and configuration for all of the
         XcFlex objects ProcFuncIndex."

    ::= { ifXcFlexProcFuncMapList 1 }

ifXcFlexProcFuncMapEntry OBJECT-TYPE
    SYNTAX      IfXcFlexProcFuncMapEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the ifXcFlexProcFuncMap list.

"
    INDEX { ifXcFlexProcFuncMapIndex }
    ::= { ifXcFlexProcFuncMapTable 1 }

IfXcFlexProcFuncMapEntry ::=
    SEQUENCE {
        ifXcFlexProcFuncMapIndex         Unsigned32,
        ifXcFlexProcFuncMapName          MgmtNameString,
        ifXcFlexProcFuncMapType          INTEGER,
        ifXcFlexProcFuncMapUId           Unsigned32,
        ifXcFlexProcFuncMapProcFuncIndex Unsigned32WithNA }

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

"
    ::= { ifXcFlexProcFuncMapEntry 1 }

ifXcFlexProcFuncMapName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the flexible cross-connect traffic
         processing function map object, for example
         'lineProcFuncMap:1:2:17-18', where the first number
         indicates subrack, the second slot number, and the third/fourth
         are the physical interface numbers.

"
    ::= { ifXcFlexProcFuncMapEntry 2 }

ifXcFlexProcFuncMapType OBJECT-TYPE
    SYNTAX      INTEGER {
        transponder  (1),
        muxponder    (2)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The type of traffic processing function, transponder or muxponder.

"
    ::= { ifXcFlexProcFuncMapEntry 3 }

ifXcFlexProcFuncMapUId OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "An unique identifier assigned to each entry.

"
    ::= { ifXcFlexProcFuncMapEntry 4 }

ifXcFlexProcFuncMapProcFuncIndex OBJECT-TYPE
    SYNTAX      Unsigned32WithNA
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The traffic processing function index to which a client/line
         belongs.

"
    ::= { ifXcFlexProcFuncMapEntry 5 }

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


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

ifXcFlexGeneralGroupV1 OBJECT-GROUP
    OBJECTS {
        ifXcFlexGeneralConfigLastChangeTime,
        ifXcFlexGeneralStateLastChangeTime,
        ifXcFlexInterfaceConfigTableSize,
        ifXcFlexInterfaceConfigConfigLastChangeTime,
        ifXcFlexInterfaceConfigStateLastChangeTime,
        ifXcFlexProcFuncMapTableSize,
        ifXcFlexProcFuncMapConfigLastChangeTime,
        ifXcFlexProcFuncMapStateLastChangeTime }
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumIfXcFlexGroups 1 }

ifXcFlexInterfaceConfigGroupV1 OBJECT-GROUP
    OBJECTS {
    	ifXcFlexInterfaceConfigIndex,
        ifXcFlexInterfaceConfigName,
        ifXcFlexInterfaceConfigUId,
        ifXcFlexInterfaceConfigProcFuncIndex,
        ifXcFlexInterfaceConfigInterfaceType }
    STATUS      current
    DESCRIPTION
        "The ifXcFlexInterfaceConfig cc objects (R27.1)."
    ::= { lumIfXcFlexGroups 2 }

ifXcFlexProcFuncMapGroupV1 OBJECT-GROUP
    OBJECTS {
    	ifXcFlexProcFuncMapIndex,
        ifXcFlexProcFuncMapName,
        ifXcFlexProcFuncMapType,
        ifXcFlexProcFuncMapUId,
        ifXcFlexProcFuncMapProcFuncIndex }
    STATUS      current
    DESCRIPTION
        "The ifXcFlexProcFuncMap objects (R27.1)."
    ::= { lumIfXcFlexGroups 3 }

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

lumIfXcFlexComplV1 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the ifXcFlex MIB. (R27.1)"
    MODULE
        MANDATORY-GROUPS {
            ifXcFlexGeneralGroupV1,
            ifXcFlexInterfaceConfigGroupV1,
            ifXcFlexProcFuncMapGroupV1}
    ::= { lumIfXcFlexCompl 1 }

END

