-- Copyright (C) 2009-2012 Aricent Group . All Rights Reserved

-- $Id: fsdcbx.mib,v 1.12 2016/07/02 10:01:02 siva Exp $

-- DCB Proprietary MIB Definition

-- This document explains the proprietary MIB implemented
-- for the DCB Features.

-- Data Center Bridging is a flexible framework that defines the 
-- capabilities required for switches and end points to be part of a 
-- data center network.

-- DCB contains the following capabilities as defined in IEEE standard 
-- (IEEE 802.1Qbb and IEEE 802.1Qaz) and CEE Version (DCBX Base Specification Rev1.01):

--     1. Priority-based flow control (PFC; IEEE 802.1Qbb) 
--          The Priority-based Flow Control (PFC) feature is used for a 
--          link level flow control mechanism that can be independently 
--          controlled for each priority.
--     2. Enhanced transmission selection/Priority Group (ETS/PG; IEEE 802.1Qaz) 
--         The Enhanced Transmission Selection (ETS/PG) feature provides a 
--         common management framework for assignment of bandwidth to 
--         traffic classes
--     3. Application Priority
--	   The application priority feature is used for assigning priorities 
--	   to the higher layer protocols.
--     4. DCBX is a discovery and capability exchange protocol that is used 
--        by devices enabled for Data Center Bridging to exchange configuration information."

ARICENT-DCB-MIB DEFINITIONS ::= BEGIN
IMPORTS
    	Unsigned32,MODULE-IDENTITY, OBJECT-TYPE,NOTIFICATION-TYPE,
	enterprises,Counter32,Integer32	FROM SNMPv2-SMI
        InterfaceIndex FROM IF-MIB
	lldpV2PortConfigEntry, lldpV2LocPortIfIndex,
        lldpV2RemTimeMark, lldpV2RemLocalIfIndex,
         lldpV2RemLocalDestMACAddress, lldpV2RemIndex
         FROM LLDP-V2-MIB
        lldpXdot1dcbxAdminApplicationPriorityAppEntry
        FROM LLDP-EXT-DOT1-DCBX-MIB
        TEXTUAL-CONVENTION,RowStatus,TruthValue  FROM SNMPv2-TC;

fsDcbMIB MODULE-IDENTITY
        LAST-UPDATED "201209050000Z"
        ORGANIZATION "ARICENT COMMUNICATIONS SOFTWARE"
        CONTACT-INFO "support@aricent.com"
        DESCRIPTION 
         "The proprietary extension MIB module for DCB. " 
        REVISION "201209050000Z"
        DESCRIPTION 
         "The proprietary extension MIB module for DCB. " 
    ::=  { enterprises aricent-communication-holding-ltd(29601) iss(2) 22}

EnabledStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "A simple status value for the object."
    SYNTAX      INTEGER { enabled(1), disabled(2) }

DcbAdminMode ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "'auto(0)', In this mode, all the opertaional(local) parameters 
	 for the feature will be determined by the DCBX state machine.  

         'on(1)', In this mode, all the opertaional(local) parameters 
	 for the feature will not be determined by the DCBX state 
	 machine. Operational(local) parameters will be same as administrative 
	 Configuration parameters.

         'off(2)', In this mode, all the operational(local) parameters 
	 for the feature will be same as administrative Configuration Parameters. 
	 But Operational(local) parameters do not have any impact in the system."

    SYNTAX      INTEGER { auto(0), on(1), off(2)}


DcbState ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
 	"The state of the DCBX state machine. It can be any one of the following IEEE or CEE states 
	 based on the operating version.  

         1. In IEEE mode the Dcbstate can hold any of the following values :

	         off '(0)', In this state all Operational(local) parameters
	         for the feature will be same as administrative Configuration parameters
	         but will not be operational in the system(hardware).

                 init '(1)', In this state all Operational(local) parameters
	         for the feature will be same as administrative Configuration Parameters.

                 rxrecommended '(2)', In this state all the Operational(local) 
	         parameters for the feature will be same as particular 
	         feature Remote Parameters.

         2. In CEE mode the Dcbstate can hold any of the following values :

	         ceedisabled '(3)', In this state all Operational(local) parameters
	         for the feature will be same as administrative Configuration parameters
	         but will not be operational in the system(hardware).

                 uselocalcfg '(4)', In this state all Operational(local) parameters
	         for the feature will be same as administrative Configuration Parameters.

                 usepeercfg '(5)', In this state all the Operational(local) 
	         parameters for the feature will be same as particular 
	         feature Remote Parameters.
         "
    SYNTAX      INTEGER { off(0), init(1), rxrecommended(2), ceedisabled(3), uselocalcfg(4), usepeercfg(5) }

DcbxVersion ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
 	"The DCBX can operate in following versions.

         cee  '(0)',    It will operate only in CEE version
         ieee '(1)',    It will operate only in IEEE version.
         auto '(2)',    It can operate either in IEEE version or CEE version.
                        The DCBX version will be elected dynamically.
         unknown '(3)', The version of operation is unknown. "
    SYNTAX      INTEGER { auto(1), ieee(2), cee(3), unknown(4) }

DcbStateMachineType ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "asymmetric'(1)',By using this state machine the operational parameters 
                        of the DCB feature can be same as peer or not.
                        This state machine type is used when DcbxVersion is IEEE.
         symmetric '(2)',By using this state machine the operational parameters 
                        of the DCB feature will be same as peer. 
                        This state machine type is used when DcbxVersion is IEEE.
         feature   '(3)',By using this state machine the operational parameters 
                         of PFC and Application priority feature will be same 
                         as peer.  ETS/PG can be same as peer or not.
                         This state machine type is used when DcbxVersion is CEE."
    SYNTAX      INTEGER { asymmetric(1), symmetric(2), feature(3) }

FsLldpXdot1dcbxTCSupportedCapacity ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS    current
    DESCRIPTION
        "Indicates the supported capacity of a given feature,
        for example, the number of traffic classes supported.
        This TC is used for features that have a maximum
        capacity of eight but may have fewer supported.

        A value of zero indicates that there are not capacity
        restrictions, i.e., the capacity is eight."
    SYNTAX Integer32 (0|1..7)

DcbxStatus  ::= TEXTUAL-CONVENTION
    STATUS    current
    DESCRIPTION
        "Indicates the current status of a given feature, which can indicates the following values:
         peerNotAdvFeat            '(1)'   Indicates that the peer did not advertise the feature.
         peerNotAdvDcbx            '(2)'   Indicates that the peer did not advertise DCBX.
         notAdvertise              '(3)'   Indicates that DCBx has not been advertised.
         disabled                  '(4)'   Indicates that the feature has been locally disabled.
         peerDisabled              '(5)'   Indicates that the feature has been disabled in peer.
         peerInError               '(6)'   Indicates that the error bit has been set in peer.
         peerNWillingCompatibleCfg '(7)'   Indicates that the peer is not willing even though confiuration is compatible.
         cfgNotCompatible          '(8)'   Indicates that local and remote configuration are not compatible.
         ok                        '(9)'   Indicates normal operation.
         unknown                   '(10)'   Indicates that the DCBX status is unknown.
        "

   SYNTAX   INTEGER { peerNotAdvFeat(1), peerNotAdvDcbx(2), notAdvertise(3), disabled(4), peerDisabled(5),peerInError(6), peerNWillingCompatibleCfg(7), cfgNotCompatible(8), ok(9), unknown(10) }


-- ****************************************************************************
--                           Groups in the MIB
-- ****************************************************************************

fsDcbSystem   		OBJECT IDENTIFIER ::= { fsDcbMIB 1 }
fsDcbObjects  		OBJECT IDENTIFIER ::= { fsDcbMIB 2 }
fsDcbApplicationObjects OBJECT IDENTIFIER ::= { fsDcbMIB 3 }
fsDcbNotificationObjects OBJECT IDENTIFIER ::= { fsDcbMIB 4 }

fsDCBXObjects 	OBJECT IDENTIFIER ::= { fsDcbApplicationObjects 1 }
fsETSObjects	OBJECT IDENTIFIER ::= { fsDcbApplicationObjects 2 }
fsPFCObjects	OBJECT IDENTIFIER ::= { fsDcbApplicationObjects 3 }
fsAppPriObjects	OBJECT IDENTIFIER ::= { fsDcbApplicationObjects 4 }
fsTCSupportedObjects OBJECT IDENTIFIER ::= { fsDcbApplicationObjects 5 }
fsDcbxCEEObjects     OBJECT IDENTIFIER ::= { fsDcbApplicationObjects 6 }


fsDCBXScalars	OBJECT IDENTIFIER ::= { fsDCBXObjects 1 }
fsETSScalars	OBJECT IDENTIFIER ::= { fsETSObjects 1 }
fsPFCScalars	OBJECT IDENTIFIER ::= { fsPFCObjects 1 }
fsAppPriScalars OBJECT IDENTIFIER ::= { fsAppPriObjects 1}
fsDcbxCEEScalars OBJECT IDENTIFIER ::= { fsDcbxCEEObjects 1}
-- ****************************************************************************
-- DCB Scalar  MIB Objects
-- ****************************************************************************
fsDcbPfcMinThreshold    OBJECT-TYPE
    SYNTAX        Unsigned32 ( 1..65535 )
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The minimum PFC(Priority Based Flow Control) threshold for the switch.
         This Object indicates the minimum Receive queue buffer count. 
         The minimum and maximum values for this object may vary based on the 
         underlying hardware's capacity."
    ::= { fsDcbSystem 1 }

