tech-invite   World Map
3GPP     Specs     Glossaries     UICC       T+       IETF     RFCs     Groups     SIP     ABNFs       Search     Home

RFC 3317

 
 
 

Differentiated Services Quality of Service Policy Information Base

Part 2 of 4, p. 29 to 53
Prev RFC Part       Next RFC Part

 


prevText      Top      Up      ToC       Page 29 
8.  PIB Definition

DIFFSERV-PIB PIB-DEFINITIONS ::= BEGIN

IMPORTS
    Unsigned32, MODULE-IDENTITY, MODULE-COMPLIANCE,
    OBJECT-TYPE, OBJECT-GROUP, pib
            FROM COPS-PR-SPPI
    InstanceId, Prid, TagId, TagReferenceId
            FROM COPS-PR-SPPI-TC
    zeroDotZero
         FROM SNMPv2-SMI
    AutonomousType
            FROM SNMPv2-TC
    SnmpAdminString
            FROM SNMP-FRAMEWORK-MIB
    RoleCombination, PrcIdentifierOid, PrcIdentifierOidOrZero,
    AttrIdentifier
            FROM FRAMEWORK-TC-PIB
    Dscp
            FROM DIFFSERV-DSCP-TC
    IfDirection
            FROM DIFFSERV-MIB
    BurstSize
            FROM INTEGRATED-SERVICES-MIB;


dsPolicyPib  MODULE-IDENTITY
    SUBJECT-CATEGORIES { diffServ (2) } -- DiffServ QoS COPS Client Type
    LAST-UPDATED "200302180000Z"        -- 18 Feb 2003
    ORGANIZATION "IETF DIFFSERV WG"
    CONTACT-INFO "
                  Keith McCloghrie
                  Cisco Systems, Inc.
                  170 West Tasman Drive,
                  San Jose, CA 95134-1706 USA
                  Phone: +1 408 526 5260
                  Email: kzm@cisco.com

                  John Seligson
                  Nortel Networks, Inc.
                  4401 Great America Parkway
                  Santa Clara, CA 95054 USA
                  Phone: +1 408 495 2992
                  Email: jseligso@nortelnetworks.com

                  Kwok Ho Chan
                  Nortel Networks, Inc.

Top      Up      ToC       Page 30 
                  600 Technology Park Drive
                  Billerica, MA 01821 USA
                  Phone: +1 978 288 8175
                  Email: khchan@nortelnetworks.com

                  Differentiated Services Working Group:
                  diffserv@ietf.org"
    DESCRIPTION
         "The PIB module containing a set of provisioning classes
         that describe quality of service (QoS) policies for
         DiffServ. It includes general classes that may be extended
         by other PIB specifications as well as a set of PIB
         classes related to IP processing.

         Copyright (C) The Internet Society (2003). This version of
         this PIB module is part of RFC 3317; see the RFC itself for
         full legal notices."

    REVISION "200302180000Z"        -- 18 Feb 2003
    DESCRIPTION
         "Initial version, published as RFC 3317."
    ::= { pib 4 }

dsCapabilityClasses    OBJECT IDENTIFIER ::= { dsPolicyPib 1 }
dsPolicyClasses        OBJECT IDENTIFIER ::= { dsPolicyPib 2 }
dsPolicyPibConformance OBJECT IDENTIFIER ::= { dsPolicyPib 3 }

--
-- Interface Type Capabilities Group
--

--
-- Interface Type Capability Tables
--
-- The Interface type capability tables define capabilities that may
-- be associated with interfaces of a specific type.
-- This PIB defines capability tables for DiffServ Functionalities.
--

--
-- The Base Capability Table
--

dsBaseIfCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsBaseIfCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION

Top      Up      ToC       Page 31 
      "The Base Interface Type Capability class.  This class
       represents a generic capability supported by a device in the
       ingress, egress, or both directions."
    ::= { dsCapabilityClasses 1 }

dsBaseIfCapsEntry OBJECT-TYPE
    SYNTAX         DsBaseIfCapsEntry
    STATUS         current
    DESCRIPTION
      "An instance of this class describes the dsBaseIfCaps class."

    PIB-INDEX { dsBaseIfCapsPrid }
::= { dsBaseIfCapsTable 1 }

DsBaseIfCapsEntry ::= SEQUENCE {
        dsBaseIfCapsPrid           InstanceId,
        dsBaseIfCapsDirection      INTEGER
}

dsBaseIfCapsPrid OBJECT-TYPE
    SYNTAX         InstanceId
    STATUS         current
    DESCRIPTION
        "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { dsBaseIfCapsEntry 1 }


dsBaseIfCapsDirection OBJECT-TYPE
    SYNTAX         INTEGER {
                        inbound(1),
                        outbound(2),
                        inAndOut(3)
                   }
    STATUS         current
    DESCRIPTION
      "This object specifies the direction(s) for which the
      capability applies. A value of 'inbound(1)' means the
      capability applies only to the ingress direction.  A value of
      'outbound(2)' means the capability applies only to the egress
      direction.  A value of 'inAndOut(3)' means the capability
      applies to both directions."
    ::= { dsBaseIfCapsEntry 2 }

