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

-- BROADCOM FASTPATH Open Flow MIB
-- Copyright Broadcom Corporation (2004-2011) All rights reserved.

-- This SNMP Management Information Specification
-- embodies Broadcom Corporation's confidential and proprietary
-- intellectual property.  Broadcom Corporation retains all title
-- and ownership in the Specification including any revisions.

-- This Specification is supplied "AS IS", Broadcom Corporation
-- 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                        FROM SNMPv2-TC
    switch                                                FROM QUANTA-SWITCH-MIB;

    openFlow MODULE-IDENTITY
        LAST-UPDATED "201103060000Z" -- 30 March 2011 12:00:00 GMT
        ORGANIZATION "Quanta Corporation"
        CONTACT-INFO
          "                      Customer Support
          Postal:                Quanta Corporation"
		  
        DESCRIPTION
          "The Quanta Private MIB for OpenFlow"

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


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


agentOpenFlowGroup OBJECT IDENTIFIER ::= { openFlow 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 { 2 }
        ::={ agentOpenFlowGlobalConfigGroup 1 }

    agentOpenFlowVariant OBJECT-TYPE
        SYNTAX      INTEGER {
                openFlow10Mode(2),
-- #if defined(QCI_OPENFLOW_VERSION_VARIANT) /* Evan: add for version VARIANT */
		openFlow11Mode(3),
		openFlow12Mode(4),
		openFlow13Mode(5)
--
                }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
                "Indicates which OpenFlow version is currently running on the switch." 
        DEFVAL { openFlow10Mode }
        ::={ agentOpenFlowGlobalConfigGroup 2 }



    --**************************************************************************************
    -- 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
                }

    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 }



    --**************************************************************************************
    -- 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 }

END