fsDcbPfcMaxThreshold    OBJECT-TYPE
    SYNTAX        Unsigned32 ( 1..65535 )
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The maximum PFC(Priority Based Flow Control)threshold for the switch.
         This Object indicates the maximum Receive queue buffer count. 
         The minimum and maximum values for this object may vary based 
         on the underlying hardware's capacity. "
    ::= { fsDcbSystem 2 }

fsDcbMaxPfcProfiles    OBJECT-TYPE
    SYNTAX        Unsigned32 (1..256)
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The maximum number of PFC(Priority Based Flow Control)profiles supported 
         by the device.

         A PFC profile is a bitmap, containing the status of PFC for all the
         priorities.

         If Bit 0 is set, then it means PFC is enabled for priority 0, otherwise 
         PFC is disabled for priority 0.
         
         If Bit 1 is set, then it means PFC is enabled for priority 1, otherwise 
         PFC is disabled for priority 1, and so on.

         If this object value is zero, it means all the bits are set to zero and 
         PFC is disabled for all priorities.

         If this object's value is 3, it means the bits 0 and 1 are set and 
         PFC is enabled for priorities 0 and 1 and disabled for all other priorities.

         Device supporting 256 PFC profiles, means all possible combination of
         PFC status on 8 priorities are supported. "

    DEFVAL { 256 }
    ::= { fsDcbSystem 3}

-- ****************************************************************************
-- DCB Port Configuration MIB Objects
-- ****************************************************************************

fsDcbPortTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsDcbPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Port table contains the DCB features 
         (Enhanced Transmission Selection/Priortiy Based Flow Control/Application priority) 
         status (enabled or disabled) and DCBX version details"
    ::= { fsDcbObjects 1 }

fsDcbPortEntry    OBJECT-TYPE
    SYNTAX      FsDcbPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing DCB control parameters for a particular port."
    INDEX  {fsDcbPortNumber}
    ::= { fsDcbPortTable 1 }

FsDcbPortEntry ::= 
SEQUENCE {
    fsDcbPortNumber	    InterfaceIndex,
    fsDcbETSAdminStatus     EnabledStatus,
    fsDcbPFCAdminStatus     EnabledStatus,
    fsDcbRowStatus          RowStatus,
    fsDcbAppPriAdminStatus  EnabledStatus,
    fsDcbOperVersion        DcbxVersion,
    fsDcbMaxVersion         DcbxVersion,
    fsDcbPeerOperVersion    DcbxVersion,
    fsDcbPeerMaxVersion     DcbxVersion
    }

fsDcbPortNumber OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   not-accessible 
    STATUS       current
    DESCRIPTION
       "This indicates the interface identifier for which the Dcb 
        configuration is applied." 
    ::= { fsDcbPortEntry 1 }

fsDcbETSAdminStatus    OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object enables or disables ETS feature on
         the given port.

         If set to 'enabled(1)', ETS feature will be enabled 
         on this port.  

         If set to 'disabled(2)', ETS feature will be disabled 
         on this port."
    DEFVAL { disabled }
    ::= { fsDcbPortEntry 2 }

fsDcbPFCAdminStatus    OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object enables or disables PFC feature on
         the given port.

         If set to 'enabled(1)', PFC feature will be enabled 
         on this port.

         If set to 'disabled(2)', PFC feature will be disabled 
         on this port."
    DEFVAL { disabled }
    ::= { fsDcbPortEntry 3 }


fsDcbRowStatus      OBJECT-TYPE
    SYNTAX            RowStatus
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
        "This object is used to create and delete a row in this table.

         Only 'createAndGo', and 'destroy' values are allowed for this
         object. 'createAndWait' and 'notInService' values are not allowed.

         An entry can be created in this table only when the interface is 
         present in the system and mapped to a virtual context.

         When an interface is deleted or unmapped from a virtual context,
         the corresponding entry from this table will be deleted.
         
         Entries can be created in this table only for physical interfaces." 
         ::= {fsDcbPortEntry 4}

fsDcbAppPriAdminStatus    OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object enables or disables PFC feature on
         the given port.

         If set to 'enabled(1)', Application priority feature will be enabled 
         on this port.

         If set to 'disabled(2)', Application priority feature will be disabled 
         on this port."
    DEFVAL { disabled }
    ::= { fsDcbPortEntry 5 }

fsDcbOperVersion OBJECT-TYPE
    SYNTAX       DcbxVersion
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the Operating version of the DCBX protocol 
        in which the system adjusts as needed to operate at the highest version 
        supported by both link partners."
    ::= { fsDcbPortEntry 6 }

fsDcbMaxVersion OBJECT-TYPE
    SYNTAX       DcbxVersion
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the Highest DCBX protocol version supported 
       by the local system."
    ::= { fsDcbPortEntry 7 }

fsDcbPeerOperVersion OBJECT-TYPE
    SYNTAX       DcbxVersion
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the Operating version of the DCBX protocol for 
        peer in which the system adjusts as needed to operate at the highest 
        version supported by both link partners."
    ::= { fsDcbPortEntry 8 }

fsDcbPeerMaxVersion OBJECT-TYPE
    SYNTAX       DcbxVersion
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the Highest DCBX protocol version supported 
       by the peer system."
    ::= { fsDcbPortEntry 9 }

-- ****************************************************************************
-- DCBX Scalar Objects
-- ****************************************************************************

fsDcbxGlobalTraceLevel    OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object is used to enable Trace Statements in DCBX Module.

         A FOUR BYTE integer is used for enabling the level of tracing.
         Each BIT in the four byte integer represents a particular
         level of Trace.

         The mapping between the bit positions & the level of trace is
         as follows:
                  1 - Management Traces
                  2 - DCBX State Machine Traces
                  3 - TLV Traces
                  4 - System Resource Traces
                  5 - Failure Traces
                  6 - Redundancy Traces
                  7 - MBSM Traces
                  8 - Control Plane Traces.
                  9 - Critical Traces


         The remaining bits are unused. Combinations of levels are
         also allowed.

         For example if the bits 1 and 2 are set, then the trace
         statements related to management and DCBX State Machine
         will be printed.

	 By default 'Critical Traces' are enabled.
         The user has to enter the corresponding INTEGER VALUE for the
         bits set. For example if bits 1 and 2 are set then user has to
         set the value 3."
    DEFVAL { 256 }
    ::= { fsDCBXScalars 1 }

-- ****************************************************************************
-- DCBX Port Configuration MIB Objects
-- ****************************************************************************

fsDCBXPortTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsDCBXPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Port table contains the DCBX feature status (enabled or disabled)."
    ::= { fsDCBXObjects 2 }

fsDCBXPortEntry    OBJECT-TYPE
    SYNTAX      FsDCBXPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing DCBX control parameters for a particular port."
    INDEX  {fsDCBXPortNumber}
    ::= { fsDCBXPortTable 1 }

FsDCBXPortEntry ::= 
SEQUENCE {
    fsDCBXPortNumber	  InterfaceIndex,
    fsDCBXAdminStatus     EnabledStatus,
    fsDCBXMode            DcbxVersion
    }

fsDCBXPortNumber OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   not-accessible 
    STATUS       current
    DESCRIPTION
       "This indicates the interface identifier for which the DCBX 
        configuration is applied." 
    ::= { fsDCBXPortEntry 1 }

fsDCBXAdminStatus    OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to enable or disable DCBX feature on
         the given port.

         If set to 'enabled(1)', DCBX feature will be enabled 
         on this port. This will start the state machine for 
	 the feature for which the AdminMode is configured as 
	 'auto'. 

         If set to 'disabled(2)', DCBX feature will be disabled 
         on this port.This will stop the state machine for 
	 the feature for which the AdminMode is configured as 
	 'auto'. "
    DEFVAL { enabled }
    ::= { fsDCBXPortEntry 2 }

fsDCBXMode OBJECT-TYPE
    SYNTAX       DcbxVersion
    MAX-ACCESS   read-write 
    STATUS       current
    DESCRIPTION
       "This object specifies the mode of the DCBX in which the operating 
        version will be elected dynamically	based on TLV exchange when the Auto
        mode is selected.  
        In auto mode, operating version is determined based on 
        IEEE TLVs or CEE TLVs been received. 
        In case of LLDP containing both IEEE and CEE TLVs, 
        CEE TLVs is not considered and only IEEE TLVs are considered.
	
	    If the mode is set to IEEE, the local system will operate only in IEEE 
        mode and will ignore all DCBX CEE TLVs.

	    If the mode is set to CEE, the local system will operate only in CEE 
        mode and will ignore all the IEEE TLVs"
    DEFVAL { auto }
    ::= { fsDCBXPortEntry 3 }
-- ****************************************************************************
-- ETS Scalar Objects
-- ****************************************************************************

fsETSSystemControl   OBJECT-TYPE
    SYNTAX        INTEGER { start(1), shutdown(2) }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The ETS(Enhanced Transmission selection) system control status 
	 for the switch.
	 
	 Starts or shutdown ETS Module in the system. When set as
	 'start', resources required by ETS module are allocated and 
	 ETS module starts running. When shutdown, all the pools used
	 by ETS module will be released to the system."
    DEFVAL { start}
    ::= { fsETSScalars 1 }

fsETSModuleStatus   OBJECT-TYPE
    SYNTAX        EnabledStatus
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The ETS(Enhanced Transmission Selection) Module status for the switch.
	 
	 If this object is set as 'disabled', then for all the ports in
	 which ETS has been enabled, will make the ETS feature disabled
	 in the system(hardware) and stop the DCBX state machine running 
	 on the port for which fsETSAdminMode is configured as 'auto'.
	
	 If this object is set as 'enabled', then for all the ports in 
	 which ETS has been enabled, will make the ETS feature enabled in
	 the system(hardware) and start the DCBX state machine on the port
	 for which fsETSAdminMode is configured as 'auto'."
    DEFVAL { enabled }
    ::= { fsETSScalars 2 }