--
-- The Classification Capability Table
--

Top      Up      ToC       Page 32 
dsIfClassificationCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfClassificationCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION
        "This class specifies the classification capabilities of
        a Capability Set."
    ::= { dsCapabilityClasses 2 }


dsIfClassificationCapsEntry OBJECT-TYPE
    SYNTAX         DsIfClassificationCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the classification
        capabilities of a Capability Set."


    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfClassificationCapsSpec }
    ::= { dsIfClassificationCapsTable 1 }

DsIfClassificationCapsEntry ::= SEQUENCE {
        dsIfClassificationCapsSpec BITS
}

dsIfClassificationCapsSpec OBJECT-TYPE
    SYNTAX       BITS {
                       ipSrcAddrClassification(0),
                       -- indicates the ability to classify based on
                       -- IP source addresses
                       ipDstAddrClassification(1),
                       -- indicates the ability to classify based on
                       -- IP destination addresses
                       ipProtoClassification(2),
                       -- indicates the ability to classify based on
                       -- IP protocol numbers
                       ipDscpClassification(3),
                       -- indicates the ability to classify based on
                       -- IP DSCP
                       ipL4Classification(4),
                       -- indicates the ability to classify based on
                       -- IP layer 4 port numbers for UDP and TCP
                       ipV6FlowID(5)
                       -- indicates the ability to classify based on
                       -- IPv6 FlowIDs.
                      }

Top      Up      ToC       Page 33 
    STATUS         current
    DESCRIPTION
      "Bit set of supported classification capabilities.  In
      addition to these capabilities, other PIBs may define other
      capabilities that can then be specified in addition to the
      ones specified here (or instead of the ones specified here if
      none of these are specified)."
    ::= { dsIfClassificationCapsEntry 1 }

--
-- Metering Capabilities
--

dsIfMeteringCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfMeteringCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION
        "This class specifies the metering capabilities of a
        Capability Set."
    ::= { dsCapabilityClasses 3 }

dsIfMeteringCapsEntry OBJECT-TYPE
    SYNTAX         DsIfMeteringCapsEntry
    STATUS         current
    DESCRIPTION
      "An instance of this class describes the metering
      capabilities of a Capability Set."

    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfMeteringCapsSpec }
    ::= { dsIfMeteringCapsTable 1 }

DsIfMeteringCapsEntry ::= SEQUENCE {
        dsIfMeteringCapsSpec       BITS
}

dsIfMeteringCapsSpec OBJECT-TYPE
    SYNTAX  BITS {
                  zeroNotUsed(0),
                  simpleTokenBucket(1),
                  avgRate(2),
                  srTCMBlind(3),
                  srTCMAware(4),
                  trTCMBlind(5),
                  trTCMAware(6),
                  tswTCM(7)

Top      Up      ToC       Page 34 
                 }
    STATUS       current
    DESCRIPTION
      "Bit set of supported metering capabilities.  As with
      classification capabilities, these metering capabilities may
      be augmented by capabilities specified in other PRCs (in other
      PIBs)."
    ::= { dsIfMeteringCapsEntry 1 }

--
-- Algorithmic Dropper Capabilities
--

dsIfAlgDropCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfAlgDropCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION
        "This class specifies the algorithmic dropper
        capabilities of a Capability Set.

        This capability table indicates the types of algorithmic
        drop supported by a Capability Set for a specific flow
        direction.
        Additional capabilities affecting the drop functionalities
        are determined based on queue capabilities associated with
        specific instance of a dropper, hence not specified by
        this class."
    ::= { dsCapabilityClasses 4 }

dsIfAlgDropCapsEntry OBJECT-TYPE
    SYNTAX         DsIfAlgDropCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the algorithmic dropper
        capabilities of a Capability Set."
    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfAlgDropCapsType,
                 dsIfAlgDropCapsMQCount }
    ::= { dsIfAlgDropCapsTable 1 }

DsIfAlgDropCapsEntry ::= SEQUENCE {
        dsIfAlgDropCapsType                BITS,
        dsIfAlgDropCapsMQCount             Unsigned32
}

dsIfAlgDropCapsType OBJECT-TYPE

Top      Up      ToC       Page 35 
    SYNTAX      BITS {
                     zeroNotUsed(0),
                     oneNotUsed(1),
                     tailDrop(2),
                     headDrop(3),
                     randomDrop(4),
                     alwaysDrop(5),
                     mQDrop(6) }
    STATUS      current
    DESCRIPTION
      "The type of algorithm that droppers associated with queues
      may use.

      The tailDrop(2) algorithm means that packets are dropped from
      the tail of the queue when the associated queue's MaxQueueSize
      is exceeded.  The headDrop(3) algorithm means that packets are
      dropped from the head of the queue when the associated queue's
      MaxQueueSize is exceeded. The randomDrop(4) algorithm means
      that an algorithm is executed which may randomly
      drop the packet, or  drop  other  packet(s) from  the  queue
      in  its place.  The specifics of the algorithm may be
      proprietary.  However, parameters would be specified in the
      dsRandomDropTable.  The alwaysDrop(5) will drop every packet
      presented to it.  The mQDrop(6) algorithm will drop packets
      based on measurement from multiple queues."
    ::= { dsIfAlgDropCapsEntry 1 }

