LUM-OPENFLOW-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Unsigned32, IpAddress
        FROM SNMPv2-SMI
    OBJECT-GROUP, MODULE-COMPLIANCE
        FROM SNMPv2-CONF
    DateAndTime, DisplayString
        FROM SNMPv2-TC
    lumModules, lumOpenflowMIB
        FROM LUM-REG
    MgmtNameString, SubrackNumber, SlotNumber,
    CommandString
        FROM LUM-TC;

lumOpenflowMIBModule MODULE-IDENTITY
    LAST-UPDATED
        "201809010000Z" -- Sept 1st 2018
    ORGANIZATION
        "Infinera Corporation"
    CONTACT-INFO
        "techsupport@infinera.com"
    DESCRIPTION
        "The MIB module for management and configuration of OpenFlow switches.

        The tables contained in this MIB are:

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

        (2) The logicalSwitch group contains information and configuration applicable to all
            openFlow Logical Switches.

        (3) The connection group contains information and configuration applicable to all
            openFlow connections

        (4) The generic group contains generic information and configurations

        (5) The diagnostics group contains information about openflow logs

        (6) The log group contains generic information about logs

"

    REVISION
        "201809010000Z" -- Sept 1st 2018
    DESCRIPTION
        "Changes made for release r31.1:
       - Add new table openflow Diagnostics
       - Add new table openflow log"
    REVISION
        "201706150000Z" -- June 15th 2017
    DESCRIPTION
        "Changes made for release r29.0:
         - Changed ORGANIZATION and CONTACT-INFO"
    REVISION
        "201611300000Z" -- November 30th 2016
    DESCRIPTION
        "The initial revision of this module."
    ::= { lumModules 69 }


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

lumOpenflowConfs OBJECT IDENTIFIER ::= { lumOpenflowMIB 1 }
lumOpenflowGroups OBJECT IDENTIFIER ::= { lumOpenflowConfs 1 }
lumOpenflowCompl OBJECT IDENTIFIER ::= { lumOpenflowConfs 2 }


-- ----------------------------------------------------
-- Root for objects in the OPENFLOW MIB
-- ----------------------------------------------------

lumOpenflowMIBObjects OBJECT IDENTIFIER ::= { lumOpenflowMIB 2 }


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

openflowGeneral OBJECT IDENTIFIER ::= { lumOpenflowMIBObjects 1 }
openflowLogicalSwitchList OBJECT IDENTIFIER ::= { lumOpenflowMIBObjects 2 }
openflowConnectionList OBJECT IDENTIFIER ::= { lumOpenflowMIBObjects 3 }
openflowGenericList OBJECT IDENTIFIER ::= { lumOpenflowMIBObjects 4 }
openflowDiagnosticsList OBJECT IDENTIFIER ::= { lumOpenflowMIBObjects 5 }
openflowLogList     OBJECT IDENTIFIER ::= { lumOpenflowMIBObjects 6 }


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

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

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

"
    ::= { openflowGeneral 1 }

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

"
    ::= { openflowGeneral 2 }

openflowGeneralLogicalSwitchTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of OFLS (OpenFLow Logical Switch) table

"
    ::= { openflowGeneral 3 }

openflowGeneralGenericTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of generic table
"
    ::= { openflowGeneral 4 }

openflowGeneralConnectionTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of OpenFlow Connection table
"
    ::= { openflowGeneral 5 }

openflowGeneralDiagnosticsTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of OpenFlow Diagnostics table
"
    ::= { openflowGeneral 6 }

openflowGeneralLogTableSize OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Size of OpenFlow Log table
"
    ::= { openflowGeneral 7 }


-- ----------------------------------------------------
-- OpenFlow Logical Switch table
-- ----------------------------------------------------

openflowLogicalSwitchTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF OpenFlowLogicalSwitchEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OpenFlow logical switch table contains all created logical
        switches in the network element."

    ::= { openflowLogicalSwitchList 1 }

openflowLogicalSwitchEntry OBJECT-TYPE
    SYNTAX      OpenFlowLogicalSwitchEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the openflowLogicalSwitch table.

"
    INDEX { openflowLogicalSwitchIndex }
    ::= { openflowLogicalSwitchTable 1 }

