-- DiffServ MIB overview:

-- DiffServ Private MIB falls under dnOS QOS MIB node of the private subtree.
-- Various MIB groups defined within this MIB are:

-- a) General Status Group -> All objects within this group are scalar and are not part of a
--    conceptual MIB table. The objects of this group define the current and maximum sizes of
--    conceptual DiffServ MIB tables like, DiffServ Class Table, DiffServ Class Rule Table,
--    DiffServ Policy Table,DiffServ Policy-Class Instance Table, DiffServ Policy Attribute
--    Table, DiffServ Service Table. Also, one object of this group named GenStatusAdminMode, is
--    used to enable or disable DiffServ on the switch.

-- b) Class Group -> This MIB group represents classifiers, which are used to differentiate
--    among types of traffic. There are two conceptual MIB tables within the class group :

--    1) Class Table - The Class Table entry contains a name and type, plus a referenced ACL
--       type and number if the class type is 'acl'.

--    2) Class Rule Table - Each Class Rule Table entry in the private MIB represents a single
--       match criterion that belongs to a class definition.  Depending on the class type,
--       multiple criteria are evaluated as either an all-inclusive or sequential-ordered
--       relationship to determine if a packet belongs to the class.  The
--       classRuleMatchEntryType object indicates specifically which of the match items is
--       described by this entry.

-- c) Policy Group -> DiffServ Policy group is used to define:
--    traffic conditioning actions - policing and marking applied to traffic classes, and
--    service provisioning actions - specifying bandwidth, shaping and queue depth management
--    requirements of service levels like Expedite Forwarding, Assured Forwarding etc. There
--    are five conceptual MIB tables within the policy group:

--    1) Policy Table - The Policy Table entry contains policy-name, policy-type and next free
--       per-policy policyInstIndex for the Policy-Class Instance table. The policy-type defines
--       whether policy is applied inbound or outbound to an interface.

--    2) Policy-Class Instance Table - An entry in this table is used to connect an  policy with
--       an already created DiffServ class. It contains a class index, which identifies the
--       classifier definition used by the policy to establish an instance of that class (to
--       which policy attributes can be attached). It also contains the next free per-policy
--       policyAttrIndex for the policy attribute table.

--    3) Policy Attribute Table - Each Policy Table Attribute entry attaches various policy
--       attributes to a policy-class instance. There is an object named
--       policyAttrStmtEntryType, that specifies which policy attributes are meaningful for a
--       particular policy-class instance.

--    4) Policy-Class Inbound Performance Table - Contains performance counters for each
--       policy-class instance assigned to an interface in the inbound direction.  This table
--       contains offered and discarded counters.  These rows are automatically created/deleted
--       when a policy is attached to/removed from a service interface in an inbound direction.

--    5) Policy-Class Outbound Performance Table - Contains performance counters for each
--       policy-class instance assigned to an interface in the outbound direction.  This table
--       contains discarded, tail dropped, random dropped, shape delayed and sent counters.
--       Note that the random dropped and shape delayed counters are only active when their
--       respective policy attributes are defined for the policy-class instance, otherwise they
--       always read as 0.  These rows are automatically created/deleted when a policy is
--       attached to/removed from a service interface in an outbound direction.

-- d) Service Group -> DiffServ Service group associates a policy with an interface in a
--    specific direction.  There are two conceptual MIB tables within the service group:

--    1) Service Table - Contains rows for each interface (ifIndex) that has a policy index
--       attached to it in a specific direction (ifDirection).

--    2) Service Performance Table - Augments the Service Table to provide performance
--       counters for each row.  This table contains offered, discarded and sent counters that
--       are aggregated for the attached policy as a whole based on the individual
--       policy-class instance counts.

-- General Notes:

--    1) All objects of this MIB are prefixed with 'agentDiffServ' followed by the name of the
--       object with the first letter in uppercase.

--    2) All counter tables like Policy-Class Inbound Performance Table, Policy-Class Outbound
--        Performance Table and Service Performance Table contain both 32-bit and 64-bit (high-
--        capacity) counters.


DNOS-QOS-DIFFSERV-PRIVATE-MIB DEFINITIONS ::= BEGIN

-- Dell DNOS DiffServ MIB
-- Copyright Dell (2002-2015) All rights reserved.

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

-- This Specification is supplied "AS IS", Dell
-- makes no warranty, either expressed or implied,
-- as to the use, operation, condition, or performance of the
-- Specification.


IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, IpAddress,
    Integer32, Unsigned32, Counter32, Counter64
                                        FROM SNMPv2-SMI

    InetPortNumber                      FROM INET-ADDRESS-MIB

    TEXTUAL-CONVENTION,RowStatus,
    RowPointer,MacAddress,
    StorageType,TruthValue              FROM SNMPv2-TC

    dnOS                            FROM DELL-REF-MIB
    fastPathQOS                         FROM DNOS-QOS-MIB
    TimeTicks                           FROM RFC1155-SMI
    DisplayString,PhysAddress           FROM RFC1213-MIB
    IANAifType                          FROM IANAifType-MIB
    ifIndex,InterfaceIndex              FROM IF-MIB;

    fastPathQOSDiffServPrivate MODULE-IDENTITY
        LAST-UPDATED "201110170000Z" -- 17 Oct 2011 12:00:00 GMT
        ORGANIZATION "Dell EMC"
        CONTACT-INFO ""
        DESCRIPTION
          "The Broadcom Private MIB for DNOS DiffServ"

        -- Revision history.
        REVISION
          "201110170000Z" -- 17 Oct 2011 12:00:00 GMT
        DESCRIPTION
          "Revisions made for new release."
        REVISION
          "200506230000Z" -- 23 Jun 2005 12:00:00 GMT
        DESCRIPTION
          "Added mirror policy attribute."
        REVISION
          "200410060000Z" -- 06 Oct 2004 12:00:00 GMT
        DESCRIPTION
          "DiffServ enhancements for DNOS Release 4.3.0."
        REVISION
          "200311210000Z" -- 21 Nov 2003 12:00:00 GMT
        DESCRIPTION
          "Revisions made for new release."

    ::= { dnOS 7 }

    QosBurstSize ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "d"
    STATUS   current
    DESCRIPTION
       "The number of kilobytes (Kbytes) in a packet that may be sent in a
       traffic stream without regard for other traffic streams."
    SYNTAX   Unsigned32 (1..128)

    IntfDirection ::= TEXTUAL-CONVENTION
    STATUS current
    DESCRIPTION
       "IntfDirection specifies a direction of data travel on an
       interface. 'inbound' traffic is operated on during reception from
       the interface, while 'outbound' traffic is operated on prior to
       transmission on the interface."

    SYNTAX  INTEGER {
             in(1),     -- ingress interface
             out(2)     -- egress interface
            }

    EtypeValue ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "x"
    STATUS   current
    DESCRIPTION
       "Ethertype value of a packet.  The allowed value is 0x0600 to 0xFFFF."
    SYNTAX   Unsigned32 (1536..65535)   -- hex value 0x0600 to 0xFFFF

    Ipv6AddressPrefix ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "2x:"
    STATUS       current
    DESCRIPTION
        "This data type is used to model IPv6 address prefixes. This is a binary 
        string of up to 16 octets in network byte-order."
    SYNTAX       OCTET STRING (SIZE (0..16))   

--**************************************************************************************
--    agentDiffServGenStatusGroup
--**************************************************************************************

    agentDiffServGenStatusGroup        OBJECT IDENTIFIER ::= { fastPathQOSDiffServPrivate 1 }

    agentDiffServGenStatusAdminMode OBJECT-TYPE
        SYNTAX       INTEGER {
                      enable(1),
                      disable(2)
                     }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
         " DiffServ Admin Mode"
        DEFVAL    { disable }
        ::= { agentDiffServGenStatusGroup 1 }

    agentDiffServGenStatusClassTableSize OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Current size of the Class Table"
        ::= { agentDiffServGenStatusGroup 2 }

    agentDiffServGenStatusClassTableMax OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Max size of the Class Table"
        ::= { agentDiffServGenStatusGroup 3 }

    agentDiffServGenStatusClassRuleTableSize OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Current size of Class Rule Table"
        ::= { agentDiffServGenStatusGroup 4 }

    agentDiffServGenStatusClassRuleTableMax OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Max size of the Class Rule Table."
        ::= { agentDiffServGenStatusGroup 5 }

    agentDiffServGenStatusPolicyTableSize OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Current Size of the Policy Table."
        ::= { agentDiffServGenStatusGroup 6 }

    agentDiffServGenStatusPolicyTableMax OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Max size of the Policy Table"
        ::= { agentDiffServGenStatusGroup 7 }

    agentDiffServGenStatusPolicyInstTableSize OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Current size of the Policy-Class Instance Table"
        ::= { agentDiffServGenStatusGroup 8 }

    agentDiffServGenStatusPolicyInstTableMax OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Max size of the Policy-Class Instance Table"
        ::= { agentDiffServGenStatusGroup 9 }

    agentDiffServGenStatusPolicyAttrTableSize OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Current size of the Policy Attribute Table"
        ::= { agentDiffServGenStatusGroup 10 }

    agentDiffServGenStatusPolicyAttrTableMax OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Max size of the Policy Attribute Table"
        ::= { agentDiffServGenStatusGroup 11 }

    agentDiffServGenStatusServiceTableSize OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Current size of the Service Table"
        ::= { agentDiffServGenStatusGroup 12 }

    agentDiffServGenStatusServiceTableMax OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
        " Max size of the Service Table"
        ::= { agentDiffServGenStatusGroup 13 }

