-- =================================================================
-- Copyright (C) 1996-2002 by  H3C TECHNOLOGIES. All rights reserved.
--
-- Description: QOS Profile MIB
-- Version: V2.1
-- History:
--   V1.0(Initial version) 6th Jul 2004
--     V2.0 2004-10-12 updated by gaolong
--        Import Integer32.
--        Modify h3cQoSProfile to h3cQosProfile
--        Replace INTEGER with Integer32.
--        Change value of h3cQoSTrafPrioPolicedServiceType from underscores to hyphens.
--        Fix a default value error of h3cQoSTrafPrioPolicedServiceType.
--        Add MODULE clause for h3cQoSProfMibCompliance.
--   v2.1 2004-12-23 changed by zhuangyu
--        1 Add an enumeration in h3cQoSTrafLmtConformActionType
--        2 Add h3cQoSTrafLmtConformCos and h3cQoSTrafLmtConformDscp in h3cQoSTrafficLimitTable
--
-- =================================================================
H3C-QOS-PROFILE-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            h3cCommon
                FROM HUAWEI-3COM-OID-MIB
            OBJECT-GROUP, MODULE-COMPLIANCE, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
            IpAddress, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE, Integer32
                FROM SNMPv2-SMI
            RowStatus, TruthValue, MacAddress, TEXTUAL-CONVENTION
                FROM SNMPv2-TC;


        h3cQosProfile MODULE-IDENTITY
            LAST-UPDATED "200407060000Z"
            ORGANIZATION
                "Hangzhou H3C Tech. Co., Ltd."
            CONTACT-INFO
                "Platform Team Hangzhou H3C Tech. Co., Ltd.
                Hai-Dian District Beijing P.R. China
                http://www.h3c.com
                Zip:100085
                "
            DESCRIPTION
                "The private MIB file includes the general information QoS profile."
            ::= { h3cCommon 17 }


--
-- Textual conventions
--
        H3cQoSDirection ::= TEXTUAL-CONVENTION
            STATUS current
            DESCRIPTION
                "Description."
            SYNTAX INTEGER
                {
                invalid(0),
                input(1),
                ouput(2)
                }