dsIfAlgDropCapsMQCount OBJECT-TYPE
    SYNTAX      Unsigned32  (1..4294967295)
    STATUS      current
    DESCRIPTION
      "Indicates the number of queues measured for the drop
      algorithm.
      This attribute is ignored when alwaysDrop(5) algorithm is
      used.  This attribute contains the value of 1 for all drop
      algorithm types except for mQDrop(6), where this attribute
      is used to indicate the maximum number of dsMQAlgDropEntry
      that can be chained together."
    ::= { dsIfAlgDropCapsEntry 2 }

--
-- Queue Capabilities
--

dsIfQueueCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfQueueCapsEntry
    PIB-ACCESS     notify
    STATUS         current

Top      Up      ToC       Page 36 
    DESCRIPTION
        "This class specifies the queueing capabilities of a
        Capability Set."
    ::= { dsCapabilityClasses 5 }

dsIfQueueCapsEntry OBJECT-TYPE
    SYNTAX         DsIfQueueCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the queue
        capabilities of a Capability Set."
    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfQueueCapsMinQueueSize,
                 dsIfQueueCapsMaxQueueSize,
                 dsIfQueueCapsTotalQueueSize }
    ::= { dsIfQueueCapsTable 1 }

DsIfQueueCapsEntry ::= SEQUENCE {
        dsIfQueueCapsMinQueueSize          Unsigned32,
        dsIfQueueCapsMaxQueueSize          Unsigned32,
        dsIfQueueCapsTotalQueueSize        Unsigned32
}

dsIfQueueCapsMinQueueSize OBJECT-TYPE
    SYNTAX      Unsigned32  (0..4294967295)
    UNITS       "Bytes"
    STATUS      current
    DESCRIPTION
        "Some interfaces may allow the size of a queue to be
        configured.  This attribute specifies the minimum size that
        can be configured for a queue, specified in bytes.
        dsIfQueueCapsMinQueueSize must be less than or equals to
        dsIfQueueCapsMaxQueueSize when both are specified.
        A zero value indicates not specified."
    ::= { dsIfQueueCapsEntry 1 }

dsIfQueueCapsMaxQueueSize OBJECT-TYPE
    SYNTAX      Unsigned32  (0..4294967295)
    UNITS       "Bytes"
    STATUS      current
    DESCRIPTION
        "Some interfaces may allow the size of a queue to be
        configured.  This attribute specifies the maximum size that
        can be configured for a queue, specified in bytes.
        dsIfQueueCapsMinQueueSize must be less than or equals to
        dsIfQueueCapsMaxQueueSize when both are specified.
        A zero value indicates not specified."

Top      Up      ToC       Page 37 
    ::= { dsIfQueueCapsEntry 2 }

dsIfQueueCapsTotalQueueSize OBJECT-TYPE
    SYNTAX      Unsigned32  (0..4294967295)
    UNITS       "Bytes"
    STATUS      current
    DESCRIPTION
        "Some interfaces may have a limited buffer space to be
        shared amongst all queues of that interface while also
        allowing the size of each queue to be configurable.  To
        prevent the situation where the PDP configures the sizes of
        the queues in excess of the total buffer available to the
        interface, the PEP can report the total buffer space in
        bytes available with this capability.
        A zero value indicates not specified."
    ::= { dsIfQueueCapsEntry 3 }

--
-- Scheduler Capabilities
--

dsIfSchedulerCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfSchedulerCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION
      "This class specifies the scheduler capabilities of a
      Capability Set."
    ::= { dsCapabilityClasses 6 }

dsIfSchedulerCapsEntry OBJECT-TYPE
    SYNTAX         DsIfSchedulerCapsEntry
    STATUS         current
    DESCRIPTION
      "An instance of this class describes the scheduler
      capabilities of a Capability Set."
    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfSchedulerCapsServiceDisc,
                 dsIfSchedulerCapsMaxInputs }
    ::= { dsIfSchedulerCapsTable 1 }

DsIfSchedulerCapsEntry ::= SEQUENCE {
        dsIfSchedulerCapsServiceDisc      AutonomousType,
        dsIfSchedulerCapsMaxInputs        Unsigned32,
        dsIfSchedulerCapsMinMaxRate       INTEGER
}

Top      Up      ToC       Page 38 
dsIfSchedulerCapsServiceDisc OBJECT-TYPE
    SYNTAX      AutonomousType
    STATUS      current
    DESCRIPTION
      "The scheduling discipline for which the set of capabilities
      specified in this object apply. Object identifiers for several
      general purpose and well-known scheduling disciplines are
      shared with and defined in the DiffServ MIB.

      These include diffServSchedulerPriority,
      diffServSchedulerWRR, diffServSchedulerWFQ."
    ::= { dsIfSchedulerCapsEntry 1 }

