PFC-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, 
    Integer32, Unsigned32                FROM SNMPv2-SMI
    RowStatus                            FROM SNMPv2-TC
    InterfaceIndex                       FROM IF-MIB
    switch                               FROM QUANTA-SWITCH-MIB;

    pfc MODULE-IDENTITY
        LAST-UPDATED "201108310000Z" -- 26 January 2011 12:00:00 GMT
        ORGANIZATION "QCI"
        CONTACT-INFO
            "                      Customer Support
          Postal:                Quanta Computer Inc.
                                 4, Wen Ming 1 St., Kuei Shan Hsiang,
                                 Tao Yuan Shien, Taiwan, R.O.C.
          Tel:                   +886 3 328 0050
          E-Mail:                strong.chen@quantatw.com"
        DESCRIPTION
          "The MIB definitions Priority based Flow Control Feature."
    ::= { switch 47 }

--*********************************************************************
--   agentPfcCfgGroup
--*********************************************************************
agentPfcCfgGroup OBJECT IDENTIFIER ::= { pfc 1 }

--*********************************************************************
--   agentPfcTable
--   PFC Profile Configuration table (per-interface)
--*********************************************************************
    agentPfcTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentPfcEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table providing configuration of PFC Profile per interface."

         ::= { agentPfcCfgGroup 1 }

    agentPfcEntry OBJECT-TYPE
         SYNTAX      AgentPfcEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "PFC Profile configuration for a port."
         INDEX   { agentPfcIntfIndex }
         ::= { agentPfcTable 1 }

    AgentPfcEntry::=
         SEQUENCE {
            agentPfcIntfIndex
                InterfaceIndex,
            agentPfcIntfAdminMode
                INTEGER,
            agentPfcIntfPfcStatus
                INTEGER,
            agentPfcTotalIntfPfcFramesRx
                Unsigned32,                
            agentPfcTotalIntfPfcFramesTx
                Unsigned32
         }

    agentPfcIntfIndex OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "This is a unique index for an entry in the
                     agentPfcTable. A non-zero value indicates
                     the ifIndex for the corresponding interface entry
                     in the ifTable."

         ::= { agentPfcEntry 1 }

    agentPfcIntfAdminMode OBJECT-TYPE
         SYNTAX      INTEGER {
                       enable(1),
                       disable(2),
                       auto(3)
                       }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Enables/disables PFC profile on an interface."
         DEFVAL { 3 }

         ::= { agentPfcEntry 2 }

    agentPfcIntfPfcStatus OBJECT-TYPE
         SYNTAX      INTEGER {
                       active(1),
                       inactive(2)
                       }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Shows the operational-status of PFC on an interface."
         DEFVAL { 2 }

         ::= { agentPfcEntry 3 }

    agentPfcTotalIntfPfcFramesRx OBJECT-TYPE
         SYNTAX      Unsigned32 
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Total Received PFC Frames on this interface."

         ::= { agentPfcEntry 4 }
         
    agentPfcTotalIntfPfcFramesTx OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Total Transmitted PFC Frames on this interface."

         ::= { agentPfcEntry 5 }

--*********************************************************************
--   agentPfcActionTable
--   PFC Priority and Action Mappings Configuration table (per-interface)
--*********************************************************************
    agentPfcActionTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentPfcActionEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table providing priority and action mappings configuration of PFC."

         ::= { agentPfcCfgGroup 2 }

    agentPfcActionEntry OBJECT-TYPE
         SYNTAX      AgentPfcActionEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "PFC Action Profile configuration for a port."
         INDEX   { agentPfcIntfIndex, agentPfcPriority }
         ::= { agentPfcActionTable 1 }

    AgentPfcActionEntry::=
         SEQUENCE {
            agentPfcPriority
                Unsigned32,
            agentPfcAction
                INTEGER
         }

    agentPfcPriority OBJECT-TYPE
         SYNTAX      Unsigned32 (0..7)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "This is a unique index for an entry in the
                     agentPfcActionTable. A non-zero value indicates
                     the CosQueue Priority."

         ::= { agentPfcActionEntry 1 }

    agentPfcAction   OBJECT-TYPE
         SYNTAX      INTEGER {
                       drop(1),
                       nodrop(2)
                       }
         MAX-ACCESS  read-write
         STATUS      current
         DESCRIPTION
                     "Set Drop/No-Drop action in PFC profile for the corresponding priority."
         DEFVAL { 1 }

         ::= { agentPfcActionEntry 2 }
         
--*********************************************************************
--   agentPfcIntfStatsPerPriorityTable
--   PFC Profile Statistics table (per-interface)
--*********************************************************************
    agentPfcIntfStatsPerPriorityTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentPfcIntfStatsPerPriorityEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table providing statistics of PFC per interface per priority."

         ::= { agentPfcCfgGroup 3 }

    agentPfcIntfStatsPerPriorityEntry OBJECT-TYPE
         SYNTAX      AgentPfcIntfStatsPerPriorityEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "PFC Stats for a priority and for a port."
         INDEX   { agentPfcIntfIndex, agentPfcPriority }
         ::= { agentPfcIntfStatsPerPriorityTable 1 }

    AgentPfcIntfStatsPerPriorityEntry::=
         SEQUENCE {
            agentPfcIntfPfcPriorityFramesRx
                Unsigned32
         }

    agentPfcIntfPfcPriorityFramesRx OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Received PFC Frames on this interface for a priority."

         ::= { agentPfcIntfStatsPerPriorityEntry 1 }

END