OpenFlowLogicalSwitchEntry ::=
    SEQUENCE {
        openflowLogicalSwitchName           MgmtNameString,
        openflowLogicalSwitchIndex          Unsigned32,
        openflowLogicalSwitchDescr          DisplayString,
        openflowLogicalSwitchIdentity       Unsigned32,
        openflowLogicalSwitchMacAddress     OCTET STRING,
        openflowLogicalSwitchDpId           DisplayString,
        openflowLogicalSwitchAssociateCxn   CommandString,
        openflowLogicalSwitchGetTracelogs   CommandString,
        openflowLogicalSwitchOfVersion      DisplayString,

-- the following attributes are non standard attributes added for ENM housekeeping

        openflowLogicalSwitchSubrack        SubrackNumber,
        openflowLogicalSwitchSlot           SlotNumber
        }


openflowLogicalSwitchName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the object.

"
    ::= { openflowLogicalSwitchEntry 1 }

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

"
    ::= { openflowLogicalSwitchEntry 2 }

openflowLogicalSwitchDescr OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "User configurable label.

"
    ::= { openflowLogicalSwitchEntry 3 }

openflowLogicalSwitchIdentity OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Identity of the OpenFlow logical switch. The identity is unique with a network Element.

"
    ::= { openflowLogicalSwitchEntry 4 }

openflowLogicalSwitchMacAddress OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE (1..31))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "MAC address

"
    ::= { openflowLogicalSwitchEntry 5 }

openflowLogicalSwitchDpId OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Datapath identity

"
    ::= { openflowLogicalSwitchEntry 6 }

openflowLogicalSwitchAssociateCxn OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Create and associate a connection with an OpenFlow controller.

        Description - Description of the openFlow connection

        Controller IP address - IP address of the controller

        Controller TCP port - TCP port of the controller

"
    ::= { openflowLogicalSwitchEntry 7 }

openflowLogicalSwitchSubrack OBJECT-TYPE
    SYNTAX      SubrackNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the subrack where the OpenFlow logicalSwitch
        is located.

"
    ::= { openflowLogicalSwitchEntry 8 }

openflowLogicalSwitchSlot OBJECT-TYPE
    SYNTAX      SlotNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the slot where the OpenFlow logicalSwitch is
        located.

"
    ::= { openflowLogicalSwitchEntry 9 }

openflowLogicalSwitchGetTracelogs   OBJECT-TYPE

    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Get OpenFlow related trace logs. Trace log include traces from OF-DPA and Indigo.
         Maximum 150 log entries can be seen.
         The log file to read logs from will be saved on the node in 'tmp' folder and is called 'syslog_openflow'.

"
    ::= { openflowLogicalSwitchEntry 10 }

openflowLogicalSwitchOfVersion  OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Openflow Version supported by Openflow Logical Switch

"
    ::= { openflowLogicalSwitchEntry 11 }

-- ----------------------------------------------------
-- OpenFlow Connection table
-- ----------------------------------------------------

openflowConnectionTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF OpenflowConnectionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OpenFlow connection table contains all configured controller
        connections in an OpenFlow logical switch."

    ::= { openflowConnectionList 1 }

openflowConnectionEntry OBJECT-TYPE
    SYNTAX      OpenflowConnectionEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the OpenFlow connection table.

"
    INDEX { openflowConnectionIndex }
    ::= { openflowConnectionTable 1 }

OpenflowConnectionEntry ::=
    SEQUENCE {
        openflowConnectionName              MgmtNameString,
        openflowConnectionIndex             Unsigned32,
        openflowConnectionDescr             DisplayString,
        openflowConnectionIdentity          Unsigned32,
        openflowConnectionSwitchIdentity    Unsigned32,
        openflowConnectionIpv4Addr          IpAddress,
        openflowConnectionTcpPort           Unsigned32,
        openflowConnectionState             INTEGER,
        openflowConnectionRole              INTEGER,
        openflowConnectionOfVersion         DisplayString,

-- the following attributes are non standard attributes added for ENM housekeeping

        openflowConnectionSubrack        SubrackNumber,
        openflowConnectionSlot           SlotNumber
        }

openflowConnectionName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the object.

"
    ::= { openflowConnectionEntry 1 }

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

"
    ::= { openflowConnectionEntry 2 }