dsIfSchedulerCapsMaxInputs OBJECT-TYPE
    SYNTAX      Unsigned32  (0..4294967295)
    STATUS      current
    DESCRIPTION
      "The maximum number of queues and/or schedulers that can
      feed into a scheduler indicated by this capability entry.
      A value of zero means there is no maximum."
    ::= { dsIfSchedulerCapsEntry 2 }

dsIfSchedulerCapsMinMaxRate OBJECT-TYPE
    SYNTAX      INTEGER {
                      minRate(1),
                      maxRate(2),
                      minAndMaxRates(3)
                }
    STATUS      current
    DESCRIPTION
      "Scheduler capability indicating ability to handle inputs
      with minimum rate, maximum rate, or both."
    ::= { dsIfSchedulerCapsEntry 3 }

--
-- Maximum Rate Capabilities
--

dsIfMaxRateCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfMaxRateCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION
        "This class specifies the maximum rate capabilities of a
        Capability Set."
    ::= { dsCapabilityClasses 7 }

dsIfMaxRateCapsEntry OBJECT-TYPE

Top      Up      ToC       Page 39 
    SYNTAX         DsIfMaxRateCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the maximum rate
        capabilities of a Capability Set."
    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfMaxRateCapsMaxLevels }
    ::= { dsIfMaxRateCapsTable 1 }

DsIfMaxRateCapsEntry ::= SEQUENCE {
        dsIfMaxRateCapsMaxLevels           Unsigned32
}

dsIfMaxRateCapsMaxLevels OBJECT-TYPE
    SYNTAX      Unsigned32  (1..4294967295)
    STATUS      current
    DESCRIPTION
        "The maximum number of levels a maximum rate specification
        may have for this Capability Set and flow direction."
    ::= { dsIfMaxRateCapsEntry 1 }

--
-- DataPath Element Linkage Capabilities
--

--
-- DataPath Element Cascade Depth
--

dsIfElmDepthCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfElmDepthCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION
        "This class specifies the number of elements of the same
        type that can be cascaded together in a datapath."
    ::= { dsCapabilityClasses 8 }

dsIfElmDepthCapsEntry OBJECT-TYPE
    SYNTAX         DsIfElmDepthCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class describes the cascade depth
        for a particular functional datapath element PRC.  A
        functional datapath element not represented in this
        class can be assumed to have no specific maximum
        depth."

Top      Up      ToC       Page 40 
    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfElmDepthCapsPrc }
    ::= { dsIfElmDepthCapsTable 1 }

DsIfElmDepthCapsEntry ::= SEQUENCE {
        dsIfElmDepthCapsPrc                PrcIdentifierOid,
        dsIfElmDepthCapsCascadeMax         Unsigned32
}

dsIfElmDepthCapsPrc OBJECT-TYPE
    SYNTAX         PrcIdentifierOid
    STATUS         current
    DESCRIPTION
      "The object identifier of a PRC that represents a functional
      datapath element.  This may be one of:  dsClfrElementEntry,
      dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or
      dsSchedulerEntry.
      There may not be more than one instance of this class with
      the same value of dsIfElmDepthCapsPrc and same value of
      dsBaseIfCapsDirection.  Must not contain the value of
      zeroDotZero."
    ::= { dsIfElmDepthCapsEntry 1 }

dsIfElmDepthCapsCascadeMax OBJECT-TYPE
    SYNTAX         Unsigned32  (0..4294967295)
    STATUS         current
    DESCRIPTION
      "The maximum number of elements of type dsIfElmDepthCapsPrc
      that can be linked consecutively in a data path.  A value of
      zero indicates there is no specific maximum."
    ::= { dsIfElmDepthCapsEntry 2 }

--
-- DataPath Element Linkage Types
--

dsIfElmLinkCapsTable OBJECT-TYPE
    SYNTAX         SEQUENCE OF DsIfElmLinkCapsEntry
    PIB-ACCESS     notify
    STATUS         current
    DESCRIPTION
        "This class specifies what types of datapath functional
        elements may be used as the next downstream element for
        a specific type of functional element."
    ::= { dsCapabilityClasses 9 }

dsIfElmLinkCapsEntry OBJECT-TYPE

Top      Up      ToC       Page 41 
    SYNTAX         DsIfElmLinkCapsEntry
    STATUS         current
    DESCRIPTION
        "An instance of this class specifies a PRC that may
         be used as the next functional element after a specific
         type of element in a data path."
    EXTENDS { dsBaseIfCapsEntry }
    UNIQUENESS { dsBaseIfCapsDirection,
                 dsIfElmLinkCapsPrc,
                 dsIfElmLinkCapsAttr,
                 dsIfElmLinkCapsNextPrc }
    ::= { dsIfElmLinkCapsTable 1 }

DsIfElmLinkCapsEntry ::= SEQUENCE {
        dsIfElmLinkCapsPrc               PrcIdentifierOid,
        dsIfElmLinkCapsAttr              AttrIdentifier,
        dsIfElmLinkCapsNextPrc           PrcIdentifierOidOrZero
}