fsETSClearCounters   OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object when set to TRUE, clears the following counters
         for the ETS Module:
	    fsETSConfTxTLVCounter,  
	    fsETSConfRxTLVCounter,
	    fsETSConfRxTLVErrors,
	    fsETSRecoTxTLVCounter,
	    fsETSRecoRxTLVCounter,
	    fsETSRecoRxTLVErrors,
	    fsETSTcSuppTxTLVCounter,
	    fsETSTcSuppRxTLVCounter,
	    fsETSTcSuppRxTLVErrors

         Setting this object to FALSE has no effect. 
         This object always returns FALSE when read."   
    DEFVAL { false }
    ::= {fsETSScalars 3 }

fsETSGlobalEnableTrap   OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
           "This object is used to enable or disable the transmission of
            TRAP notification messages for ETS feature.
           
            Each bit in this object corresponds to a particular trap
            If the corresponding bit is set, then the particular
            trap is enabled. The following traps are supported:
            
            Bit Position       Trap 
	    1              ETS Global Module Status Enable/Disable.
	    2		   ETS Port-wise administrative Status Change. 
	    3	 	   Peer Up or Peer down Trap. 
	    4              ETS DCBX State Machine State for the port.

            The remaining bits are unused. More than one trap can also be 
            enabled. 

            For example, if bits 1 and 2 are set, then both fsETSModuleStatusTrap  
            and fsETSPortStatusTrap(for administrative Mode Status)are enabled in the module.

            The user has to enter the corresponding INTEGER VALUE 
            for the bit set."
    DEFVAL { 3 }
    ::= { fsETSScalars 4 }

fsETSGeneratedTrapCount OBJECT-TYPE
   SYNTAX      Unsigned32
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
       "This object indicates the number of Traps sent. This counter
        will be incremented every time when there is any trap sent"

   ::= { fsETSScalars 5 }

-- ****************************************************************************
-- ETS Port Configuration table 
-- ****************************************************************************

fsETSPortTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsETSPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "ETS Port table contains the ETS (Enhanced Transmission Selection) features 
         information specific to this port. 

	 An entry created in this table in the following tables in the standard 
	 DCBX MIB for this port.
	 lldpXdot1dcbxConfigTCSupportedTable,
	 lldpXdot1dcbxConfigETSConfigurationTable,
	 lldpXdot1dcbxConfigETSRecommendationTable,
	 lldpXdot1dcbxLocTCSupportedTable,
	 lldpXdot1dcbxLocETSBasicConfigurationTable,
	 lldpXdot1dcbxLocETSConPriorityAssignmentTable,
	 lldpXdot1dcbxLocETSRecommendationTable,
	 lldpXdot1dcbxAdminTCSupportedTable,
	 lldpXdot1dcbxAdminETSBasicConfigurationTable,
	 lldpXdot1dcbxAdminETSConPriorityAssignmentTable,
	 lldpXdot1dcbxAdminETSRecommendationTable.
 
	 Deletion of entry in this table deletes all the entries in the above tables 
	 in the standard DCBX MIB for this port."
    ::= { fsETSObjects 2 }

fsETSPortEntry    OBJECT-TYPE
    SYNTAX      FsETSPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing ETS control parameters and ETS information
	 for a particular port."
    INDEX  {fsETSPortNumber}
    ::= { fsETSPortTable 1 }

FsETSPortEntry ::= 
SEQUENCE {
    fsETSPortNumber	    InterfaceIndex,
    fsETSAdminMode     	    DcbAdminMode,
    fsETSDcbxOperState      DcbState,
    fsETSDcbxStateMachine   DcbStateMachineType,
    fsETSClearTLVCounters   TruthValue,
    fsETSConfTxTLVCounter   Counter32,
    fsETSConfRxTLVCounter   Counter32,
    fsETSConfRxTLVErrors    Counter32,
    fsETSRecoTxTLVCounter   Counter32,
    fsETSRecoRxTLVCounter   Counter32,
    fsETSRecoRxTLVErrors    Counter32,
    fsETSTcSuppTxTLVCounter Counter32,
    fsETSTcSuppRxTLVCounter Counter32,
    fsETSTcSuppRxTLVErrors  Counter32,
    fsETSRowStatus          RowStatus,
    fsETSSyncd              TruthValue,
    fsETSError		        TruthValue,
    fsETSDcbxStatus         DcbxStatus
    }

fsETSPortNumber OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   not-accessible 
    STATUS       current
    DESCRIPTION
       "This indicates the interface identifier for which the ETS 
        configuration is applied." 
    ::= { fsETSPortEntry 1 }

fsETSAdminMode    OBJECT-TYPE
    SYNTAX      DcbAdminMode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to configure administrative mode for ETS feature on
         the given port.

         If set to 'auto(0)', and if ETS feature is enabled 
         on this port then all the operational(local) parameters for 
	 the ETS feature will be determined by the DCBX state 
	 machine and fsETSDcbxOperState will be also be determined by
	 DCBX State machine. If fsDCBXAdminStatus for this port is set as 
	 disabled, then  operation(local) parameters will not be determined 
	 by the DCBX state machine and  Operational(local) parameters will take 
	 the value of administrative Configuration Parameters and fsETSDcbxOperState 
	 will be moved to 'Init'.

         If set to 'on(1)', and if ETS feature is enabled 
         on this port then all the operational(local) parameters for 
	 the ETS feature will not be determined by the DCBX state 
	 machine. Operational(local) parameters will be same as administrative 
	 Configuration parameters and fsETSDcbxOperState will be moved to 'Init'.  

         If set to 'off(2)', ETS feature will be disabled on this port. 
	 Operational(local) parameters will be same as administrative Configuration 
	 Parameters. But Operational(local) parameters do not have any impact 
	 in the system and fsETSOperState will be moved to 'Off' state.

	 The Operational(local) parameters do not have any impact in 
	 the system if this object value is set as 'auto(0)' or 'on(1)'
	 and fsETSModuleStatus is set as disabled. fsETSDcbxOperState will 
	 be moved to 'Off' State."
    DEFVAL { off }
    ::= { fsETSPortEntry 2 }

fsETSDcbxOperState    OBJECT-TYPE
    SYNTAX      DcbState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to display the current state of the
	 DCBX state machine for the ETS feature on the given port.

         If state is Off '(0)', then ETS Operational(local) parameters
	 will be same as ETS administrative Configuration Parameters and will
	 not have any impact in the system(hardware).

         If state is init '(1)', then ETS Operational(local) parameters
	 will be same as ETS administrative Configuration Parameters.

         If state is rxrecommended '(2)', then ETS Operational(local) parameters
	 will be same as ETS Remote Parameters."

    ::= { fsETSPortEntry 3 }

fsETSDcbxStateMachine    OBJECT-TYPE
    SYNTAX      DcbStateMachineType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to display the DCBX state machine 
	 type that is used by the ETS feature on the given port."

    ::= { fsETSPortEntry 4 }

fsETSClearTLVCounters    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object when set to TRUE, clears the following counters
         associated with a Port:
	    fsETSConfTxTLVCounter,  
	    fsETSConfRxTLVCounter,
	    fsETSConfRxTLVErrors,
	    fsETSRecoTxTLVCounter,
	    fsETSRecoRxTLVCounter,
	    fsETSRecoRxTLVErrors,
	    fsETSTcSuppTxTLVCounter,
	    fsETSTcSuppRxTLVCounter,
	    fsETSTcSuppRxTLVErrors.

         Setting this object to FALSE has no effect. 
         This object always returns FALSE when read."    

    DEFVAL { false }
    ::= { fsETSPortEntry 5 }

fsETSConfTxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of ETS 
	 configuration TLV that are transmitted from this port. 
	 This counter will be incremented every time when there 
	 is ETS Configuration TLV is generated and transmitted 
	 to the LLDP."

    ::= { fsETSPortEntry 6 }

fsETSConfRxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of ETS 
	 ConfigurationTLV that are received in this port. This 
	 counter will be incremented every time when there is ETS 
	 Configuration TLV is received from the LLDP."

    ::= { fsETSPortEntry 7 }

fsETSConfRxTLVErrors    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of malformed 
	 ETS Configuration TLVs received by ETS. This counter will be 
	 incremented every time a ETS Configuration TLV is dropped by ETS."

    ::= { fsETSPortEntry 8 }


fsETSRecoTxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of ETS 
	 Recommendation TLV that are transmitted from this port. 
	 This counter will be incremented every time when there 
	 is ETS Recommendation TLV is generated and transmitted 
	 to the LLDP."

    ::= { fsETSPortEntry 9 }

fsETSRecoRxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of ETS 
	 Recommendation TLV that are received in this port. This 
	 counter will be incremented every time when there is ETS 
	 Recommendation TLV is received from the LLDP."

    ::= { fsETSPortEntry 10 }

fsETSRecoRxTLVErrors    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of malformed 
	 ETS Recommendation TLVs received by ETS. This counter will be 
	 incremented every time a ETS Recommendation TLV is dropped by ETS."

    ::= { fsETSPortEntry 11 }

fsETSTcSuppTxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of TC 
	 Supported TLV that are transmitted from this port. 
	 This counter will be incremented every time when there 
	 is TC Supported TLV is generated and transmitted 
	 to the LLDP."

    ::= { fsETSPortEntry 12 }

fsETSTcSuppRxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of TC
	 Supported TLV that are received in this port. This 
	 counter will be incremented every time when there is TC 
	 Supported TLV is received from the LLDP."

    ::= { fsETSPortEntry 13 }