openflowConnectionDescr OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "User configurable label.

"
    ::= { openflowConnectionEntry 3 }

openflowConnectionIdentity OBJECT-TYPE
    SYNTAX      Unsigned32  (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Identity of the connection with a controller. The identity is unique
        in the scope of an OpenFlow logical switch.

"
    ::= { openflowConnectionEntry 4 }

openflowConnectionSwitchIdentity OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The identity of the OpenFlow logical switch to which this connection is
        related.

"
    ::= { openflowConnectionEntry 5 }

openflowConnectionIpv4Addr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "IP address of OF controller.
"
    ::= { openflowConnectionEntry 6 }

openflowConnectionTcpPort OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "TCP port number.

"
    DEFVAL { 6653 }
    ::= { openflowConnectionEntry 7 }

openflowConnectionState OBJECT-TYPE
    SYNTAX     INTEGER {
        disconnected(1),
        connecting(2),
        connected(3),
        disconnecting(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "State information for an OpenFlow connection.

        disconnected - The connection is down.

        connecting - Connection setup has been initiated.

        connected - The connection is up and feature handshake has been performed.

        disconnecting - Release of the connection has been initiated.

"
    DEFVAL { disconnected }
    ::= { openflowConnectionEntry 8 }

openflowConnectionRole OBJECT-TYPE
    SYNTAX     INTEGER {
        unknown(1),
        equal(2),
        master(3),
        slave(4)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The role of the connected controller.

        unknown - Unknown role

        equal - Default role, full access.

        master - Full access, at most one master

        slave - Read-only access.

"
    DEFVAL { unknown }
    ::= { openflowConnectionEntry 9 }

openflowConnectionOfVersion OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The Openflow protocol version being used.

"
    ::= { openflowConnectionEntry 10 }

openflowConnectionSubrack OBJECT-TYPE
    SYNTAX      SubrackNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the subrack where the openFlow connection
        is located.

"
    ::= { openflowConnectionEntry 11 }

openflowConnectionSlot OBJECT-TYPE
    SYNTAX      SlotNumber
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The number of the slot where the openFlow connection is
        located.

"
    ::= { openflowConnectionEntry 12 }



-- ----------------------------------------------------
-- Generic group
-- ----------------------------------------------------

openflowGenericTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF OpenflowGenericEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The generic list."
    ::= { openflowGenericList 1 }

openflowGenericEntry OBJECT-TYPE
    SYNTAX      OpenflowGenericEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the generic list.
"
    INDEX { openflowGenericIndex }
    ::= { openflowGenericTable 1 }

OpenflowGenericEntry ::=
    SEQUENCE {
        openflowGenericIndex                       Unsigned32,
        openflowGenericName                        MgmtNameString,
        openflowGenericSubrack                     Unsigned32,
        openflowGenericSlot                        Unsigned32,
        openflowGenericCreateOFLS                  CommandString}

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

openflowGenericName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the interface, for example
        'generic:1:2', where the first number indicates
        subrack, the second slot number.
"
    ::= { openflowGenericEntry 2 }

openflowGenericSubrack OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The subrack that this card belongs to

"
    ::= { openflowGenericEntry 3 }

openflowGenericSlot OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The slot that this card belongs to

"
    ::= { openflowGenericEntry 4 }

openflowGenericCreateOFLS OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Create and associate an OFLS (OpenFlow Logical Switches) for the board.
        One OFLS per board is supported and all resources on the board is assigned
        to this OFLS.

        Switch ID       - Identity of the OFLS

        MAC address     - MAC address of the network element

        Description     - A descriptive text of the OFLS.

"
    ::= { openflowGenericEntry 5 }

-- ----------------------------------------------------
-- OpenFlow Diagnostics table
-- ----------------------------------------------------

openflowDiagnosticsTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF OpenflowDiagnosticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The OpenFlow diagnostics table."

    ::= { openflowDiagnosticsList 1 }

openflowDiagnosticsEntry OBJECT-TYPE
    SYNTAX      OpenflowDiagnosticsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the OpenFlow diagnostics table.

"
    INDEX { openflowDiagnosticsIndex }
    ::= { openflowDiagnosticsTable 1 }

OpenflowDiagnosticsEntry ::=
    SEQUENCE {
        openflowDiagnosticsIndex                   Unsigned32,
        openflowDiagnosticsName                    MgmtNameString,
        openflowDiagnosticsIpv4Addr                IpAddress,
        openflowDiagnosticsTcpPort                 Unsigned32,
        openflowDiagnosticsLogServerType           INTEGER,
        openflowDiagnosticsConfigure               CommandString,

-- the following attributes are non standard attributes added for ENM housekeeping

        openflowDiagnosticsSubrack        SubrackNumber
        }

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

"
    ::= { openflowDiagnosticsEntry 1 }


openflowDiagnosticsName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the object.

"
    ::= { openflowDiagnosticsEntry 2 }

openflowDiagnosticsIpv4Addr OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "IPv4 address of log server.
"
    ::= { openflowDiagnosticsEntry 3 }

openflowDiagnosticsTcpPort OBJECT-TYPE
    SYNTAX      Unsigned32 (1..65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "TCP port number of log server.

"
    DEFVAL { 9999 }
    ::= { openflowDiagnosticsEntry 4 }

openflowDiagnosticsLogServerType  OBJECT-TYPE
    SYNTAX      INTEGER {
                 syslog (1),
                 notApplicable (2147483647) }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Specifies the Log server type.

        syslog      - RFC-5424

"
    DEFVAL { syslog }
    ::= { openflowDiagnosticsEntry 5 }

openflowDiagnosticsConfigure OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Configures the attributes of Log Server.
"
    ::= { openflowDiagnosticsEntry 6 }


openflowDiagnosticsSubrack OBJECT-TYPE
    SYNTAX      SubrackNumber
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The subrack that this card belongs to

"
    ::= { openflowDiagnosticsEntry 7 }

-- ----------------------------------------------------
-- Log group
-- ----------------------------------------------------

openflowLogTable  OBJECT-TYPE
    SYNTAX      SEQUENCE OF OpenflowLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The log list."
    ::= { openflowLogList 1 }

openflowLogEntry OBJECT-TYPE
    SYNTAX      OpenflowLogEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry in the log list.
"
    INDEX { openflowLogIndex }
    ::= { openflowLogTable 1 }

OpenflowLogEntry ::=
    SEQUENCE {
        openflowLogIndex                       Unsigned32,
        openflowLogName                        MgmtNameString,
        openflowLogSubrack                     Unsigned32,
        openflowLogCreateOFDiagnostics         CommandString}

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

openflowLogName OBJECT-TYPE
    SYNTAX      MgmtNameString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The management name of the interface, for example
        'log:1', where the number indicates
        subrack.
"
    ::= { openflowLogEntry 2 }

openflowLogSubrack OBJECT-TYPE
    SYNTAX      Unsigned32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The subrack that this card belongs to

"
    ::= { openflowLogEntry 3 }

openflowLogCreateOFDiagnostics OBJECT-TYPE
    SYNTAX      CommandString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Create and associate an OpenFlow related trace logs to a log server.
        One log server per board is supported.

        logServerType - Specifies the Log server type

        IP address - IP address of the log server

        TCP port - TCP port of the log server

"
    ::= { openflowLogEntry 4 }


-- ----------------------------------------------------
-- Information of OpenFlow
-- ----------------------------------------------------
-- ----------------------------------------------------
-- Notifications
-- ----------------------------------------------------


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

openflowGeneralGroupV1 OBJECT-GROUP
    OBJECTS {
        openflowGeneralConfigLastChangeTime,
        openflowGeneralStateLastChangeTime}
    STATUS      current
    DESCRIPTION
        "The general objects."
    ::= { lumOpenflowGroups 1 }

openflowLogicalSwitchGroupV1 OBJECT-GROUP
    OBJECTS {
        openflowLogicalSwitchName,
        openflowLogicalSwitchIndex,
        openflowLogicalSwitchDescr,
        openflowLogicalSwitchIdentity,
        openflowLogicalSwitchMacAddress,
        openflowLogicalSwitchDpId,

-- the following attributes are non standard attributes added for ENM housekeeping
        openflowLogicalSwitchSubrack,
        openflowLogicalSwitchSlot
        }
    STATUS      deprecated
    DESCRIPTION
        "The openflowLogicalSwitch objects (R28.0)."
    ::= { lumOpenflowGroups 2 }

openflowConnectionGroupV1 OBJECT-GROUP
    OBJECTS {
        openflowConnectionName,
        openflowConnectionIndex,
        openflowConnectionDescr,
        openflowConnectionIdentity,
        openflowConnectionSwitchIdentity,
        openflowConnectionIpv4Addr,
        openflowConnectionTcpPort,
        openflowConnectionState,
        openflowConnectionRole,
        openflowConnectionOfVersion,

-- the following attributes are non standard attributes added for ENM housekeeping

        openflowConnectionSubrack,
        openflowConnectionSlot
        }
    STATUS      current
    DESCRIPTION
        "The openflowConnection objects (R28.0)."
    ::= { lumOpenflowGroups 3 }

openflowGenericGroupV1 OBJECT-GROUP
    OBJECTS {
        openflowGenericIndex,
        openflowGenericName,
        openflowGenericSubrack,
        openflowGenericSlot,
        openflowGenericCreateOFLS }
    STATUS      current
    DESCRIPTION
        "The generic objects (R28.0)."
    ::= { lumOpenflowGroups 4 }

openflowLogicalSwitchGroupV2 OBJECT-GROUP
    OBJECTS {
        openflowLogicalSwitchName,
        openflowLogicalSwitchIndex,
        openflowLogicalSwitchDescr,
        openflowLogicalSwitchIdentity,
        openflowLogicalSwitchMacAddress,
        openflowLogicalSwitchDpId,
        openflowLogicalSwitchAssociateCxn,
        openflowLogicalSwitchGetTracelogs,
        openflowLogicalSwitchOfVersion,

-- the following attributes are non standard attributes added for ENM housekeeping
        openflowLogicalSwitchSubrack,
        openflowLogicalSwitchSlot
        }
    STATUS      current
    DESCRIPTION
        "The openflowLogicalSwitch objects (R31.1)."
    ::= { lumOpenflowGroups 5 }


openflowDiagnosticsGroupV1 OBJECT-GROUP
    OBJECTS {
        openflowDiagnosticsIndex,
        openflowDiagnosticsName,
        openflowDiagnosticsIpv4Addr,
        openflowDiagnosticsTcpPort,
        openflowDiagnosticsLogServerType,
        openflowDiagnosticsConfigure,
        openflowDiagnosticsSubrack }
    STATUS      current
    DESCRIPTION
        "The openflow diagnostics objects (R31.1)."
    ::= { lumOpenflowGroups 6 }

openflowLogGroupV1 OBJECT-GROUP
    OBJECTS {
        openflowLogIndex,
        openflowLogName,
        openflowLogSubrack,
        openflowLogCreateOFDiagnostics}
    STATUS      current
    DESCRIPTION
        "The openflow log objects (R31.1)."
    ::= { lumOpenflowGroups 7 }


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

lumOpenflowComplV1 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the OPENFLOW MIB. (R28.0)"
    MODULE
        MANDATORY-GROUPS {
            openflowGeneralGroupV1,
            openflowLogicalSwitchGroupV1,
            openflowConnectionGroupV1,
            openflowGenericGroupV1 }
    ::= { lumOpenflowCompl 1 }

lumOpenflowComplV2 MODULE-COMPLIANCE
    STATUS      deprecated
    DESCRIPTION
        "Basic implementation requirements for the OPENFLOW MIB. (R30.1)"
    MODULE
        MANDATORY-GROUPS {
            openflowGeneralGroupV1,
            openflowLogicalSwitchGroupV1,
            openflowConnectionGroupV1,
            openflowGenericGroupV1 }
    ::= { lumOpenflowCompl 2 }


lumOpenflowComplV3 MODULE-COMPLIANCE
    STATUS      current
    DESCRIPTION
        "Basic implementation requirements for the OPENFLOW MIB. (R31.1)"
    MODULE
        MANDATORY-GROUPS {
            openflowGeneralGroupV1,
            openflowLogicalSwitchGroupV2,
            openflowConnectionGroupV1,
            openflowGenericGroupV1,
            openflowDiagnosticsGroupV1,
            openflowLogGroupV1}
    ::= { lumOpenflowCompl 3 }

END