--**********************************************************************************
-- agentDiffServClassGroup
--
--**********************************************************************************


    agentDiffServClassGroup        OBJECT IDENTIFIER ::= { fastPathQOSDiffServPrivate 2 }

    --*********************** classTable ***********************

    agentDiffServClassIndexNextFree OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
                     "This object contains an unused value for classIndex, or a
                      zero to indicate that none exists."
    ::= { agentDiffServClassGroup 1 }

    agentDiffServClassTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServClassEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DiffServ class entries"
         ::= { agentDiffServClassGroup 2 }

    agentDiffServClassEntry OBJECT-TYPE
         SYNTAX      AgentDiffServClassEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a DiffServ traffic class"
         INDEX       { agentDiffServClassIndex }
         ::= { agentDiffServClassTable 1 }

    AgentDiffServClassEntry ::= SEQUENCE {
          agentDiffServClassIndex
              Unsigned32,
          agentDiffServClassName
              DisplayString,
          agentDiffServClassType
              INTEGER,
          agentDiffServClassAclNum
              Unsigned32,
          agentDiffServClassRuleIndexNextFree
              Unsigned32,
          agentDiffServClassStorageType
              StorageType,
          agentDiffServClassRowStatus
              RowStatus,
          agentDiffServClassAclType
              INTEGER,
          agentDiffServClassProtoType
              INTEGER
          }

    agentDiffServClassIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The identifier for DiffServ Class entry "
         ::= { agentDiffServClassEntry 1 }

    agentDiffServClassName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Name of the DiffServ traffic class"
         ::= { agentDiffServClassEntry 2 }

    agentDiffServClassType OBJECT-TYPE
         SYNTAX      INTEGER {
                      all(1),
		      any(2)
                     }

         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The class type indicates how the individual class match
                      criteria are evaluated.  For type all, all of the
                      individual match conditions must be true for a packet to
                      be considered a member of the class.  For types any and
                      acl, only one of the match criteria must be true for a
                      packet to belong to the class; multiple matching criteria
                      are evaluated in a sequential order, with the highest
                      precedence awarded to the first criterion defined for the
                      class.  An acl class type copies its set of match criteria
                      from the current rule definition of the specified
                      ACL number."
         ::= { agentDiffServClassEntry 3 }

    agentDiffServClassAclNum OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      deprecated
         DESCRIPTION
                     "The access list number used to define the match conditions for the
                      DiffServ class.
                      This attribute is only valid if the value of agentDiffServClassType
                      is set to acl(3).  Match conditions are copied from the ACL definition
                      at the time the class is created and do not reflect subsequent
                      changes to the ACL definition.

                      This attribute requires that the agentDiffServClassAclType object
                      also be set so that the ACL number can be interpreted relative to
                      ip(1) or mac(2) ACLs.  The objects may be set in either order.
                      The DNOS-QOS-ACL-MIB defines an aclIndex for IP ACLs and an
                      aclMacIndex for MAC ACLs.  Setting this object to one of these
                      values per the agentDiffServClassAclType causes the corresponding
                      ACL rules to be used for creating the DiffServ class."
         ::= { agentDiffServClassEntry 4 }

    agentDiffServClassRuleIndexNextFree OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
                     "This object contains an unused value for classRuleIndex, or a
                      zero to indicate that none exists.  This index is maintained
                      on a per-class basis."
         ::= { agentDiffServClassEntry 5 }

    agentDiffServClassStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row"
         DEFVAL { nonVolatile }
         ::= { agentDiffServClassEntry 6 }

    agentDiffServClassRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.

                     All RowStatus operations are permitted.

                     Other columns in this row may be modified when the status is 'active'.

                     Entries can not be deleted until all rows in agentDiffServClassRuleTable
                     with corresponding values of agentDiffServClassIndex have been deleted."
         ::= { agentDiffServClassEntry 7 }

    agentDiffServClassAclType OBJECT-TYPE
         SYNTAX      INTEGER {
                      ip(1),
                      mac(2),
                      ipv6(3)
                     }

         MAX-ACCESS  read-create
         STATUS      deprecated
         DESCRIPTION
                     "The access list type used to define the match conditions for the
                      DiffServ class.  This attribute is only valid if the value of
                      agentDiffServClassType is set to acl(3).

                      When this attribute is set to ip(1), the agentDiffServClassAclNum
                      object is interpreted as an IP ACL number per the aclIndex definition
                      from the DNOS-QOS-ACL-MIB.  When set to mac(2), the agentDiffServClassAclNum
                      object is interpreted as a MAC ACL index per the aclMacIndex definition
                      in the DNOS-QOS-ACL-MIB. When set to ipv6(3), the agentDiffServClassAclNum 
                      object is interpreted as a IPv6 ACL index per the aclIpv6Index definition
                      in the DNOS-QOS-ACL-MIB.  All these objects and agentDiffServClassAclNum
                      must be set (in either order) for an agentDiffServClassType of acl(3)."
         ::= { agentDiffServClassEntry 8 }

    agentDiffServClassProtoType OBJECT-TYPE
         SYNTAX         INTEGER {
                        ipv4(1),
                        ipv6(2) 
                        }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The diffserv class protocol type used to indicate how to interpret any layer 3. 
                     This attribute is only valid if the value of agentDiffServClassProtoType 
                     is set to all(1) or any(2)."
         ::= { agentDiffServClassEntry 9 }    
                                    
    
    --*********************** agentDiffServClassRuleTable ***********************

    agentDiffServClassRuleTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServClassRuleEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DiffServ Class Rule entries"
         ::= { agentDiffServClassGroup 3 }

    agentDiffServClassRuleEntry OBJECT-TYPE
         SYNTAX      AgentDiffServClassRuleEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a set of class-match rules"
         INDEX       { agentDiffServClassIndex,agentDiffServClassRuleIndex }
         ::= { agentDiffServClassRuleTable 1 }

    AgentDiffServClassRuleEntry ::= SEQUENCE {
          agentDiffServClassRuleIndex
              Unsigned32,
          agentDiffServClassRuleMatchEntryType
              INTEGER,
          agentDiffServClassRuleMatchCos
              Unsigned32,
          agentDiffServClassRuleMatchDstIpAddr
              IpAddress,
          agentDiffServClassRuleMatchDstIpMask
              IpAddress,
          agentDiffServClassRuleMatchDstL4PortStart
              InetPortNumber,
          agentDiffServClassRuleMatchDstL4PortEnd
              InetPortNumber,
          agentDiffServClassRuleMatchDstMacAddr
              MacAddress,
          agentDiffServClassRuleMatchDstMacMask
              MacAddress,
          agentDiffServClassRuleMatchEvery
              TruthValue,
          agentDiffServClassRuleMatchIpDscp
              Unsigned32,
          agentDiffServClassRuleMatchIpPrecedence
              Unsigned32,
          agentDiffServClassRuleMatchIpTosBits
              OCTET STRING,
          agentDiffServClassRuleMatchIpTosMask
              OCTET STRING,
          agentDiffServClassRuleMatchProtocolNum
              Unsigned32,
          agentDiffServClassRuleMatchRefClassIndex
              Unsigned32,
          agentDiffServClassRuleMatchSrcIpAddr
              IpAddress,
          agentDiffServClassRuleMatchSrcIpMask
              IpAddress,
          agentDiffServClassRuleMatchSrcL4PortStart
              InetPortNumber,
          agentDiffServClassRuleMatchSrcL4PortEnd
              InetPortNumber,
          agentDiffServClassRuleMatchSrcMacAddr
              MacAddress,
          agentDiffServClassRuleMatchSrcMacMask
              MacAddress,
          agentDiffServClassRuleMatchVlanId
              Unsigned32,
          agentDiffServClassRuleMatchExcludeFlag
              TruthValue,
          agentDiffServClassRuleStorageType
              StorageType,
          agentDiffServClassRuleRowStatus
              RowStatus,
          agentDiffServClassRuleMatchCos2
              Unsigned32,
          agentDiffServClassRuleMatchEtypeKey
              INTEGER,
          agentDiffServClassRuleMatchEtypeValue
              EtypeValue,
          agentDiffServClassRuleMatchVlanIdStart
              Unsigned32,
          agentDiffServClassRuleMatchVlanIdEnd
              Unsigned32,
          agentDiffServClassRuleMatchVlanId2Start
              Unsigned32,
          agentDiffServClassRuleMatchVlanId2End
              Unsigned32,
          agentDiffServClassRuleMatchFlowLabel
              Unsigned32,
          agentDiffServClassRuleMatchDstIpv6Prefix
              Ipv6AddressPrefix,
          agentDiffServClassRuleMatchSrcIpv6Prefix
              Ipv6AddressPrefix,
          agentDiffServClassRuleMatchDstIpv6PrefixLength
              Integer32,
          agentDiffServClassRuleMatchSrcIpv6PrefixLength
              Integer32
          }

    agentDiffServClassRuleIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The identifier for DiffServ Class Rule Table entry within a class"
         ::= { agentDiffServClassRuleEntry 1 }

    agentDiffServClassRuleMatchEntryType OBJECT-TYPE
         SYNTAX      INTEGER {
                      cos(1),
                      dstip(2),
                      dstl4port(3),
                      dstmac(4),
                      every(5),
                      ipdscp(6),
                      ipprecedence(7),
                      iptos(8),
                      protocol(9),
                      refclass(10),
                      srcip(11),
                      srcl4port(12),
                      srcmac(13),
                      vlan(14),
                      cos2(15),
                      etype(16),
                      vlanid(17),
                      vlanid2(18),
                      flowLabel(19),
                      srcPrefix(20),
                      dstPrefix(21)
                     }

         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Class Rule match entry type, it determines which one of the individual
                      match conditions is defined for the present class rule. This object must
                      be created before any other match object in this row."
         ::= { agentDiffServClassRuleEntry 2 }


     agentDiffServClassRuleMatchCos OBJECT-TYPE
         SYNTAX      Unsigned32 (0..7)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Three-bit user priority field in the 802.1Q tag header of a tagged
                      Ethernet frame used as a class-match parameter - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to cos(1). For frames
                      containing a double VLAN tag, this field is located in the first/outer
                      tag."
         ::= { agentDiffServClassRuleEntry 3 }

    agentDiffServClassRuleMatchDstIpAddr OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Destination IP address match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to dstip(2)."
         ::= { agentDiffServClassRuleEntry 4 }

    agentDiffServClassRuleMatchDstIpMask OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Destination IP address mask match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to dstip(2). This mask value
                      identifies the portion of agentDiffServClassRuleMatchDstIpAddr that is
                      compared against a packet. A non-contiguous mask value is permitted."
         ::= { agentDiffServClassRuleEntry 5 }

    agentDiffServClassRuleMatchDstL4PortStart OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Destination layer 4 port range start match value for the class - only
                      valid if the agentDiffServClassRuleMatchEntryType is set to dstl4port(3)."
         ::= { agentDiffServClassRuleEntry 6 }

    agentDiffServClassRuleMatchDstL4PortEnd OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Destination layer 4 port range end match value for the class - only valid
                      if the agentDiffServClassRuleMatchEntryType is set to dstl4port(3)."
         ::= { agentDiffServClassRuleEntry 7 }

    agentDiffServClassRuleMatchDstMacAddr OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Destination MAC address match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to dstmac(4)."
         ::= { agentDiffServClassRuleEntry 8 }

    agentDiffServClassRuleMatchDstMacMask OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Destination MAC address mask match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to dstmac(4). This mask value
                      identifies the portion of agentDiffServClassRuleMatchDstMacAddr that is
                      compared against a packet. A non-contiguous mask value is permitted."
         ::= { agentDiffServClassRuleEntry 9 }

    agentDiffServClassRuleMatchEvery OBJECT-TYPE
         SYNTAX      TruthValue
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Flag to indicate that the class rule is defined to match on every packet,
                      regardless of content. - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to every(5)."
         ::= { agentDiffServClassRuleEntry 10 }

    agentDiffServClassRuleMatchIpDscp OBJECT-TYPE
         SYNTAX      Unsigned32 (0..63)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP DiffServ Code Point (DSCP) match value for the class - only valid if
                      the agentDiffServClassRuleMatchEntryType is set to ipdscp(6).  The DSCP
                      is defined as the high-order six bits of the Service Type octet in the
                      IPv4 header."
         ::= { agentDiffServClassRuleEntry 11 }

    agentDiffServClassRuleMatchIpPrecedence OBJECT-TYPE
         SYNTAX      Unsigned32 (0..7)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Precedence match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to ipprecedence(7).
                      The Precedence bits are defined as the high-order three bits of
                      the Service Type octed in the IPv4 header."
         ::= { agentDiffServClassRuleEntry 12 }

    agentDiffServClassRuleMatchIpTosBits OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(1))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP TOS bits match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to iptos(8).
                      The TOS bits are defined as all eight bits of the Service
                      Type octet in the IPv4 header."
         ::= { agentDiffServClassRuleEntry 13 }

    agentDiffServClassRuleMatchIpTosMask OBJECT-TYPE
         SYNTAX      OCTET STRING (SIZE(1))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP TOS bits mask match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to iptos(8). This mask value
                      identifies the portion of agentDiffServClassRuleMatchIpTosBits that
                      is compared against a packet. A non-contiguous mask value is permitted."
         ::= { agentDiffServClassRuleEntry 14 }

    agentDiffServClassRuleMatchProtocolNum OBJECT-TYPE
         SYNTAX      Unsigned32 (0..255)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Protocol number match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to protocol(9)."
         ::= { agentDiffServClassRuleEntry 15 }

    agentDiffServClassRuleMatchRefClassIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Index of the corresponding referenced class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to refclass(10).
                      The set of match conditions defined for the reference class
                      are directly inherited by the current class.

                      Restrictions: 1) The class types of both, current class and
                      the reference class must be identical (i.e., any vs. any,
                      or all vs. all).
                      2) Self-referencing of class-name is not allowed.
                      3) Any attempt to delete the reference class while still
                         referenced by any class shall fail.
                      4) The combined match criteria of classname and reference class
                         name must be an allowed combination based on the class type.
                         Any subsequent changes to the reference class name match
                         criteria must maintain this validity, or the change attempt
                         shall fail."

         ::= { agentDiffServClassRuleEntry 16 }

    agentDiffServClassRuleMatchSrcIpAddr OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Source IP address match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to srcip(11)."
         ::= { agentDiffServClassRuleEntry 17 }

    agentDiffServClassRuleMatchSrcIpMask OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Source IP address mask match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to srcip(11). This mask value
                      identifies the portion of agentDiffServClassRuleMatchSrcIpAddr that
                      is compared against a packet. A non-contiguous mask value is permitted."
         ::= { agentDiffServClassRuleEntry 18 }

    agentDiffServClassRuleMatchSrcL4PortStart OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Source layer 4 port range start match value for the class - only valid if
                      the agentDiffServClassRuleMatchEntryType is set to srcl4port(12)."
         ::= { agentDiffServClassRuleEntry 19 }

    agentDiffServClassRuleMatchSrcL4PortEnd OBJECT-TYPE
         SYNTAX      InetPortNumber
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Source layer 4 port range end match value for the class - only valid if
                      the agentDiffServClassRuleMatchEntryType is set to srcl4port(12)."
         ::= { agentDiffServClassRuleEntry 20 }

    agentDiffServClassRuleMatchSrcMacAddr OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Source MAC address match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to srcmac(13)."
         ::= { agentDiffServClassRuleEntry 21 }

    agentDiffServClassRuleMatchSrcMacMask OBJECT-TYPE
         SYNTAX      MacAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Source MAC address mask match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to srcmac(13). This mask value
                      identifies the portion of agentDiffServClassRuleMatchSrcMacAddr that
                      is compared against a packet. A non-contiguous mask value is permitted."
         ::= { agentDiffServClassRuleEntry 22 }

    agentDiffServClassRuleMatchVlanId OBJECT-TYPE
         SYNTAX      Unsigned32 (1..4094)
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "VLAN ID match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to vlan(14).
                      This object is obsoleted by agentDiffServClassRuleMatchVlanIdStart
                      and agentDiffServClassRuleMatchVlanIdEnd."
         ::= { agentDiffServClassRuleEntry 23 }

    agentDiffServClassRuleMatchExcludeFlag OBJECT-TYPE
         SYNTAX      TruthValue
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Class Rule exclude flag - when set to true(1), the match condition
                      identified by agentDiffServClassRuleMatchEntryType is negated. This means
                      that for a given field, every value is considered to be a match EXCEPT for
                      the value specified in the class rule.  This flag must be false(2) for an
                      agendDiffServClassRuleMatchEntryType of refClass(10).
                      This object must be set after the agentDiffServClassRuleMatchEntryType
                      object, but before any other match object in this row"
         ::= { agentDiffServClassRuleEntry 24 }

    agentDiffServClassRuleStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row"
         DEFVAL { nonVolatile }
         ::= { agentDiffServClassRuleEntry 25 }

    agentDiffServClassRuleRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.

                     All RowStatus operations are permitted.

                     Other columns in this row may be modified when the status is 'active'."
         ::= { agentDiffServClassRuleEntry 26 }

     agentDiffServClassRuleMatchCos2 OBJECT-TYPE
         SYNTAX      Unsigned32 (0..7)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Three-bit user priority field in the second/inner 802.1Q tag header of a
                      double VLAN tagged Ethernet  frame used as a class-match parameter
                      - only valid if the agentDiffServClassRuleMatchEntryType is set to
                      cos2(15)."
         ::= { agentDiffServClassRuleEntry 27 }

    agentDiffServClassRuleMatchEtypeKey OBJECT-TYPE
         SYNTAX      INTEGER {
                      custom(1),
                      appletalk(2),
                      arp(3),
                      ibmsna(4),
                      ipv4(5),
                      ipv6(6),
                      ipx(7),
                      mplsmcast(8),
                      mplsucast(9),
                      netbios(10),
                      novell(11),
                      pppoe(12),
                      rarp(13)
                     }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Ethertype keyword match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to etype(16).  A keyword
                      of custom(1) requires that the agentDiffServClassRuleMatchEtypeValue
                      object also be set."
         ::= { agentDiffServClassRuleEntry 28 }

    agentDiffServClassRuleMatchEtypeValue OBJECT-TYPE
         SYNTAX      EtypeValue
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Ethertype match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to etype(16) and
                      the agentDiffServClassRuleMatchEtypeKey is set to custom(1).
                      The allowed value for this object is 0x0600 to 0xFFFF."
         ::= { agentDiffServClassRuleEntry 29 }

    agentDiffServClassRuleMatchVlanIdStart OBJECT-TYPE
         SYNTAX      Unsigned32 (0..4093)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "VLAN ID range start match value for the class - only valid if
                      the agentDiffServClassRuleMatchEntryType is set to vlanid(17).
                      The VLAN ID field is defined as the 12-bit VLAN identifier
                      in the 802.1Q tag header of a tagged Ethernet frame.  This is
                      contained in the first/outer tag of a double VLAN tagged frame."
         ::= { agentDiffServClassRuleEntry 30 }

    agentDiffServClassRuleMatchVlanIdEnd OBJECT-TYPE
         SYNTAX      Unsigned32 (0..4093)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "VLAN ID range end match value for the class - only valid if
                      the agentDiffServClassRuleMatchEntryType is set to vlanid(17).
                      The VLAN ID field is defined as the 12-bit VLAN identifier
                      in the 802.1Q tag header of a tagged Ethernet frame.  This is
                      contained in the first/outer tag of a double VLAN tagged frame."
         ::= { agentDiffServClassRuleEntry 31 }

    agentDiffServClassRuleMatchVlanId2Start OBJECT-TYPE
         SYNTAX      Unsigned32 (0..4093)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Secondary VLAN ID range start match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to vlanid2(18).
                      The Secondary VLAN ID field is defined as the 12-bit VLAN identifier
                      in the second/inner 802.1Q tag header of a double VLAN tagged Ethernet
                      frame."
         ::= { agentDiffServClassRuleEntry 32 }

    agentDiffServClassRuleMatchVlanId2End OBJECT-TYPE
         SYNTAX      Unsigned32 (0..4093)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Secondary VLAN ID range end match value for the class - only valid if the
                      agentDiffServClassRuleMatchEntryType is set to vlanid2(18).
                      The Secondary VLAN ID field is defined as the 12-bit VLAN identifier
                      in the second/inner 802.1Q tag header of a double VLAN tagged Ethernet
                      frame."
         ::= { agentDiffServClassRuleEntry 33 }

    agentDiffServClassRuleMatchFlowLabel OBJECT-TYPE
        SYNTAX          Unsigned32 (0..1048575)
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     
                    "Flow label is 20-bit number that is unique to an IPv6 packet, used by end 
                    stations to signify quality-of-service handling in routers." 
         ::= { agentDiffServClassRuleEntry 34 }
        
    agentDiffServClassRuleMatchDstIpv6Prefix OBJECT-TYPE
         SYNTAX         Ipv6AddressPrefix
         MAX-ACCESS     read-write
         STATUS         current
         DESCRIPTION
           "The Ipv6 Prefix Address configured on the Service Port."
         ::= { agentDiffServClassRuleEntry 35 }
        
    agentDiffServClassRuleMatchSrcIpv6Prefix OBJECT-TYPE
         SYNTAX         Ipv6AddressPrefix
         MAX-ACCESS     read-write
         STATUS         current
         DESCRIPTION
           "The Ipv6 Prefix Address configured on the Service Port."
         ::= { agentDiffServClassRuleEntry 36 } 
   
    agentDiffServClassRuleMatchDstIpv6PrefixLength OBJECT-TYPE
         SYNTAX      Integer32 (1..128)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The Prefix Length."
         ::= { agentDiffServClassRuleEntry 37 }     
    agentDiffServClassRuleMatchSrcIpv6PrefixLength OBJECT-TYPE
         SYNTAX      Integer32 (1..128)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The Prefix Length."
         ::= { agentDiffServClassRuleEntry 38 }
	 
    --*********************** agentDiffServClassAclTable ***********************     
    
    agentDiffServClassAclTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServClassAclEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION 
                     "A table of the DiffServ Class ACL entries"
         ::= { agentDiffServClassGroup 4 }

    agentDiffServClassAclEntry OBJECT-TYPE
         SYNTAX      AgentDiffServClassAclEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION 
                     "Represents entry for a set of class ACLs"
         INDEX       { agentDiffServClassIndex,agentDiffServClassAclIndex }
         ::= { agentDiffServClassAclTable 1 }
         
    AgentDiffServClassAclEntry ::= SEQUENCE {
          agentDiffServClassAclIndex
              Unsigned32,
          agentDiffServClassAclNumber
              Unsigned32
          }
	  
    agentDiffServClassAclIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The identifier for DiffServ Class ACL Table entry within a class"
         ::= { agentDiffServClassAclEntry 1 }

    agentDiffServClassAclNumber OBJECT-TYPE
         SYNTAX      Unsigned32 
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Name of the DiffServ ACL"
         ::= { agentDiffServClassAclEntry 2 }
    
    --**********************************************************************************
    -- agentDiffServPolicyGroup
    --
    --**********************************************************************************


    agentDiffServPolicyGroup        OBJECT IDENTIFIER ::= { fastPathQOSDiffServPrivate 3 }

    --*********************** agentDiffServPolicyTable ************************

    agentDiffServPolicyIndexNextFree OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
                     "This object contains an unused value for agentDiffServPolicyIndex, or a
                      zero to indicate that none exists."
    ::= { agentDiffServPolicyGroup 1 }

    agentDiffServPolicyTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServPolicyEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the DiffServ policy entries."
         ::= { agentDiffServPolicyGroup 2 }

    agentDiffServPolicyEntry OBJECT-TYPE
         SYNTAX      AgentDiffServPolicyEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a DiffServ policy."
         INDEX       { agentDiffServPolicyIndex }
         ::= { agentDiffServPolicyTable 1 }

    AgentDiffServPolicyEntry ::= SEQUENCE {
          agentDiffServPolicyIndex
              Unsigned32,
          agentDiffServPolicyName
              DisplayString,
          agentDiffServPolicyType
              IntfDirection,
          agentDiffServPolicyInstIndexNextFree
              Unsigned32,
          agentDiffServPolicyStorageType
              StorageType,
          agentDiffServPolicyRowStatus
              RowStatus
          }


    agentDiffServPolicyIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The identifier for DiffServ Policy table entry."
         ::= { agentDiffServPolicyEntry 1 }

    agentDiffServPolicyName OBJECT-TYPE
         SYNTAX      DisplayString (SIZE(1..31))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Name of the policy"
         ::= { agentDiffServPolicyEntry 2 }

    agentDiffServPolicyType OBJECT-TYPE
         SYNTAX      IntfDirection
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     " The policy type dictates whether inbound or outbound policy
                       attribute statements are used in the policy definition."
         ::= { agentDiffServPolicyEntry 3 }

    agentDiffServPolicyInstIndexNextFree OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
                     "This object contains an unused value for agentDiffServPolicyInstIndex, or
                      a zero to indicate that none exists. This index is maintained on a
                      per-policy basis."
         ::= { agentDiffServPolicyEntry 4 }

    agentDiffServPolicyStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row"
         DEFVAL { nonVolatile }
         ::= { agentDiffServPolicyEntry 5 }

    agentDiffServPolicyRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.  
    
                     active(1)      - this Diffserv Policy is active
                     createAndGo(4) - set to this value to create an instance
                     destroy(6)     - set to this value to delete an instance

                     All RowStatus operations are permitted.

                     Other columns in this row may be modified when the status is 'active'.

                     Entries can not be deleted until all rows in agentDiffServPolicyInstTable 
                     with corresponding values of agentDiffServPolicyIndex have been deleted."

         ::= { agentDiffServPolicyEntry 6 }

    --*********************** agentDiffServPolicyInstTable ************************

    agentDiffServPolicyInstTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServPolicyInstEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the policy-class instance entries."
         ::= { agentDiffServPolicyGroup 3 }

    agentDiffServPolicyInstEntry OBJECT-TYPE
         SYNTAX      AgentDiffServPolicyInstEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for a policy-class instance."
         INDEX       { agentDiffServPolicyIndex,agentDiffServPolicyInstIndex }
         ::= { agentDiffServPolicyInstTable 1 }

    AgentDiffServPolicyInstEntry ::= SEQUENCE {
          agentDiffServPolicyInstIndex
              Unsigned32,
          agentDiffServPolicyInstClassIndex
              Unsigned32,
          agentDiffServPolicyInstAttrIndexNextFree
              Unsigned32,
          agentDiffServPolicyInstStorageType
              StorageType,
          agentDiffServPolicyInstRowStatus
              RowStatus
          }


    agentDiffServPolicyInstIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The identifier for policy-class Instance table entry within a policy."
         ::= { agentDiffServPolicyInstEntry 1 }

    agentDiffServPolicyInstClassIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Index of the DiffServ Class Table row, whose class definition is used
                      as the policy class instance. The class index identifies the classifier
                      definition used by the policy to establish an instance of that class
                      (to which policy attributes can be attached).  This is what connects a
                      class (instance) to a policy."
         ::= { agentDiffServPolicyInstEntry 2 }

    agentDiffServPolicyInstAttrIndexNextFree OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-only
         STATUS       current
         DESCRIPTION
                     "This object contains an unused value for agentDiffServPolicyAttrIndex, or
                      a zero to indicate that none exists. This index is maintained on a
                      per-policy-class-instance basis."
         ::= { agentDiffServPolicyInstEntry 3 }

    agentDiffServPolicyInstStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row."
         DEFVAL { nonVolatile }
         ::= { agentDiffServPolicyInstEntry 4 }

    agentDiffServPolicyInstRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row. 
 
                      active(1)      - this Diffserv Policy Instance is active
                      createAndGo(4) - set to this value to create an instance
                      destroy(6)     - set to this value to delete an instance
  
                      All RowStatus operations are permitted.
  
                      Other columns in this row may be modified when the status is 'active'.

                      Entries can not be deleted until all rows in agentDiffServPolicyAttrTable with 
                      corresponding values of agentDiffServPolicyIndex and agentDiffServPolicyInstIndex
                      have been deleted."
         ::= { agentDiffServPolicyInstEntry 5 }


    --*********************** agentDiffServPolicyAttrTable ************************

    agentDiffServPolicyAttrTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServPolicyAttrEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of policy attribute entries"
         ::= { agentDiffServPolicyGroup 4 }

    agentDiffServPolicyAttrEntry OBJECT-TYPE
         SYNTAX      AgentDiffServPolicyAttrEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for policy attributes"
         INDEX       { agentDiffServPolicyIndex, agentDiffServPolicyInstIndex,
                       agentDiffServPolicyAttrIndex }
         ::= { agentDiffServPolicyAttrTable 1 }

    AgentDiffServPolicyAttrEntry ::= SEQUENCE {
          agentDiffServPolicyAttrIndex
              Unsigned32,
          agentDiffServPolicyAttrStmtEntryType
              INTEGER,
          agentDiffServPolicyAttrStmtBandwidthCrate
              Unsigned32,
          agentDiffServPolicyAttrStmtBandwidthCrateUnits
              INTEGER,
          agentDiffServPolicyAttrStmtExpediteCrate
              Unsigned32,
          agentDiffServPolicyAttrStmtExpediteCrateUnits
              INTEGER,
          agentDiffServPolicyAttrStmtExpediteCburst
              QosBurstSize,
          agentDiffServPolicyAttrStmtMarkCosVal
              Unsigned32,
          agentDiffServPolicyAttrStmtMarkIpDscpVal
              Unsigned32,
          agentDiffServPolicyAttrStmtMarkIpPrecedenceVal
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceConformAct
              INTEGER,
          agentDiffServPolicyAttrStmtPoliceConformVal
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceExceedAct
              INTEGER,
          agentDiffServPolicyAttrStmtPoliceExceedVal
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceNonconformAct
              INTEGER,
          agentDiffServPolicyAttrStmtPoliceNonconformVal
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceSimpleCrate
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceSimpleCburst
              QosBurstSize,
          agentDiffServPolicyAttrStmtPoliceSinglerateCrate
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceSinglerateCburst
              QosBurstSize,
          agentDiffServPolicyAttrStmtPoliceSinglerateEburst
              QosBurstSize,
          agentDiffServPolicyAttrStmtPoliceTworateCrate
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceTworateCburst
              QosBurstSize,
          agentDiffServPolicyAttrStmtPoliceTworatePrate
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceTworatePburst
              QosBurstSize,
          agentDiffServPolicyAttrStmtRandomdropMinThresh
              Unsigned32,
          agentDiffServPolicyAttrStmtRandomdropMaxThresh
              Unsigned32,
          agentDiffServPolicyAttrStmtRandomdropMaxDropProb
              Unsigned32,
          agentDiffServPolicyAttrStmtRandomdropSamplingRate
              Unsigned32,
          agentDiffServPolicyAttrStmtRandomdropDecayExponent
              Unsigned32,
          agentDiffServPolicyAttrStmtShapeAverageCrate
              Unsigned32,
          agentDiffServPolicyAttrStmtShapePeakCrate
              Unsigned32,
          agentDiffServPolicyAttrStmtShapePeakPrate
              Unsigned32,
          agentDiffServPolicyAttrStorageType
              StorageType,
          agentDiffServPolicyAttrRowStatus
              RowStatus,
          agentDiffServPolicyAttrStmtAssignQueueId
              Unsigned32,
          agentDiffServPolicyAttrStmtDrop
              TruthValue,
          agentDiffServPolicyAttrStmtMarkCos2Val
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceColorConformIndex
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceColorConformMode
              INTEGER,
          agentDiffServPolicyAttrStmtPoliceColorConformVal
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceColorExceedIndex
              Unsigned32,
          agentDiffServPolicyAttrStmtPoliceColorExceedMode
              INTEGER,
          agentDiffServPolicyAttrStmtPoliceColorExceedVal
              Unsigned32,
          agentDiffServPolicyAttrStmtRedirectIntf
              InterfaceIndex,
          agentDiffServPolicyAttrStmtMirrorIntf
              InterfaceIndex
          }

    agentDiffServPolicyAttrIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "The identifier for policy-attribute entry "
         ::= { agentDiffServPolicyAttrEntry 1 }


    agentDiffServPolicyAttrStmtEntryType OBJECT-TYPE
         SYNTAX      INTEGER {
                      bandwidth(1),
                      expedite(2),
                      markCosVal(3),
                      markIpDscpVal(4),
                      markIpPrecedenceVal(5),
                      policeSimple(6),
                      policeSinglerate(7),
                      policeTworate(8),
                      randomdrop(9),
                      shapeAverage(10),
                      shapePeak(11),
                      assignQueue(12),
                      drop(13),
                      markCos2Val(14),
                      redirect(15),
                      mirror(16)
                      }

         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Policy attribute statement entry type -- this entry type is
                      essential to determine which of the individual object(s)
                      is defined for this policy attribute statement. This object must be
                      created before any other policy attribute statement object in the row.

                      The markIpDscpVal(4), markIpPrecedenceVal(5), policeSimple(6),
                      policeSinglerate(7) and policeTworate(8) values are only allowed for an
                      agentDiffServPolicyType of in(1). The remaining values are only allowed
                      for an agentDiffServPolicyType of out(2)."
         ::= { agentDiffServPolicyAttrEntry 2 }

    agentDiffServPolicyAttrStmtBandwidthCrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Bandwidth committed rate attribute statement value -- identifies
                      the minimum amount of bandwidth to be reserved for the specified
                      class instance within the policy. This attribute is only valid if
                      the value of agentDiffServPolicyAttrStmtEntryType is set to bandwidth(1)."
         ::= { agentDiffServPolicyAttrEntry 3 }

    agentDiffServPolicyAttrStmtBandwidthCrateUnits OBJECT-TYPE
         SYNTAX      INTEGER {
                      kbps(1),
                      percentage(2)
                     }
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Bandwidth committed rate units attribute statement value -- this value
                      determines the interpretation of the
                      agentDiffServPolicyAttrStmtBandwidthCrate object as either
                      kilobits-per-second or as a percentage of interface link speed. This
                      attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to bandwidth(1)."
         ::= { agentDiffServPolicyAttrEntry 4 }

    agentDiffServPolicyAttrStmtExpediteCrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Expedited (bandwidth) committed rate attribute statement value -- it
                      identifies the maximum guaranteed amount of bandwidth to be reserved for
                      the specified class instance within the policy. This attribute is only
                      valid if the value of agentDiffServPolicyAttrStmtEntryType is set to
                      expedite(2). "
         ::= { agentDiffServPolicyAttrEntry 5 }

    agentDiffServPolicyAttrStmtExpediteCrateUnits OBJECT-TYPE
         SYNTAX      INTEGER {
                      kbps(1),
                      percentage(2)
                     }
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                    "Expedited (bandwidth) committed rate units attribute statement value
                     -- determines the interpretation of the
                     agentDiffServPolicyAttrStmtExpediteCrate object as either
                     kilobits-per-second or as a percentage of interface link speed. This
                     attribute is only valid if the value of
                     agentDiffServPolicyAttrStmtEntryType is set to expedite(2)."
         ::= { agentDiffServPolicyAttrEntry 6 }

    agentDiffServPolicyAttrStmtExpediteCburst OBJECT-TYPE
         SYNTAX      QosBurstSize
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                    "Expedited (bandwidth) committed burst size attribute statement value,
                    specified in Kbytes. This attribute is only valid if the value of
                    agentDiffServPolicyAttrStmtEntryType is set to expedite(2)."
         DEFVAL { 4 }
         ::= { agentDiffServPolicyAttrEntry 7 }

    agentDiffServPolicyAttrStmtMarkCosVal OBJECT-TYPE
         SYNTAX      Unsigned32 (0..7)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Three-bit user priority field value in the 802.1Q tag header of a tagged
                      Ethernet frame, marked as part of the inbound policy for a class instance.
                      For frames containing a double VLAN tag, this field is located in the
                      first/outer tag.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to markCosVal(3)."
         ::= { agentDiffServPolicyAttrEntry 8 }

    agentDiffServPolicyAttrStmtMarkIpDscpVal OBJECT-TYPE
         SYNTAX      Unsigned32 (0..63)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Specified IP DSCP value to mark in all inbound packets belonging to the
                      class-instance.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to markIpDscpVal(4)."
         ::= { agentDiffServPolicyAttrEntry 9 }

    agentDiffServPolicyAttrStmtMarkIpPrecedenceVal OBJECT-TYPE
         SYNTAX      Unsigned32 (0..7)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Specified IP Precedence value to mark in all inbound packets belonging to
                      the class-instance.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to markIpPrecedenceVal(5)."
         ::= { agentDiffServPolicyAttrEntry 10 }

    agentDiffServPolicyAttrStmtPoliceConformAct OBJECT-TYPE
         SYNTAX      INTEGER {
                      drop(1),
                      markdscp(2),
                      markprec(3),
                      send(4),
                      markcos(5),
                      markcos2(6)
                      }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Policing conform action attribute statement value -- determines
                      the action taken on conforming traffic for the policing style
                      (simple,singlerate,tworate) currently configured for the specified
                      class instance within the policy. The default conform action is send(3).
                      This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is policeSimple(6),
                      policeSinglerate(7), or policeTworate(8)."
         DEFVAL { send }
         ::= { agentDiffServPolicyAttrEntry 11 }

    agentDiffServPolicyAttrStmtPoliceConformVal OBJECT-TYPE
         SYNTAX      Unsigned32 (0..63)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Policing conform value attribute statement --
                      used to mark conforming packets when the conform action
                      is one of the following:
                         markdscp(2) - mark IP DSCP field
                         markprec(3) - mark IP Precedence field
                         markcos(5)  - mark 802.1p CoS field (first/only tag)
                         markcos2(6) - mark secondary 802.1p CoS field (inner tag)
                      This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is policeSimple(6),
                      policeSinglerate(7), or policeTworate(8)."
         ::= { agentDiffServPolicyAttrEntry 12 }

    agentDiffServPolicyAttrStmtPoliceExceedAct OBJECT-TYPE
         SYNTAX      INTEGER {
                      drop(1),
                      markdscp(2),
                      markprec(3),
                      send(4),
                      markcos(5),
                      markcos2(6)
                      }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Policing exceed action attribute statement value -- determines
                      the action taken on excess traffic for the policing style (singlerate,
                      tworate) currently configured for the specified class instance within the
                      policy.  The default exceed action is drop(1). This attribute is only
                      valid if the value of agentDiffServPolicyAttrStmtEntryType is
                      policeSinglerate(7) or policeTworate(8)."
         DEFVAL { drop }
         ::= { agentDiffServPolicyAttrEntry 13 }

    agentDiffServPolicyAttrStmtPoliceExceedVal OBJECT-TYPE
         SYNTAX      Unsigned32 (0..63)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Policing exceed value attribute statement --
                      used to mark excess packets when the exceed action
                      is one of the following:
                         markdscp(2) - mark IP DSCP field
                         markprec(3) - mark IP Precedence field
                         markcos(5)  - mark 802.1p CoS field (first/only tag)
                         markcos2(6) - mark secondary 802.1p CoS field (inner tag)
                      This is only valid if the value of agentDiffServPolicyAttrStmtEntryType is
                      policeSinglerate(7) or policeTworate(8)."
         ::= { agentDiffServPolicyAttrEntry 14 }

    agentDiffServPolicyAttrStmtPoliceNonconformAct OBJECT-TYPE
         SYNTAX      INTEGER {
                      drop(1),
                      markdscp(2),
                      markprec(3),
                      send(4),
                      markcos(5),
                      markcos2(6)
                      }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Policing non-conform action attribute statement value -- determines the
                      action taken on nonconforming traffic for the policing style (simple,
                      singlerate,tworate) currently configured for the specified class instance
                      within the policy. The default non-conform action is drop(1). This
                      attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is policeSimple(6),
                      policeSinglerate(7), or policeTworate(8)."
         DEFVAL { drop }
         ::= { agentDiffServPolicyAttrEntry 15 }

    agentDiffServPolicyAttrStmtPoliceNonconformVal OBJECT-TYPE
         SYNTAX      Unsigned32 (0..63)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Policing non-conform value attribute statement --
                      used to mark nonconforming packets when the nonconform action
                      is one of the following:
                         markdscp(2) - mark IP DSCP field
                         markprec(3) - mark IP Precedence field
                         markcos(5)  - mark 802.1p CoS field (first/only tag)
                         markcos2(6) - mark secondary 802.1p CoS field (inner tag)
                      This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is policeSimple(6),
                      policeSinglerate(7), or policeTworate(8)."
         ::= { agentDiffServPolicyAttrEntry 16 }

    agentDiffServPolicyAttrStmtPoliceSimpleCrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Simple policing committed rate attribute statement value, specified in
                      kbps.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeSimple(6)."
         ::= { agentDiffServPolicyAttrEntry 17 }

    agentDiffServPolicyAttrStmtPoliceSimpleCburst OBJECT-TYPE
         SYNTAX      QosBurstSize
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Simple policing committed burst size attribute statement value, specified
                      in Kbytes.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeSimple(6)."
         ::= { agentDiffServPolicyAttrEntry 18 }

    agentDiffServPolicyAttrStmtPoliceSinglerateCrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Single-rate policing committed rate attribute statement value, specified
                      in kbps.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeSinglerate(7)."
         ::= { agentDiffServPolicyAttrEntry 19 }

    agentDiffServPolicyAttrStmtPoliceSinglerateCburst OBJECT-TYPE
         SYNTAX      QosBurstSize
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Single-rate policing committed burst size attribute statement value,
                      specified in Kbytes.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeSinglerate(7)."
         ::= { agentDiffServPolicyAttrEntry 20 }

    agentDiffServPolicyAttrStmtPoliceSinglerateEburst OBJECT-TYPE
         SYNTAX      QosBurstSize
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Single-rate policing excess burst size attribute statement value,
                      specified in Kbytes.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeSinglerate(7)."
         ::= { agentDiffServPolicyAttrEntry 21 }

    agentDiffServPolicyAttrStmtPoliceTworateCrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Two-rate policing committed rate attribute statement value, specified in
                      kbps.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeTworate(8)."
         ::= { agentDiffServPolicyAttrEntry 22 }

    agentDiffServPolicyAttrStmtPoliceTworateCburst OBJECT-TYPE
         SYNTAX      QosBurstSize
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Two-rate policing committed burst size attribute statement value,
                      specified in Kbytes.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeTworate(8)."
         ::= { agentDiffServPolicyAttrEntry 23 }

    agentDiffServPolicyAttrStmtPoliceTworatePrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Two-rate policing peak rate attribute statement value, specified in kbps.
                      This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeTworate(8)."
         ::= { agentDiffServPolicyAttrEntry 24 }

    agentDiffServPolicyAttrStmtPoliceTworatePburst OBJECT-TYPE
         SYNTAX      QosBurstSize
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Two-rate policing peak burst size attribute statement value, specified in
                      Kbytes.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to policeTworate(8)."
         ::= { agentDiffServPolicyAttrEntry 25 }

    agentDiffServPolicyAttrStmtRandomdropMinThresh OBJECT-TYPE
         SYNTAX      Unsigned32 (1..250000)
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Random drop minimum threshold attribute statement value --  the average
                      queue depth minimum threshold in bytes used by the WRED algorithm.  This
                      attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to randomdrop(9)."
         ::= { agentDiffServPolicyAttrEntry 26 }

    agentDiffServPolicyAttrStmtRandomdropMaxThresh OBJECT-TYPE
         SYNTAX      Unsigned32 (1..500000)
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Random drop maximum threshold attribute statement value -- the average
                      queue depth maximum threshold in bytes used by the WRED algorithm.  This
                      attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to randomdrop(9)."
         ::= { agentDiffServPolicyAttrEntry 27 }

    agentDiffServPolicyAttrStmtRandomdropMaxDropProb OBJECT-TYPE
         SYNTAX      Unsigned32 (0..100)
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Random drop maximum drop probability attribute statement value -- the
                      packet drop probability when the queue depth average reaches its maximum
                      threshold. It is expressed as a percentage, and is an integer from 0 to
                      100.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to randomdrop(9)."
         ::= { agentDiffServPolicyAttrEntry 28 }

    agentDiffServPolicyAttrStmtRandomdropSamplingRate OBJECT-TYPE
         SYNTAX      Unsigned32 (0..1000000)
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Random drop sampling rate attribute statement value -- the period at which
                      the queue depth is sampled for computing an average, expressed in
                      microseconds. This value is an integer from 0 to 1000000, with a default
                      value of 0 (meaning per packet sampling). This attribute is only valid if
                      the value of agentDiffServPolicyAttrStmtEntryType is set to randomdrop(9)."
         DEFVAL { 0 }
         ::= { agentDiffServPolicyAttrEntry 29 }

    agentDiffServPolicyAttrStmtRandomdropDecayExponent OBJECT-TYPE
         SYNTAX      Unsigned32 (0..16)
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Random drop decay exponent attribute statement value -- determines how
                      quickly the average queue length calculation decays over time, with a
                      higher number causing a slower decay. This value is an integer from 0 to
                      16, with a default of 9. This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to randomdrop(9)."
         DEFVAL { 9 }
         ::= { agentDiffServPolicyAttrEntry 30 }

    agentDiffServPolicyAttrStmtShapeAverageCrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Average-rate shaping committed rate attribute statement value, specified
                      in kbps -- used to establish average rate traffic shaping for the
                      specified class , which limits transmissions for the class to the
                      committed information rate, with any excess traffic delayed via queueing.
                      This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to shapeAverage(10)."
         ::= { agentDiffServPolicyAttrEntry 31 }

    agentDiffServPolicyAttrStmtShapePeakCrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Peak-rate shaping committed rate attribute statement value, specified in
                      kbps -- used to establish peak rate traffic shaping for the specified
                      class , which allows transmissions for the class to exceed the committed
                      information rate by sending excess traffic with the understanding that it
                      could be dropped by a downstream network element. This attribute is only
                      valid if the value of agentDiffServPolicyAttrStmtEntryType is set to
                      shapePeak(11)."
         ::= { agentDiffServPolicyAttrEntry 32 }

    agentDiffServPolicyAttrStmtShapePeakPrate OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      obsolete
         DESCRIPTION
                     "Peak-rate shaping peak rate attribute statement value, specified in kbps
                      -- used to establish peak rate traffic shaping for the specified class,
                      which allows transmissions for the class to exceed the committed
                      information rate by sending excess traffic with the understanding that it
                      could be dropped by a downstream network element. This attribute is only
                      valid if the value of agentDiffServPolicyAttrStmtEntryType is set to
                      shapePeak(11)."
         ::= { agentDiffServPolicyAttrEntry 33 }

    agentDiffServPolicyAttrStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row."
         DEFVAL { nonVolatile }
         ::= { agentDiffServPolicyAttrEntry 34 }

    agentDiffServPolicyAttrRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.

                      active(1)      - this Diffserv Policy Attribute is active
                      createAndGo(4) - set to this value to create an instance
                      destroy(6)     - set to this value to delete an instance
  
                      All RowStatus operations are permitted.
  
                      Other columns in this row may be modified when the status is 'active'."

         ::= { agentDiffServPolicyAttrEntry 35 }

    agentDiffServPolicyAttrStmtAssignQueueId OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Queue identifier to which all inbound packets belonging to this
                      class-instance are directed.  This attribute is only valid if the
                      value of agentDiffServPolicyAttrStmtEntryType is set to assignQueue(12)."
         ::= { agentDiffServPolicyAttrEntry 36 }

    agentDiffServPolicyAttrStmtDrop OBJECT-TYPE
         SYNTAX      TruthValue
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Flag to indicate that all inbound packets belonging to this
                      class-instance are dropped at ingress.  This attribute is
                      only valid if the agentDiffServPolicyAttrStmtEntryType is
                      set to drop(13)."
         ::= { agentDiffServPolicyAttrEntry 37 }

    agentDiffServPolicyAttrStmtMarkCos2Val OBJECT-TYPE
         SYNTAX      Unsigned32 (0..7)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Three-bit user priority field value in the second/inner 802.1Q tag header of
                      a double VLAN tagged Ethernet frame, marked as part of the inbound policy
                      for a class instance.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is set to markCos2Val(14)."
         ::= { agentDiffServPolicyAttrEntry 38 }

    agentDiffServPolicyAttrStmtPoliceColorConformIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Index of the DiffServ Class Table row whose class definition is used
                      to specify the policing color conform mode and value.  This identifies
                      incoming traffic categorized as 'green' packets in the
                      network.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is policeSimple(6),
                      policeSinglerate(7), or policeTworate(8).

                      The DiffServ class referred to by this object must comply with
                      the following restrictions:

                      1) Contains only a single, non-excluded match condition identifying
                         one of the following fields:  COS, IP DSCP, IP Precedence, or
                         Secondary COS, in accordance with platform support capabilities.
                         This is represented by an agentDiffServClassRuleMatchEntryType value
                         of cos(1), ipdscp(6), ipprecedence(7), or cos2(15), respectively.

                      2) Must not conflict with any (non-excluded) match conditions in the
                         classifier used for this policy-class instance, as indicated by the
                         agentDiffServPolicyInstClassIndex object.

                      3) The color conform mode and value identified by this class index must
                         not be the same as an existing color-aware exceed mode and value
                         defined by the agentDiffServPolicyAttrStmtPoliceColorExceedIndex object.

                      A class index value of 0 for this object indicates conform color awareness
                      is not being used (e.g. color-blind mode).  Setting this object to 0 causes
                      the agentDiffServPolicyAttrStmtPoliceColorExceedIndex object to be set
                      to 0 as well."
         DEFVAL { 0 }
         ::= { agentDiffServPolicyAttrEntry 39 }

    agentDiffServPolicyAttrStmtPoliceColorConformMode OBJECT-TYPE
         SYNTAX      INTEGER {
                      blind(1),
                      cos(2),
                      cos2(3),
                      ipdscp(4),
                      ipprec(5)
                      }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Policing color conform mode -- indicates the color awareness
                      mode of conforming traffic for the policing style (simple,
                      singlerate, or tworate) currently configured for the specified
                      class instance within the policy.  The default value is blind(1).

                      Any value other than blind(1) denotes the packet field to
                      check for the existing conform color marking, which is compared to the
                      agentDiffServPolicyAttrStmtPoliceColorConformVal object value.  Packets
                      matching this specification are considered to be colored 'green'.

                      This read-only object reflects the DiffServ class definition as indicated by
                      agentDiffServPolicyAttrStmtPoliceColorConformIndex.  This attribute
                      is only valid for agentDiffServPolicyAttrStmtEntryType values of
                      policeSimple(6), policeSinglerate(7), or policeTworate(8)."
         DEFVAL { blind }
         ::= { agentDiffServPolicyAttrEntry 40 }

    agentDiffServPolicyAttrStmtPoliceColorConformVal OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Policing color conform value -- indicates the color awareness
                      packet mark value of conforming traffic for the policing style
                      (simple, singlerate, or tworate) currently configured for the
                      specified class instance within the policy.

                      For the color conform field indicated by
                      agentDiffServPolicyAttrStmtPoliceColorConformMode, packets containing
                      this value are considered to be colored 'green'.

                      This read-only object reflects the DiffServ class definition as indicated by
                      agentDiffServPolicyAttrStmtPoliceColorConformIndex.  This attribute
                      is only valid for agentDiffServPolicyAttrStmtEntryType values of
                      policeSimple(6), policeSinglerate(7), or policeTworate(8), and
                      agentDiffServPolicyAttrStmtPoliceColorConformMode values of
                      cos(2), cos2(3), ipdscp(4), or ipprec(5)."
         ::= { agentDiffServPolicyAttrEntry 41 }

    agentDiffServPolicyAttrStmtPoliceColorExceedIndex OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Index of the DiffServ Class Table row whose class definition is used
                      to specify the policing color exceed mode and value.  This identifies
                      incoming traffic categorized as 'yellow' packets in the
                      network.  This attribute is only valid if the value of
                      agentDiffServPolicyAttrStmtEntryType is policeSinglerate(7) or
                      policeTworate(8).

                      The DiffServ class referred to by this object must comply with
                      the following restrictions:

                      1) Contains only a single, non-excluded match condition identifying
                         one of the following fields:  COS, IP DSCP, IP Precedence, or
                         Secondary COS, in accordance with platform support capabilities.
                         This is represented by an agentDiffServClassRuleMatchEntryType value
                         of cos(1), ipdscp(6), ipprecedence(7), or cos2(15), respectively.

                      2) Must not conflict with any (non-excluded) match conditions in the
                         classifier used for this policy-class instance, as indicated by the
                         agentDiffServPolicyInstClassIndex object.

                      3) The color exceed mode and value identified by this class index must
                         not be the same as an existing color-aware exceed mode and value
                         defined by the agentDiffServPolicyAttrStmtPoliceColorConformIndex object.

                      A class index value of 0 for this object indicates exceed color awareness
                      is not being used.  When the agentDiffServPolicyAttrStmtPoliceColorConformIndex
                      object is 0, indicating color-blind operation, this object must also be 0.
                      When a non-0 value is used for the agentDiffServPolicyAttrStmtPoliceColorConformIndex
                      object, this object may remain set to 0 if exceed color awareness is not
                      desired, or may be set to an appropriate class index value to activate exceed
                      color aware mode."
         DEFVAL { 0 }
         ::= { agentDiffServPolicyAttrEntry 42 }

    agentDiffServPolicyAttrStmtPoliceColorExceedMode OBJECT-TYPE
         SYNTAX      INTEGER {
                      blind(1),
                      cos(2),
                      cos2(3),
                      ipdscp(4),
                      ipprec(5),
                      unused(6)
                      }
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Policing color exceed mode -- indicates the color awareness
                      mode of exceeding traffic for the policing style (singlerate
                      or tworate) currently configured for the specified
                      class instance within the policy.  The default value is blind(1).

                      Any value other than blind(1) or unused(6) denotes the packet field to
                      check for the existing exceed color marking, which is compared to the
                      agentDiffServPolicyAttrStmtPoliceColorExceedVal object value.  Packets
                      matching this specification are considered to be colored 'yellow'.

                      Use of exceed color awareness is optional, and this field is set to
                      unused(6) when color conform aware policing is used but the color exceed
                      value is not used.  When agentDiffServPolicyAttrStmtPoliceColorConformMode
                      value is blind(1), this object is blind(1) as well.

                      This read-only object reflects the DiffServ class definition as indicated by
                      agentDiffServPolicyAttrStmtPoliceColorExceedIndex.  This attribute
                      is only valid for agentDiffServPolicyAttrStmtEntryType values of
                      policeSinglerate(7) or policeTworate(8)."
         DEFVAL { blind }
         ::= { agentDiffServPolicyAttrEntry 43 }

    agentDiffServPolicyAttrStmtPoliceColorExceedVal OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Policing color exceed value -- indicates the color awareness
                      packet mark value of exceeding traffic for the policing style
                      (singlerate or tworate) currently configured for the
                      specified class instance within the policy.

                      For the color exceed field indicated by
                      agentDiffServPolicyAttrStmtPoliceColorExceedMode, packets containing
                      this value are considered to be colored 'yellow'.

                      This read-only object reflects the DiffServ class definition as indicated by
                      agentDiffServPolicyAttrStmtPoliceColorExceedIndex.  This attribute
                      is only valid for agentDiffServPolicyAttrStmtEntryType values of
                      policeSinglerate(7) or policeTworate(8), and
                      agentDiffServPolicyAttrStmtPoliceColorExceedMode values of
                      cos(2), cos2(3), ipdscp(4), or ipprec(5)."
         ::= { agentDiffServPolicyAttrEntry 44 }

    agentDiffServPolicyAttrStmtRedirectIntf OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "External interface number to which all inbound packets belonging to this
                      class-instance are redirected.  This attribute is only valid if the
                      value of agentDiffServPolicyAttrStmtEntryType is set to redirect(15)."
         ::= { agentDiffServPolicyAttrEntry 45 }

    agentDiffServPolicyAttrStmtMirrorIntf OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "External interface number to which all inbound packets belonging to this
                      class-instance are mirrored.  This attribute is only valid if the
                      value of agentDiffServPolicyAttrStmtEntryType is set to mirror(16)."
         ::= { agentDiffServPolicyAttrEntry 46 }

    --*********************** agentDiffServPolicyPerfInTable ************************

    agentDiffServPolicyPerfInTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServPolicyPerfInEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of inbound policy-class performance entries"
         ::= { agentDiffServPolicyGroup 5 }

    agentDiffServPolicyPerfInEntry OBJECT-TYPE
         SYNTAX      AgentDiffServPolicyPerfInEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for the performance attributes of the associated inbound
                      policy-class instance"

         INDEX       { agentDiffServPolicyIndex,agentDiffServPolicyInstIndex,ifIndex }
         ::= { agentDiffServPolicyPerfInTable 1 }

    AgentDiffServPolicyPerfInEntry ::= SEQUENCE {
          agentDiffServPolicyPerfInOfferedOctets
              Counter32,
          agentDiffServPolicyPerfInOfferedPackets
              Counter32,
          agentDiffServPolicyPerfInDiscardedOctets
              Counter32,
          agentDiffServPolicyPerfInDiscardedPackets
              Counter32,
          agentDiffServPolicyPerfInHCOfferedOctets
              Counter64,
          agentDiffServPolicyPerfInHCOfferedPackets
              Counter64,
          agentDiffServPolicyPerfInHCDiscardedOctets
              Counter64,
          agentDiffServPolicyPerfInHCDiscardedPackets
              Counter64,
          agentDiffServPolicyPerfInStorageType
              StorageType,
          agentDiffServPolicyPerfInRowStatus
              RowStatus
          }

    agentDiffServPolicyPerfInOfferedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered octets count for the inbound policy-class instance performance
                     entry."
         ::= { agentDiffServPolicyPerfInEntry 1 }

    agentDiffServPolicyPerfInOfferedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered packets count for the inbound policy-class instance performance
                     entry."
         ::= { agentDiffServPolicyPerfInEntry 2 }

    agentDiffServPolicyPerfInDiscardedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded octets count for the inbound policy-class instance performance
                     entry."
         ::= { agentDiffServPolicyPerfInEntry 3 }

    agentDiffServPolicyPerfInDiscardedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded packets count for the inbound policy-class instance performance
                     entry."
         ::= { agentDiffServPolicyPerfInEntry 4 }

    agentDiffServPolicyPerfInHCOfferedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered octets high capacity count for the inbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfInEntry 5 }

    agentDiffServPolicyPerfInHCOfferedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered packets high capacity count for the inbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfInEntry 6 }

    agentDiffServPolicyPerfInHCDiscardedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded octets high capacity count for the inbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfInEntry 7 }

    agentDiffServPolicyPerfInHCDiscardedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded packets high capacity count for the inbound policy-class
                     instance performance entry."
         ::= { agentDiffServPolicyPerfInEntry 8 }

    agentDiffServPolicyPerfInStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row."
         DEFVAL { nonVolatile }
         ::= { agentDiffServPolicyPerfInEntry 9 }

    agentDiffServPolicyPerfInRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row."
         ::= { agentDiffServPolicyPerfInEntry 10 }




    --*********************** agentDiffServPolicyPerfOutTable ************************

    agentDiffServPolicyPerfOutTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServPolicyPerfOutEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of outbound policy-class performance entries"
         ::= { agentDiffServPolicyGroup 6 }

    agentDiffServPolicyPerfOutEntry OBJECT-TYPE
         SYNTAX      AgentDiffServPolicyPerfOutEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for the performance attributes of the associated outbound
                      policy-class instance"

         INDEX       { agentDiffServPolicyIndex,agentDiffServPolicyInstIndex,ifIndex }
         ::= { agentDiffServPolicyPerfOutTable 1 }

    AgentDiffServPolicyPerfOutEntry ::= SEQUENCE {
          agentDiffServPolicyPerfOutTailDroppedOctets
              Counter32,
          agentDiffServPolicyPerfOutTailDroppedPackets
              Counter32,
          agentDiffServPolicyPerfOutRandomDroppedOctets
              Counter32,
          agentDiffServPolicyPerfOutRandomDroppedPackets
              Counter32,
          agentDiffServPolicyPerfOutShapeDelayedOctets
              Counter32,
          agentDiffServPolicyPerfOutShapeDelayedPackets
              Counter32,
          agentDiffServPolicyPerfOutSentOctets
              Counter32,
          agentDiffServPolicyPerfOutSentPackets
              Counter32,
          agentDiffServPolicyPerfOutHCTailDroppedOctets
              Counter64,
          agentDiffServPolicyPerfOutHCTailDroppedPackets
              Counter64,
          agentDiffServPolicyPerfOutHCRandomDroppedOctets
              Counter64,
          agentDiffServPolicyPerfOutHCRandomDroppedPackets
              Counter64,
          agentDiffServPolicyPerfOutHCShapeDelayedOctets
              Counter64,
          agentDiffServPolicyPerfOutHCShapeDelayedPackets
              Counter64,
          agentDiffServPolicyPerfOutHCSentOctets
              Counter64,
          agentDiffServPolicyPerfOutHCSentPackets
              Counter64,
          agentDiffServPolicyPerfOutStorageType
              StorageType,
          agentDiffServPolicyPerfOutRowStatus
              RowStatus,
          agentDiffServPolicyPerfOutOfferedOctets
              Counter32,
	  agentDiffServPolicyPerfOutOfferedPackets
              Counter32, 
	  agentDiffServPolicyPerfOutDiscardedOctets
              Counter32,   
	  agentDiffServPolicyPerfOutDiscardedPackets
              Counter32,
          agentDiffServPolicyPerfOutHCOfferedOctets
              Counter64,
	  agentDiffServPolicyPerfOutHCOfferedPackets
              Counter64,
	  agentDiffServPolicyPerfOutHCDiscardedOctets
              Counter64,
	  agentDiffServPolicyPerfOutHCDiscardedPackets
              Counter64
          }

    agentDiffServPolicyPerfOutTailDroppedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Tail-dropped octets count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 1 }

    agentDiffServPolicyPerfOutTailDroppedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Tail-dropped packets count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 2 }

    agentDiffServPolicyPerfOutRandomDroppedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Random-dropped octets count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 3 }

    agentDiffServPolicyPerfOutRandomDroppedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Random-dropped packets count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 4 }

    agentDiffServPolicyPerfOutShapeDelayedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Shape-delayed octets count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 5 }

    agentDiffServPolicyPerfOutShapeDelayedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Shape-delayed packets count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 6 }

      agentDiffServPolicyPerfOutSentOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Sent octets count for the outbound policy-class instance performance
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 7 }

    agentDiffServPolicyPerfOutSentPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Sent packets count for the outbound policy-class instance performance
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 8 }

    agentDiffServPolicyPerfOutHCTailDroppedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Tail-dropped octets high capacity count for the outbound policy-class
                     instance performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 9 }

    agentDiffServPolicyPerfOutHCTailDroppedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Tail-dropped packets high capacity count for the outbound policy-class
                     instance performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 10 }

    agentDiffServPolicyPerfOutHCRandomDroppedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Random-dropped octets high capacity count for the outbound policy-class
                     instance performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 11 }

    agentDiffServPolicyPerfOutHCRandomDroppedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Random-dropped packets high capacity count for the outbound policy-class
                     instance performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 12 }

    agentDiffServPolicyPerfOutHCShapeDelayedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Shape-delayed octets high capacity count for the outbound policy-class
                     instance performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 13 }

    agentDiffServPolicyPerfOutHCShapeDelayedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Shape-delayed packets high capacity count for the outbound policy-class
                     instance performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 14 }

    agentDiffServPolicyPerfOutHCSentOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Sent octets high capacity count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 15 }

    agentDiffServPolicyPerfOutHCSentPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      obsolete
         DESCRIPTION
                     "Sent packets high capacity count for the outbound policy-class instance
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 16 }

    agentDiffServPolicyPerfOutStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row."
         DEFVAL { nonVolatile }
         ::= { agentDiffServPolicyPerfOutEntry 17 }

    agentDiffServPolicyPerfOutRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row."
         ::= { agentDiffServPolicyPerfOutEntry 18 }

    agentDiffServPolicyPerfOutOfferedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered octets count for the outbound policy-class instance performance 
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 19 }
	 
    agentDiffServPolicyPerfOutOfferedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered packets count for the outbound policy-class instance performance 
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 20 }
	 
    agentDiffServPolicyPerfOutDiscardedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded octets count for the outbound policy-class instance performance 
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 21 }
	 
    agentDiffServPolicyPerfOutDiscardedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded packets count for the outbound policy-class instance performance 
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 22 }
         	 
    agentDiffServPolicyPerfOutHCOfferedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered octets high capacity count for the outbound policy-class instance 
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 23 }
	 
    agentDiffServPolicyPerfOutHCOfferedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered packets high capacity count for the outbound policy-class instance 
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 24 }
	 
    agentDiffServPolicyPerfOutHCDiscardedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded octets high capacity count for the outbound policy-class instance 
                     performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 25 }
	 
    agentDiffServPolicyPerfOutHCDiscardedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded packets high capacity count for the outbound policy-class 
                     instance performance entry."
         ::= { agentDiffServPolicyPerfOutEntry 26 }

    --**********************************************************************************
    -- agentDiffServService Group
    --
    --**********************************************************************************

         --*********************** agentDiffServServiceTable ************************


    agentDiffServServiceGroup        OBJECT IDENTIFIER ::= { fastPathQOSDiffServPrivate 4 }

    agentDiffServServiceTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServServiceEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of the service entries."
         ::= { agentDiffServServiceGroup 1 }

    agentDiffServServiceEntry OBJECT-TYPE
         SYNTAX      AgentDiffServServiceEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents entry for policy assigned to an interface in a particular
                     direction."
         INDEX       { agentDiffServServiceIfIndex,agentDiffServServiceIfDirection }
         ::= { agentDiffServServiceTable 1 }

    AgentDiffServServiceEntry ::= SEQUENCE {
          agentDiffServServiceIfIndex
              InterfaceIndex,
          agentDiffServServiceIfDirection
              IntfDirection,
          agentDiffServServicePolicyIndex
              Unsigned32,
          agentDiffServServiceIfOperStatus
              INTEGER,
          agentDiffServServiceStorageType
              StorageType,
          agentDiffServServiceRowStatus
              RowStatus
          }


    agentDiffServServiceIfIndex OBJECT-TYPE
         SYNTAX      InterfaceIndex
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "External interface number of the interface to which policy is assigned."
         ::= { agentDiffServServiceEntry 1 }

    agentDiffServServiceIfDirection OBJECT-TYPE
         SYNTAX      IntfDirection
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Interface direction to which the policy is assigned."
         ::= { agentDiffServServiceEntry 2 }

    agentDiffServServicePolicyIndex OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
                     "Index of the Policy Table row whose policy definition is attached to the
                      interface in the specified direction."
         ::= { agentDiffServServiceEntry 3 }

    agentDiffServServiceIfOperStatus OBJECT-TYPE
         SYNTAX      INTEGER {
                      up(1),    -- ready for DiffServ operation
                      down(2)
                     }

         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The current operational state of the DiffServ service
                      interface.  If agentDiffServGenStatusAdminMode is
                      disable(2) then agentDiffServServiceIfOperStatus should
                      be down(2).  If agentDiffServServiceGenStatusAdminMode
                      is changed to enable(1) then agentDiffServServiceIfOperStatus
                      should change to up(1) if the service interface is ready
                      to send and receive DiffServ traffic; it should remain
                      in the down(2) state if the underlying interface hardware
                      is not in a link up condition, if the policy definition
                      represented by agentDiffServServicePolicyIndex is incompatible
                      with the interface (e.g., requires more bandwidth than the
                      current capacity of the interface), or if the policy definition
                      is considered to be incomplete (e.g., one or more composite
                      rows is not in the active(1) state)."
         ::= { agentDiffServServiceEntry 4 }

    agentDiffServServiceStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row"
         DEFVAL { nonVolatile }
         ::= { agentDiffServServiceEntry 5 }

    agentDiffServServiceRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row.

                      active(1)      - Diffserv is active
                      createAndGo(4) - set to this value to create an instance
                      destroy(6)     - set to this value to delete an instance
  
                      All RowStatus operations are permitted.
  
                      Other columns in this row may be modified when the status is 'active'."

         ::= { agentDiffServServiceEntry 6 }


         --*********************** agentDiffServServicePerfTable ************************


    agentDiffServServicePerfTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF AgentDiffServServicePerfEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of service performance entries."
         ::= { agentDiffServServiceGroup 2 }

    agentDiffServServicePerfEntry OBJECT-TYPE
         SYNTAX      AgentDiffServServicePerfEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Represents a service performance entry."

         AUGMENTS { agentDiffServServiceEntry }
         ::= { agentDiffServServicePerfTable 1 }

    AgentDiffServServicePerfEntry ::= SEQUENCE {
          agentDiffServServicePerfOfferedOctets
              Counter32,
          agentDiffServServicePerfOfferedPackets
              Counter32,
          agentDiffServServicePerfDiscardedOctets
              Counter32,
          agentDiffServServicePerfDiscardedPackets
              Counter32,
          agentDiffServServicePerfSentOctets
              Counter32,
          agentDiffServServicePerfSentPackets
              Counter32,
          agentDiffServServicePerfHCOfferedOctets
              Counter64,
          agentDiffServServicePerfHCOfferedPackets
              Counter64,
          agentDiffServServicePerfHCDiscardedOctets
              Counter64,
          agentDiffServServicePerfHCDiscardedPackets
              Counter64,
          agentDiffServServicePerfHCSentOctets
              Counter64,
          agentDiffServServicePerfHCSentPackets
              Counter64
          }


    agentDiffServServicePerfOfferedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered octets count for the specified service interface and direction"
         ::= { agentDiffServServicePerfEntry 1 }

    agentDiffServServicePerfOfferedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered packets count for specified service interface and direction"
         ::= { agentDiffServServicePerfEntry 2 }

    agentDiffServServicePerfDiscardedOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded octets count for the specified service interface and direction"
         ::= { agentDiffServServicePerfEntry 3 }

    agentDiffServServicePerfDiscardedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded packets count for the specified service interface and direction"
         ::= { agentDiffServServicePerfEntry 4 }

    agentDiffServServicePerfSentOctets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Sent octets count for the specified service interface and direction"
         ::= { agentDiffServServicePerfEntry 5 }

    agentDiffServServicePerfSentPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Sent packets count for the specified service interface and direction"
         ::= { agentDiffServServicePerfEntry 6 }

    agentDiffServServicePerfHCOfferedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered octets high capacity count for the specified service interface
                     and direction"
         ::= { agentDiffServServicePerfEntry 7 }

    agentDiffServServicePerfHCOfferedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered packets high capacity count for the specified service interface
                     and direction"
         ::= { agentDiffServServicePerfEntry 8 }

    agentDiffServServicePerfHCDiscardedOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded octets high capacity count for the specified service interface
                     and direction"
         ::= { agentDiffServServicePerfEntry 9 }

    agentDiffServServicePerfHCDiscardedPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded packets high capacity count for the specified service interface
                     and direction"
         ::= { agentDiffServServicePerfEntry 10 }

    agentDiffServServicePerfHCSentOctets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Sent octets high capacity count for the specified service interface and
                     direction"
         ::= { agentDiffServServicePerfEntry 11 }

    agentDiffServServicePerfHCSentPackets OBJECT-TYPE
         SYNTAX      Counter64
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Sent packets high capacity count for the specified service interface and
                     direction"
         ::= { agentDiffServServicePerfEntry 12 }

END
