DNOS-OPENFLOW-PRIVATE-MIB DEFINITIONS ::= BEGIN

-- DELL NETWORKING OS Open Flow MIB
-- Copyright 2016 Broadcom.
-- This SNMP Management Information Specification
-- embodies Broadcom's confidential and proprietary
-- intellectual property.  Broadcom retains all title
-- and ownership in the Specification including any revisions.

-- This Specification is supplied "AS IS", Broadcom 
-- makes no warranty, either expressed or implied,
-- as to the use, operation, condition, or performance of the
-- Specification.

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, IpAddress, Counter64, Unsigned32  FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, RowStatus, TimeStamp, DisplayString,
                        PhysAddress                                 FROM SNMPv2-TC
    dnOS                                                        FROM DELL-REF-MIB;

    fastPathOpenFlow MODULE-IDENTITY
        LAST-UPDATED "201103060000Z" -- 30 March 2011 12:00:00 GMT
        ORGANIZATION "Dell EMC"
        CONTACT-INFO ""
        DESCRIPTION
          "The Dell Networking Private MIB for OpenFlow"

        -- Revision history.
        REVISION
          "201103060000Z" -- 30 March 2011 12:00:00 GMT
        DESCRIPTION
          "Initial version."
    ::= { dnOS 56 }


    --**************************************************************************************
    -- agentOpenFlowGroup -> contains MIB objects displaying Open Flow
    -- and associated Functionality 
    --
    --**************************************************************************************


agentOpenFlowGroup OBJECT IDENTIFIER ::= { fastPathOpenFlow 1 }

    --**************************************************************************************
    -- agentOpenFlowGlobalConfigGroup
    --**************************************************************************************

agentOpenFlowGlobalConfigGroup OBJECT IDENTIFIER ::= { agentOpenFlowGroup 1 }

    agentOpenFlowAdminMode OBJECT-TYPE
        SYNTAX      INTEGER {
                enable(1),
                disable(2)
                }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "Flag indicating whether the OpenFlow feature is administratively enabled." 
        DEFVAL { disable }
        ::={ agentOpenFlowGlobalConfigGroup 1 }

    agentOpenFlowVariant OBJECT-TYPE
        SYNTAX      INTEGER {
                tenantNetworkingMode(1),
                openFlow10Mode(2),       -- deprecated, OpenFlow 1.0 no longer supported
                openFlow13Mode(3)
                }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "Indicates which OpenFlow version is currently running on the switch." 
        DEFVAL { openFlow13Mode }
        ::={ agentOpenFlowGlobalConfigGroup 2 }

    agentOpenFlowDefaultTable OBJECT-TYPE
        SYNTAX      INTEGER {
                fullMatch(1),
                layerTwoMatch(2)
                }
        MAX-ACCESS read-write
        STATUS deprecated
        DESCRIPTION
                "The Hardware Table used as the target for flows installed by an 
                OpenFlow 1.0 controller which is not enhanced to handle multiple 
                hardware tables. The parameter is applicable only when the OF 
                variant is set to OpenFlow 1.0." 
        DEFVAL { fullMatch }
        ::={ agentOpenFlowGlobalConfigGroup 3 }

    agentOpenFlowStaticIPAssignmentMode OBJECT-TYPE
        SYNTAX      INTEGER {
                enable(1),
                disable(2)
                }
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
                "Flag indicating whether DNOS should automatically assign the 
                IP address to the OpenFlow feature or the administrator manually 
                assigns the address. " 
        DEFVAL { disable }
        ::={ agentOpenFlowGlobalConfigGroup 4 }

    agentOpenFlowGlobalConfigIPAddress OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "When IP address is assigned statically this is the IP address 
                assigned by the administrator." 
        ::={ agentOpenFlowGlobalConfigGroup 5 }

    agentOpenFlowNetworkMTU OBJECT-TYPE
        SYNTAX      Unsigned32 (1518..9216)
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
                "Maximum packet size, excluding the VLAN tag, supported by the network. 
                All bridges and routers in the network must support this MTU. 
                This parameter determines the maximum size of the CAPWAP tunnel segment." 
        DEFVAL { 1518 }
        ::={ agentOpenFlowGlobalConfigGroup 6 }

    agentOpenFlowIPAssignmentMode OBJECT-TYPE
        SYNTAX      INTEGER {
                auto(0),
                static(1),
                serviceport(2)
                }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "Flag indicating whether DNOS should automatically assign the
                IP address to the OpenFlow feature or the administrator manually
                assigns the address or the IP address of the service port."
        ::={ agentOpenFlowGlobalConfigGroup 7 }

    --**************************************************************************************
    -- agentOpenFlowCfgControllerTable
    --**************************************************************************************

agentOpenFlowCfgControllerTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF AgentOpenFlowCfgControllerEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION  "This table contains the list of configured IP addresses 
                      for the OpenFlow Controllers."
        ::={ agentOpenFlowGroup 3 }

agentOpenFlowCfgControllerEntry OBJECT-TYPE
        SYNTAX       AgentOpenFlowCfgControllerEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION "Represents entry for Open Flow configure controller table"
        INDEX       { agentOpenFlowCfgCtrlIPAddress,
                      agentOpenFlowCfgCtrlIPPort }
        ::={ agentOpenFlowCfgControllerTable 1}

        AgentOpenFlowCfgControllerEntry ::=
                SEQUENCE {
                agentOpenFlowCfgCtrlIPAddress
                        IpAddress,
                agentOpenFlowCfgCtrlIPPort
                        Unsigned32,
                agentOpenFlowCfgCtrlConnectionMode
                        INTEGER,
                agentOpenFlowCfgCtrlStatus
                        RowStatus,
                agentOpenFlowCfgCtrlRole
                        DisplayString
                }

    agentOpenFlowCfgCtrlIPAddress  OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS current
        DESCRIPTION
                "IP Address of the OpenFlow Controller to which the switch should connect." 
        ::={ agentOpenFlowCfgControllerEntry 1 }

    agentOpenFlowCfgCtrlIPPort OBJECT-TYPE
        SYNTAX      Unsigned32 (0..65535)
        MAX-ACCESS  read-create
        STATUS current
        DESCRIPTION
                "IP Port number used for connecting to the Controller." 
        DEFVAL { 6632 }
        ::={ agentOpenFlowCfgControllerEntry 2 }

    agentOpenFlowCfgCtrlConnectionMode OBJECT-TYPE
        SYNTAX      INTEGER {
                ssl(1),
                tcp(2)
                }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "Flag indicating whether the switch uses TCP or SSL connection 
                to connect to the OpenFlow Controller. 
                The TCP connections are intended only for demos and debugging." 
        DEFVAL { ssl }
        ::={ agentOpenFlowCfgControllerEntry 3 }

    agentOpenFlowCfgCtrlStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
                "Status of this instance.
                 active(1)      - this CfgControllerTable instance is active
                 createAndGo(4) - set to this value to create an instance
                 destroy(6)     - set to this value to delete an instance" 
        ::={ agentOpenFlowCfgControllerEntry 4 }

    agentOpenFlowCfgCtrlRole OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Flag indicates the role of the OpenFlow Controller."
        ::={ agentOpenFlowCfgControllerEntry 5 }

    --**************************************************************************************
    -- agentOpenFlowGlobalStatusParameters
    --**************************************************************************************

agentOpenFlowGlobalStatusParameters OBJECT IDENTIFIER ::= { agentOpenFlowGroup 6 }

    agentOpenFlowOperationalStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                enable(1),
                disable(2),
                enablePending(3),
                disablePending(4)
                }
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Flag indicating whether the OpenFlow feature is enabled, 
                 disabled or in transition." 
        DEFVAL { disable }
        ::={ agentOpenFlowGlobalStatusParameters 1 }

    agentOpenFlowDisableReason OBJECT-TYPE
        SYNTAX      INTEGER {
                none(1),
                administrativelyDisabled(2),
                noSuitableIPInterface(3),
                noSSLCertificates(4)
                }
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Indicates why the OpenFlow feature is disabled." 
        DEFVAL { administrativelyDisabled }
        ::={ agentOpenFlowGlobalStatusParameters 2 }

    --**************************************************************************************
    -- agentOpenFlowGlobalCommands
    --**************************************************************************************

agentOpenFlowGlobalCommands OBJECT IDENTIFIER ::= { agentOpenFlowGroup 7 }

    agentOpenFlowEraseOpenFlowManagerCertificates OBJECT-TYPE
        SYNTAX      INTEGER {
                alwaysReturnedOnRead(1),
                eraseCertificates(2)
                }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
                "This command directs the switch to erase certificate files 
                 obtained from the OpenFlow Managers. This is write-only value. 
                 It always returns '0' on request"
        DEFVAL { alwaysReturnedOnRead }
        ::= { agentOpenFlowGlobalCommands 1 }

    --**************************************************************************************
    -- agentOpenFlowFlowTableStatusTable 
    --**************************************************************************************

agentOpenFlowFlowTableStatusTable   OBJECT-TYPE
        SYNTAX       SEQUENCE OF AgentOpenFlowFlowTableStatusEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION  "These status parameters describe the supported OpenFlow 
                      tables and report usage information for the tables."
        ::={ agentOpenFlowGroup 8 }