fsETSTcSuppRxTLVErrors    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of malformed 
	 TC Supported TLVs received by ETS. This counter will be 
	 incremented every time a TC Supported TLV is dropped by ETS."

    ::= { fsETSPortEntry 14 }

fsETSRowStatus      OBJECT-TYPE
    SYNTAX            RowStatus
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
        "This object is used to create and delete a row in this table.

         Only 'createAndGo', and 'destroy' values are allowed for this
         object. 'createAndWait' and 'notInService' values are not allowed.

         An entry can be created in this table only when the interface is 
         present in the system and mapped to a virtual context.

         When an interface is deleted or unmapped from a virtual context,
         the corresponding entry from this table will be deleted.
         
	 When the object is read, it will always return 'Active'. 
	 Entries can be created in this table for physical and
	 port channel interfaces." 

    ::= { fsETSPortEntry 15 }

fsETSSyncd OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates whether the current DesiredConfig has been 
       received by the peer, and is applicable only when the DCBX operating 
       version is CEE"
    ::= { fsETSPortEntry 16 }

fsETSError OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates that an error has occurred during the 
       configuration exchange with the peer. Error is also set to TRUE when the 
       Compatible method for the feature fails. This object is applicable only 
       when the DCBX operating version is CEE"
    ::= { fsETSPortEntry 17 }

fsETSDcbxStatus  OBJECT-TYPE
    SYNTAX       DcbxStatus
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates the current DCBX status of the ETS feature . "	
    ::= { fsETSPortEntry 18 }

-- ****************************************************************************
--  PFC Scalar Objects
-- ****************************************************************************

fsPFCSystemControl   OBJECT-TYPE
    SYNTAX        INTEGER { start(1), shutdown(2) }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The PFC(Priority Based Flow Control) system control status for the switch.
	 
	 Starts or shutdown PFC Module in the system. When set as
	 'start', resources required by PFC module are allocated and 
	 PFC module starts running. When shutdown, all the pools used
	 by PFC module will be released to the system."
    DEFVAL { start}
    ::= { fsPFCScalars 1 }

fsPFCModuleStatus   OBJECT-TYPE
    SYNTAX        EnabledStatus
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The PFC(Priority Based Flow Control) Module status for the switch.
	 
	 If this object is set as 'disabled', then for all the ports in
	 which PFC has been enabled, will make the PFC feature disabled
	 in the system(hardware) and stop the DCBX state machine on the port
	 for which fsPFCAdminMode is configured as 'auto'.
	
	 If this object is set as 'enabled', then for all the ports in 
	 which PFC has been enabled, will make the PFC feature enabled in
	 the system(hardware) and start the DCBX state machine on the port
	 for which fsPFCAdminMode is configured as 'auto'."
    DEFVAL { enabled }
    ::= { fsPFCScalars 2 }

fsPFCClearCounters   OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object when set to TRUE, clears the following counters
         for the PFC Module:
	    fsPFCTxTLVCounter,
	    fsPFCRxTLVCounter,
	    fsPFCRxTLVErrors.

         Setting this object to FALSE has no effect. 
         This object always returns FALSE when read."    

    DEFVAL { false }
    ::= {fsPFCScalars 3 }

fsPFCGlobalEnableTrap   OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
           "This object is used to enable or disable the transmission of
            TRAP notification messages for PFC feature.
           
            Each bit in this object corresponds to a particular trap
            If the corresponding bit is set, then the particular
            trap is enabled. The following traps are supported:
            
            Bit Position       Trap 
	    1              PFC Global Module Status Enable/Disable.
	    2		   PFC Portwise administrative Status. 
	    3	 	   Peer Up or Peer down Trap. 
	    4              PFC DCBX State Machine State for the port.

            The remaining bits are unused. More than one trap can also be 
            enabled. 

            For example, if bits 1 and 2 are set, then both fsPFCModuleStatusTrap  
            and fsPFCPortStatusTrap(for administrative Mode Status)are enabled in the module.

            The user has to enter the corresponding INTEGER VALUE 
            for the bit set."
    DEFVAL { 3 }
    ::= { fsPFCScalars 4 }

fsPFCGeneratedTrapCount OBJECT-TYPE
   SYNTAX      Unsigned32
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
       "This object indicates the number of Traps sent. This counter
        will be incremented every time when there is any trap sent."

   ::= { fsPFCScalars 5 }

-- ****************************************************************************
--  PFC Port Configuration table 
-- ****************************************************************************

fsPFCPortTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsPFCPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "PFC Port table contains the PFC (Priortiy Based Flow Control) features 
         information specific to this port. 

	 An entry created in the port table populates the entry in this table and 
	 in the following tables in the standard DCBX Mib for this port. 
	 lldpXdot1dcbxConfigPFCTable,
	 lldpXdot1dcbxLocPFCBasicTable,
	 lldpXdot1dcbxLocPFCEnableTable,
	 lldpXdot1dcbxAdminPFCBasicTable,
 	 lldpXdot1dcbxAdminPFCEnableTable.
	 
	 Deletion of entry in the port table deletes the entry in this table and
	 all the entries in the above tables in the standard DCBX mib for this port."
    ::= { fsPFCObjects 2 }

fsPFCPortEntry    OBJECT-TYPE
    SYNTAX      FsPFCPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing PFC control parameters and PFC information
	 for a particular port."
    INDEX  {fsPFCPortNumber}
    ::= { fsPFCPortTable 1 }

FsPFCPortEntry ::= 
SEQUENCE {
    fsPFCPortNumber	    InterfaceIndex,
    fsPFCAdminMode     	    DcbAdminMode,
    fsPFCDcbxOperState      DcbState,
    fsPFCDcbxStateMachine   DcbStateMachineType,
    fsPFCClearTLVCounters   TruthValue,
    fsPFCTxTLVCounter	    Counter32,
    fsPFCRxTLVCounter	    Counter32,
    fsPFCRxTLVErrors	    Counter32,
    fsPFCRowStatus          RowStatus,
    fsPFCSyncd              TruthValue,
    fsPFCError	            TruthValue,
    fsPFCDcbxStatus         DcbxStatus,
    fsPFCRxPauseFrameCounter     Counter32,
    fsPFCTxPauseFrameCounter     Counter32,
    fsPFCRxPauseFrameP0Counter   Counter32,
    fsPFCRxPauseFrameP1Counter   Counter32,
    fsPFCRxPauseFrameP2Counter   Counter32,
    fsPFCRxPauseFrameP3Counter   Counter32,
    fsPFCRxPauseFrameP4Counter   Counter32,
    fsPFCRxPauseFrameP5Counter   Counter32,
    fsPFCRxPauseFrameP6Counter   Counter32,
    fsPFCRxPauseFrameP7Counter   Counter32,
    fsPFCTxPauseFrameP0Counter   Counter32,
    fsPFCTxPauseFrameP1Counter   Counter32,
    fsPFCTxPauseFrameP2Counter   Counter32,
    fsPFCTxPauseFrameP3Counter   Counter32,
    fsPFCTxPauseFrameP4Counter   Counter32,
    fsPFCTxPauseFrameP5Counter   Counter32,
    fsPFCTxPauseFrameP6Counter   Counter32,
    fsPFCTxPauseFrameP7Counter   Counter32,
    fsPFCDataFrameDiscardCounter Counter32,
    fsPFCClearPauseFrameCounters TruthValue
    }

fsPFCPortNumber OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   not-accessible 
    STATUS       current
    DESCRIPTION
       "This indicates the interface identifier for which the PFC 
        configuration is applied." 
    ::= { fsPFCPortEntry 1 }

fsPFCAdminMode    OBJECT-TYPE
    SYNTAX      DcbAdminMode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to configure administrative mode for PFC feature on
         the given port.

         If set to 'auto(0)', and if PFC feature is enabled 
         on this port then all the opertaional(local) parameters for 
	 the PFC feature  and fsPFCDcbxOperState will be determined by the DCBX state 
	 machine.If fsDCBXAdminStatus is set as disabled, then operational(local) 
	 parameters will not be determined by the DCBX state machine and 
	 Operational(local) parameters will take the value of administrative 
	 Configuration Parameters and fsPFCDcbxOperState will be moved to 'Init'.

         If set to 'on(1)', and if PFC feature is enabled 
         on this port then all the opertaional(local) parameters for 
	 the PFC feature will not be determined by the DCBX state 
	 machine. Operational(local) parameters will be same as administrative 
	 Configuration parameters and fsPFCDcbxOperState will be moved to 'Init'.  

         If set to 'off(2)', PFC feature will be disabled on this port. 
	 Operational(local) parameters will be same as administrative Configuration 
	 Parameters. But Operational(local) parameters do not have any impact 
	 in the system and fsPFCOperState will be moved to 'off' State.

	 The Operational(local) parameters do not have any impact in 
	 the system if this object value is set as 'auto(0)' or 'on(1)'
	 and fsPFCModuleStatus is set as disabled. fsPFCDcbxOperState will
	 be moved to 'off' State in this scenario."
    DEFVAL { off }
    ::= { fsPFCPortEntry 2 }

fsPFCDcbxOperState    OBJECT-TYPE
    SYNTAX      DcbState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to display the current state of the
	 DCBX state machine for the PFC feature on the given port.

         If state is Off '(1)', then PFC Operational(local) parameters
	 will be same as PFC administrative Configuration Parameters and will
	 not have any impact in the system(hardware).

         If state is init '(1)', then PFC Operational(local) parameters
	 will be same as PFC administrative Configuration Parameters.

         If state is rxrecommended '(2)', then PFC Operational(local) parameters
	 will be same as PFC Remote Parameters."

    ::= { fsPFCPortEntry 3 }

