-- DiffServ MIB overview:

-- DiffServ Private MIB falls under lb6m 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 offered and discarded counters.  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.


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

-- Netgear Inc NETGEAR DiffServ MIB
-- Copyright Netgear Inc (2002-2007) All rights reserved.

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

-- This Specification is supplied "AS IS", Netgear Inc
-- 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
 
    lb6m                            FROM QUANTA-LB6M-REF-MIB
    TimeTicks                           FROM RFC1155-SMI
    DisplayString,PhysAddress           FROM RFC1213-MIB
    IANAifType                          FROM IANAifType-MIB
    ifIndex,InterfaceIndex              FROM IF-MIB;

    fastPathQOSDiffServPrivate MODULE-IDENTITY
        LAST-UPDATED "201101260000Z" -- 26 Jan 2011 12:00:00 GMT
        ORGANIZATION "Netgear Inc"
        CONTACT-INFO ""
        DESCRIPTION
          "The Netgear Private MIB for NETGEAR DiffServ"
          
        -- Revision history.	  
        REVISION
          "201101260000Z" -- 26 Jan 2011 12:00:00 GMT
        DESCRIPTION
          "Postal address updated."
        REVISION
          "200711120000Z" -- 12 Nov 2007 12:00:00 GMT
        DESCRIPTION
          "Deprecated outbound policy instance performance counters, added new ones."
        REVISION
          "200705230000Z" -- 23 May 2007 12:00:00 GMT
        DESCRIPTION
          "Netgear branding related changes."
        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 NETGEAR Release 4.3.0."
        REVISION
          "200311210000Z" -- 21 Nov 2003 12:00:00 GMT
        DESCRIPTION
          "Revisions made for new release."
          
    ::= { lb6m 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),
		      acl(3)
                     }

         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      current
         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 NETGEAR-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      current
         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 NETGEAR-QOS-ACL-MIB.  When set to mac(2), the agentDiffServClassAclNum
		      object is interpreted as a MAC ACL index per the aclMacIndex definition
		      in the NETGEAR-QOS-ACL-MIB. When set to ipv6(3), the agentDiffServClassAclNum
		      object is interpreted as a IPv6 ACL index per the aclIpv6Index definition
		      in the NETGEAR-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-create
         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 (1..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 (1..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 (1..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 (1..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 }
	 
    --**********************************************************************************
    -- 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,
               agentDiffServPolicyAttrStmtMarkCosAsSecCos
              TruthValue    
          }

    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),
              markCosAsSecCos(17)
		      }

         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),
		      markcosAsSecCos(7)
		      }
         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)
			 markcosAsSecCos(7) - mark CoS as Secondary CoS value
                      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),
		      markcosAsSecCos(7)
		      }
         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)
			 markcosAsSecCos(7) - mark CoS as Secondary CoS value			 
                      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),
              markcosAsSecCos(7)
		      }
         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)
			 markcosAsSecCos(7) - mark CoS as Secondary CoS value			 
                      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 }

    agentDiffServPolicyAttrStmtMarkCosAsSecCos OBJECT-TYPE
         SYNTAX      TruthValue
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Flag to indicate that all inbound packets belonging to this 
                      class-instance are marked with secondary cos at ingress.  This attribute is 
		      only valid if the agentDiffServPolicyAttrStmtEntryType is 
		      set to markCosAsSecCos(17)."
         ::= { agentDiffServPolicyAttrEntry 47 }


    --*********************** 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 {
	  agentDiffServPolicyPerfInOfferedPackets
              Counter32,
	  agentDiffServPolicyPerfInDiscardedPackets
              Counter32,
	  agentDiffServPolicyPerfInHCOfferedPackets
              Counter64,
	  agentDiffServPolicyPerfInHCDiscardedPackets
              Counter64,
	  agentDiffServPolicyPerfInStorageType
              StorageType,                 
          agentDiffServPolicyPerfInRowStatus
              RowStatus
          }

	 
    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 }

	 
    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 }

	 
    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 }

	 
    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 {
	  agentDiffServPolicyPerfOutTailDroppedPackets
              Counter32,
	  agentDiffServPolicyPerfOutRandomDroppedPackets
              Counter32,
	  agentDiffServPolicyPerfOutShapeDelayedPackets
              Counter32,
	  agentDiffServPolicyPerfOutHCTailDroppedPackets
              Counter64,
          agentDiffServPolicyPerfOutHCRandomDroppedPackets
              Counter64,
	  agentDiffServPolicyPerfOutHCShapeDelayedPackets
              Counter64,
	  agentDiffServPolicyPerfOutOfferedPackets
              Counter32, 
	  agentDiffServPolicyPerfOutDiscardedPackets
              Counter32,
	  agentDiffServPolicyPerfOutHCOfferedPackets
              Counter64,
	  agentDiffServPolicyPerfOutHCDiscardedPackets
              Counter64,
	  agentDiffServPolicyPerfOutStorageType
              StorageType,                 
          agentDiffServPolicyPerfOutRowStatus
              RowStatus
          }

	 
    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 }

	 
    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 }

	 
    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 }


    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 }

	 
    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 }
	 
	 
    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 }

	 
    agentDiffServPolicyPerfOutOfferedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Offered packets count for the outbound policy-class instance performance 
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 18 }

	 
    agentDiffServPolicyPerfOutDiscardedPackets OBJECT-TYPE
         SYNTAX      Counter32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Discarded packets count for the outbound policy-class instance performance 
                     entry."
         ::= { agentDiffServPolicyPerfOutEntry 20 }

	 
    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 22 }


    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 24 }

    agentDiffServPolicyPerfOutStorageType OBJECT-TYPE
         SYNTAX      StorageType
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "Storage-type for this conceptual row."
         DEFVAL { nonVolatile }		     
         ::= { agentDiffServPolicyPerfOutEntry 25 }
	 
    agentDiffServPolicyPerfOutRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The status of this conceptual row."
         ::= { 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 }
	 


END