agentOpenFlowFlowTableStatusEntry OBJECT-TYPE
        SYNTAX       AgentOpenFlowFlowTableStatusEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION "Represents entry for Open Flow 'Flow Table Status'"
        INDEX       { agentOpenFlowFlowTable }
        ::={ agentOpenFlowFlowTableStatusTable  1}

        AgentOpenFlowFlowTableStatusEntry ::=
                SEQUENCE {
                agentOpenFlowFlowTable
                        Unsigned32,
                agentOpenFlowFlowTableName
                        OCTET STRING,
                agentOpenFlowFlowTableDescription
                        OCTET STRING,
                agentOpenFlowMaximumSize
                        Unsigned32,
                agentOpenFlowNumberOfEntries
                        Unsigned32,
                agentOpenFlowHardwareEntries
                        Unsigned32,
                agentOpenFlowSoftwareOnlyEntries
                        Unsigned32,
                agentOpenFlowWaitingForSpaceEntries
                        Unsigned32,
                agentOpenFlowFlowInsertionCount
                        Unsigned32,
                agentOpenFlowFlowDeletionCount
                        Unsigned32,
                agentOpenFlowInsertionFailureCount
                        Unsigned32
                }

    agentOpenFlowFlowTable OBJECT-TYPE
        SYNTAX      Unsigned32 (0..255)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow Table Identifier." 
        ::={ agentOpenFlowFlowTableStatusEntry 1 }

    agentOpenFlowFlowTableName OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..32))
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "The name of this table." 
        ::={ agentOpenFlowFlowTableStatusEntry 2 }

    agentOpenFlowFlowTableDescription OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(0..1024))
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "A detailed description for this table." 
        ::={ agentOpenFlowFlowTableStatusEntry 3 }

    agentOpenFlowMaximumSize OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Platform-defined maximum size for this flow table." 
        ::={ agentOpenFlowFlowTableStatusEntry 4 }

    agentOpenFlowNumberOfEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Total number of entries in this table. 
                 The count includes delete-pending entries." 
        ::={ agentOpenFlowFlowTableStatusEntry 5 }

    agentOpenFlowHardwareEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Number of entries currently inserted into the hardware." 
        ::={ agentOpenFlowFlowTableStatusEntry 6 }

    agentOpenFlowSoftwareOnlyEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Number of entries that are not installed in the hardware for 
                 any reason. This includes entries pending for insertion, 
                 entries that cannot be inserted due to missing interfaces and 
                 entries that cannot be inserted due to table-full condition." 
        ::={ agentOpenFlowFlowTableStatusEntry 7 }

    agentOpenFlowWaitingForSpaceEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Number of entries that are not currently in the hardware 
                 because the attempt to insert the entry failed." 
        ::={ agentOpenFlowFlowTableStatusEntry 8 }

    agentOpenFlowFlowInsertionCount OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Total number of flows that were added to this table since 
                 the switch powered up." 
        ::={ agentOpenFlowFlowTableStatusEntry 9 }

    agentOpenFlowFlowDeletionCount OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Total number of flows that were deleted from this table since 
                 the switch powered up." 
        ::={ agentOpenFlowFlowTableStatusEntry 10 }

    agentOpenFlowInsertionFailureCount OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Total number of hardware insertion attempts that were rejected 
                 due to lack of space since the switch powered up." 
        ::={ agentOpenFlowFlowTableStatusEntry 11 }

    --**************************************************************************************
    -- agentOpenFlowInstalledGroupEntry
    --**************************************************************************************

agentOpenFlowInstalledGroupEntry OBJECT IDENTIFIER ::= { agentOpenFlowGroup 9 }

    agentOpenFlowGrpIndirectMaxEntries OBJECT-TYPE
        SYNTAX      Unsigned32 
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Maximum Indirect Group Entries."
        ::={ agentOpenFlowInstalledGroupEntry 1 }

    agentOpenFlowGrpIndirectCurrentEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Current Indirect Group Entries in database."
        ::={ agentOpenFlowInstalledGroupEntry 2 }

    agentOpenFlowGrpAllMaxEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Max All Group Entries."
        ::={ agentOpenFlowInstalledGroupEntry 3 }

    agentOpenFlowGrpAllCurrentEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Current All Group Entries in database."
        ::={ agentOpenFlowInstalledGroupEntry 4 }

    agentOpenFlowGrpSelectMaxEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Max Select Group Entries."
        ::={ agentOpenFlowInstalledGroupEntry 5 }

    agentOpenFlowGrpSelectCurrentEntries OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "Current Select Group Entries in database."
        ::={ agentOpenFlowInstalledGroupEntry 6 }

    --**************************************************************************************
    -- agentOpenFlowGroupDetailsTable
    --**************************************************************************************