fsPFCDcbxStateMachine    OBJECT-TYPE
    SYNTAX      DcbStateMachineType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to display the DCBX state machine 
	 type that is used by the PFC feature on the given port."

    ::= { fsPFCPortEntry 4 }

fsPFCClearTLVCounters    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object when set to TRUE, clears the following counters
         associated with a Port:
	    fsPFCTxTLVCounter,
	    fsPFCRxTLVCounter,
	    fsPFCRxTLVErrors.

         Setting this object to FALSE has no effect. 
         This object always returns FALSE when read."    

    DEFVAL { false }
    ::= { fsPFCPortEntry 5 }

fsPFCTxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of PFC TLV
	 that are transmitted from this port. This counter will be 
	 incremented every time when there is PFC TLV is generated 
	 and transmitted to the LLDP."

    ::= { fsPFCPortEntry 6 }

fsPFCRxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of the number of PFC TLV
	 that are received in this port. This counter will be 
	 incremented every time when there is PFC TLV is received
	 from the LLDP."

    ::= { fsPFCPortEntry 7 }

fsPFCRxTLVErrors    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of malformed TLVs received by PFC. 
         This counter will be incremented every time a PFC-TLV is dropped by PFC."

    ::= { fsPFCPortEntry 8 }

fsPFCRowStatus      OBJECT-TYPE
    SYNTAX            RowStatus
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
        "This object is used to create and delete a row in this table.

         Only 'createAndGo', and 'destroy' values are allowed for this
         object. 'createAndWait' and 'notInService' values are not allowed.

         An entry can be created in this table only when the interface is 
         present in the system and mapped to a virtual context.

         When an interface is deleted or unmapped from a virtual context,
         the corresponding entry from this table will be deleted.
         
         When the object is read, it will always return 'Active'. 
	 Entries can be created in this table for physical and port-channel
	 interfaces." 
    ::= { fsPFCPortEntry 9 }

fsPFCSyncd OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates whether the current DesiredConfig has been 
       received by the peer, and is applicable only when the DCBX operating 
       version is CEE"
    ::= { fsPFCPortEntry 10 }

fsPFCError OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates that an error has occurred during the 
       configuration exchange with the peer. Error is also set to TRUE when the 
       Compatible method for the feature fails.This object is applicable only 
       when the DCBX operating version is CEE"
    ::= { fsPFCPortEntry 11 }

fsPFCDcbxStatus  OBJECT-TYPE
    SYNTAX       DcbxStatus
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates the current DCBX status of the PFC feature ."
    ::= { fsPFCPortEntry 12 }

fsPFCRxPauseFrameCounter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of total number of PFC Control Frame
        that are received in this port. "
    ::= { fsPFCPortEntry 13}

fsPFCTxPauseFrameCounter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of total number of PFC Control Frames
        that are transmitted from this port."
    ::= { fsPFCPortEntry 14}

fsPFCRxPauseFrameP0Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 0 that are received in this port."
    ::= { fsPFCPortEntry 15}

fsPFCRxPauseFrameP1Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 1 that are received in this port."
    ::= { fsPFCPortEntry 16}

fsPFCRxPauseFrameP2Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 2 that are received in this port."
    ::= { fsPFCPortEntry 17}

fsPFCRxPauseFrameP3Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 3 that are received in this port."
    ::= { fsPFCPortEntry 18}

fsPFCRxPauseFrameP4Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 4 that are received in this port."
    ::= { fsPFCPortEntry 19}

fsPFCRxPauseFrameP5Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 5 that are received in this port."
    ::= { fsPFCPortEntry 20}

fsPFCRxPauseFrameP6Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 6 that are received in this port."
    ::= { fsPFCPortEntry 21}

fsPFCRxPauseFrameP7Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 7 that are received in this port."
    ::= { fsPFCPortEntry 22}

fsPFCTxPauseFrameP0Counter  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 0 that are transmitted from this port."
    ::= { fsPFCPortEntry 23}

fsPFCTxPauseFrameP1Counter  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 1 that are transmitted from this port."
    ::= { fsPFCPortEntry 24}

fsPFCTxPauseFrameP2Counter  OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 2 that are transmitted from this port."
    ::= { fsPFCPortEntry 25}

fsPFCTxPauseFrameP3Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 3 that are transmitted from this port."
    ::= { fsPFCPortEntry 26}

fsPFCTxPauseFrameP4Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 4 that are transmitted from this port."
    ::= { fsPFCPortEntry 27}

fsPFCTxPauseFrameP5Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 5 that are transmitted from this port."
    ::= { fsPFCPortEntry 28}

fsPFCTxPauseFrameP6Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 6 that are transmitted from this port."
    ::= { fsPFCPortEntry 29}

fsPFCTxPauseFrameP7Counter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of PFC Control Frames
        with Priority 7 that are transmitted from this port."
    ::= { fsPFCPortEntry 30}

fsPFCDataFrameDiscardCounter OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to keep track of number of data frames discarded"
    ::= { fsPFCPortEntry 31}

fsPFCClearPauseFrameCounters OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object clears the following counters
         associated with a Port when set to TRUE
             fsPFCRxControlFrame,
             fsPFCTxControlFrame,
             fsPFCRxFramePriority0-7,
             fsPFCTxFramePriority0-7.

         Setting this object to FALSE has no effect. 
         This object always returns FALSE when read."    

    DEFVAL { false }
    ::= { fsPFCPortEntry 32}

-- ****************************************************************************
--  Application Priority Scalar Objects
-- ****************************************************************************

fsAppPriSystemControl   OBJECT-TYPE
    SYNTAX        INTEGER { start(1), shutdown(2) }
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The application priority system control status for the switch which 
        starts or shuts down  the application priority module in the system. 
        When set as 'start', resources required by application priority
        module are allocated and application priority module starts running.
        When shutdown, all the pools used by application priority module
        will be released to the system."
    DEFVAL { start}
    ::= { fsAppPriScalars 1 }

fsAppPriModuleStatus   OBJECT-TYPE
    SYNTAX        EnabledStatus
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The application priority Module status for the switch.
	 
         When this object is set as 'disabled', the  application priority 
         feature is disabled in the system(hardware) and the DCBX state 
         machine is stopped for all the ports for which  fsAppPriAdminMode is 
         configured as 'auto' 
	     
         When this object is set as 'enabled', application priority feature 
         is enabled in the system(hardware) and the DCBX state machine is
         started for all ports for which fsAppPriAdminMode is configured as 'auto'."
    DEFVAL { enabled }
    ::= { fsAppPriScalars 2 }

fsAppPriClearCounters   OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object when set to TRUE, clears the following counters
         for the  application priority module and resets its value to FALSE:
	    fsAppPriTxTLVCounter,
	    fsAppPriRxTLVCounter,
	    fsAppPriRxTLVErrors.
       
       Setting this object to FALSE has no effect."

    DEFVAL { false }
    ::= {fsAppPriScalars 3 }

fsAppPriGlobalEnableTrap   OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
           "This object is used to enable or disable the transmission of
            TRAP notification messages for Application Priority feature.
           
            The user has to enter the corresponding INTEGER VALUE 
            for the bit set.
            
            Each bit in this object corresponds to a particular trap
            If the corresponding bit is set, then the particular
            trap is enabled. The following traps are supported:
            
            Bit Position       Trap 
	    1              Application Priority Global Module Status Enable/Disable.
	    2		       Application Priority Portwise administrative Status. 
	    3	 	       Peer Up or Peer down Trap. 
	    4              Application Priority DCBX State Machine state change for the port.

            The remaining bits are unused. More than one trap can also be 
            enabled. 

            For example, if bits 1 and 2 are set, then both fsAppPriModuleStatusTrap  
            and fsAppPriPortStatusTrap(for administrative Mode Status)are enabled in the module."

    DEFVAL { 3 }
    ::= { fsAppPriScalars 4 }

fsAppPriGeneratedTrapCount OBJECT-TYPE
   SYNTAX      Unsigned32
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
       "This object indicates the number of Traps sent. This counter
        will be incremented every time when there is any trap sent"

   ::= { fsAppPriScalars 5 }

-- ****************************************************************************
--  AppPri Port Configuration table 
-- ****************************************************************************

fsAppPriPortTable    OBJECT-TYPE
    SYNTAX      SEQUENCE OF FsAppPriPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Application Priority Port table contains the application priority feature's 
         information specific to this port. 

	 An entry created in the port table populates the entry in this table and 
	 in the following tables in the standard DCBX Mib for this port. 
	 lldpXdot1dcbxConfigAppPriTable,
	 lldpXdot1dcbxLocAppPriBasicTable,
	 lldpXdot1dcbxLocAppPriEnableTable,
	 lldpXdot1dcbxAdminAppPriBasicTable,
 	 lldpXdot1dcbxAdminAppPriEnableTable.
	 
	 Deletion of entry in the port table deletes the entry in this table and
	 all the entries in the above tables in the standard DCBX mib for this port."
    ::= { fsAppPriObjects 2 }

fsAppPriPortEntry    OBJECT-TYPE
    SYNTAX      FsAppPriPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An entry containing application priority control parameters and 
        application priority information for a particular port."
    INDEX  {fsAppPriPortNumber}
    ::= { fsAppPriPortTable 1 }