dsIfElmLinkCapsPrc OBJECT-TYPE
    SYNTAX         PrcIdentifierOid
    STATUS         current
    DESCRIPTION
      " The object identifier of a PRC that represents a functional
      datapath element.  This may be one of:  dsClfrElementEntry,
      dsMeterEntry, dsActionEntry, dsAlgDropEntry, dsQEntry, or
      dsSchedulerEntry.
      This must not have the value zeroDotZero."
    ::= { dsIfElmLinkCapsEntry 1 }

dsIfElmLinkCapsAttr OBJECT-TYPE
    SYNTAX         AttrIdentifier
    STATUS         current
    DESCRIPTION
      "The value represents the attribute in the PRC
      indicated by dsIfElmLinkCapsPrc that is used to
      specify the next functional element in the datapath."
    ::= { dsIfElmLinkCapsEntry 2 }

dsIfElmLinkCapsNextPrc OBJECT-TYPE
    SYNTAX         PrcIdentifierOidOrZero
    STATUS         current
    DESCRIPTION
      "The value is the OID of a PRC table entry from which
      instances can be referenced by the attribute indicated
      by dsIfElmLinkCapsPrc and dsIfElmLinkAttr.

      For example, suppose a meter's success output can be an

Top      Up      ToC       Page 42 
      action or another meter, and the fail output can only be
      an action.  This can be expressed as follows:

      Prid Prc             Attr                  NextPrc
      1    dsMeterEntry   dsMeterSucceedNext   dsActionEntry
      2    dsMeterEntry   dsMeterSucceedNext   dsMeterEntry
      3    dsMeterEntry   dsMeterFailNext      dsActionEntry.

      zeroDotZero is a valid value for this attribute to
      specify that the PRC specified in dsIfElmLinkCapsPrc
      is the last functional data path element."
    ::= { dsIfElmLinkCapsEntry 3 }

--
-- Policy Classes
--

--
-- Data Path Table
--

dsDataPathTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DsDataPathEntry
    PIB-ACCESS   install
    STATUS       current
    DESCRIPTION
       "The data path table indicates the start of
       functional data paths in this device.

       The Data Path Table enumerates the Differentiated
       Services Functional Data Paths within this device.
       Each entry specifies the first functional datapath
       element to process data flow for each specific datapath.
       Each datapath is defined by the interface set's capability
       set name, role combination, and direction. This class can
       therefore have up to two entries for each interface set,
       ingress and egress."
    ::= { dsPolicyClasses 1 }

dsDataPathEntry OBJECT-TYPE
    SYNTAX       DsDataPathEntry
    STATUS       current
    DESCRIPTION
       "Each entry in this class indicates the start of a single
       functional data path, defined by its capability set name,
       role combination and traffic direction.  The first
       functional datapath element to handle traffic for each
       data path is defined by the dsDataPathStart attribute

Top      Up      ToC       Page 43 
       of each table entry.
       Notice for each entry:
       1. dsDataPathCapSetName must reference an existing capability
          set name in frwkCapabilitySetTable [FR-PIB].
       2. dsDataPathRoles must reference existing Role Combination
          in frwkIfRoleComboTable [FR-PIB].
       3. dsDataPathStart must reference an existing entry in a
          functional data path element table.
       If any one or more of these three requirements is not
       satisfied, the dsDataPathEntry will not be installed."
    PIB-INDEX { dsDataPathPrid }
    UNIQUENESS { dsDataPathCapSetName,
                 dsDataPathRoles,
                 dsDataPathIfDirection }
    ::= { dsDataPathTable 1 }

DsDataPathEntry ::= SEQUENCE  {
    dsDataPathPrid           InstanceId,
    dsDataPathCapSetName     SnmpAdminString,
    dsDataPathRoles          RoleCombination,
    dsDataPathIfDirection    IfDirection,
    dsDataPathStart          Prid
}

dsDataPathPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { dsDataPathEntry 1 }

dsDataPathCapSetName OBJECT-TYPE
    SYNTAX       SnmpAdminString
    STATUS       current
    DESCRIPTION
       "The capability set associated with this data path entry.
        The capability set name specified by this attribute
        must exist in the frwkCapabilitySetTable [FR-PIB]
        prior to association with an instance of this class."
    ::= { dsDataPathEntry 2 }

dsDataPathRoles OBJECT-TYPE
    SYNTAX       RoleCombination
    STATUS       current
    DESCRIPTION
       "The interfaces to which this data path entry applies,
        specified in terms of roles.  There must exist an entry

Top      Up      ToC       Page 44 
        in the frwkIfRoleComboTable [FR-PIB] specifying
        this role combination, together with the capability
        set specified by dsDataPathCapSetName, prior to
        association with an instance of this class."
    ::= { dsDataPathEntry 3 }

dsDataPathIfDirection OBJECT-TYPE
    SYNTAX       IfDirection
    STATUS       current
    DESCRIPTION
       "Specifies the direction for which this data path
       entry applies."
    ::= { dsDataPathEntry 4 }