agentOpenFlowGroupDetailsTable   OBJECT-TYPE
        SYNTAX       SEQUENCE OF AgentOpenFlowGroupDetailsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION  "These status parameters describe the installed OpenFlow
                      groups."
        ::={ agentOpenFlowGroup 10 }

agentOpenFlowGroupDetailsEntry OBJECT-TYPE
        SYNTAX       AgentOpenFlowGroupDetailsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION "Represents entry for Open Flow 'installed group details'"
        INDEX       { agentOpenFlowGroupId }
        ::={ agentOpenFlowGroupDetailsTable  1}

        AgentOpenFlowGroupDetailsEntry ::=
                SEQUENCE {
                agentOpenFlowGroupId
                        Unsigned32,
                agentOpenFlowGroupType
                        DisplayString,
                agentOpenFlowGroupRefCount
                        Unsigned32,
                agentOpenFlowGroupDuration
                        Unsigned32,
                agentOpenFlowGroupBucketCount
                        Unsigned32
                }

    agentOpenFlowGroupId OBJECT-TYPE
        SYNTAX      Unsigned32 (0..255)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table identifier."
        ::={ agentOpenFlowGroupDetailsEntry 1 }

    agentOpenFlowGroupType OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group type."
        ::={ agentOpenFlowGroupDetailsEntry 2 }

    agentOpenFlowGroupRefCount OBJECT-TYPE
        SYNTAX      Unsigned32 (0..255)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table reference count."
        ::={ agentOpenFlowGroupDetailsEntry 3 }

    agentOpenFlowGroupDuration OBJECT-TYPE
        SYNTAX      Unsigned32 (0..255)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table duration."
        ::={ agentOpenFlowGroupDetailsEntry 4 }

    agentOpenFlowGroupBucketCount OBJECT-TYPE
        SYNTAX      Unsigned32 (0..255)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket count."
        ::={ agentOpenFlowGroupDetailsEntry 5 }

    --**************************************************************************************
    -- agentOpenFlowGroupBucketDetailsTable
    --**************************************************************************************

agentOpenFlowGroupBucketDetailsTable   OBJECT-TYPE
        SYNTAX       SEQUENCE OF AgentOpenFlowGroupBucketDetailsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION  "These status parameters describe the installed OpenFlow
                      groups and buckets within it."
        ::={ agentOpenFlowGroup 11 }

agentOpenFlowGroupBucketDetailsEntry OBJECT-TYPE
        SYNTAX       AgentOpenFlowGroupBucketDetailsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION "Represents entry for Open Flow 'installed group bucket details'"
        INDEX       { agentOpenFlowBucketGroupId, agentOpenFlowGroupBucketId }
        ::={ agentOpenFlowGroupBucketDetailsTable  1}

        AgentOpenFlowGroupBucketDetailsEntry ::=
                SEQUENCE {
                agentOpenFlowGroupBucketId
                        Unsigned32,
                agentOpenFlowGroupBucketOutputPort
                        DisplayString,
                agentOpenFlowGroupBucketVlanId
                        DisplayString,
                agentOpenFlowGroupBucketRefGroupId
                        DisplayString,
                agentOpenFlowGroupBucketSrcMac
                        PhysAddress,
                agentOpenFlowGroupBucketDstMac
                        PhysAddress,
                agentOpenFlowBucketGroupId
                        Unsigned32
                }

    agentOpenFlowGroupBucketId OBJECT-TYPE
        SYNTAX      Unsigned32 (0..255)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket identifier."
        ::={ agentOpenFlowGroupBucketDetailsEntry 1 }

    agentOpenFlowGroupBucketOutputPort OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket output port."
        ::={ agentOpenFlowGroupBucketDetailsEntry 2 }

    agentOpenFlowGroupBucketVlanId OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket vlan identifier."
        ::={ agentOpenFlowGroupBucketDetailsEntry 3 }

    agentOpenFlowGroupBucketRefGroupId OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket reference group identifier."
        ::={ agentOpenFlowGroupBucketDetailsEntry 4 }

    agentOpenFlowGroupBucketSrcMac OBJECT-TYPE
        SYNTAX      PhysAddress
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket source mac."
        ::={ agentOpenFlowGroupBucketDetailsEntry 5 }

    agentOpenFlowGroupBucketDstMac OBJECT-TYPE
        SYNTAX      PhysAddress
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket destination mac."
        ::={ agentOpenFlowGroupBucketDetailsEntry 6 }

    agentOpenFlowBucketGroupId OBJECT-TYPE
        SYNTAX      Unsigned32 (0..255)
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
                "OpenFlow group table bucket identifier."
        ::={ agentOpenFlowGroupBucketDetailsEntry 7 }

END