FsAppPriPortEntry ::= 
SEQUENCE {
    fsAppPriPortNumber	       InterfaceIndex,
    fsAppPriAdminMode          DcbAdminMode,
    fsAppPriDcbxOperState      DcbState,
    fsAppPriDcbxStateMachine   DcbStateMachineType,
    fsAppPriClearTLVCounters   TruthValue,
    fsAppPriTxTLVCounter       Counter32,
    fsAppPriRxTLVCounter       Counter32,
    fsAppPriRxTLVErrors	       Counter32,
    fsAppPriAppProtocols       Unsigned32,
    fsAppPriRowStatus          RowStatus,
    fsAppPriSyncd              TruthValue,
    fsAppPriError	           TruthValue,
    fsAppPriDcbxStatus         DcbxStatus
    }

fsAppPriPortNumber OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   not-accessible 
    STATUS       current
    DESCRIPTION
       "This indicates the interface identifier for which the application priority 
        configuration is applied." 
    ::= { fsAppPriPortEntry 1 }

fsAppPriAdminMode    OBJECT-TYPE
    SYNTAX      DcbAdminMode
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object is used to configure the admin mode for application 
        priority feature on the given port.

            - If this object is configured as 'auto(0)' on a port then all the 
              operational(local) parameters and fsAppPriDcbxOperState of the 
              application priority feature will be determined by the DCBX state 
              machine.

            - If this object is configured as 'auto(0)' on a port and if 
              fsDCBXAdminStatus is disabled, then operational(local) parameters 
              will not be determined by the DCBX state machine and 
              Operational(local) parameters will take the value of admin 
              configuration Parameters  and the fsAppPriDcbxOperState will be 
              moved to 'Init'.

            - If this object is configured as 'on(1)'on a port,then all the 
              opertaional(local) parameters for the application priority feature 
              will not be determined by the DCBX state  machine.
              Operational(local) parameters will be same as admin configuration 
              parameters and fsAppPriDcbxOperState will be moved to 'Init'.  

            - If this object is configured as'off(2)'on a port,the application
              priority feature will be disabled on that port and hence the
              operational parameters do not have any impact in the system.
              The operational(local) parameters will be same as admin configuration
              parameters and fsAppPriOperState will be moved to 'off' State. 

              The Operational(local) parameters do not have any impact in the 
              system if this object value is set as 'auto(0)' or 'on(1)' and
              fsAppPriModuleStatus is set as disabled. fsAppPriDcbxOperState will
              be moved to 'off' State in this scenario."

    DEFVAL { off }
    ::= { fsAppPriPortEntry 2 }

fsAppPriDcbxOperState    OBJECT-TYPE
    SYNTAX      DcbState
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "This object is used to display the current state of the
	    DCBX state machine for the application priority feature on the given 
        port.

        If state is Off '(1)', then application priority Operational(local)
        parameters will be same as application priority admin Configuration 
        Parameters and will not have any impact in the system(hardware).

        If state is init '(1)', then application priority Operational(local)
        parameters will be same as application priority admin Configuration 
        Parameters.

        If state is rxrecommended '(2)', then application priority 
        Operational(local) parameters will be same as application priority
        remote parameters."

    ::= { fsAppPriPortEntry 3 }

fsAppPriDcbxStateMachine    OBJECT-TYPE
    SYNTAX      DcbStateMachineType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object is used to display the DCBX state machine type that is
        used by the application priority feature on the given port."

    ::= { fsAppPriPortEntry 4 }

fsAppPriClearTLVCounters    OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object when set to TRUE, clears the following counters
         associated with this port and resets its value to FALSE:
	    fsAppPriTxTLVCounter,
	    fsAppPriRxTLVCounter,
	    fsAppPriRxTLVErrors.
       
       Setting this object to FALSE has no effect."

    DEFVAL { false }
    ::= { fsAppPriPortEntry 5 }

fsAppPriTxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
           "This object is used to keep track of the number of application 
           priority TLVs that are transmitted from the port. This counter will 
           be  incremented every time an application priority TLV is generated
           and transmitted to LLDP."

    ::= { fsAppPriPortEntry 6 }

fsAppPriRxTLVCounter    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of application priority
        TLVs that are received in this port. This counter will be incremented
        every time when there is application priority TLV is received from LLDP."

    ::= { fsAppPriPortEntry 7 }

fsAppPriRxTLVErrors    OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the number of malformed TLVs received by 
         application priority module. This counter will be incremented every 
         time an application priority TLV is dropped by the
         application priority module."

    ::= { fsAppPriPortEntry 8 }

fsAppPriAppProtocols    OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
          "This object indicates the total number of application priority
          entries present in the last TLV received from its peer"

    ::= { fsAppPriPortEntry 9 }

fsAppPriRowStatus      OBJECT-TYPE
    SYNTAX            RowStatus
    MAX-ACCESS        read-write
    STATUS            current
    DESCRIPTION
        "This object is used to create and delete a row in this table.

         Only 'createAndGo', and 'destroy' values are allowed for this
         object. 'createAndWait' and 'notInService' values are not allowed.

         An entry can be created in this table only when the interface is 
         present in the system and mapped to a virtual context.

	     Entries can be created in this table for physical and port-channel
	     interfaces. 

         When an interface is deleted or unmapped from a virtual context,
         the corresponding entry from this table will be deleted.
         
         When the object is read, it will always return 'Active'." 
    ::= { fsAppPriPortEntry 10 }

fsAppPriSyncd OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates whether the current DesiredConfig has been 
       received by the peer. This object is applicable only when the DCBX 
       operating version is CEE"
    ::= { fsAppPriPortEntry 11 }

fsAppPriError OBJECT-TYPE
    SYNTAX       TruthValue
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates that an error has occurred during the 
       configuration exchange with the peer. Error is also set to TRUE when the 
       Compatible method for the feature fails.This object is applicable only 
       when the DCBX operating version is CEE"
    ::= { fsAppPriPortEntry 12 }

fsAppPriDcbxStatus  OBJECT-TYPE
    SYNTAX       DcbxStatus
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object indicates the current DCBx status of the Application 
       Priority feature."
    ::= { fsAppPriPortEntry 13 }


-- ****************************************************************************
--  Application Priority Table Extension.
-- ****************************************************************************
    fsAppPriXAppTable OBJECT-TYPE
       SYNTAX   SEQUENCE OF FsAppPriXAppEntry
       MAX-ACCESS not-accessible
       STATUS current
       DESCRIPTION
           "This table augments lldpXdot1dcbxAdminApplicationPriorityAppTable,
            describing parameters of an application priority table."
    ::= { fsAppPriObjects 3 }

    fsAppPriXAppEntry OBJECT-TYPE
        SYNTAX      FsAppPriXAppEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table contains management information applicable to
             an application entry."
        AUGMENTS { lldpXdot1dcbxAdminApplicationPriorityAppEntry }
        ::= { fsAppPriXAppTable 1 }
    
    FsAppPriXAppEntry ::=
        SEQUENCE {
          fsAppPriXAppRowStatus RowStatus
                 }

    fsAppPriXAppRowStatus OBJECT-TYPE
        SYNTAX     RowStatus
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION 
            "The row status of Application Priority Mapping Entry"
    ::= { fsAppPriXAppEntry 1 }
   
    fslldpXdot1dcbxLocApplicationPriorityBasicTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF
        FsLldpXdot1dcbxLocApplicationPriorityBasicEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains one row per port for the IEEE 802.1
        organizationally defined LLDP Application PrioriyTLV on
        the local system known to this agent"
    ::= { fsAppPriObjects 4 }

    fslldpXdot1dcbxLocApplicationPriorityBasicEntry OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxLocApplicationPriorityBasicEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Information about the IEEE 802.1 organizational defined
        Application PriorityTLV LLDP extension."
    INDEX         { lldpV2LocPortIfIndex }
    ::= { fslldpXdot1dcbxLocApplicationPriorityBasicTable 1 }

    FsLldpXdot1dcbxLocApplicationPriorityBasicEntry ::= SEQUENCE {
       fslldpXdot1dcbxLocApplicationPriorityWilling    TruthValue
    }
 
    fslldpXdot1dcbxLocApplicationPriorityWilling OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Indicates if the local system is willing to accept
        the Application Priority configuration of the remote system."
    ::= { fslldpXdot1dcbxLocApplicationPriorityBasicEntry 1}

    fslldpXdot1dcbxAdminApplicationPriorityBasicTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF
        FsLldpXdot1dcbxAdminApplicationPriorityBasicEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains one row per port for the IEEE 802.1
        organizationally defined LLDP Application PrioriyTLV on
        the local system known to this agent"
    ::= { fsAppPriObjects 5 }

    fslldpXdot1dcbxAdminApplicationPriorityBasicEntry OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxAdminApplicationPriorityBasicEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Information about the IEEE 802.1 organizational defined
        Application PriorityTLV LLDP extension."
    INDEX         { lldpV2LocPortIfIndex }
    ::= { fslldpXdot1dcbxAdminApplicationPriorityBasicTable 1 }
  
    FsLldpXdot1dcbxAdminApplicationPriorityBasicEntry ::= SEQUENCE {
       fslldpXdot1dcbxAdminApplicationPriorityWilling    TruthValue
    }
  
    fslldpXdot1dcbxAdminApplicationPriorityWilling OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "Indicates if the local system is willing to accept the
        Application Priority configuration of the remote system."
    REFERENCE
        "35.5.5"
    DEFVAL      { false }
    ::= { fslldpXdot1dcbxAdminApplicationPriorityBasicEntry 1}
    
    fslldpXdot1dcbxRemApplicationPriorityBasicTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF FsLldpXdot1dcbxRemApplicationPriorityBasicEntry
                  
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains one row per port for the IEEE 802.1
        organizationally defined LLDP Application Prioriy TLV
        on the local system known to this agent"
    ::= { fsAppPriObjects 6 }

    fslldpXdot1dcbxRemApplicationPriorityBasicEntry OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxRemApplicationPriorityBasicEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Information about the IEEE 802.1 organizational defined
        Application Priority TLV LLDP extension."
    INDEX         { 
                  lldpV2RemTimeMark,
                  lldpV2RemLocalIfIndex,
                  lldpV2RemLocalDestMACAddress,
                  lldpV2RemIndex
    }
    ::= { fslldpXdot1dcbxRemApplicationPriorityBasicTable 1 }

    FsLldpXdot1dcbxRemApplicationPriorityBasicEntry ::= SEQUENCE {
        fslldpXdot1dcbxRemApplicationPriorityWilling    TruthValue
    }

    fslldpXdot1dcbxRemApplicationPriorityWilling OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Indicates if the local system is willing to accept the 
        Application Priority configuration of the remote system."
    ::= { fslldpXdot1dcbxRemApplicationPriorityBasicEntry 1}