dsDataPathStart OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "This selects the first functional datapath element
       to  handle traffic for this data path.   This
       Prid should point to an instance of one of:
         dsClfrEntry
         dsMeterEntry
         dsActionEntry
         dsAlgDropEntry
         dsQEntry

       The PRI pointed to must exist prior to the installation of
       this datapath start element."
    ::= { dsDataPathEntry 5 }

--
-- Classifiers
--
-- Classifier allows multiple classifier elements, of same or
-- different types, to be used together.
-- A classifier must completely classify all packets presented to
-- it. This means all traffic handled by a classifier must match
-- at least one classifier element within the classifier,
-- with the classifier element parameters specified by a filter.
-- It is the PDP's responsibility to create a _catch all_ classifier
-- element and filter that matches all packet.  This _catch all_
-- classifier element should have the lowest Precedence value.
--
-- If there is ambiguity between classifier elements of different
-- classifier, classifier linkage order indicates their precedence;
-- the first classifier in the link is applied to the traffic first.
--

Top      Up      ToC       Page 45 
-- Each entry in the classifier table represents a classifier, with
-- classifier element table handling the fan-out functionality of a
-- classifier, and filter table defining the classification
-- patterns.
--

--
-- Classifier Table
--

dsClfrTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DsClfrEntry
    PIB-ACCESS   install
    STATUS       current
    DESCRIPTION
       "This table enumerates all the DiffServ classifier functional
       data path elements of this device.  The actual classification
       definitions are detailed in dsClfrElementTable entries
       belonging to each classifier.  Each classifier is referenced
       by its classifier elements using its classifier ID.

       An entry in this table, referenced by an upstream functional
       data path element or a datapath table entry, is the entry
       point to the classifier functional data path element.

       The dsClfrId of each entry is used to organize all
       classifier elements belonging to the same classifier."
    REFERENCE
        "An Informal Management Model for Diffserv Routers,
        RFC 3290, section 4.1"
    ::= { dsPolicyClasses 2 }

dsClfrEntry OBJECT-TYPE
    SYNTAX       DsClfrEntry
    STATUS       current
    DESCRIPTION
       "An entry in the classifier table describes a single
       classifier. Each classifier element belonging to this
       classifier must have its dsClfrElementClfrId attribute equal
       to dsClfrId."
    PIB-INDEX { dsClfrPrid }
    UNIQUENESS { dsClfrId }
    ::= { dsClfrTable 1 }

DsClfrEntry ::= SEQUENCE  {
    dsClfrPrid            InstanceId,
    dsClfrId              TagReferenceId
}

Top      Up      ToC       Page 46 
dsClfrPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { dsClfrEntry 1 }

dsClfrId OBJECT-TYPE
    SYNTAX       TagReferenceId
    PIB-TAG      { dsClfrElementClfrId }
    STATUS       current
    DESCRIPTION
       "Identifies a Classifier.  A  Classifier must be
       complete, this means all traffic handled by a
       Classifier must match at least  one  Classifier
       Element within  the  Classifier."
    ::= { dsClfrEntry 2 }

--
-- Classifier Element Table
--

dsClfrElementTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DsClfrElementEntry
    PIB-ACCESS   install
    STATUS       current
    DESCRIPTION
       "Entries in the classifier element table serves as
       the anchor for each classification pattern, defined
       in filter table entries.  Each classifier element
       table entry also specifies the subsequent downstream
       diffserv functional datapath element when the
       classification pattern is satisfied.  Hence
       the classifier element table enumerates the relationship
       between classification patterns and subsequent downstream
       diffserv functional data path elements, describing one
       branch of the fan-out characteristic of a classifier
       indicated in [Model].

       Classification parameters are defined by entries of filter
       tables pointed to by dsClfrElementSpecific.  There can be
       filter tables of different types, and they can be inter-mixed
       and used within a classifier. An example of a filter table is
       the frwkIpFilterTable [FR-PIB], for IP Multi-Field
       Classifiers (MFCs).

Top      Up      ToC       Page 47 
       If there is ambiguity between classifier elements of the same
       classifier, then dsClfrElementPrecedence needs to be used."
    ::= { dsPolicyClasses 3 }

dsClfrElementEntry OBJECT-TYPE
    SYNTAX       DsClfrElementEntry
    STATUS       current
    DESCRIPTION
       "An entry in the classifier element table describes a
       single element of the classifier."
    PIB-INDEX { dsClfrElementPrid }
    UNIQUENESS { dsClfrElementClfrId,
                 dsClfrElementPrecedence,
                 dsClfrElementSpecific }
    ::= { dsClfrElementTable 1 }

DsClfrElementEntry ::= SEQUENCE  {
    dsClfrElementPrid        InstanceId,
    dsClfrElementClfrId      TagId,
    dsClfrElementPrecedence  Unsigned32,
    dsClfrElementNext        Prid,
    dsClfrElementSpecific    Prid
}

dsClfrElementPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { dsClfrElementEntry 1 }

