-- =================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- 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 hpnicfQoSProfile to hpnicfQosProfile
--        Replace INTEGER with Integer32.
--        Change value of hpnicfQoSTrafPrioPolicedServiceType from underscores to hyphens.
--        Fix a default value error of hpnicfQoSTrafPrioPolicedServiceType.
--        Add MODULE clause for hpnicfQoSProfMibCompliance.
--   v2.1 2004-12-23 changed by zhuangyu
--        1 Add an enumeration in hpnicfQoSTrafLmtConformActionType
--        2 Add hpnicfQoSTrafLmtConformCos and hpnicfQoSTrafLmtConformDscp in hpnicfQoSTrafficLimitTable
--
-- =================================================================
HPN-ICF-QOS-PROFILE-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            hpnicfCommon
                FROM HPN-ICF-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;


        hpnicfQosProfile MODULE-IDENTITY
            LAST-UPDATED "200407060000Z"
            ORGANIZATION
                ""
            CONTACT-INFO
                ""
            DESCRIPTION
                "The private MIB file includes the general information QoS profile."
            ::= { hpnicfCommon 17 }


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


--
-- Node definitions
--
        hpnicfQoSProfObjects OBJECT IDENTIFIER ::= { hpnicfQosProfile 1 }

        hpnicfQoSProf OBJECT IDENTIFIER ::= { hpnicfQoSProfObjects 1 }

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

        hpnicfQoSProfEntry OBJECT-TYPE
            SYNTAX HpnicfQoSProfEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { hpnicfQoSProfIndex }
            ::= { hpnicfQoSProfTable 1 }

        HpnicfQoSProfEntry ::=
            SEQUENCE {
                hpnicfQoSProfIndex
                    Integer32,
                hpnicfQoSProfName
                    OCTET STRING,
                hpnicfQoSProfActionNumber
                    Integer32,
                hpnicfQoSProfRowStatus
                    RowStatus
             }

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

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

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

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

        hpnicfQoSAction OBJECT IDENTIFIER ::= { hpnicfQoSProfObjects 2 }

        hpnicfQoSTrafficLimitTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HpnicfQoSTrafficLimitEntry
            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."
            ::= { hpnicfQoSAction 1 }

        hpnicfQoSTrafficLimitEntry OBJECT-TYPE
            SYNTAX HpnicfQoSTrafficLimitEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { hpnicfQoSTrafLmtProfIndex, hpnicfQoSTrafLmtActionIndex }
            ::= { hpnicfQoSTrafficLimitTable 1 }

        HpnicfQoSTrafficLimitEntry ::=
            SEQUENCE {
                hpnicfQoSTrafLmtProfIndex
                    Integer32,
                hpnicfQoSTrafLmtActionIndex
                    Integer32,
                hpnicfQoSTrafLmtDirection
                    HpnicfQoSDirection,
                hpnicfQoSTrafLmtUserAclNum
                    Integer32,
                hpnicfQoSTrafLmtUserAclRule
                    Integer32,
                hpnicfQoSTrafLmtIpAclNum
                    Integer32,
                hpnicfQoSTrafLmtIpAclRule
                    Integer32,
                hpnicfQoSTrafLmtLinkAclNum
                    Integer32,
                hpnicfQoSTrafLmtLinkAclRule
                    Integer32,
                hpnicfQoSTrafLmtTargetRateMbps
                    Integer32,
                hpnicfQoSTrafLmtTargetRateKbps
                    Integer32,
                hpnicfQoSTrafLmtPeakRate
                    Integer32,
                hpnicfQoSTrafLmtCIR
                    Integer32,
                hpnicfQoSTrafLmtCBS
                    Integer32,
                hpnicfQoSTrafLmtEBS
                    Integer32,
                hpnicfQoSTrafLmtPIR
                    Integer32,
                hpnicfQoSTrafLmtConformLocalPre
                    Integer32,
                hpnicfQoSTrafLmtConformActionType
                    INTEGER,
                hpnicfQoSTrafLmtExceedActionType
                    INTEGER,
                hpnicfQoSTrafLmtExceedDscp
                    Integer32,
                hpnicfQoSTrafLmtExceedCos
                    Integer32,
                hpnicfQoSTrafLmtRowStatus
                    RowStatus,
                hpnicfQoSTrafLmtConformCos
                    Integer32,
                hpnicfQoSTrafLmtConformDscp
                    Integer32
             }

        hpnicfQoSTrafLmtProfIndex 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."
            ::= { hpnicfQoSTrafficLimitEntry 1 }

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

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

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

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

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

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

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

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

        hpnicfQoSTrafLmtTargetRateMbps 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."
            ::= { hpnicfQoSTrafficLimitEntry 10 }

        hpnicfQoSTrafLmtTargetRateKbps 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."
            ::= { hpnicfQoSTrafficLimitEntry 11 }

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

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

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

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

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

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

        hpnicfQoSTrafLmtConformActionType 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 }
            ::= { hpnicfQoSTrafficLimitEntry 18 }

        hpnicfQoSTrafLmtExceedActionType 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 }
            ::= { hpnicfQoSTrafficLimitEntry 19 }

        hpnicfQoSTrafLmtExceedDscp 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 }
            ::= { hpnicfQoSTrafficLimitEntry 20 }

        hpnicfQoSTrafLmtExceedCos 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 }
            ::= { hpnicfQoSTrafficLimitEntry 21 }

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

        hpnicfQoSTrafLmtConformCos OBJECT-TYPE
            SYNTAX Integer32 (0..7|255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "If the user chooses remark-cos value of the hpnicfQoSTrafLmtConformActionType,
                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 }
            ::= { hpnicfQoSTrafficLimitEntry 23 }

        hpnicfQoSTrafLmtConformDscp OBJECT-TYPE
            SYNTAX Integer32 (0..63|255)
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "If the user chooses remark-dscp value of the hpnicfQoSTrafLmtConformActionType,
                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 }
              ::= { hpnicfQoSTrafficLimitEntry 24 }

        hpnicfQoSTrafficPriorityTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HpnicfQoSTrafficPriorityEntry
            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 hpnicfDscpMapTable in the HPN-ICF-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.
                "
            ::= { hpnicfQoSAction 2 }

        hpnicfQoSTrafficPriorityEntry OBJECT-TYPE
            SYNTAX HpnicfQoSTrafficPriorityEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { hpnicfQoSTrafPrioProfIndex, hpnicfQoSTrafPrioActionIndex }
            ::= { hpnicfQoSTrafficPriorityTable 1 }

        HpnicfQoSTrafficPriorityEntry ::=
            SEQUENCE {
                hpnicfQoSTrafPrioProfIndex
                    Integer32,
                hpnicfQoSTrafPrioActionIndex
                    Integer32,
                hpnicfQoSTrafPrioDirection
                    HpnicfQoSDirection,
                hpnicfQoSTrafPrioUserAclNum
                    Integer32,
                hpnicfQoSTrafPrioUserAclRule
                    Integer32,
                hpnicfQoSTrafPrioIpAclNum
                    Integer32,
                hpnicfQoSTrafPrioIpAclRule
                    Integer32,
                hpnicfQoSTrafPrioLinkAclNum
                    Integer32,
                hpnicfQoSTrafPrioLinkAclRule
                    Integer32,
                hpnicfQoSTrafPrioDscp
                    Integer32,
                hpnicfQoSTrafPrioIpPre
                    Integer32,
                hpnicfQoSTrafPrioIpPreFromCos
                    TruthValue,
                hpnicfQoSTrafPrioCos
                    Integer32,
                hpnicfQoSTrafPrioCosFromIpPre
                    TruthValue,
                hpnicfQoSTrafPrioLocalPre
                    Integer32,
                hpnicfQoSTrafPrioPolicedServiceType
                    INTEGER,
                hpnicfQoSTrafPrioPolicedServiceDscp
                    Integer32,
                hpnicfQoSTrafPrioPolicedServiceExp
                    Integer32,
                hpnicfQoSTrafPrioPolicedServiceCos
                    Integer32,
                hpnicfQoSTrafPrioPolicedServiceLoaclPre
                    Integer32,
                hpnicfQoSTrafPrioPolicedServiceDropPriority
                    Integer32,
                hpnicfQoSTrafPrioRowStatus
                    RowStatus
             }

        hpnicfQoSTrafPrioProfIndex 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."
            ::= { hpnicfQoSTrafficPriorityEntry 1 }

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

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

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

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

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

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

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

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

        hpnicfQoSTrafPrioDscp 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 }
            ::= { hpnicfQoSTrafficPriorityEntry 10 }

        hpnicfQoSTrafPrioIpPre 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 }
            ::= { hpnicfQoSTrafficPriorityEntry 11 }

        hpnicfQoSTrafPrioIpPreFromCos 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 }
            ::= { hpnicfQoSTrafficPriorityEntry 12 }

        hpnicfQoSTrafPrioCos 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 }
            ::= { hpnicfQoSTrafficPriorityEntry 13 }

        hpnicfQoSTrafPrioCosFromIpPre 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 }
            ::= { hpnicfQoSTrafficPriorityEntry 14 }

        hpnicfQoSTrafPrioLocalPre 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 }
            ::= { hpnicfQoSTrafficPriorityEntry 15 }

        hpnicfQoSTrafPrioPolicedServiceType 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 hpnicfDscpMapTable in the HPN-ICF-LswQos-MIB.
                Untrusted(4) means to set all the new DSCP,EXP,COS,Local precedence and Drop priority by the user.

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

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

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

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

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

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

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

        hpnicfQoSTrafficFilterTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HpnicfQoSTrafficFilterEntry
            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 hpnicfAcl 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.

                "
            ::= { hpnicfQoSAction 3 }

        hpnicfQoSTrafficFilterEntry OBJECT-TYPE
            SYNTAX HpnicfQoSTrafficFilterEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { hpnicfQoSTrafFilterProfIndex, hpnicfQoSTrafFilterActionIndex }
            ::= { hpnicfQoSTrafficFilterTable 1 }

        HpnicfQoSTrafficFilterEntry ::=
            SEQUENCE {
                hpnicfQoSTrafFilterProfIndex
                    Integer32,
                hpnicfQoSTrafFilterActionIndex
                    Integer32,
                hpnicfQoSTrafFilterDirection
                    HpnicfQoSDirection,
                hpnicfQoSTrafFilterUserAclNum
                    Integer32,
                hpnicfQoSTrafFilterUserAclRule
                    Integer32,
                hpnicfQoSTrafFilterIpAclNum
                    Integer32,
                hpnicfQoSTrafFilterIpAclRule
                    Integer32,
                hpnicfQoSTrafFilterLinkAclNum
                    Integer32,
                hpnicfQoSTrafFilterLinkAclRule
                    Integer32,
                hpnicfQoSTrafFilterRowStatus
                    RowStatus
             }

        hpnicfQoSTrafFilterProfIndex 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."
            ::= { hpnicfQoSTrafficFilterEntry 1 }

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

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

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

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

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

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

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

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

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

        hpnicfQoSProfPortMapping OBJECT IDENTIFIER ::= { hpnicfQoSProfObjects 3 }

        hpnicfQoSProfPortMappingTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HpnicfQoSProfPortMappingEntry
            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."
            ::= { hpnicfQoSProfPortMapping 1 }

        hpnicfQoSProfPortMappingEntry OBJECT-TYPE
            SYNTAX HpnicfQoSProfPortMappingEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { hpnicfQoSProfPortMappingIfIndex, hpnicfQoSProfPortMappingProfIndex }
            ::= { hpnicfQoSProfPortMappingTable 1 }

        HpnicfQoSProfPortMappingEntry ::=
            SEQUENCE {
                hpnicfQoSProfPortMappingIfIndex
                    Integer32,
                hpnicfQoSProfPortMappingProfIndex
                    Integer32,
                hpnicfQoSProfPortMappingRowStatus
                    RowStatus
             }

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

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

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

        hpnicfQoSProfPortMappingModeTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HpnicfQoSProfPortMappingModeEntry
            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."
            ::= { hpnicfQoSProfPortMapping 2 }

        hpnicfQoSProfPortMappingModeEntry OBJECT-TYPE
            SYNTAX HpnicfQoSProfPortMappingModeEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { hpnicfQoSProfPortMappingModeIfIndex }
            ::= { hpnicfQoSProfPortMappingModeTable 1 }

        HpnicfQoSProfPortMappingModeEntry ::=
            SEQUENCE {
                hpnicfQoSProfPortMappingModeIfIndex
                    Integer32,
                hpnicfQoSProfPortMappingMode
                    INTEGER
             }

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

        hpnicfQoSProfPortMappingMode 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 }
            ::= { hpnicfQoSProfPortMappingModeEntry 2 }

        hpnicfQoSProfDynPortMappingTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HpnicfQoSProfDynPortMappingEntry
            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."
            ::= { hpnicfQoSProfPortMapping 3 }

        hpnicfQoSProfDynPortMappingEntry OBJECT-TYPE
            SYNTAX HpnicfQoSProfDynPortMappingEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION             " "
            INDEX { hpnicfQoSProfDynPortMappingIfIndex, hpnicfQoSProfDynPortMappingUserSrcMAC }
            ::= { hpnicfQoSProfDynPortMappingTable 1 }

        HpnicfQoSProfDynPortMappingEntry ::=
            SEQUENCE {
                hpnicfQoSProfDynPortMappingIfIndex
                    Integer32,
                hpnicfQoSProfDynPortMappingUserSrcMAC
                    MacAddress,
                hpnicfQoSProfDynPortMappingUserName
                    OCTET STRING,
                hpnicfQoSProfDynPortMappingUserIPAddr
                    IpAddress,
                hpnicfQoSProfDynPortMappingUserVLANID
                    Integer32,
                hpnicfQoSProfDynPortMappingUserProfName
                    OCTET STRING
             }

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

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

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

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

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

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

        hpnicfQoSProfPortMappingTraps OBJECT IDENTIFIER ::= { hpnicfQosProfile 2 }

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

        hpnicfQoSProfMibConformance OBJECT IDENTIFIER ::= { hpnicfQosProfile 3 }

        hpnicfQoSProfMibCompliances OBJECT IDENTIFIER ::= { hpnicfQoSProfMibConformance 1 }

        hpnicfQoSProfMibCompliance MODULE-COMPLIANCE
            STATUS current
            DESCRIPTION
                "The compliance statement for QoS Profile MIB."
            MODULE -- this module
                MANDATORY-GROUPS { hpnicfQoSProfGroup, hpnicfQoSActionGroup, hpnicfQoSProfPortMappingGroup, hpnicfQoSProfPortMappingTrapsGroup }
            ::= { hpnicfQoSProfMibCompliances 1 }

        hpnicfQoSProfMibGroups OBJECT IDENTIFIER ::= { hpnicfQoSProfMibConformance 2 }

        hpnicfQoSProfGroup OBJECT-GROUP
            OBJECTS { hpnicfQoSProfName, hpnicfQoSProfActionNumber, hpnicfQoSProfRowStatus }
            STATUS current
            DESCRIPTION
                "Included table:
                hpnicfQoSProfTable."
            ::= { hpnicfQoSProfMibGroups 1 }

        hpnicfQoSActionGroup OBJECT-GROUP
            OBJECTS { hpnicfQoSTrafLmtDirection, hpnicfQoSTrafLmtUserAclNum, hpnicfQoSTrafLmtUserAclRule, hpnicfQoSTrafLmtIpAclNum, hpnicfQoSTrafLmtIpAclRule,
                hpnicfQoSTrafLmtLinkAclNum, hpnicfQoSTrafLmtLinkAclRule, hpnicfQoSTrafLmtTargetRateMbps, hpnicfQoSTrafLmtTargetRateKbps, hpnicfQoSTrafLmtPeakRate,
                hpnicfQoSTrafLmtCIR, hpnicfQoSTrafLmtCBS, hpnicfQoSTrafLmtEBS, hpnicfQoSTrafLmtPIR, hpnicfQoSTrafLmtConformLocalPre,
                hpnicfQoSTrafLmtConformActionType, hpnicfQoSTrafLmtExceedActionType, hpnicfQoSTrafLmtExceedDscp, hpnicfQoSTrafLmtExceedCos, hpnicfQoSTrafLmtRowStatus,
                hpnicfQoSTrafLmtConformCos,hpnicfQoSTrafLmtConformDscp,
                hpnicfQoSTrafPrioDirection, hpnicfQoSTrafPrioUserAclNum, hpnicfQoSTrafPrioUserAclRule, hpnicfQoSTrafPrioIpAclNum, hpnicfQoSTrafPrioIpAclRule,
                hpnicfQoSTrafPrioLinkAclNum, hpnicfQoSTrafPrioLinkAclRule, hpnicfQoSTrafPrioDscp, hpnicfQoSTrafPrioIpPre, hpnicfQoSTrafPrioIpPreFromCos,
                hpnicfQoSTrafPrioCos, hpnicfQoSTrafPrioCosFromIpPre, hpnicfQoSTrafPrioLocalPre, hpnicfQoSTrafPrioPolicedServiceType, hpnicfQoSTrafPrioPolicedServiceDscp,
                hpnicfQoSTrafPrioPolicedServiceExp, hpnicfQoSTrafPrioPolicedServiceCos, hpnicfQoSTrafPrioPolicedServiceLoaclPre, hpnicfQoSTrafPrioPolicedServiceDropPriority, hpnicfQoSTrafPrioRowStatus,
                hpnicfQoSTrafFilterDirection, hpnicfQoSTrafFilterUserAclNum, hpnicfQoSTrafFilterUserAclRule, hpnicfQoSTrafFilterIpAclNum, hpnicfQoSTrafFilterIpAclRule,
                hpnicfQoSTrafFilterLinkAclNum, hpnicfQoSTrafFilterLinkAclRule, hpnicfQoSTrafFilterRowStatus }
            STATUS current
            DESCRIPTION
                "Included table:
                1)hpnicfQoSTrafficLimitTable.
                2)hpnicfQoSTrafficPriorityTable.
                3)hpnicfQoSTrafficFilterTable
                "
            ::= { hpnicfQoSProfMibGroups 2 }

        hpnicfQoSProfPortMappingGroup OBJECT-GROUP
            OBJECTS { hpnicfQoSProfPortMappingRowStatus, hpnicfQoSProfPortMappingMode, hpnicfQoSProfDynPortMappingUserName, hpnicfQoSProfDynPortMappingUserIPAddr, hpnicfQoSProfDynPortMappingUserVLANID,
                hpnicfQoSProfDynPortMappingUserProfName }
            STATUS current
            DESCRIPTION
                "Included tables:
                1)hpnicfQoSProfPortMappingTable.
                2)hpnicfQoSProfPortMappingModeTable.
                3)hpnicfQoSProfDynPortMappingTable.
                "
            ::= { hpnicfQoSProfMibGroups 3 }

        hpnicfQoSProfPortMappingTrapsGroup NOTIFICATION-GROUP
            NOTIFICATIONS { hpnicfQoSProfPortMappingError }
            STATUS current
            DESCRIPTION
                "Included:
                hpnicfQoSProfPortMappingTraps."
            ::= { hpnicfQoSProfMibGroups 4 }


    END