----------------------       
-- TC supported table
----------------------

fslldpXdot1dcbxConfigTCSupportedTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF FsLldpXdot1dcbxConfigTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "A table that controls selection of Traffic Classes Supported
        TLVs to be transmitted on individual ports."
    ::= { fsTCSupportedObjects 1 }

fslldpXdot1dcbxConfigTCSupportedEntry OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxConfigTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "LLDP configuration information that controls the
        transmission of IEEE 802.1 organizationally defined Traffic
        Classes Supported TLV on LLDP transmission capable ports.

        This configuration object augments the lldpV2PortConfigEntry of
        the LLDP-MIB, therefore it is only present along with the port
        configuration defined by the associated lldpV2PortConfigEntry
        entry.

        Each active lldpConfigEntry is restored from non-volatile
        storage (along with the corresponding lldpV2PortConfigEntry)
        after a re-initialization of the management system."
    AUGMENTS     { lldpV2PortConfigEntry }
    ::= { fslldpXdot1dcbxConfigTCSupportedTable 1 }

  FsLldpXdot1dcbxConfigTCSupportedEntry ::= SEQUENCE {
    fslldpXdot1dcbxConfigTCSupportedTxEnable TruthValue
}


   fslldpXdot1dcbxConfigTCSupportedTxEnable OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "The fslldpXdot1dcbxConfigTCSupportedTxEnable, which is defined
        as a truth value and configured by the network management,
        determines whether the IEEE 802.1 organizationally defined
        port VLAN TLV transmission is allowed on a given LLDP
        transmission capable port.

        The value of this object is restored from non-volatile
        storage after a re-initialization of the management system."
    REFERENCE
        "35.5.1"
    DEFVAL         { false }
    ::= { fslldpXdot1dcbxConfigTCSupportedEntry 1 }



--
-- fslldpXdot1dcbxLocTCSupportedTable - Contains the information for the
-- Traffic Classes Supported TLV.
--

fslldpXdot1dcbxLocTCSupportedTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF FsLldpXdot1dcbxLocTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains one row per port for the IEEE 802.1
        organizationally defined LLDP TCSupported TLV on the local
        system known to this agent"
    ::= { fsTCSupportedObjects 2 }

fslldpXdot1dcbxLocTCSupportedEntry OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxLocTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Information about the IEEE 802.1 organizational defined
        Traffic Classes Supported TLV LLDP extension."
    INDEX         { lldpV2LocPortIfIndex }
    ::= { fslldpXdot1dcbxLocTCSupportedTable 1 }

FsLldpXdot1dcbxLocTCSupportedEntry ::= SEQUENCE {
    fslldpXdot1dcbxLocTCSupported    FsLldpXdot1dcbxTCSupportedCapacity
}

fslldpXdot1dcbxLocTCSupported OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxTCSupportedCapacity
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Indicates the number of traffic classes supported on the
        local system. A value of 0 indicates that 8 traffic classes
        are supported."
    REFERENCE
        "35.5.1"
    ::= { fslldpXdot1dcbxLocTCSupportedEntry 1 }

--
-- fslldpXdot1dcbxRemTCSupportedTable - Contains the information for the
-- Traffic Classes Supported TLV.
--

fslldpXdot1dcbxRemTCSupportedTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF FsLldpXdot1dcbxRemTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains one row per port for the IEEE 802.1
        organizationally defined LLDP TCSupported TLV on the local
        system known to this agent"
    ::= { fsTCSupportedObjects 3 }

fslldpXdot1dcbxRemTCSupportedEntry OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxRemTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Information about the IEEE 802.1 organizational defined
        Traffic Classes Supported TLV LLDP extension."
    INDEX         {
                  lldpV2RemTimeMark,
                  lldpV2RemLocalIfIndex,
                  lldpV2RemLocalDestMACAddress,
                  lldpV2RemIndex
    }
    ::= { fslldpXdot1dcbxRemTCSupportedTable 1 }

FsLldpXdot1dcbxRemTCSupportedEntry ::= SEQUENCE {
    fslldpXdot1dcbxRemTCSupported    FsLldpXdot1dcbxTCSupportedCapacity
}

fslldpXdot1dcbxRemTCSupported OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxTCSupportedCapacity
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Indicates the number of traffic classes supported on the
        local system. A value of 0 indicates that 8 traffic classes
        are supported."
    REFERENCE
        "35.5.1"
    ::= { fslldpXdot1dcbxRemTCSupportedEntry 1 }


-- fslldpXdot1dcbxAdminTCSupportedTable - Contains the information for
-- the Traffic Classes Supported TLV.
--

fslldpXdot1dcbxAdminTCSupportedTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF FsLldpXdot1dcbxAdminTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains one row per port for the IEEE 802.1
        organizationally defined LLDP TCSupported TLV on the local
        system known to this agent"
    ::= { fsTCSupportedObjects 4 }

fslldpXdot1dcbxAdminTCSupportedEntry OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxAdminTCSupportedEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "Information about the IEEE 802.1 organizational defined
        Traffic Classes Supported TLV LLDP extension."
    INDEX         { lldpV2LocPortIfIndex }
    ::= { fslldpXdot1dcbxAdminTCSupportedTable 1 }

FsLldpXdot1dcbxAdminTCSupportedEntry ::= SEQUENCE {
    fslldpXdot1dcbxAdminTCSupported   FsLldpXdot1dcbxTCSupportedCapacity
}

fslldpXdot1dcbxAdminTCSupported OBJECT-TYPE
    SYNTAX        FsLldpXdot1dcbxTCSupportedCapacity
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "Indicates the number of traffic classes supported on the
        local system. A value of 0 indicates that 8 traffic classes
        are supported.

        Note that generaly this represents a physical characteristic
        of the device.  However, some devices may allow this to be
        programmable, in which case MAX-ACCESS would change to
        read-write"
    REFERENCE
        "35.5.1"
    ::= { fslldpXdot1dcbxAdminTCSupportedEntry 1 }


--CEE scalars

fsDcbxCEEGlobalEnableTrap   OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
           "This object enables or disables the transmission of
            TRAP notification messages for CEE.
           
            The user has to enter the corresponding INTEGER VALUE 
            to set the bit.
            
            Each bit in this object corresponds to a particular trap
            If the corresponding bit is set, then the particular
            trap is enabled. The following traps are supported:
            
            Bit Position       Trap 
            1               LLDP Rx disabled trap. 
            2               LLDP Tx disabled trap.
            3               Duplicate TLV detected trap Enable/Disable. 
            4               Peer Timed out/ No Response trap Enable/Disable.
            5               Reserved 
            6               No Feature TLV trap Enable/Disable.
            7               Feature Error trap Enable/Disable.
            8               Application protocol not supported trap Enable/Disable.
            9               Version Change Trap Enable/Disable.

            The remaining bits are unused. More than one trap can also be 
            enabled. 

            For example, if bits 1 and 2 are set, then 
            fdDcbxCEELldpRxDisabledTrap and  fdDcbxCEELldpTxDisabledTrap is enabled in the module."

    DEFVAL { 0 }
    ::= { fsDcbxCEEScalars 1 }

fsDcbxCEEGeneratedTrapCount OBJECT-TYPE
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
       "This object indicates the number of Traps sent. This counter
        will be incremented every time when there is any trap sent"

   ::= { fsDcbxCEEScalars 2 }

fsDcbxCEEClearCounters   OBJECT-TYPE
    SYNTAX        TruthValue
    MAX-ACCESS    read-write
    STATUS        current
    DESCRIPTION
        "This object clears the following counters for the DCBX CEE control 
        state machine and resets its value to FALSE when set to TRUE
                     fsDcbxTxTLVCounter,
                     fsDcbxRxTLVCounter,
                     fsDcbxRxTLVErrors.
                            
       Setting this object to FALSE has no effect."

    DEFVAL { false }
    ::= {fsDcbxCEEScalars 3 }


--DCBX CEE Control State Machine Table

fsDcbxCEECtrlTable OBJECT-TYPE
    SYNTAX        SEQUENCE OF FsDcbxCEECtrlEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This table contains the state variables of control state machine
	 for each port operating in CEE version." 
    ::= { fsDcbxCEEObjects 2 }

fsDcbxCEECtrlEntry OBJECT-TYPE
    SYNTAX        FsDcbxCEECtrlEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This object specified the information about Control state variables and
        control TLV counters as defined in DCBX base specification Rev 1.01."
    INDEX         { fsDcbxCEECtrlPortNumber }
    ::= { fsDcbxCEECtrlTable 1 }