dsClfrElementClfrId OBJECT-TYPE
    SYNTAX       TagId
    STATUS       current
    DESCRIPTION
       "A classifier is composed of one or more classifier
        elements. Each classifier element belonging to
        the same classifier uses the same classifier ID.

        Hence, A classifier Id identifies which classifier
        this classifier element is a part of. This must be
        the value of dsClfrId attribute for an existing
        instance of dsClfrEntry."
    ::= { dsClfrElementEntry 2 }

dsClfrElementPrecedence OBJECT-TYPE
    SYNTAX       Unsigned32  (1..4294967295)

Top      Up      ToC       Page 48 
    STATUS       current
    DESCRIPTION
       "The relative order in which classifier elements are
       applied: higher numbers represent classifier elements
       with higher precedence.  Classifier elements with the
       same precedence must be unambiguous i.e., they must
       define non-overlapping patterns, and are considered to
       be applied  simultaneously  to the traffic stream.
       Classifier elements with different precedence may
       overlap in their filters: the classifier element with
       the highest precedence that matches is taken.

       On a given interface, there must be a complete
       classifier in place at all times in the ingress
       direction.  This means that there will always be one
       or more filters that match every possible pattern
       that could be presented in an incoming packet.
       There is no such requirement in the egress direction."
    ::= { dsClfrElementEntry 3 }

dsClfrElementNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "This attribute provides one branch  of  the  fan-out
       functionality  of  a  classifier described in Diffserv
       Model section 4.1.

       This selects the next diffserv functional datapath
       element  to  handle traffic for this data path.

       A value of zeroDotZero marks the end of DiffServ processing
       for this data path.  Any other value must point to a
       valid (pre-existing) instance of one of:
         dsClfrEntry
         dsMeterEntry
         dsActionEntry
         dsAlgDropEntry
         dsQEntry."
    DEFVAL      { zeroDotZero }
    ::= { dsClfrElementEntry 4 }

dsClfrElementSpecific OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "A pointer to a valid entry  in  another  table  that
       describes  the applicable classification filter, e.g.,

Top      Up      ToC       Page 49 
       an entry in frwkIpFilterTable (Framework PIB).

       The PRI pointed to must exist prior to the installation of
       this classifier element.

       The value zeroDotZero is interpreted  to  match  any-
       thing  not  matched  by another classifier element - only one
       such entry  may exist for each classifier."
    ::= { dsClfrElementEntry 5 }

--
-- Meters
--
-- This PIB supports a variety of Meters.  It includes a
-- specific definition for Meters whose parameter set can
-- be modeled using Token Bucket parameters.
-- Other metering parameter sets can be defined by other PIBs.
--
-- Multiple meter elements may be logically cascaded
-- using their dsMeterSucceedNext and dsMeterFailNext pointers if
-- required.
-- One example of this might be for an AF PHB implementation
-- that uses multiple level conformance meters.
--
-- Cascading of individual meter elements in the PIB is intended
-- to be functionally equivalent to multiple level conformance
-- determination of a packet.  The sequential nature of the
-- representation is merely a notational convenience for this PIB.
--
-- srTCM meters (RFC 2697) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Information Rate and Committed Burst Size
-- token-bucket.  Second set specifies the Excess Burst
-- Size token-bucket.
--
-- trTCM meters (RFC 2698) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Information Rate and Committed Burst Size
-- token-bucket.  Second set specifies the Peak Information
-- Rate and Peak Burst Size token-bucket.
--
-- tswTCM meters (RFC 2859) can be specified using two sets of
-- dsMeterEntry and dsTBParamEntry. First set specifies the
-- Committed Target Rate token-bucket. Second set specifies the
-- Peak Target Rate token-bucket. dsTBParamInterval in each
-- token bucket reflects the Average Interval.

dsMeterTable OBJECT-TYPE

Top      Up      ToC       Page 50 
    SYNTAX       SEQUENCE OF DsMeterEntry
    PIB-ACCESS   install
    STATUS       current
    DESCRIPTION
       "This class enumerates specific meters that a system
       may use to police a stream of traffic. The traffic
       stream to be metered is determined by the element(s)
       upstream of the meter i.e., by the object(s) that
       point to each entry in this class. This may include
       all traffic on an interface.

       Specific meter details are to be found in table entry
       referenced by dsMeterSpecific."
   REFERENCE
       "An Informal Management Model for Diffserv Routers,
       RFC 3290, section 5"
    ::= { dsPolicyClasses 4 }

dsMeterEntry OBJECT-TYPE
    SYNTAX       DsMeterEntry
    STATUS       current
    DESCRIPTION
       "An entry in the meter table describes a single
       conformance level of a meter."
    PIB-INDEX { dsMeterPrid }
    UNIQUENESS { dsMeterSucceedNext,
                 dsMeterFailNext,
                 dsMeterSpecific }
    ::= { dsMeterTable 1 }

DsMeterEntry ::= SEQUENCE  {
    dsMeterPrid              InstanceId,
    dsMeterSucceedNext       Prid,
    dsMeterFailNext          Prid,
    dsMeterSpecific          Prid
}

dsMeterPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { dsMeterEntry 1 }

dsMeterSucceedNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current