--
-- Node definitions
--
        h3cQoSProfObjects OBJECT IDENTIFIER ::= { h3cQosProfile 1 }

        h3cQoSProf OBJECT IDENTIFIER ::= { h3cQoSProfObjects 1 }

        h3cQoSProfTable OBJECT-TYPE
            SYNTAX SEQUENCE OF H3cQoSProfEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "QoS profile table is used to config the qos profiles."
            ::= { h3cQoSProf 1 }

        h3cQoSProfEntry OBJECT-TYPE
            SYNTAX H3cQoSProfEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { h3cQoSProfIndex }
            ::= { h3cQoSProfTable 1 }

        H3cQoSProfEntry ::=
            SEQUENCE {
                h3cQoSProfIndex
                    Integer32,
                h3cQoSProfName
                    OCTET STRING,
                h3cQoSProfActionNumber
                    Integer32,
                h3cQoSProfRowStatus
                    RowStatus
             }

        h3cQoSProfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "QoS profile table index."
            ::= { h3cQoSProfEntry 1 }

        h3cQoSProfName OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..32))
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "QoS profile name."
            ::= { h3cQoSProfEntry 2 }

        h3cQoSProfActionNumber OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "Total number of actions of a QoS profile."
            ::= { h3cQoSProfEntry 3 }

        h3cQoSProfRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "RowStatus,Now support three state:CreateAndGo,Active,Destroy."
            ::= { h3cQoSProfEntry 4 }

        h3cQoSAction OBJECT IDENTIFIER ::= { h3cQoSProfObjects 2 }

        h3cQoSTrafficLimitTable OBJECT-TYPE
            SYNTAX SEQUENCE OF H3cQoSTrafficLimitEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Traffic limit table is used to set the average rate or peak rate of the flow.
                IP and Link ACL rules can be applied simultaneously,
                IP and User based ACL rules can not be applied simultaneously,
                Link and User based ACL rules can not be applied simultaneously.
                Unused ones is represented with default values."
            ::= { h3cQoSAction 1 }

        h3cQoSTrafficLimitEntry OBJECT-TYPE
            SYNTAX H3cQoSTrafficLimitEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { h3cQoSTrafLmtProfIndex, h3cQoSTrafLmtActionIndex }
            ::= { h3cQoSTrafficLimitTable 1 }

        H3cQoSTrafficLimitEntry ::=
            SEQUENCE {
                h3cQoSTrafLmtProfIndex
                    Integer32,
                h3cQoSTrafLmtActionIndex
                    Integer32,
                h3cQoSTrafLmtDirection
                    H3cQoSDirection,
                h3cQoSTrafLmtUserAclNum
                    Integer32,
                h3cQoSTrafLmtUserAclRule
                    Integer32,
                h3cQoSTrafLmtIpAclNum
                    Integer32,
                h3cQoSTrafLmtIpAclRule
                    Integer32,
                h3cQoSTrafLmtLinkAclNum
                    Integer32,
                h3cQoSTrafLmtLinkAclRule
                    Integer32,
                h3cQoSTrafLmtTargetRateMbps
                    Integer32,
                h3cQoSTrafLmtTargetRateKbps
                    Integer32,
                h3cQoSTrafLmtPeakRate
                    Integer32,
                h3cQoSTrafLmtCIR
                    Integer32,
                h3cQoSTrafLmtCBS
                    Integer32,
                h3cQoSTrafLmtEBS
                    Integer32,
                h3cQoSTrafLmtPIR
                    Integer32,
                h3cQoSTrafLmtConformLocalPre
                    Integer32,
                h3cQoSTrafLmtConformActionType
                    INTEGER,
                h3cQoSTrafLmtExceedActionType
                    INTEGER,
                h3cQoSTrafLmtExceedDscp
                    Integer32,
                h3cQoSTrafLmtExceedCos
                    Integer32,
                h3cQoSTrafLmtRowStatus
                    RowStatus,
                h3cQoSTrafLmtConformCos
                    Integer32,
                h3cQoSTrafLmtConformDscp
                    Integer32
             }

        h3cQoSTrafLmtProfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The index of QoS profile which the traffic-limit action belongs to."
            ::= { h3cQoSTrafficLimitEntry 1 }

        h3cQoSTrafLmtActionIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The index of traffic-limit action."
            ::= { h3cQoSTrafficLimitEntry 2 }

        h3cQoSTrafLmtDirection OBJECT-TYPE
            SYNTAX H3cQoSDirection
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The direction of traffic-limit action."
            ::= { h3cQoSTrafficLimitEntry 3 }

        h3cQoSTrafLmtUserAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 5000..5999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of user-based acl group."
            DEFVAL { 0 }
            ::= { h3cQoSTrafficLimitEntry 4 }

        h3cQoSTrafLmtUserAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of user-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficLimitEntry 5 }

        h3cQoSTrafLmtIpAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 2000..3999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of Ip-based acl group."
            DEFVAL { 0 }
            ::= { h3cQoSTrafficLimitEntry 6 }

        h3cQoSTrafLmtIpAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of IP-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficLimitEntry 7 }

        h3cQoSTrafLmtLinkAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 4000..4999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of Link-based acl group"
            DEFVAL { 0 }
            ::= { h3cQoSTrafficLimitEntry 8 }

        h3cQoSTrafLmtLinkAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of Link-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficLimitEntry 9 }

        h3cQoSTrafLmtTargetRateMbps OBJECT-TYPE
            SYNTAX Integer32 (0..10000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Target rate:Mbps
                Some products only support Mbps,but others support Kbps,so
                Kbps and Mbps should be supportted mutually exclusively on the same
                product."
            ::= { h3cQoSTrafficLimitEntry 10 }

        h3cQoSTrafLmtTargetRateKbps OBJECT-TYPE
            SYNTAX Integer32 (0..10000000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Target rate:Kbps.
                Some products only support Kbps,but others support Mbps,so
                Kbps and Mbps should be supportted mutually exclusively on the same
                product."
            ::= { h3cQoSTrafficLimitEntry 11 }

        h3cQoSTrafLmtPeakRate OBJECT-TYPE
            SYNTAX Integer32 (0 | 64..8388608)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Peak rate"
            ::= { h3cQoSTrafficLimitEntry 12 }

        h3cQoSTrafLmtCIR OBJECT-TYPE
            SYNTAX Integer32 (0..34120000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Committed Information Rate.
                unit:kbps."
            ::= { h3cQoSTrafficLimitEntry 13 }

        h3cQoSTrafLmtCBS OBJECT-TYPE
            SYNTAX Integer32 (0..1048575)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Committed Burst Size.
                unit:byte."
            ::= { h3cQoSTrafficLimitEntry 14 }

        h3cQoSTrafLmtEBS OBJECT-TYPE
            SYNTAX Integer32 (0..268435455)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Excess Burst Size.
                unit:byte."
            ::= { h3cQoSTrafficLimitEntry 15 }

        h3cQoSTrafLmtPIR OBJECT-TYPE
            SYNTAX Integer32 (0..34120000)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Peak Information Rate.
                unit:kbps."
            ::= { h3cQoSTrafficLimitEntry 16 }

        h3cQoSTrafLmtConformLocalPre OBJECT-TYPE
            SYNTAX Integer32 (0..7)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The local precedence of conformed flow."
            ::= { h3cQoSTrafficLimitEntry 17 }

        h3cQoSTrafLmtConformActionType OBJECT-TYPE
            SYNTAX INTEGER
                {
                invalid(0),
                remark-cos(1),
                remark-drop-priority(2),
                remark-cos-drop-priority(3),
                remark-policed-service(4),
                remark-dscp(5)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The action type of conformed flow."
            DEFVAL { 1 }
            ::= { h3cQoSTrafficLimitEntry 18 }

        h3cQoSTrafLmtExceedActionType OBJECT-TYPE
            SYNTAX INTEGER
                {
                invalid(0),
                forward(1),
                drop(2),
                remarkdscp(3),
                exceed-cos(4)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The action type of non-conformed flow."
            DEFVAL { 1 }
            ::= { h3cQoSTrafficLimitEntry 19 }

        h3cQoSTrafLmtExceedDscp OBJECT-TYPE
            SYNTAX Integer32 (0..63 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The remarked DSCP value of non-conformed flow.
                DSCP 255 is used as default value and for get/get-next operation of this
                node. If the user does not set exceeding action as remarking DSCP, then value 255
                is returned for get/get-next operation.
                "
            DEFVAL { 255 }
            ::= { h3cQoSTrafficLimitEntry 20 }

        h3cQoSTrafLmtExceedCos OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The remarked COS value of non-conformed flow.
                COS 255 is used as default value and for get/get-next operation of this
                node. If the user does not set exceeding action as remarking COS, then value 255
                is returned for get/get-next operation.
                "
            DEFVAL { 255 }
            ::= { h3cQoSTrafficLimitEntry 21 }

        h3cQoSTrafLmtRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "RowStatus,Now support three state:CreateAndGo,Active,Destroy."
            ::= { h3cQoSTrafficLimitEntry 22 }

        h3cQoSTrafLmtConformCos OBJECT-TYPE
            SYNTAX Integer32 (0..7|255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "If the user chooses remark-cos value of the h3cQoSTrafLmtConformActionType,
                this object can be used to set the conform cos value.
                There are some enumerations as follows:
                best-effort         Specify best-effort priority(0)
                background          Specify background priority(1)
                spare               Specify spare priority(2)
                excellent-effort    Specify excellent-effort priority(3)
                controlled-load     Specify controlled-load priority(4)
                video               Specify video priority(5)
                voice               Specify voice priority(6)
                network-management  Specify network-management priority(7)
                255 indicates invalid value. "
              DEFVAL      { 255 }
            ::= { h3cQoSTrafficLimitEntry 23 }

        h3cQoSTrafLmtConformDscp OBJECT-TYPE
            SYNTAX Integer32 (0..63|255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "If the user chooses remark-dscp value of the h3cQoSTrafLmtConformActionType,
                this object can be used to set the conform dscp value.
                There are some enumerations as follows:
                <0-63>  Value of DSCP
                af11    Specify Assured Forwarding 11 service(10)
                af12    Specify Assured Forwarding 12 service(12)
                af13    Specify Assured Forwarding 13 service(14)
                af21    Specify Assured Forwarding 21 service(18)
                af22    Specify Assured Forwarding 22 service(20)
                af23    Specify Assured Forwarding 23 service(22)
                af31    Specify Assured Forwarding 31 service(26)
                af32    Specify Assured Forwarding 32 service(28)
                af33    Specify Assured Forwarding 33 service(30)
                af41    Specify Assured Forwarding 41 service(34)
                af42    Specify Assured Forwarding 42 service(36)
                af43    Specify Assured Forwarding 43 service(38)
                be      Specify Best Effort service(0)
                cs1     Specify Class Selector 1 service(8)
                cs2     Specify Class Selector 2 service(16)
                cs3     Specify Class Selector 3 service(24)
                cs4     Specify Class Selector 4 service(32)
                cs5     Specify Class Selector 5 service(40)
                cs6     Specify Class Selector 6 service(48)
                cs7     Specify Class Selector 7 service(56)
                ef      Specify Expedited Forwarding service(46)
                255 indicates invalid value. "
              DEFVAL      { 255 }
              ::= { h3cQoSTrafficLimitEntry 24 }

        h3cQoSTrafficPriorityTable OBJECT-TYPE
            SYNTAX SEQUENCE OF H3cQoSTrafficPriorityEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Traffic priority table is used to remark the IP-precedence, DSCP or COS priority of packets.
                IP and Link ACL rules can be applied simultaneously,
                IP and User based ACL rules can not be applied simultaneously,
                Link and User based ACL rules can not be applied simultaneously.
                Unused ones is represented with default values.
                QOS policed service from DSCP mapping table is pre-defined in the h3cDscpMapTable in the H3C-LswQos-MIB.
                Policed service can decide what kind of QOS service the flow should get by the DSCP vlaue in the packets.
                Policed service includes remarking new DSCP,new EXP,new 802.1p priority,new local precedence and new drop priority.
                "
            ::= { h3cQoSAction 2 }

        h3cQoSTrafficPriorityEntry OBJECT-TYPE
            SYNTAX H3cQoSTrafficPriorityEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { h3cQoSTrafPrioProfIndex, h3cQoSTrafPrioActionIndex }
            ::= { h3cQoSTrafficPriorityTable 1 }

        H3cQoSTrafficPriorityEntry ::=
            SEQUENCE {
                h3cQoSTrafPrioProfIndex
                    Integer32,
                h3cQoSTrafPrioActionIndex
                    Integer32,
                h3cQoSTrafPrioDirection
                    H3cQoSDirection,
                h3cQoSTrafPrioUserAclNum
                    Integer32,
                h3cQoSTrafPrioUserAclRule
                    Integer32,
                h3cQoSTrafPrioIpAclNum
                    Integer32,
                h3cQoSTrafPrioIpAclRule
                    Integer32,
                h3cQoSTrafPrioLinkAclNum
                    Integer32,
                h3cQoSTrafPrioLinkAclRule
                    Integer32,
                h3cQoSTrafPrioDscp
                    Integer32,
                h3cQoSTrafPrioIpPre
                    Integer32,
                h3cQoSTrafPrioIpPreFromCos
                    TruthValue,
                h3cQoSTrafPrioCos
                    Integer32,
                h3cQoSTrafPrioCosFromIpPre
                    TruthValue,
                h3cQoSTrafPrioLocalPre
                    Integer32,
                h3cQoSTrafPrioPolicedServiceType
                    INTEGER,
                h3cQoSTrafPrioPolicedServiceDscp
                    Integer32,
                h3cQoSTrafPrioPolicedServiceExp
                    Integer32,
                h3cQoSTrafPrioPolicedServiceCos
                    Integer32,
                h3cQoSTrafPrioPolicedServiceLoaclPre
                    Integer32,
                h3cQoSTrafPrioPolicedServiceDropPriority
                    Integer32,
                h3cQoSTrafPrioRowStatus
                    RowStatus
             }

        h3cQoSTrafPrioProfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The index of QoS profile which the traffic-priority action belongs to."
            ::= { h3cQoSTrafficPriorityEntry 1 }

        h3cQoSTrafPrioActionIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The index of traffic-priority action."
            ::= { h3cQoSTrafficPriorityEntry 2 }

        h3cQoSTrafPrioDirection OBJECT-TYPE
            SYNTAX H3cQoSDirection
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The direction of traffic-priority action."
            ::= { h3cQoSTrafficPriorityEntry 3 }

        h3cQoSTrafPrioUserAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 5000..5999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of user-based acl group."
            DEFVAL { 0 }
            ::= { h3cQoSTrafficPriorityEntry 4 }

        h3cQoSTrafPrioUserAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of user-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficPriorityEntry 5 }

        h3cQoSTrafPrioIpAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 2000..3999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of Ip-based acl group."
            DEFVAL { 0 }
            ::= { h3cQoSTrafficPriorityEntry 6 }

        h3cQoSTrafPrioIpAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of IP-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficPriorityEntry 7 }

        h3cQoSTrafPrioLinkAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 4000..4999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of Link-based acl group"
            DEFVAL { 0 }
            ::= { h3cQoSTrafficPriorityEntry 8 }

        h3cQoSTrafPrioLinkAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of Link-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficPriorityEntry 9 }

        h3cQoSTrafPrioDscp OBJECT-TYPE
            SYNTAX Integer32 (0..63 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Set new DSCP value of specifed flow.
                DSCP 255 is used as default value and for get/get-next operation of this
                node. If the user does not set action as remarking DSCP, then value 255
                is returned for get/get-next operation.
                "
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 10 }

        h3cQoSTrafPrioIpPre OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Set Ip precedence value of specifed flow.
                Ip precedence 255 is used as default value and for get/get-next operation of this
                node. If the user does not set action as remarking Ip precedence, then value 255
                is returned for get/get-next operation.
                "
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 11 }

        h3cQoSTrafPrioIpPreFromCos OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Set Ip precedence according to vlan priority.
                False(2)is used as default value and for get/get-next operation of this
                node. If the user does not set action as remarking Ip precedence from COS, then value 2
                is returned for get/get-next operation.
                "
            DEFVAL { 2 }
            ::= { h3cQoSTrafficPriorityEntry 12 }

        h3cQoSTrafPrioCos OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Set vlan priority of specifed flow.
                COS 255 is used as default value and for get/get-next operation of this
                node. If the user does not set action as remarking COS, then value 255
                is returned for get/get-next operation.
                "
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 13 }

        h3cQoSTrafPrioCosFromIpPre OBJECT-TYPE
            SYNTAX TruthValue
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Set vlan priority according to IP precedence.
                False(2)is used as default value and for get/get-next operation of this
                node. If the user does not set action as remarking COS from Ip precedence, then value 2
                is returned for get/get-next operation.
                "
            DEFVAL { 2 }
            ::= { h3cQoSTrafficPriorityEntry 14 }

        h3cQoSTrafPrioLocalPre OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Set local precedence of specifed flow.
                Local precedence 255 is used as default value and for get/get-next operation of this
                node. If the user does not set action as remarking local precedence, then value 255
                is returned for get/get-next operation.
                "
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 15 }

        h3cQoSTrafPrioPolicedServiceType OBJECT-TYPE
            SYNTAX INTEGER
                {
                invalid(0),
                trust-dscp(2),
                new-dscp(3),
                untrusted(4)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The service type of policed Priority.
                Policed Service is not allowed to be set with remarking DSCP,IpPrecedence,IpPrecedenceFromCOS,COS,COSFromIpPrecedence and LocalPrecedence action simultaneously on the same product.
                Policed service is user-predefined qos policy parameters.
                trust-dscp(2) means to decide new police service parameters by the DSCP value in the packets.
                new-dscp(3) means to decide new police service parameters by the new DSCP value set by the user.
                And a DSCP mapping table should be pre-defined in the h3cDscpMapTable in the H3C-LswQos-MIB.
                Untrusted(4) means to set all the new DSCP,EXP,COS,Local precedence and Drop priority by the user.

                "
            DEFVAL { invalid }
            ::= { h3cQoSTrafficPriorityEntry 16 }

        h3cQoSTrafPrioPolicedServiceDscp OBJECT-TYPE
            SYNTAX Integer32 (0..63 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The service Dscp of policed Priority"
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 17 }

        h3cQoSTrafPrioPolicedServiceExp OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The service Exp of policed Priority"
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 18 }

        h3cQoSTrafPrioPolicedServiceCos OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The service cos of policed Priority"
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 19 }

        h3cQoSTrafPrioPolicedServiceLoaclPre OBJECT-TYPE
            SYNTAX Integer32 (0..7 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The service local pre of policed Priority"
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 20 }

        h3cQoSTrafPrioPolicedServiceDropPriority OBJECT-TYPE
            SYNTAX Integer32 (0..2 | 255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The service drop priority of proliced Priority"
            DEFVAL { 255 }
            ::= { h3cQoSTrafficPriorityEntry 21 }

        h3cQoSTrafPrioRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "RowStatus,Now support three state:CreateAndGo,Active,Destroy."
            ::= { h3cQoSTrafficPriorityEntry 22 }

        h3cQoSTrafficFilterTable OBJECT-TYPE
            SYNTAX SEQUENCE OF H3cQoSTrafficFilterEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Traffic filter table is used to deny or permit packets.
                IP and Link ACL rules can be applied simultaneously,
                IP and User based ACL rules can not be applied simultaneously,
                Link and User based ACL rules can not be applied simultaneously.
                Unused ones is represented with default values.
                To deny or permit packets,the ACL rules should be defined in h3cAcl table.
                The 'deny' or 'permit' action should be defined with ACL rules.
                In this table,a predefined ACL rules can be referenced in a specified QOS profile group.
                'Direction' means the ACL rules can be applied to the inbound or outbound packets.

                "
            ::= { h3cQoSAction 3 }

        h3cQoSTrafficFilterEntry OBJECT-TYPE
            SYNTAX H3cQoSTrafficFilterEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { h3cQoSTrafFilterProfIndex, h3cQoSTrafFilterActionIndex }
            ::= { h3cQoSTrafficFilterTable 1 }

        H3cQoSTrafficFilterEntry ::=
            SEQUENCE {
                h3cQoSTrafFilterProfIndex
                    Integer32,
                h3cQoSTrafFilterActionIndex
                    Integer32,
                h3cQoSTrafFilterDirection
                    H3cQoSDirection,
                h3cQoSTrafFilterUserAclNum
                    Integer32,
                h3cQoSTrafFilterUserAclRule
                    Integer32,
                h3cQoSTrafFilterIpAclNum
                    Integer32,
                h3cQoSTrafFilterIpAclRule
                    Integer32,
                h3cQoSTrafFilterLinkAclNum
                    Integer32,
                h3cQoSTrafFilterLinkAclRule
                    Integer32,
                h3cQoSTrafFilterRowStatus
                    RowStatus
             }

        h3cQoSTrafFilterProfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The index of QoS profile which the traffic-filter action belongs to."
            ::= { h3cQoSTrafficFilterEntry 1 }

        h3cQoSTrafFilterActionIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The index of traffic-filter action."
            ::= { h3cQoSTrafficFilterEntry 2 }

        h3cQoSTrafFilterDirection OBJECT-TYPE
            SYNTAX H3cQoSDirection
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The direction of traffic-filter action."
            ::= { h3cQoSTrafficFilterEntry 3 }

        h3cQoSTrafFilterUserAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 5000..5999 )
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of user-based acl group."
            DEFVAL { 0 }
            ::= { h3cQoSTrafficFilterEntry 4 }

        h3cQoSTrafFilterUserAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of user-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficFilterEntry 5 }

        h3cQoSTrafFilterIpAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 2000..3999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of Ip-based acl group."
            DEFVAL { 0 }
            ::= { h3cQoSTrafficFilterEntry 6 }

        h3cQoSTrafFilterIpAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of IP-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficFilterEntry 7 }

        h3cQoSTrafFilterLinkAclNum OBJECT-TYPE
            SYNTAX Integer32 (0 | 4000..4999)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The number of Link-based acl group"
            DEFVAL { 0 }
            ::= { h3cQoSTrafficFilterEntry 8 }

        h3cQoSTrafFilterLinkAclRule OBJECT-TYPE
            SYNTAX Integer32 (0..65535)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "The subitem of Link-based acl rule."
            DEFVAL { 65535 }
            ::= { h3cQoSTrafficFilterEntry 9 }

        h3cQoSTrafFilterRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "RowStatus,Now support three state:CreateAndGo,Active,Destroy."
            ::= { h3cQoSTrafficFilterEntry 10 }

        h3cQoSProfPortMapping OBJECT IDENTIFIER ::= { h3cQoSProfObjects 3 }

        h3cQoSProfPortMappingTable OBJECT-TYPE
            SYNTAX SEQUENCE OF H3cQoSProfPortMappingEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Port mapping table is used to apply the qos profile to the port.
                If a qos profile is applied to the port,
                then the port will have an entry in the table."
            ::= { h3cQoSProfPortMapping 1 }

        h3cQoSProfPortMappingEntry OBJECT-TYPE
            SYNTAX H3cQoSProfPortMappingEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { h3cQoSProfPortMappingIfIndex, h3cQoSProfPortMappingProfIndex }
            ::= { h3cQoSProfPortMappingTable 1 }

        H3cQoSProfPortMappingEntry ::=
            SEQUENCE {
                h3cQoSProfPortMappingIfIndex
                    Integer32,
                h3cQoSProfPortMappingProfIndex
                    Integer32,
                h3cQoSProfPortMappingRowStatus
                    RowStatus
             }

        h3cQoSProfPortMappingIfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..2147483647)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The ifindex which the specified QoS profile group is applied to."
            ::= { h3cQoSProfPortMappingEntry 1 }

        h3cQoSProfPortMappingProfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The index of specified QoS profile group."
            ::= { h3cQoSProfPortMappingEntry 2 }

        h3cQoSProfPortMappingRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "RowStatus,Now support three state:CreateAndGo,Active,Destroy."
            ::= { h3cQoSProfPortMappingEntry 3 }

        h3cQoSProfPortMappingModeTable OBJECT-TYPE
            SYNTAX SEQUENCE OF H3cQoSProfPortMappingModeEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Port mapping mode table is used to set mapping mode of the port.
                When a qos profile is applied to a port, the profile can have two working ways:
                1)The profile is the same for all the users connected to the port;
                2)The profile can be different for different users connected to the port;
                Port-based mode means the profile is the same for all the users.
                User-based mode means the profile is different for different users.
                Default value is port-based."
            ::= { h3cQoSProfPortMapping 2 }

        h3cQoSProfPortMappingModeEntry OBJECT-TYPE
            SYNTAX H3cQoSProfPortMappingModeEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { h3cQoSProfPortMappingModeIfIndex }
            ::= { h3cQoSProfPortMappingModeTable 1 }

        H3cQoSProfPortMappingModeEntry ::=
            SEQUENCE {
                h3cQoSProfPortMappingModeIfIndex
                    Integer32,
                h3cQoSProfPortMappingMode
                    INTEGER
             }

        h3cQoSProfPortMappingModeIfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..2147483647)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "The ifindex which the QoS profile mapping mode is applied to."
            ::= { h3cQoSProfPortMappingModeEntry 1 }

        h3cQoSProfPortMappingMode OBJECT-TYPE
            SYNTAX INTEGER
                {
                user-based(1),
                port-based(2)
                }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "The QoS profile mapping mode of specifed port."
            DEFVAL { 2 }
            ::= { h3cQoSProfPortMappingModeEntry 2 }

        h3cQoSProfDynPortMappingTable OBJECT-TYPE
            SYNTAX SEQUENCE OF H3cQoSProfDynPortMappingEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "Dynamic port mapping table is used to get user' port,MAC address,IP address,VLAN ID and user-specified qos profiles.
                Network managers can allocate different QOS profile groups to different users.
                Once the user is on line, then the user-specified QOS profiles will be dynamically applied to the port the user connects.
                Each port can have different groups of users simultaneously connected.
                Each group of users can have assiociation with multiple QOS profiles simultaneously.
                So the user's port,MAC address,IP address and VLAN ID will replace the source information in the ACL rules refered in the QOS profiles.
                Once the user is off line, then the user-specified QOS profiles will be dynamically deleted from the port the user connects."
            ::= { h3cQoSProfPortMapping 3 }

        h3cQoSProfDynPortMappingEntry OBJECT-TYPE
            SYNTAX H3cQoSProfDynPortMappingEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { h3cQoSProfDynPortMappingIfIndex, h3cQoSProfDynPortMappingUserSrcMAC }
            ::= { h3cQoSProfDynPortMappingTable 1 }

        H3cQoSProfDynPortMappingEntry ::=
            SEQUENCE {
                h3cQoSProfDynPortMappingIfIndex
                    Integer32,
                h3cQoSProfDynPortMappingUserSrcMAC
                    MacAddress,
                h3cQoSProfDynPortMappingUserName
                    OCTET STRING,
                h3cQoSProfDynPortMappingUserIPAddr
                    IpAddress,
                h3cQoSProfDynPortMappingUserVLANID
                    Integer32,
                h3cQoSProfDynPortMappingUserProfName
                    OCTET STRING
             }

        h3cQoSProfDynPortMappingIfIndex OBJECT-TYPE
            SYNTAX Integer32 (1..2147483647)
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "if index of the port user profile is applied."
            ::= { h3cQoSProfDynPortMappingEntry 1 }

        h3cQoSProfDynPortMappingUserSrcMAC OBJECT-TYPE
            SYNTAX MacAddress
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "User sourc MAC address."
            ::= { h3cQoSProfDynPortMappingEntry 2 }

        h3cQoSProfDynPortMappingUserName OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..32))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "User name."
            ::= { h3cQoSProfDynPortMappingEntry 3 }

        h3cQoSProfDynPortMappingUserIPAddr OBJECT-TYPE
            SYNTAX IpAddress
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "User IP address"
            ::= { h3cQoSProfDynPortMappingEntry 4 }

        h3cQoSProfDynPortMappingUserVLANID OBJECT-TYPE
            SYNTAX Integer32 (1..65535)
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "User VLAN ID."
            ::= { h3cQoSProfDynPortMappingEntry 5 }

        h3cQoSProfDynPortMappingUserProfName OBJECT-TYPE
            SYNTAX OCTET STRING (SIZE (1..32))
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "User profile name."
            ::= { h3cQoSProfDynPortMappingEntry 6 }

        h3cQoSProfPortMappingTraps OBJECT IDENTIFIER ::= { h3cQosProfile 2 }

        h3cQoSProfPortMappingError NOTIFICATION-TYPE
            STATUS current
            DESCRIPTION
                "An h3cQoSProfPortMappingError notification is generated
                when a qos profile fails to be applied on the port."
            ::= { h3cQoSProfPortMappingTraps 1 }

        h3cQoSProfMibConformance OBJECT IDENTIFIER ::= { h3cQosProfile 3 }

        h3cQoSProfMibCompliances OBJECT IDENTIFIER ::= { h3cQoSProfMibConformance 1 }

        h3cQoSProfMibCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION
                "The compliance statement for QoS Profile MIB."
            MODULE -- this module
                MANDATORY-GROUPS { h3cQoSProfGroup, h3cQoSActionGroup, h3cQoSProfPortMappingGroup, h3cQoSProfPortMappingTrapsGroup }
            ::= { h3cQoSProfMibCompliances 1 }

        h3cQoSProfMibGroups OBJECT IDENTIFIER ::= { h3cQoSProfMibConformance 2 }

        h3cQoSProfGroup OBJECT-GROUP
            OBJECTS { h3cQoSProfName, h3cQoSProfActionNumber, h3cQoSProfRowStatus }
            STATUS current
            DESCRIPTION
                "Included table:
                h3cQoSProfTable."
            ::= { h3cQoSProfMibGroups 1 }

        h3cQoSActionGroup OBJECT-GROUP
            OBJECTS { h3cQoSTrafLmtDirection, h3cQoSTrafLmtUserAclNum, h3cQoSTrafLmtUserAclRule, h3cQoSTrafLmtIpAclNum, h3cQoSTrafLmtIpAclRule,
                h3cQoSTrafLmtLinkAclNum, h3cQoSTrafLmtLinkAclRule, h3cQoSTrafLmtTargetRateMbps, h3cQoSTrafLmtTargetRateKbps, h3cQoSTrafLmtPeakRate,
                h3cQoSTrafLmtCIR, h3cQoSTrafLmtCBS, h3cQoSTrafLmtEBS, h3cQoSTrafLmtPIR, h3cQoSTrafLmtConformLocalPre,
                h3cQoSTrafLmtConformActionType, h3cQoSTrafLmtExceedActionType, h3cQoSTrafLmtExceedDscp, h3cQoSTrafLmtExceedCos, h3cQoSTrafLmtRowStatus,
                h3cQoSTrafLmtConformCos,h3cQoSTrafLmtConformDscp,
                h3cQoSTrafPrioDirection, h3cQoSTrafPrioUserAclNum, h3cQoSTrafPrioUserAclRule, h3cQoSTrafPrioIpAclNum, h3cQoSTrafPrioIpAclRule,
                h3cQoSTrafPrioLinkAclNum, h3cQoSTrafPrioLinkAclRule, h3cQoSTrafPrioDscp, h3cQoSTrafPrioIpPre, h3cQoSTrafPrioIpPreFromCos,
                h3cQoSTrafPrioCos, h3cQoSTrafPrioCosFromIpPre, h3cQoSTrafPrioLocalPre, h3cQoSTrafPrioPolicedServiceType, h3cQoSTrafPrioPolicedServiceDscp,
                h3cQoSTrafPrioPolicedServiceExp, h3cQoSTrafPrioPolicedServiceCos, h3cQoSTrafPrioPolicedServiceLoaclPre, h3cQoSTrafPrioPolicedServiceDropPriority, h3cQoSTrafPrioRowStatus,
                h3cQoSTrafFilterDirection, h3cQoSTrafFilterUserAclNum, h3cQoSTrafFilterUserAclRule, h3cQoSTrafFilterIpAclNum, h3cQoSTrafFilterIpAclRule,
                h3cQoSTrafFilterLinkAclNum, h3cQoSTrafFilterLinkAclRule, h3cQoSTrafFilterRowStatus }
            STATUS current
            DESCRIPTION
                "Included table:
                1)h3cQoSTrafficLimitTable.
                2)h3cQoSTrafficPriorityTable.
                3)h3cQoSTrafficFilterTable
                "
            ::= { h3cQoSProfMibGroups 2 }

        h3cQoSProfPortMappingGroup OBJECT-GROUP
            OBJECTS { h3cQoSProfPortMappingRowStatus, h3cQoSProfPortMappingMode, h3cQoSProfDynPortMappingUserName, h3cQoSProfDynPortMappingUserIPAddr, h3cQoSProfDynPortMappingUserVLANID,
                h3cQoSProfDynPortMappingUserProfName }
            STATUS current
            DESCRIPTION
                "Included tables:
                1)h3cQoSProfPortMappingTable.
                2)h3cQoSProfPortMappingModeTable.
                3)h3cQoSProfDynPortMappingTable.
                "
            ::= { h3cQoSProfMibGroups 3 }

        h3cQoSProfPortMappingTrapsGroup NOTIFICATION-GROUP
            NOTIFICATIONS { h3cQoSProfPortMappingError }
            STATUS current
            DESCRIPTION
                "Included:
                h3cQoSProfPortMappingTraps."
            ::= { h3cQoSProfMibGroups 4 }


    END