FsDcbxCEECtrlEntry ::= SEQUENCE {
    fsDcbxCEECtrlPortNumber         InterfaceIndex,
    fsDcbxCEECtrlSeqNo              Unsigned32,
    fsDcbxCEECtrlAckNo              Unsigned32,
    fsDcbxCEECtrlRcvdAckNo          Unsigned32,
    fsDcbxCEECtrlTxTLVCounter       Counter32,
    fsDcbxCEECtrlRxTLVCounter       Counter32,
    fsDcbxCEECtrlRxTLVErrorCounter  Counter32
}
fsDcbxCEECtrlPortNumber OBJECT-TYPE
    SYNTAX       InterfaceIndex
    MAX-ACCESS   not-accessible
    STATUS       current
    DESCRIPTION
       "This object indicates the interface identifier for which the
        control state variables are maintained."
    ::= { fsDcbxCEECtrlEntry 1 }

fsDcbxCEECtrlSeqNo OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the current sequence number that is sent
        in DCBX control TLVs in CEE mode." 
    ::= { fsDcbxCEECtrlEntry 2 }

fsDcbxCEECtrlAckNo OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the current ACK number that is to be sent
        to peer in DCBX control TLVs in CEE mode." 
    ::= { fsDcbxCEECtrlEntry 3 }

fsDcbxCEECtrlRcvdAckNo OBJECT-TYPE
    SYNTAX       Unsigned32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the current ACK number that is sent by peer
        in DCBX control TLV in CEE mode." 
    ::= { fsDcbxCEECtrlEntry 4 }

fsDcbxCEECtrlTxTLVCounter OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the number of DCBX CEE frames transmitted
       per interface." 
    ::= { fsDcbxCEECtrlEntry 5 }

fsDcbxCEECtrlRxTLVCounter OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the number of DCBX CEE frames received
       per interface." 
    ::= { fsDcbxCEECtrlEntry 6 }

fsDcbxCEECtrlRxTLVErrorCounter OBJECT-TYPE
    SYNTAX       Counter32
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "This object specifies the number of DCBX CEE frames discarded
       due to errors in the frame." 
    ::= { fsDcbxCEECtrlEntry 7 }

-- ****************************************************************************
--  fsDCbNotification subtree contains the objects related to notifications.
-- ****************************************************************************
fsDCBTraps OBJECT IDENTIFIER ::= { fsDcbNotificationObjects 0 }
fsDCBTrapObjects OBJECT IDENTIFIER ::= { fsDcbNotificationObjects 1 }

    fsDcbTrapPortNumber OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "This object refers to the Port number for which the DCBX feature is
        enabled. And will be used in sending the feature port specific Traps."
    ::= { fsDCBTrapObjects 1 }

    fsDcbPeerUpStatus OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "This object refers to the DCBX Peer Up or Peer down status on the port.
        If the value is 'true', then the DCBX Peer will be present
        and UP. If the value is 'false', then the DCBX Peer will be absent
        and DOWN."
    ::= { fsDCBTrapObjects 2 }
 
    fsDcbFeatureType OBJECT-TYPE
    SYNTAX       INTEGER {
                     priorityGroup(1),
                     priorityFlowControl(2),
                     applicationPriority (3)
                 }

    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "This object refers to the DCBX  feature type."
    ::= { fsDCBTrapObjects 3 }

    fsETSModuleStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
           fsETSModuleStatus 
                }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap when there is a change
            in the ETS Module status.. This trap is generated only if the 
            corresponding bit (bit 1) in the fsETSGlobalEnableTrap is set to 
            send the trap."
        ::= { fsDCBTraps 1 }

    fsETSPortAdminStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsETSAdminMode
            }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap in the following 
            conditions.
            Whenever there is a change in the ETS administrative status and the
            corresponding bit (bit 2) in the fsETSGlobalEnableTrap is set
            to send the trap for ETS administrative mode change. "
        ::= {fsDCBTraps 2 }   

    fsETSPortPeerStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsDcbPeerUpStatus
            }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap in the following 
            conditions.
            Whenever there is a change in the DCBX Peer Status and the 
            corresponding bit (bit 3) in the fsETSGlobalEnableTrap is set
            to send the trap for Peer Up or Peer Down."
        ::= {fsDCBTraps 3 }   

    fsETSPortDcbxOperStateTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsETSDcbxOperState
            }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap in the following 
            conditions.
            Whenever there is a change in the ETS Operational State and the 
            corresponding bit (bit 4) in the fsETSGlobalEnableTrap is set
            to send the trap for ETS state machine state change."
        ::= {fsDCBTraps 4 }   

    fsPFCModuleStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
           fsPFCModuleStatus 
                }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap when there is a change
            in the PFC Module status is enabled. This trap is generated only if 
            the corresponding bit (bit 1) in the fsPFCGlobalEnableTrap is set 
            to send the trap."
        ::= { fsDCBTraps 5 }

    fsPFCPortAdminStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsPFCAdminMode	
            }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap in the following 
            conditions.
            Whenever there is a change in the PFC administrative Status and the 
            corresponding bit (bit 2) in the fsPFCGlobalEnableTrap is set
            to send the trap for PFC administrative Status change." 
        ::= {fsDCBTraps 6 }   

    fsPFCPortPeerStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsDcbPeerUpStatus
            }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap in the following 
            conditions.
            Whenever there is a change in the DCBX Peer Status and the 
            corresponding bit (bit 3) in the fsPFCGlobalEnableTrap is set
            to send the trap for Peer Up or Peer Down."
        ::= {fsDCBTraps 7 }   

    fsPFCPortDcbxOperStateTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsPFCDcbxOperState
            }
        STATUS   current
        DESCRIPTION
            "This object specifies the generation of trap in the following 
            conditions.
            Whenever there is a change in the PFC Operational State and the 
            corresponding bit (bit 4) in the fsPFCGlobalEnableTrap is set
            to send the trap for PFC state machine state change."
        ::= {fsDCBTraps 8 }   

    fsAppPriModuleStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
           fsAppPriModuleStatus 
                }
        STATUS   current
        DESCRIPTION
              "This object specifies the generation of trap whenever there is a
              change in the application priority Module status. This trap is 
              generated only if  the corresponding bit (bit 1) in the 
              fsAppPriGlobalEnableTrap is set to send the trap."
        ::= { fsDCBTraps 9 }

    fsAppPriPortAdminStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsAppPriAdminMode
            }
        STATUS   current
        DESCRIPTION
               "This object specifies the generation of trap whenever there is a
               change in the application priority administrative Status and the
               corresponding bit (bit 2) in the fsAppPriGlobalEnableTrap is set 
               to send the trap for application priority administrative Status 
               change." 
        ::= {fsDCBTraps 10 }   

    fsAppPriPortPeerStatusTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsDcbPeerUpStatus
            }
        STATUS   current
        DESCRIPTION
                "This object specifies the generation of trap whenever there is 
                a change in the DCBX Peer Status and the  corresponding bit 
                (bit 3) in the fsAppPriGlobalEnableTrap is set to send the trap
                for Peer Up or Peer Down."
        ::= {fsDCBTraps 11 }   

    fsAppPriPortDcbxOperStateTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber,
            fsAppPriDcbxOperState
            }
        STATUS   current
        DESCRIPTION
              "This object specifies the generation of trap whenever there is a 
              change in the application priority Operational State and the  
              corresponding bit (bit 4) in the fsAppPriGlobalEnableTrap is set
              to send the trap for application priority state machine state 
              change."
        ::= {fsDCBTraps 12 }   

    fsDcbxCEELldpTxDisabledTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber
            }
        STATUS   current
        DESCRIPTION
              "This object specifies the generation of trap 
              when LLDP Tx is disabled." 
        ::= {fsDCBTraps 13 }   

    fsDcbxCEELldpRxDisabledTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber
            }
        STATUS   current
        DESCRIPTION
              "This object specifies the generation of trap 
              when LLDP Rx is disabled." 
        ::= {fsDCBTraps 14 }  

    fsDcbxCEEDupControlTlvTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber
            }
        STATUS   current
        DESCRIPTION
              "This object specifies sending of trap
              when a duplicate control Sub-TLV is detected."
        ::= {fsDCBTraps 15 }  

    fsDcbxCEEPeerNoRespTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber, fsDcbFeatureType
            }
        STATUS   current
        DESCRIPTION
              "This object specifies sending of trap
              when the peer has stopped responding as evidenced by
              an LLDP timeout event."
        ::= {fsDCBTraps 16 } 

    fsDcbxCEEDupFeatureTlvTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber, fsDcbFeatureType
            }
        STATUS   current
        DESCRIPTION
              "This object specifies sending of trap
              when a duplicate feature Sub-TLV is detected."
        ::= {fsDCBTraps 17 } 

    fsDcbxCEEPeerNoFeatureTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber, fsDcbFeatureType
            }
        STATUS   current
        DESCRIPTION
              "This object specifies sending of trap
              when a feature is not supported on by a peer."
        ::= {fsDCBTraps 18 }  

    fsDcbxCEEFeatureErrorTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber, fsDcbFeatureType
            }
        STATUS   current
        DESCRIPTION
              "This object specifies sending of trap
              whenever fsDcbxCEEFeatureError is true and there is no
              other trap defined for the specific error condition."
        ::= {fsDCBTraps 19 }

    fsDcbxCEEAppPriProtocolNotSuppTrap NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber
            }
        STATUS   current
        DESCRIPTION
              "This object specifies sending of trap
              when the Application protocol TLV received with one or more
              unsupported application protocol."
        ::= {fsDCBTraps 20 }

    fsDcbxCEEVersionChanged NOTIFICATION-TYPE
        OBJECTS  {
            fsDcbTrapPortNumber, fsDCBXMode
            }
        STATUS   current
        DESCRIPTION
              "This object specifies sending of trap
              when the Application protocol TLV is received
              with a different version."
        ::= {fsDCBTraps 21 }
END