Top      Up      ToC       Page 51 
    DESCRIPTION
       "If the traffic does conform, this selects  the  next
       diffserv functional datapath element to handle
       traffic for this data path.

       The value zeroDotZero in this variable indicates no
       further DiffServ treatment is performed on traffic of
       this datapath.  Any other value must point to a valid
       (pre-existing) instance of one of:
         dsClfrEntry
         dsMeterEntry
         dsActionEntry
         dsAlgDropEntry
         dsQEntry."
    DEFVAL      { zeroDotZero }
    ::= { dsMeterEntry 2 }

dsMeterFailNext OBJECT-TYPE
    SYNTAX       Prid
    STATUS       current
    DESCRIPTION
       "If the traffic does not conform, this selects the
       next diffserv functional datapath element to handle
       traffic for this data path.

       The value zeroDotZero in this variable indicates no
       further DiffServ treatment is performed on traffic of
       this datapath.  Any other value must point to a valid
       (pre-existing) instance of one of:
         dsClfrEntry
         dsMeterEntry
         dsActionEntry
         dsAlgDropEntry
         dsQEntry."
    DEFVAL      { zeroDotZero }
    ::= { dsMeterEntry 3 }

dsMeterSpecific OBJECT-TYPE
    SYNTAX       Prid
     STATUS       current
    DESCRIPTION
       "This indicates the behaviour of the meter by point-
       ing to an entry containing detailed parameters. Note
       that entries in that specific table must be managed
       explicitly.

       For example, dsMeterSpecific may point to an
       entry in dsTBMeterTable, which contains an

Top      Up      ToC       Page 52 
       instance of a single set of Token Bucket parameters.

       The PRI pointed to must exist prior to installing this
       Meter datapath element."
    ::= { dsMeterEntry 4 }

--
-- Token-Bucket Parameter Table
--
-- Each entry in the Token Bucket Parameter Table parameterizes
-- a single token bucket.  Multiple token buckets can be
-- used together to parameterize multiple levels of
-- conformance.
--
-- Note that an entry in the Token Bucket Parameter Table can
-- be shared, pointed to, by multiple dsMeterTable entries.
--

dsTBParamTable OBJECT-TYPE
    SYNTAX       SEQUENCE OF DsTBParamEntry
    PIB-ACCESS   install
    STATUS       current
    DESCRIPTION
       "This table enumerates token-bucket meter parameter sets
       that a system may use to police a stream of traffic.
       Such parameter sets are modelled here as each having a single
       rate and a single burst size.  Multiple entries are used
       when multiple rates/burst sizes are needed."
    REFERENCE
        "An Informal Management Model for Diffserv Routers,
        RFC 3290, section 5.1"
    ::= { dsPolicyClasses 5 }

dsTBParamEntry OBJECT-TYPE
    SYNTAX       DsTBParamEntry
    STATUS       current
    DESCRIPTION
       "An entry that describes a single token-bucket
       parameter set."
    PIB-INDEX { dsTBParamPrid }
    UNIQUENESS { dsTBParamType,
                 dsTBParamRate,
                 dsTBParamBurstSize,
                 dsTBParamInterval }
    ::= { dsTBParamTable 1 }

DsTBParamEntry ::= SEQUENCE  {
    dsTBParamPrid            InstanceId,

Top      Up      ToC       Page 53 
    dsTBParamType            AutonomousType,
    dsTBParamRate            Unsigned32,
    dsTBParamBurstSize       BurstSize,
    dsTBParamInterval        Unsigned32
}

dsTBParamPrid OBJECT-TYPE
    SYNTAX       InstanceId
    STATUS       current
    DESCRIPTION
       "An arbitrary integer index that uniquely identifies an
        instance of the class."
    ::= { dsTBParamEntry 1 }

dsTBParamType OBJECT-TYPE
    SYNTAX       AutonomousType
    STATUS       current
    DESCRIPTION
      "The Metering algorithm associated with the
      Token-Bucket parameters.  zeroDotZero indicates this
      is unknown.

      Standard values for generic algorithms are as follows:

      diffServTBParamSimpleTokenBucket, diffServTBParamAvgRate,
      diffServTBParamSrTCMBlind, diffServTBParamSrTCMAware,
      diffServTBParamTrTCMBlind, diffServTBParamTrTCMAware,
      diffServTBParamTswTCM

      These are specified in the DiffServ MIB."
    REFERENCE
        "An Informal Management Model for Diffserv Routers,
        RFC 3290, section 5.1"
    ::= { dsTBParamEntry 2 }

dsTBParamRate OBJECT-TYPE
    SYNTAX       Unsigned32  (1..4294967295)
    UNITS        "kilobits per second"
    STATUS       current
    DESCRIPTION
       "The token-bucket rate, in kilobits per second
       (kbps).  This attribute is used for:
       1. CIR in RFC 2697 for srTCM
       2. CIR and PIR in RFC 2698 for trTCM
       3. CTR and PTR in RFC 2859 for TSWTCM
       4. AverageRate in RFC 3290, section 5.1.1"
    ::= { dsTBParamEntry 3 }


Next RFC Part