draft-ietf-diffserv-mib-01.txt  -->   draft-ietf-diffserv-mib-02.txt

view Side-By-Side changes

                                                                Fred





          Internet Engineering Task Force             F. Baker
                                                                Kwok Ho
          Diffserv Working Group                         Cisco Systems
          INTERNET-DRAFT                              K. Chan
          Expires:September 2000                         Nortel Networks
                                                                Andrew
                                                      A. Smith
                                                         Extreme Networks

                       Management Information Base for the
                       Differentiated Services Architecture

			  draft-ietf-diffserv-mib-01.txt

                          draft-ietf-diffserv-mib-02.txt

          Abstract

          This memo describes a proposed MIB for the Differentiated
          Services Architecture. Architecture [Architecture] and described by the
          Differentiated Services Router Conceptual Model [Model].

          Currently total agreement on content of this MIB has not been
          reached, especially in the dropping and queueing mechanism
          attributes.  Further discussion on these topics are required
          for finalizing this memo.

          1.  Status of this Memo

          This document is an Internet-Draft and is in full conformance
          with all provisions of Section 10 of RFC 2026. Internet-Drafts
          are working documents of the Internet Engineering Task Force
          (IETF), its areas, and its working groups.  Note that other
          groups may also distribute working documents as Internet-
          Drafts.

          Internet-Drafts are draft documents valid for a maximum of six
          months and may be updated, replaced, or obsoleted by other
          documents at any time.  It is inappropriate to use Internet
          Drafts as reference material or to cite them other than as
          "work in progress."

          The list of current Internet-Drafts can be accessed at
          http://www.ietf.org/ietf/1id-abstracts.txt

          The list of Internet-Draft Shadow Directories can be accessed
          at http://www.ietf.org/shadow.html.

          This particular draft is being developed in the Differentiated
          Services Working Group. Discussion of it therefore belongs on
          that list. The charter for Differentiated Services may be





          Baker, Chan, SmithExpiration: September 2000          [Page 1]





          Draft            Differentiated Services MIB        March 2000


          found at http://www.ietf.org/html.charters/diffserv-
          charter.html

          2.  The SNMP Management Framework

          The SNMP Management Framework presently consists of five major
          components:

              o   An overall architecture, described in RFC 2571 [1].

              o   Mechanisms for describing and naming objects and
                  events for the purpose of management. The first
                  version of this Structure of Management Information





	  Fred Baker, etc     Expiration: April	2000		[Page 1]




	  Draft		   Differentiated Services MIB	    October 1999
                  (SMI) is called SMIv1 and described in RFC 1155 [2],
                  RFC 1212 [3] and RFC 1215 [4]. The second version,
                  called SMIv2, is described in RFC 2578 [5], RFC 2579
                  [6] and RFC 2580 [7].

              o   Message protocols for transferring management
                  information. The first version of the SNMP message
                  protocol is called SNMPv1 and described in RFC 1157
                  [8]. A second version of the SNMP message protocol,
                  which is not an Internet standards track protocol, is
                  called SNMPv2c and described in RFC 1901 [9] and RFC
                  1906 [10]. The third version of the message protocol
                  is called SNMPv3 and described in RFC 1906 [10], RFC
                  2572 [11] and RFC 2574 [12].

              o   Protocol operations for accessing management
                  information. The first set of protocol operations and
                  associated PDU formats is described in RFC 1157 [8]. A
                  second set of protocol operations and associated PDU
                  formats is described in RFC 1905 [13].

              o   A set of fundamental applications described in RFC
                  2573 [14] and the view-based access control mechanism
                  described in RFC 2575 [15].

          A more detailed introduction to the current SNMP Management
          Framework can be found in RFC 2570 [16].

          Managed objects are accessed via a virtual information store,
          termed the Management Information Base or MIB.  Objects in the
          MIB are defined using the mechanisms defined in the SMI.

          This memo specifies a MIB module that is compliant to the
          SMIv2. A MIB conforming to the SMIv1 can be produced through





          Baker, Chan, SmithExpiration: September 2000          [Page 2]





          Draft            Differentiated Services MIB        March 2000


          the appropriate translations. The resulting translated MIB
          must be semantically equivalent, except where objects or
          events are omitted because no translation is possible (use of
          Counter64). Some machine-readable information in SMIv2 will be
          converted into textual descriptions in SMIv1 during the
          translation process. However, this loss of machine readable
          information is not considered to change the semantics of the
          MIB.










	  Fred












































          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000          [Page 2] 3]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          3.  Structure of this MIB

          This MIB is designed according to the Differentiated Services
          implementation conceptual model documented in [Model].

          3.1.  Overview

          In principle, if one were to construct a network entirely out
          of two-port routers (in appropriate places connected by LANs
          or similar media), then it would be necessary for each router
          to perform exactly four QoS control functions on traffic in
          each direction:

          -    Classify each message according to some set of rules

          -    In edge devices, determine whether the data stream the
               message is part of is within or outside its rate

          -    Perform some set of resulting actions, minimally
               including applying a drop policy appropriate to the
               classification and queue in question, and in edge devices
               perhaps additionally marking the traffic with a
               Differentiated Services Code Point (DSCP) as defined in
               [DSCP].

          -    Enqueue the traffic for output in the appropriate queue,
               which may shape the traffic or simply forward it with
               some minimum rate or maximum latency.

          If we build the network out of N-port routers, we expect the
          behavior of the network to be identical. We are forced,
          therefore, to provide essentially the same set of functions on
          the ingress port of a router as on the egress port of a
          router. Some interfaces will be "edge" interfaces and some
          will be "interior" to the Differentiated Services domain. The
          one point of difference between an ingress and an egress
          interface is that all traffic on an egress interface is
          queued, while traffic on an ingress interface will typically
          be queued only for shaping purposes.

          Hence, in this MIB, we model them identically, making the
          distinction between ingress and egress interfaces an index
          variable.

          The MIB therefore contains six the following elements:
          - Behavior Aggregate IP Six Tuple Multi-Field Classification Table
          - Multi-Field	Classification Classifier Table





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000          [Page 3] 4]





          Draft            Differentiated Services MIB	    October 1999


	  - Classifier Table        March 2000


          - Meter Table
          - Action Table and Action Type Tables
          - Queue Table Set, Queue, and Queue Measurement Tables

          3.2.  Classifier Table

          The classifier table indicates how traffic is sorted out. It
          identifies separable classes of traffic, by reference to an
          appropriate classifier, which may be anything from an
          individual micro-flow to aggregates identified by DSCP.  It
          then sends these classified streams to an appropriate meter or
          action. In a multi-stage meter, sub-classes of traffic may be
          sent to different stages. For example, in AF1, AF11 traffic
          might be sent to the first meter, AF12 traffic might be sent
          to the second, and AF13 traffic sent to the second meter
          stage's failure action.

          The structure of the classifier table is a sequence of
          unambiguous tests. Within each step in the sequence, it should
          not be important in which order - if order is present at all -
          the tests are made. This is to facilitate optimized
          implementations such as index trees. Sequence is present in
          order to resolve ambiguity.

          For example, one might want first to disallow certain
          applications from using the network at all, or to classify
          some individual traffic streams that are not diff-serv marked.
          Traffic that fails those tests might then be inspected for a
          DSCP. "Then" implies sequence, and the sequence must be
          somehow specified.

          An important form of classifier is "everything else". The
          final stage of the classifier should be configured to be
          complete, as the result of an incomplete classifier is not
          necessarily deterministic.

	  Two forms

          The actual classifier definition is referenced via a
          RowPointer, this enable the use of any sort of classification
          table that one might wish to design, public or proprietary.
          That classifier table need not be found in this MIB.  When
          ambiguity is present, we disambiguate by explicitly ordering
          the application of classification rules.

          The classifiers are Behavior	Aggregate (BA) and
	  Multi-Field (MF) Classifiers.	 These classifiers are specified here are at the per interface level,
          they can may be derived from some higher level policies.  For example, QoS	Policies
	  provisioned via QoS PIB (Policy Information Base), Routing
	  Policies with	QoS information	via BGP	Policy setting
	  mechanism, and Routing Policies with QoS information from
	  traffic engineered routes.  The source of classifier policies, but such
          discussion is
	  indicated by out- side the diffServClassifierConfigType	attribute scope of the
	  diffServClassifierEntry object.  The attribute





	  Fred this document.






          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000          [Page 4] 5]





          Draft            Differentiated Services MIB	    October 1999


	  diffServClassifierConfigTypeInfo can be        March 2000


          3.2.1.  IP Six Tuple Classifier Table

          This MIB currently specifies the IP Six Tuple Classifier, used to further
	  associate
          for IP traffic classification.  Entry of this Classifier Table
          is referenced from the	classifier with	specific grouping based	on the
	  ConfigType.  For example, with PIB ConfigType, entries of the
	  ConfigTypeInfo diffServClassifierTable
          via a RowPointer, namely diffServClassifierPattern attribute can hold the	RoleCombination	from
	  which	the classifier is derived.  With BGP ConfigType, the
	  ConfigTypeInfo can hold the BGP Community String that
	  identifies the BGP Routing Policy from which the classifier is
	  derived.  With the use
          of higher level policies, the
	  classifier table is used primarily for monitoring purpose, but
	  this does not	exclude	its use	for configuration purpose.

	  3.2.1.  Behavior Aggregate Classification Table diffServClassifierEntry object.

          The Behavior Aggregate Classification	Table is present for
	  several reasons. First, the DSCP must	be identified somewhere
	  for identifying tagged streams of traffic. This could	be done
	  in-line, and is not.

	  The reason the BA (BA) Classifier is pulled out into a separate
	  table	is that	we envisage the	use of other tables for	other
	  kinds simple form of classifiers,	public or proprietary. For example, the
	  typical "five-tuple" used in per-flow	classification (as in
	  RSVP)	might be
          IP Six Tuple Classifier.  It is represented by	a table	whose objects include
	  the necessary	IP Addresses, having the IP protocol,
          diffServSixTupleClfrDscp attribute set to the necessary
	  TCP/UDP port numbers, desired DSCP,
          and a RowStatus	variable. By pulling the
	  classifier itself into a table that can be referenced	via a
	  RowPointer, we enable	the use	of any sort of all other classification
	  table	that one might wish attributes set to design. That classifier table
	  need not be found in this MIB. When ambiguity	is present, we
	  disambiguate by explicitly ordering the application of
	  classification rules.

	  3.2.2.  Multi-Field Classification Table

	  In the same spirit as match-all, the BA Classification Table, the Multi-
	  Field	Classification Table is	in a separate table that can be
	  referenced via a RowPointer, namely
	  diffServClassifierMatchObject	attribute of
	  diffServClassifierEntry object.
          default setting.

          Each entry in the MF
	  Classification IP Six Tuple Classifier Table defines a MF Classifier.	 With
          single Classifier, with the use of
	  InetEndpoint InetAddress [INETADDR] for
          both IPv4 and IPv6 addressing.  The use of MF IP Six Tuple
          Classifiers is discussed in [DSARCH] [Architecture] and abstract
          examples of how they might be configured are provided in [DSMODEL].









	  Fred Baker, etc     Expiration: April	2000		[Page 5]




	  Draft		   Differentiated Services MIB	    October 1999
          [Model].


          3.3.  Meter Table

          A meter, according to the conceptual model, measures the rate
          at which a stream of traffic passes it, compares it to some
          set of thresholds, and produces some number (two or more)
          potential results. A given message is said to "conform" to the
          meter if at the time that the message is being looked at the
          stream appears to be within the meter's limit rate. In the
          MIB, the structure of SNMP makes it easiest to implement this
          as a set of one or more simple pass/fail tests, which are
          cascaded. It is to be understood that the meter in a Traffic
          Control Block is therefore implemented as a set of if-then-
          else constructs.

          The result of	metering traffic is always some	action.

	  The concept of conformance to a meter bears a comment. The
          concept applied in several rate-control architectures,
          including ATM, Frame Relay, Integrated Services, and
          Differentiated Services, is variously described as a "leaky
          bucket" or a "token bucket".

          A leaky bucket algorithm is primarily used for traffic
          shaping: traffic theoretically departs from the switch at a
          flat rate of one bit every so many time units, and in fact
          departs in packets at a rate approximating that. It is also
          possible to build multi-rate leaky buckets, in which traffic
	  departs from the switch





          Baker, Chan, SmithExpiration: September 2000          [Page 6]





          Draft            Differentiated Services MIB        March 2000


          departs from the switch at varying rates depending on recent
          activity or inactivity.

          A token bucket is used to measure the behavior of a peer's
          leaky bucket, for verification purposes. It is, by definition,
          a relationship

                            interval = burst/rate, or
                              rate = burst/interval

          for some defined burst size, in bits, rate, in bits per
          second, and time interval. Multi-rate token buckets (token
          buckets with both a peak and a mean rate, and sometimes more
          rates) are commonly used. In this case, the burst size for the
          baseline traffic is conventionally referred to as the
          "committed burst", and the time interval is as specified by

                       interval = committed burst/mean rate







	  Fred Baker, etc     Expiration: April	2000		[Page 6]




	  Draft		   Differentiated Services MIB	    October 1999

          but additional burst sizes (each an increment over its
          predecessor) are defined, which are conventionally referred to
          as "excess" burst sizes.  The peak rate therefore equals the
          sum of the burst sizes per interval.

          A data stream is said to "conform" to a simple token bucket if
          the switch receives at most the burst size in a given time
          interval. In the multi-rate case, the traffic is said to
          conform to the token bucket at a given level if its rate does
          not exceed the sum of the relevant burst sizes in a given
          interval. Received traffic pre-classified at one of the
          "excess" rates (e.g., AF12 or AF13 traffic) is only compared
          to the relevant excess buckets.

          The fact that data is organized into variable length packets
          introduces some uncertainty in this. For this reason, the
          token bucket accepts a packet if any of its bits would have
          been accepted, and "borrows" any excess capacity required from
          that allotted to equivalently classified traffic in a previous
          or subsequent interval. More information about this is
          available in [Model].

          Multiple classes of traffic, as identified by the classifier
          table, may be presented to the same meter. Imagine, for
          example, that we desire to drop all traffic that uses any DSCP
          that has not been publicly defined.  A classifier entry might
          exist for each such DSCP, shunting it to an "accepts
          everything" meter, and dropping all traffic that conforms to





          Baker, Chan, SmithExpiration: September 2000          [Page 7]





          Draft            Differentiated Services MIB        March 2000


          only that meter.

          Clearly, it is necessary to identify what is to be done with
          messages that conform to the meter, and with messages that do
          not. It is also necessary for the meter to be arbitrarily
          extensible, as some PHBs require the successive application of
          an arbitrary number of meters.  The approach taken in this
          design is to have each meter indicate what action is to be
          taken for conforming traffic, and what meter is to be used for
          traffic which fails to conform. With the definition of a
          special type of meter to which all traffic conforms, we now
          have the necessary flexibility.

          3.4.  Action Table

          Considerable discussion has taken place regarding the possible
          actions.  Suggested actions include "no action", "mark the
          traffic", "drop the traffic, randomly	or all of it", and based on some algorithm", "shape
          the traffic." In this MIB, three actions are





	  Fred Baker, etc     Expiration: April	2000		[Page 7]




	  Draft		   Differentiated Services traffic", "count it".  This MIB	    October 1999


	  contemplated:	marking attempts to make the traffic, counting
          specification of the traffic that
	  passes that route, applying a	drop policy. The author	notes
	  that marking action flexible by using the traffic Action Table
          to organize one Action's relationship with the same DSCP as it already has
	  no effect, Meter element
          before it, with the Queueing element following it, and all traffic must expect with
          other Action elements to come up against some
	  drop policy.

	  Two sizes allow multiple Actions be applied to
          a single traffic stream.  The parameters needed will depend on
          the type of objects Action to be taken.  Hence there are defined Action Tables
          for some counters. These are
	  defined in accordance	with the method	found different Action Types.  This MIB currently defines
          parameters for:  1. Mark Action, 2. Count Action, 3. Drop
          Action,

          This flexibility allows additional Actions be specified in [IFMIB];
          future revisions of this MIB, or in other MIBs.  And possible
          usage of propietary Action without impact to the Actions
          provided here.

          The Mark Action is relatively straight forward.

          For Count Action, when it is specified, it will always be
          applied first, before any other type of Actions.  For example,
          when both
	  32 Count and 64 bit	counters a Drop Action is specified, the Count
          Action will always count the total counts of this traffic
          stream, before any traffic gets dropped, even if the Action
          entries are defined, chained with the expectation that Drop Action first, before the 32 bit counter is	simply
          Count Action.  There are counters in the least significant bits Drop Actions to
          indicate the ammount of traffic dropped, within the
	  64 bit counter. For interfaces that operate at 20,000,000 (20
	  million) bits	per second or less, 32-bit byte	and packet
	  counters MUST	be used.  For interfaces that operate faster
	  than 20,000,000 bits/second, and slower than 650,000,000
	  bits/second, 32-bit packet counters MUST be used and 64-bit
	  octet	counters MUST be used.	For interfaces that operate at
	  650,000,000 bits/second or faster, 64-bit packet counters AND
	  64-bit octet counters	MUST be	used.

	  Traffic conforming to	a meter	and not	dropped	is presented to
	  a queue for further processing.

	  3.5.	Queue Table

	  In this version of drop
          context.

          The Drop Actions require close relationship with queueing,





          Baker, Chan, SmithExpiration: September 2000          [Page 8]





          Draft            Differentiated Services MIB        March 2000


          with detail as follows:

          The Tail Drop Action requires the MIB, specification of a	relatively simple FIFO maximum
          queue is
	  envisaged within depth, at which point any traffic exceeding the Traffic Control Block (TCB).  Each maximum
          queue depth gets discarded.

          *Editor's Note Start* 
          There is capable of	acting as a work-conserving queue (one which
	  transmits as rapidly as its weight allows, but guarantees still debates on what
          attributes are needed and how they may be related to
	  its class of traffic, queueing.
          The following is viewed as a side effect the complex description of its	weight,	a
	  minimum rate), or as a non-work-conserving or	"shaping" queue.
	  Queue	structure can how it
          may be built from these FIFO queues, including
	  chain	of queues using	the NextTCB attribute. done.  The scheduling
	  discipline following set of attributes and its
          description may be simplified before this memo is finalized.
          There is a queue	amongst more detail discussion of why these attributes are
          required in [ActQMgmt].
          *Editor's Note End*

          The Random Drop Action requires the queue set specification of an inter- face
	  is specified.	 When all its drop
          characteristic with the queues in following parameters (drop
          characteristic described using a plot with drop probability,
          P, as Y axis, and average queue	set uses
	  priority queue discipline, length, Q, as X axis):  
          1. Pmin and Qmin defines the start of the characteristic plot.
             Normally Pmin=0, meaning with average queue set length below
             Qmin, there will	use strict
	  priority queue scheduling using each queue's priority
	  attribute.  When all the queues in be no drops.
          2. Pmax and Qmax defines a "knee" on the plot, after which
             point the drop probability become more progressive (greater
             slope).
             Qclip defines the average queue set length at which all packets
             will be dropped, probability = 1.  Notice this is different
             from Tail Drop because this uses weighted
	  fair average queue discipline, length.
             It is possible for Qclip = Qmax, meaning when the average
             queue set length exceeds Qmax, all packets will use	weighted fair
	  queue	scheduling, with the be dropped.
          3. The sampling interval and average weight specified by parameters are used
             for calculation of average queue.  These parameters are
             important because they can affect the minimum
	  rate attribute.  A mixed scheduling discipline behavior and outcome
             of the drop process.  They can also be	built very sensitive and
             may have a wide range of possible values due to wide range
             of link speeds, hence the use of real number format for
             average weight.

          Deterministic Drop Action can be viewed as a	queue set.  For	example, special case of
          Random Drop with drop probability restricted to zero and one.
          Hence Deterministic Drop Action can be described as follows:
          1. Pmin = 0 and Pmax = 1.  2. Qmin = Qmax = Qclip indicating
          the following average queue set:
	    Q Number  Q	Discipline  Q MinRate  Q Priority
	    --------  ------------  ---------  ----------
	    11	      PQ	    0	       10
	    12	      PQ	    0		9
	    13	      WFQ	    800	KBPS	8
	    14	      WFQ	    600	KBPS	8





	  Fred length that drop occurs.





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000          [Page 8] 9]





          Draft            Differentiated Services MIB	    October 1999


	    15	      WFQ	    300	KBPS	8

	  All traffic in queue 11 will be serviced first, then all
	  traffic in queue 12 will be serviced second.	After traffic in
	  queues 11 and	12 are serviced, queues	13, 14,	15 are serviced
	  among	themselves in        March 2000


          For the drop actions, each drop process specification is
          associated with a	round robin fashion, queue.  This allows multiple drop processes
          (of same or different types) be associated with their
	  respective weights indicated by their	minimum	rate attribute.

	  The queue can	also operate the same
          queue, as	a traffic shaper by using different PHB implementation may require.  This
          setup allows the
	  maximum rate attribute.

	  In addition some dropping algorithms rely on an averaged queue
	  depth	to measure sustained, as opposed to instantaneous,
	  congestion.  There are several methods flexibility for averaging the queue
	  depth.  All of these methods share a mechanism specifying the
	  influence Action specification,
          including multiple sequential drop processes if necessary.

          When counters are specified, two sizes of objects are defined.
          These are defined in accordance with the actual queue	depth on method found in
          [IFMIB]; both 32 and 64 bit counters are defined, with the averaged queue
	  depth.  Hence
          expectation that the attribute diffServQueueOccupancyWeight 32 bit counter is
	  used.

	  Multiple meters may direct their traffic to simply the same queue.
	  For example, least
          significant bits of the Assured Forwarding PHB suggests 64 bit counter. For interfaces that	all
	  traffic marked AF11, AF12,
          operate at 20,000,000 (20 million) bits per second or	AF13 less,
          32-bit byte and packet counters MUST be	placed in used.  For interfaces
          that operate faster than 20,000,000 bits/second, and slower
          than 650,000,000 bits/second, 32-bit packet counters MUST be
          used and 64-bit octet counters MUST be used.  For interfaces
          that operate at 650,000,000 bits/second or faster, 64-bit
          packet counters AND 64-bit octet counters MUST be used.

          Multiple Actions can be chained using the same queue
	  without reordering.

	  Some discussion has elapsed concerning ActionNext
          attribute.  The last Action's ActionNext attribute points to
          the structure next TCB, normally a Queue Entry for the Queue element.


          3.5.  Queueing Element

          The Queueing element consists of Queue Table and Queue Set
          Table.  With Queue Table containing relatively simple FIFO
          queues.  Using the Queue Set Table to allow flexibility in
          constructing both simple and complex queueing hierarchies.

          The queue entries in question, the Queue Table have simple attributes,
          it includes a reference to which queue set the queue belongs
          to, and its functions.	It is expected that a weight parameter.  For Priority Queueing, the
	  description of weight
          parameter indicates the queuing system will grow during working
	  group	discussion. This is an area where vendors differ
	  markedly in their architectures.

	  3.6.	The use	of RowPointer

	  RowPointer is	a textual convention used to identify a
	  conceptual row in an SNMP Table by pointing to one priority of	its
	  objects. In this MIB,	it is used in two ways:	to indicate
	  indirection, and to indicate succession.

	  When used for	indirection, as	in the Classifier table, the
	  idea is to allow other MIBs, including proprietary ones, queue with respect to
	  identify new and arcane classifiers -	MAC headers, IP4 and IP6
	  headers, BGP Communities, and
          all sorts of things.

	  When used for	succession, it answers the question "what
	  happens next?".  Rather than presume that other queues within the	next table must same queue set.  A higher
          weight value queue will be as	specified service first over a lower weight
          value queue in the conceptual model and providing	its
	  index, same queue set.  For weighed queueing
          algorithms, the RowPointer	takes you to weight parameter is a percentage number.  With
          the MIB row representing
	  that thing. In value of 1,000 meaning 1 percent, allowing fine control of
          bandwidth allocation when needed.  A higher weight value queue
          will have higher probability of being service when compared to
          a lower weight value queue in the Meter Table, same queue set.  The weight
          values for example, all the "FailNext"





	  Fred Baker, etc     Expiration: April	2000		[Page 9]




	  Draft		   Differentiated Services MIB	    October 1999


	  RowPointer might take	you queues within a queue set must add up to another meter, while the
	  "SucceedNext"	RowPointer would take you
          less than or equal to an	action.


















































	  Fred 100,000 (100%).  Each queue is capable
          of acting as a work-conserving queue, one which transmits as





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 10]





          Draft            Differentiated Services MIB	    October 1999


	  4.  MIB Definition

	  DIFF-SERV-MIB	DEFINITIONS ::=	BEGIN

	      IMPORTS
	      Unsigned32, Counter32, Counter64,	OBJECT-TYPE,
	      MODULE-IDENTITY,        March 2000


          rapidly as its weight allows, but guarantees to its class of
          traffic, as a side effect of its weight, a minimum rate.  Or
          acting as a non-work-conserving "shaping" queue.

          The entries in the Queue Set Table describes the attributes
          common to all queues within the queue set.  This includes the
          dequeueing Method, or algorithm used amongst the queues in the
          queue set.  Currently, priority queueing, Weighed Fair
          Queueing, Weighed Round Robin are listed as the possible
          chooses, other methods/algorithms, e.g. Class Base Queueing,
          can be added.

          The rates, both minimum and maximum, are specified for the
          queue set instead of per queue.  This allows

          A hierarchical tree of queue sets can be constructed using the
          parent/child queue set concept.  The attributes QSetParentId
          and QSetWeight is used for this purpose, with QSetParentId
          indicating the parent's QSetId, and QSetWeight used as the
          child queue set's total weight amongst the queues in the
          parent queue set.  There can be multiple children queue set
          under one parent queue set, with each child queue set looks
          like a queue from the parent queue set's perspective.  Hence
          queue sets can be recursively defined, inter mixing with
          queues at any level.

          A mixed dequeue scheduling discipline can be built for an
          interface.  For example, with the following queues and queue
          sets:

            Q Parameters          Q Set Parameters

            QId QSetId QWeight    Method MinRate ParentId QSetWeight
            --- ------ -------    ------ ------- -------- ----------
             11     61     100        PQ       0        0          0
             12     61      99        PQ       0        0          0

             21     71  50,000       WFQ   10000       61         98
             22     71  30,000       WFQ   10000       61         98
             23     71  20,000       WFQ   10000       61         98

             31     81  70,000       WRR     500       61         97
             32     81  30,000       WRR     500       61         97

          Notice in this example there are three queue sets:  Queue Set
          61 uses Priority Queueing, it have 2 child Queue Sets.  Queue
          Set 71 uses Weighed Fair Queueing with KBPS as RateUnit.





          Baker, Chan, SmithExpiration: September 2000         [Page 11]





          Draft            Differentiated Services MIB        March 2000


          Queue Set 81 uses Weighed Round Robin with Packets/Sec as
          RateUnit.

          Queues 11, 12, queue sets 71 and 81 belongs to Queue Set 61.
          Queues 21, 22, 23 belongs to Queue Set 71.  Queues 31, 32
          belongs to Queue Set 81.

          All traffic in queue 11 will be serviced first, then all
          traffic in queue 12 will be serviced second.  After traffic in
          queues 11 and 12 are serviced, queues 21, 22, 23 are serviced
          among themselves in a fair queueing fashion, based on their
          respective weight.  After traffic in queues 21, 22, 23 are
          serviced, queues 31, 32 are serviced among themselves in a
          round robin fashion, based on their respective weight.  Notice
          Queue Set 71 uses KBPS RateUnit, resulting in bit/byte fair
          queueing.  Queue Set 81 uses Packet RateUnit, resulting in
          packet fair queueing.

          The rates for each queue can be derived:  Queue 21 have
          minimum rate of 50% of 10000 KBPS, 5000 KBPS.  Queue 31 have
          minimum rate of 70% of 500 Pkt/Sec, 350 Pkt/Sec.

          Other types of scheduling algorithms can be used in the parent
          or child queue sets, creating different queueing behaviors.

          The queue set can also operate as a traffic shaper by using
          the maximum rate attribute.

          Chains of Queues/Queue Sets can be built using the NextTCB
          attribute in Queue Set entry.

          Multiple meters may direct their traffic to the same queue.
          For example, the Assured Forwarding PHB suggests that all
          traffic marked AF11, AF12, or AF13 be placed in the same queue
          without reordering.


          3.6.  The use of RowPointer

          RowPointer is a textual convention used to identify a
          conceptual row in an SNMP Table by pointing to one of its
          objects. In this MIB, it is used in two ways: to indicate
          indirection, and to indicate succession.

          When used for indirection, as in the Classifier table, the
          idea is to allow other MIBs, including proprietary ones, to
          identify new and arcane classifiers - MAC headers, IP4 and IP6





          Baker, Chan, SmithExpiration: September 2000         [Page 12]





          Draft            Differentiated Services MIB        March 2000


          headers, BGP Communities, and all sorts of things.

          When used for succession, it answers the question "what
          happens next?".  Rather than presume that the next table must
          be as specified in the conceptual model and providing its
          index, the RowPointer takes you to the MIB row representing
          that thing. In the Meter Table, for example, the "FailNext"
          RowPointer might take you to another meter, while the
          "SucceedNext" RowPointer would take you to an action.











































          Baker, Chan, SmithExpiration: September 2000         [Page 13]





          Draft            Differentiated Services MIB        March 2000


          4.  MIB Definition

          DIFF-SERV-MIB DEFINITIONS ::= BEGIN

              IMPORTS
              Unsigned32, Counter32, Counter64, OBJECT-TYPE,
              MODULE-IDENTITY, zeroDotZero, mib-2          FROM SNMPv2-SMI
              TEXTUAL-CONVENTION, RowStatus, RowPointer, TestAndIncr
							   FROM	SNMPv2-TC
	      MODULE-COMPLIANCE, OBJECT-GROUP		   FROM	SNMPv2-CONF
	      ifIndex					   FROM	IF-MIB;
	      InetEndpointType,	InetEndpoint		   FROM	INET-ENDPOINT-MIB;

	  diffServMib MODULE-IDENTITY
	      LAST-UPDATED "9907190100Z" TestAndIncr
                                                           FROM SNMPv2-TC
              MODULE-COMPLIANCE, OBJECT-GROUP              FROM SNMPv2-CONF
              ifIndex                                      FROM IF-MIB
              DisplayString                                FROM RFC1213-MIB
              InetAddressType, InetAddress                 FROM INET-ADDRESS-MIB;

          diffServMib MODULE-IDENTITY
              LAST-UPDATED "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999
              ORGANIZATION "Cisco Systems"
              CONTACT-INFO
                 "       Fred Baker
                 Postal: 519 Lado Drive
                         Santa Barbara, California 93111
                 Tel: +1 (408) 526-4257
                 FAX: +1 (805) 681-0115
                 E-mail: fred@cisco.com

                         Kwok Ho Chan
                 Postal: 600 Technology Park Drive
                         Billerica, Massachusetts 01821, USA
                 Tel: +1 (978) 288-8175
                 FAX: +1 (978) 288-4690
                 E-mail: khchan@nortelnetworks.com

                         Andrew Smith
                 Postal: 3585 Monroe St.
                         Santa Clara, California 95051
                 Tel: +1 (408) 579 2821
                 FAX: +1 (408) 579 3000
                 E-mail: andrew@extremenetworks.com"
              DESCRIPTION
                 "This MIB defines the objects necessary to manage a
                 device that uses the Differentiated Services
                 Architecture described in RFC 2475 and the Conceptual
                 Model for DiffServ Routers in draft-ietf-diffserv-
                 model-01.txt."
              REVISION "9907190100Z" -- Mon Jul 19 01:00:00 PDT 1999
              DESCRIPTION
                 "Initial version, published as RFC xxxx."





          Baker, Chan, SmithExpiration: September 2000         [Page 14]





          Draft            Differentiated Services MIB        March 2000


              ::= { mib-2 12345 }  -- anybody who uses this unassigned
                                   -- number deserves the wrath of IANA

          diffServObjects        OBJECT IDENTIFIER ::= { diffServMib 1 }
          diffServTables         OBJECT IDENTIFIER ::= { diffServMib 2 }
          diffServAugments       OBJECT IDENTIFIER ::= { diffServMib 3 }
          diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 4 }

          --
          -- These textual conventions has no effect on either the syntax
          -- nor the semantics of any managed object.  Objects defined
          -- using this convention are always encoded by means of the
          -- rules that define their primitive type.
          --
          Dscp ::= TEXTUAL-CONVENTION
              DISPLAY-HINT "d"
              STATUS   current
              DESCRIPTION
                 "The code point used for discriminating a traffic
                 stream."
              SYNTAX   INTEGER (-1 | 0..63)

          SixTupleClfrL4Port ::= TEXTUAL-CONVENTION
              DISPLAY-HINT "d"
              STATUS   current
              DESCRIPTION
                 "A value indicating a Layer-4 protocol port number."
              SYNTAX   INTEGER (0..65535)
























          Baker, Chan, SmithExpiration: September 2000         [Page 15]





          Draft            Differentiated Services MIB        March 2000


          --
          -- Classifiers
          --
          -- The tools for IP Six Tuple Classification.

          -- This object allows a configuring system to obtain a
          -- unique value for diffServSixTupleClfrId for purposes
          -- of configuration.

          diffServSixTupleClfrUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServSixTupleClfrUnique object yields a unique new
                 value for diffServSixTupleClfrId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= { diffServObjects 1 }

          diffServSixTupleClfrTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServSixTupleClfrEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "A table of IP Six Tuple Classifier entries that a
                 system may use to identify traffic."
              ::= { diffServTables 1 }

          diffServSixTupleClfrEntry OBJECT-TYPE
              SYNTAX       DiffServSixTupleClfrEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An IP Six Tuple Classifier entry describes a single
                 classifier."
              INDEX { diffServSixTupleClfrId }
              ::= { diffServSixTupleClfrTable 1 }

          DiffServSixTupleClfrEntry ::= SEQUENCE {
              diffServSixTupleClfrId           Unsigned32,
              diffServSixTupleClfrAddrType     InetAddressType,
              diffServSixTupleClfrDstAddr      InetAddress,
              diffServSixTupleClfrDstAddrMask  InetAddress,
              diffServSixTupleClfrSrcAddr      InetAddress,
              diffServSixTupleClfrSrcAddrMask  InetAddress,
              diffServSixTupleClfrDscp         Dscp,
              diffServSixTupleClfrProtocol     INTEGER,





          Baker, Chan, SmithExpiration: September 2000         [Page 16]





          Draft            Differentiated Services MIB        March 2000


              diffServSixTupleClfrDstL4PortMin SixTupleClfrL4Port,
              diffServSixTupleClfrDstL4PortMax SixTupleClfrL4Port,
              diffServSixTupleClfrSrcL4PortMin SixTupleClfrL4Port,
              diffServSixTupleClfrSrcL4PortMax SixTupleClfrL4Port,
              diffServSixTupleClfrStatus       RowStatus
          }

          diffServSixTupleClfrId OBJECT-TYPE
              SYNTAX         Unsigned32 (1..2147483647)
              MAX-ACCESS     not-accessible
              STATUS         current
              DESCRIPTION
                 "A unique id for the classifier. This object is meant
                 to be pointed to by a RowPointer from other tables,
                 such as the diffServClassifierPattern."
              ::= { diffServSixTupleClfrEntry 1 }

          diffServSixTupleClfrAddrType OBJECT-TYPE
              SYNTAX         InetAddressType
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The type of IP address used by this classifier entry."
              ::= { diffServSixTupleClfrEntry 2 }

          diffServSixTupleClfrDstAddr OBJECT-TYPE
              SYNTAX         InetAddress
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The IP address to match against the packet's
                 destination IP address."
              ::= { diffServSixTupleClfrEntry 3 }

          diffServSixTupleClfrDstAddrMask OBJECT-TYPE
              SYNTAX         InetAddress
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "A mask for the matching of the destination IP address.
                 A zero bit in the mask means that the corresponding bit
                 in the address always matches."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 4 }

          diffServSixTupleClfrSrcAddr OBJECT-TYPE
              SYNTAX         InetAddress





          Baker, Chan, SmithExpiration: September 2000         [Page 17]





          Draft            Differentiated Services MIB        March 2000


              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The IP address to match against the source IP address
                 of each packet."
              ::= { diffServSixTupleClfrEntry 5 }

          diffServSixTupleClfrSrcAddrMask OBJECT-TYPE
              SYNTAX         InetAddress
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "A mask for the matching of the source IP address.  A
                 zero bit in the mask means that the corresponding bit
                 in the address always matches."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 6 }

          diffServSixTupleClfrDscp OBJECT-TYPE
              SYNTAX         Dscp
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The value that the DSCP in the packet must have to
                 match this entry. A value of -1 indicates that a
                 specific DSCP value has not been defined and thus all
                 DSCP values are considered a match."
              DEFVAL         {-1}
              ::= { diffServSixTupleClfrEntry 7 }

          diffServSixTupleClfrProtocol OBJECT-TYPE
              SYNTAX         INTEGER (0..255)
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The IP protocol to match against the IPv4 protocol
                 number in the packet. A value of zero means match all."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 8 }

          diffServSixTupleClfrDstL4PortMin OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-create
              STATUS         current
              DESCRIPTION
                 "The minimum value that the layer-4 destination port
                 number in the packet must have in order to match this





          Baker, Chan, SmithExpiration: September 2000         [Page 18]





          Draft            Differentiated Services MIB        March 2000


                 classifier entry."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 9 }

          diffServSixTupleClfrDstL4PortMax OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The maximum value that the layer-4 destination port
                 number in the packet must have in order to match this
                 classifier entry. This value must be equal to or
                 greater that the value specified for this entry in
                 diffServSixTupleClfrDstL4PortMin."
              DEFVAL         {65535}
              ::= { diffServSixTupleClfrEntry 10 }

          diffServSixTupleClfrSrcL4PortMin OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The minimum value that the layer-4 source port number
                 in the packet must have in order to match this
                 classifier entry."
              DEFVAL         {0}
              ::= { diffServSixTupleClfrEntry 11 }

          diffServSixTupleClfrSrcL4PortMax OBJECT-TYPE
              SYNTAX         SixTupleClfrL4Port
              MAX-ACCESS     read-write
              STATUS         current
              DESCRIPTION
                 "The maximum value that the layer-4 source port number
                 in the packet must have in oder to match this
                 classifier entry. This value must be equal to or
                 greater that the value specified for this entry in
                 dsSixTupleIpSrcL4PortMin."
              DEFVAL         {65535}
              ::= { diffServSixTupleClfrEntry 12 }

          diffServSixTupleClfrStatus OBJECT-TYPE
              SYNTAX      RowStatus
              MAX-ACCESS  read-create
              STATUS      current
              DESCRIPTION
                 "The RowStatus variable controls the activation,





          Baker, Chan, SmithExpiration: September 2000         [Page 19]





          Draft            Differentiated Services MIB        March 2000


                 deactivation, or deletion of a classifier. Any writable
                 variable may be modified whether the row is active or
                 notInService."
              ::= { diffServSixTupleClfrEntry 13 }


          -- Classifier Table
          -- This object allows a configuring system to obtain a
          -- unique value for diffServClassifierNumber for purposes of
          -- configuration

          diffServClassifierUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServClassifierUnique object yields a unique
                 new value for diffServClassifierId when read and
                 subsequently set. This value must be tested for
                 uniqueness."
              ::= { diffServObjects 2 }


          -- The Classifier Table allows us to enumerate the relationship
          -- between arbitrary classifiers and the meters which apply
          -- to classified streams.

          diffServClassifierTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServClassifierEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The classifier table defines the classifiers that a
                 system applies to incoming traffic.  Specific
                 classifiers are defined by RowPointers in this table
                 which identify entries in classifier tables of specific
                 type, e.g.  Multi-field classifiers for IP are defined
                 in diffServSixTupleClfrTable.  Other classifier types
                 may be defined elsewhere."
              ::= { diffServTables 2 }

          diffServClassifierEntry OBJECT-TYPE
              SYNTAX       DiffServClassifierEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An entry in the classifier table describes a single





          Baker, Chan, SmithExpiration: September 2000         [Page 20]





          Draft            Differentiated Services MIB        March 2000


                 classifier."
              INDEX { ifIndex, diffServInterfaceDirection,
                      diffServClassifierId }
              ::= { diffServClassifierTable 1 }

          DiffServClassifierEntry ::= SEQUENCE  {
              diffServInterfaceDirection     INTEGER,
              diffServClassifierId           Unsigned32,
              diffServClassifierPattern      RowPointer,
              diffServClassifierNext         RowPointer,
              diffServClassifierPrecedence   Unsigned32,
              diffServClassifierStatus       RowStatus
          }

          diffServInterfaceDirection OBJECT-TYPE
              SYNTAX  INTEGER {
                          inbound(1),     -- ingress interface
                          outbound(2)     -- egress interface
                      }
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Specifies the direction for this entry on the
                 interface. 'inbound' traffic is operated on during
                 receipt, while 'outbound' traffic is operated on prior
                 to transmission."
              ::= { diffServClassifierEntry 1 }

          diffServClassifierId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Classifier Id enumerates the classifier entry."
              ::= { diffServClassifierEntry 2 }

          diffServClassifierPattern OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "A pointer to a valid entry in another table that
                 describes the applicable classification pattern, e.g.
                 an entry in diffServSixTupleClfrTable.  If the row
                 pointed to does not exist, the classifier is ignored.

                 The value zeroDotZero is interpreted to match anything





          Baker, Chan, SmithExpiration: September 2000         [Page 21]





          Draft            Differentiated Services MIB        March 2000


                 not matched by another classifier - only one such entry
                 may exist in this table."
              DEFVAL { zeroDotZero }
              ::= { diffServClassifierEntry 3 }

          diffServClassifierNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The 'next' variable selects the next datapath element
                 to handle the classified flow.  For example, this can
                 points to an entry in the meter or action table."
              ::= { diffServClassifierEntry 4 }

          diffServClassifierPrecedence OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The relative precedence in which classifiers are
                 applied, higer numbers represent classifiers with
                 higher precedence.  Classifiers with the same
                 precedence must be unambiguous, i.e. they must define
                 non-overlapping patterns.  Classifiers with different
                 precedence may overlap in their patterns:  the
                 classifier with the highest precedence that matches is
                 taken."
              DEFVAL { 0 }
              ::= { diffServClassifierEntry 5 }

          diffServClassifierStatus OBJECT-TYPE
              SYNTAX       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The RowStatus variable controls the activation,
                 deactivation, or deletion of a classifier. Any writable
                 variable may be modified whether the row is active or
                 notInService."
              ::= { diffServClassifierEntry 6 }











          Baker, Chan, SmithExpiration: September 2000         [Page 22]





          Draft            Differentiated Services MIB        March 2000


          -- Mon	Jul 19 01:00:00	PDT 1999
	      ORGANIZATION "Cisco Systems"
	      CONTACT-INFO
		 "	 Fred Baker
		 Postal: 519 Lado Drive
			 Santa Barbara,	California 93111
		 Tel: +1 (408)526-4257
		 FAX: +1 (805)681-0115
		 E-mail: fred@cisco.com"
		 "	 Kwok Ho Chan
		 Postal: 600 Technology	Park Drive
			 Billerica, Massachusetts 01821, USA
		 Tel: +1 (978)288-8175
		 E-mail: khchan@nortelnetworks.com"
		 "	 Andrew	Smith
		 Postal: 3585 Monroe St.
			 Santa Clara, California 95051
		 Tel: +1 (408) 579 2821
		 FAX: +1 (408) 579 3000
		 E-mail: andrew@extremenetworks.com"
          -- Meters
          --

          -- This MIB includes definitions for Token-Bucket
          -- Meters as one example of possible meters.

          -- This object allows a configuring system to obtain a
          -- unique value for diffServTBMeterId for purposes of
          -- configuration

          diffServTBMeterUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServTBMeterUnique object yields a unique new
                 value for diffServTBMeterId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= { diffServObjects 3 }

          diffServTBMeterTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServTBMeterEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
		 "This
                 "The Meter Table enumerates specific token bucket
                 meters that a system may use to police a stream of
                 classified traffic. The traffic stream is defined by
                 the classifier.  It may include all traffic."
              ::= { diffServTables 3 }

          diffServTBMeterEntry OBJECT-TYPE
              SYNTAX       DiffServTBMeterEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An entry in the meter table describes a single token
                 bucket meter. Note that a meter has exactly one rate,
                 defined as the burst size each time interval. Multiple
                 meters may be cascaded should a multi-rate token bucket
                 be needed in a given Per-Hop Behavior. An example of
                 such a PHB is AF."
              INDEX { ifIndex, diffServInterfaceDirection,
                      diffServTBMeterId  }
              ::= { diffServTBMeterTable 1 }






          Baker, Chan, SmithExpiration: September 2000         [Page 23]





          Draft            Differentiated Services MIB defines        March 2000


          DiffServTBMeterEntry ::= SEQUENCE  {
              diffServTBMeterId                Unsigned32,
              diffServTBMeterRate              Unsigned32,
              diffServTBMeterBurstSize         Unsigned32,
              diffServTBMeterFailNext          RowPointer,
              diffServTBMeterSucceedNext       RowPointer,
              diffServTBMeterStatus            RowStatus
          }

          diffServTBMeterId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "MeterId enumerates the objects necessary meter entry."
              ::= { diffServTBMeterEntry 1 }

          diffServTBMeterRate OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "KBPS"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The token bucket rate, in kilo-bits per second (KBPS).
                 Note that if multiple meters are cascaded onto one PHB,
                 the peak rate of the data stream is the sum of their
                 rates."
              ::= { diffServTBMeterEntry 2 }

          diffServTBMeterBurstSize OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "bytes"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The number of bytes in a single transmission burst.
                 The interval can be derived with (BurstSizex8)/Rate."
              ::= { diffServTBMeterEntry 3 }

          diffServTBMeterFailNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "If the traffic does NOT conform to the meter, FailNext
                 indicates the next datapath element to manage a
		 device	that uses handle the
                 traffic.  For example, an Action or Meter datapath





          Baker, Chan, SmithExpiration: September 2000         [Page 24]





          Draft            Differentiated Services
		 Architecture described MIB        March 2000


                 element.  The value zeroDotZero in RFC 2475."
	      REVISION "9907190100Z" --	Mon Jul	19 01:00:00 PDT	1999
	      DESCRIPTION
		 "Initial version, published as	RFC xxxx." this variable
                 indicates no further DiffServ treatment is performed on
                 this flow by the current interface for this interface
                 direction."
              DEFVAL      { zeroDotZero }
              ::= { mib-2 12345 diffServTBMeterEntry 4 }  -- anybody who uses

          diffServTBMeterSucceedNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "If the traffic does conform to the meter, SucceedNext
                 indicates the next datapath element to handle the
                 traffic.  For example, an Action or Meter datapath
                 element.  The value zeroDotZero in this
				   -- unassigned number
				   -- deserves variable
                 indicates no further DiffServ treatment is performed on
                 this flow by the wrath of IANA

	  diffServObjects OBJECT IDENTIFIER current interface for this interface
                 direction."
              DEFVAL      { zeroDotZero }
              ::= { diffServMib 1 diffServTBMeterEntry 5 }
	  diffServTables OBJECT	IDENTIFIER

          diffServTBMeterStatus OBJECT-TYPE
              SYNTAX       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The RowStatus variable controls the activation,
                 deactivation, or deletion of a meter. Any writable
                 variable may be modified whether the row is active or
                 notInService."
              ::= { diffServMib 2 diffServTBMeterEntry 6 }





	  Fred




















          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 11] 25]





          Draft            Differentiated Services MIB	    October 1999


	  diffServMIBConformance OBJECT	IDENTIFIER ::= { diffServMib 3 }



















































	  Fred Baker, etc     Expiration: April        March 2000	       [Page 12]




	  Draft


          --
          -- Actions
          --
          -- Notice the Drop Action attributes are referenced by the
          -- action table rather than by the queue table because
          -- Differentiated Services MIB	    October 1999 PHBs, such as the Assured Service,
          -- permit differently classified traffic to have different
          -- drop parameters even though they occupy the same queue."
          --

          -- Mark Action Table
          -- Rows of this table is pointed to by diffServAction to
          -- The tools necessary provide detail parameters specific to perform basic Behavior an Action Type.

          -- Aggregate Classification This object allows a configuring system to obtain a
          --
	  Dscp ::= TEXTUAL-CONVENTION
	      DISPLAY-HINT "d" unique value for diffServMarkActId for purposes of
          -- configuration.

          diffServMarkActUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The code point used for discriminating diffServMarkActUnique object yields a traffic
		 stream."
	      SYNTAX   INTEGER (0..63)

	  diffServAggregateTable unique new
                 value for diffServMarkActId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= { diffServObjects 4 }

          diffServMarkActTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServAggregateEntry DiffServMarkActEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The 'Aggregate' Table mark action table enumerates Behavior Aggregate
		 classifiers (DSCPs) that a system may identify	traffic
		 using." specific DSCPs used
                 for marking or remarking the DSCP field.  The entries
                 of this table is meant to be referenced by the
                 diffServAction attribute of entries in
                 diffServActionTable for diffServActionType = mark."
              ::= { diffServTables 1 4 }

	  diffServAggregateEntry

          diffServMarkActEntry OBJECT-TYPE
              SYNTAX	   DiffServAggregateEntry       DiffServMarkActEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An 'aggregate' entry in the mark action table describes a single BA
		 classifier."
                 DSCP used for marking."





          Baker, Chan, SmithExpiration: September 2000         [Page 26]





          Draft            Differentiated Services MIB        March 2000


              INDEX { diffServAggregateDSCP diffServMarkActId }
              ::= { diffServAggregateTable diffServMarkActTable 1 }

	  DiffServAggregateEntry

          DiffServMarkActEntry ::= SEQUENCE  {
	      diffServAggregateDSCP	    Dscp
              diffServMarkActId            Unsigned32,
              diffServMarkActDscp          Dscp,
              diffServMarkActStatus        RowStatus
          }

          diffServMarkActId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Mark Action Id enumerates the Mark Action entry."
              ::= { diffServMarkActEntry 1 }

	  diffServAggregateDSCP

          diffServMarkActDSCP OBJECT-TYPE
              SYNTAX       Dscp
              MAX-ACCESS   read-only   read-create
              STATUS       current
              DESCRIPTION
		 "This
                 "The DSCP this Action TCB uses for marking/remarking
                 traffic with."  Note that if the classifier is working
                 from the same DSCP value, no effective change in the
                 DSCP results.

                 Differentiated Services Code Point (DSCP)
		 for the classifier. This object is only meant to be
		 pointed may result in packet remarking
                 both on ingress to by a RowPointer from other tables, such as network and on egress, and it is
                 quite possible that ingress and egress would occur in
                 the same router."
              ::= { diffServMarkActEntry 2 }

          diffServMarkActStatus OBJECT-TYPE
              SYNTAX       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The RowStatus variable controls the activation,
                 deactivation, or deletion of this entry. Any writable
                 variable may be modified whether the diffServClassifierMatchObject, and row is not actually
		 configured active or changed."
                 notInService."
              ::= { diffServAggregateEntry 1 diffServMarkActEntry 3 }






	  Fred


          -- Count Action Table
          -- Rows of this table is pointed to by diffServAction to





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 13] 27]





          Draft            Differentiated Services MIB	    October 1999


	  -- The tools for MultiField Classification.
	  --
	  -- This textual convention has no effect on either the syntax
	  -- nor the semantics of any managed object.  Objects defined
	  -- using this	convention are always encoded by means of the
	  -- rules that	define their primitive type.        March 2000


          --
	  MFClassifierL4Port ::= TEXTUAL-CONVENTION
	      DISPLAY-HINT "d"
	      STATUS   current
	      DESCRIPTION
		 "A value indicating a Layer-4 protocol	port number."
	      SYNTAX   INTEGER (0..65535) provide detail parameters specific to Count Action.

          -- This object allows a configuring system to obtain a
          -- unique value for diffServClassifierNumber diffServCountActId for purposes of
          -- configuration.

	  diffServMFClassifierUnique

          diffServCountActUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServMFClassifierUnique diffServCountActUnique object yields a unique new
                 value for diffServMFClassifierIndex diffServCountActId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= { diffServObjects 1 5 }

	  diffServMFClassifierTable

          diffServCountActTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF diffServMFClassifierEntry DiffServCountActEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
		 "A
                 "The count action table of MF	(IP 6-tuple multi-field) classifier contains flow specific
                 counters.  The entries that a	system may use of this table is meant to identify traffic." be
                 referenced by the diffServAction attribute of entries
                 in diffServActionTable for diffServActionType = count."
              ::= { diffServTables 2 5 }

	  diffServMFClassifierEntry

          diffServCountActEntry OBJECT-TYPE
              SYNTAX	   DiffServMFClassifierEntry       DiffServCountActEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
		 "A multi-field	classifier
                 "An entry in the count action table describes a single MF
		 classifier."
	      INDEX { diffServMFClassifierIndex	}
	      ::= { diffServMFClassifierTable 1	}





	  Fred Baker, etc     Expiration: April	2000	       [Page 14]




	  Draft		   Differentiated Services MIB	    October 1999


	  DiffServMFClassifierEntry ::=	SEQUENCE {
	      diffServMFClassifierIndex	       INTEGER,
	      diffServMFClassifierAddrType     InetEndpointType,
	      diffServMFClassifierDstAddr      InetEndpoint,
	      diffServMFClassifierDstAddrMask  InetEndpoint,
	      diffServMFClassifierSrcAddr      InetEndpoint,
	      diffServMFClassifierSrcAddrMask  InetEndpoint,
	      diffServMFClassifierDscp	       INTEGER,
	      diffServMFClassifierProtocol     INTEGER,
	      diffServMFClassifierDstL4PortMin MFClassifierL4Port,
	      diffServMFClassifierDstL4PortMax MFClassifierL4Port,
	      diffServMFClassifierSrcL4PortMin MFClassifierL4Port,
	      diffServMFClassifierSrcL4PortMax MFClassifierL4Port,
	      diffServMFClassifierStatus       RowStatus
	  }

	  diffServMFClassifierIndex OBJECT-TYPE
	      SYNTAX	  INTEGER (1..2147483647)
	      MAX-ACCESS  not-accessible
	      STATUS	  current
	      DESCRIPTION
		 "This is a unique index for the classifier.
                 set of flow specific counters.  This object counter entry is meant to be	pointed	to by
                 associated with a	RowPointer from	other
		 tables, such as the diffServClassifierMatchObject."
	      ::= { diffServMFClassifierEntry 1	}

	  diffServMFClassifierAddrType OBJECT-TYPE
	      SYNTAX	     InetEndpointType
	      MAX-ACCESS     read-create
	      STATUS	     current
	      DESCRIPTION
		 "The type of IP address used by this classifier entry."
	      ::= { diffServMFClassifierEntry 2	}

	  diffServMFClassifierDstAddr OBJECT-TYPE
	      SYNTAX	     InetEndpoint
	      MAX-ACCESS     read-create
	      STATUS	     current
	      DESCRIPTION
		 "The IP address to match against traffic flow via the packet's
		 destination IP	address."
                 diffServActionEntry pointing to it."
              INDEX { diffServActionId, diffServCountActId }
              ::= { diffServMFClassifierEntry 3 diffServCountActTable 1 }

          DiffServCountActEntry ::= SEQUENCE  {
              diffServCountActId           Unsigned32,
              diffServCountActOctetsCnt    Counter32,
              diffServCountActPktsCnt      Counter32,
              diffServCountActStatus       RowStatus
          }

	  diffServMFClassifierDstAddrMask

          diffServCountActId OBJECT-TYPE
	      SYNTAX	     InetEndpoint
	      MAX-ACCESS     read-create
	      STATUS	     current





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 15] 28]





          Draft            Differentiated Services MIB	    October 1999


	      DESCRIPTION
		 "A mask for the matching of the destination IP	address.
		 A zero	bit in the mask	means that the corresponding bit
		 in the	address	always matches."
	      ::= { diffServMFClassifierEntry 4	}

	  diffServMFClassifierSrcAddr OBJECT-TYPE        March 2000


              SYNTAX	     InetEndpoint       Unsigned32 (1..2147483647)
              MAX-ACCESS     read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "The IP address to match against
                 "Count Action Id enumerates the source IP	address
		 of each packet." Count Action entry."
              ::= { diffServMFClassifierEntry 5 diffServCountActEntry 1 }

	  diffServMFClassifierSrcAddrMask

          diffServCountActOctetsCnt OBJECT-TYPE
              SYNTAX	     InetEndpoint       Counter32
              UNITS        "octets"
              MAX-ACCESS     read-create   read-only
              STATUS       current
              DESCRIPTION
		 "A mask for
                 "The number of Octets at the matching Action datapath element.
                 Meaning the octets has been classified and possibly
                 metered, and prior to any dropping process. This object
                 may be used on low speed interfaces, and represents the
                 least significant 32 bits of diffServCountActOctetsHCnt
                 in the source	IP address." augmented extension.

                 Discontinuities in the value of this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServMFClassifierEntry 6 diffServCountActEntry 2 }

	  diffServMFClassifierDscp

          diffServCountActPktsCnt OBJECT-TYPE
              SYNTAX	     INTEGER (-1 | 0..63)       Counter32
              UNITS        "packets"
              MAX-ACCESS     read-create   read-only
              STATUS       current
              DESCRIPTION
                 "The value that number of Packets at the DSCP in Action datapath element.
                 Meaning the packet	must have packets has been classified and possibly
                 metered, and prior to
		 match this entry. A value any dropping process. This object
                 may be used on low speed interfaces, and represents the
                 least significant 32 bits of -1 indicates that	a
		 specific DSCP diffServCountActPktsHCount
                 in the augmented extension.

                 Discontinuities in the value has not been defined of this counter can occur
                 at re-initialization of the management system, and thus all
		 DSCP values are considered a match." at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServMFClassifierEntry 7 diffServCountActEntry 3 }

	  diffServMFClassifierProtocol

          diffServCountActStatus OBJECT-TYPE
              SYNTAX	     INTEGER (0..255)       RowStatus





          Baker, Chan, SmithExpiration: September 2000         [Page 29]





          Draft            Differentiated Services MIB        March 2000


              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The IP protocol to match against the IPv4 protocol
		 number	in RowStatus variable controls the packet. A value activation,
                 deactivation, or deletion of zero means match all." this entry. Any writable
                 variable may be modified whether the row is active or
                 notInService."
              ::= { diffServMFClassifierEntry 8 diffServCountActEntry 4 }

	  diffServMFClassifierDstL4PortMin

          --
          -- High Capacity Counter Extension for Count Action Table
          --

          diffServCountActXTable OBJECT-TYPE
              SYNTAX	     MFClassifierL4Port       SEQUENCE OF DiffServCountActXEntry
              MAX-ACCESS     read-create   not-accessible
              STATUS       current





	  Fred Baker, etc     Expiration: April	2000	       [Page 16]




	  Draft		   Differentiated Services MIB	    October 1999
              DESCRIPTION
		 "The minimum value that
                 "This table contains the layer-4 destination port
		 number	in high capacity counters for the packet must have
                 counters in order the Count Action Table.  These objects are
                 all 64-bit versions of the basic counters, having the
                 same basic semantics as their 32-bit counterparts, with
                 syntax extended to match this
		 classifier entry." 64 bits."
              AUGMENTS { diffServCountActEntry }
              ::= { diffServMFClassifierEntry 9 diffServAugments 1 }

	  diffServMFClassifierDstL4PortMax

          diffServCountActXEntry OBJECT-TYPE
              SYNTAX	     MFClassifierL4Port       DiffServCountActXEntry
              MAX-ACCESS     read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "The maximum value that the layer-4 destination port
		 number	in
                 "An entry containing the packet must have	in order to match this
		 classifier entry. This	value must be equal 64 bit counters applicable to or
		 greater that the value	specified for this entry in
		 diffServMFClassifierDstL4PortMin."
                 a specific drop action entry."
              ::= { diffServMFClassifierEntry 10 diffServActionXTable 1 }

          DiffServCountActXEntry ::= SEQUENCE  {
              diffServCountActOctetsHCnt     Counter64,
              diffServCountActPktsHCnt       Counter64
          }

	  diffServMFClassifierSrcL4PortMin

          diffServCountActOctetsHCnt OBJECT-TYPE
              SYNTAX	     MFClassifierL4Port       Counter64
              MAX-ACCESS     read-create   read-only
              STATUS       current
              DESCRIPTION
                 "The minimum value that the layer-4 source port number of Octets at the Action datapath element.
                 Meaning the packets has been classified and possibly





          Baker, Chan, SmithExpiration: September 2000         [Page 30]





          Draft            Differentiated Services MIB        March 2000


                 metered, and prior to any dropping process.  This
                 object should be used on high speed interfaces.

                 Discontinuities in the	packet must have in order to match this
		 classifier entry." value of this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServMFClassifierEntry 11 diffServCountActXEntry 1 }

	  diffServMFClassifierSrcL4PortMax

          diffServCountActPktsHCnt OBJECT-TYPE
              SYNTAX	     MFClassifierL4Port       Counter64
              MAX-ACCESS     read-create   read-only
              STATUS       current
              DESCRIPTION
                 "The maximum value that the layer-4 source port number
		 in of Packets at the	packet must have in oder Action datapath element.
                 Meaning the packets has been classified and possibly
                 metered, and prior to match this
		 classifier entry. any dropping process.  This	value must
                 object should be equal to or
		 greater that used on high speed interfaces.

                 Discontinuities in the value	specified for of this entry in
		 dsSixTupleIpSrcL4PortMin." counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServMFClassifierEntry 12 diffServCountActXEntry 2 }

	  diffServMFClassifierStatus OBJECT-TYPE
	      SYNTAX	  RowStatus
	      MAX-ACCESS  read-create
	      STATUS	  current
	      DESCRIPTION
		 "This indicates


          -- Drop Action Table
          -- Rows of this table is pointed to by diffServAction to
          -- provide detail parameters specific to an Action Type.

          -- Notice the status use of diffServQueueId as part of this classifier entry."
	      ::= { diffServMFClassifierEntry 13 }





	  Fred Baker, etc     Expiration: April	2000	       [Page 17]




	  Draft		   Differentiated Services MIB	    October 1999
          -- table's index.  Hence each entry is queue specific.

          -- This object allows a configuring system to obtain a
          -- unique value for diffServClassifierNumber diffServDropActId for purposes of
          -- configuration

	  diffServClassifierUnique configuration.

          diffServDropActUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServClassifierUnique diffServDropActUnique object yields a unique new
                 value for diffServClassifierNumber diffServDropActId when read and subsequently
                 set. This	value must be tested for
		 uniqueness."
	      ::= { diffServObjects 2 }

	  -- The Classifier Table allows us to enumerate the
	  -- relationship between arbitrary classifiers	and
	  -- the meters	which apply to classified streams.

	  diffServClassifierTable OBJECT-TYPE
	      SYNTAX	   SEQUENCE OF DiffServClassifierEntry
	      MAX-ACCESS   not-accessible
	      STATUS	   current
	      DESCRIPTION
		 "The classifier table enumerates specific classifiers
		 that a	system may apply, including Differentiated
		 Services Code Points (DSCPs) and Multi-field
		 discriminators	such as	{Source	IP Address, Destination
		 IP Address, IP	Protocol, Source TCP/UDP Port,
		 Destination TCP/UDP Port)."
	      ::= { diffServTables 3 }

	  diffServClassifierEntry OBJECT-TYPE
	      SYNTAX	   DiffServClassifierEntry
	      MAX-ACCESS   not-accessible
	      STATUS	   current
	      DESCRIPTION
		 "An entry in the classifier table describes a single
		 classifier."
	      INDEX { ifIndex, diffServInterfaceDirection,
		      diffServClassifierNumber } This value must be tested for uniqueness."
              ::= { diffServClassifierTable 1 diffServObjects 6 }

	  DiffServClassifierEntry ::= SEQUENCE	{
	      diffServInterfaceDirection     INTEGER,
	      diffServClassifierNumber	     INTEGER,
	      diffServClassifierMatchObject  RowPointer,





	  Fred






          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 18] 31]





          Draft            Differentiated Services MIB	    October 1999


	      diffServClassifierNext	     RowPointer,
	      diffServClassifierSequence     Unsigned32,
	      diffServClassifierConfigType   INTEGER,
	      diffServClassifierConfigTypeInfo	OCTET STRING,
	      diffServClassifierStatus	     RowStatus
	  }

	  diffServInterfaceDirection        March 2000


          diffServDropActTable OBJECT-TYPE
              SYNTAX  INTEGER {
			  inbound(1),	  -- ingress interface
			  outbound(2)	  -- egress interface
		      }       SEQUENCE OF DiffServDropActEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
		 "Specifies the	direction for this entry on the
		 interface. 'inbound' traffic
                 "The drop action table enumerates sets of attributes
                 used to represent a drop process.  Each set is operated on during
		 receipt, while	'outbound' traffic normally
                 associated with a queue.  The entries of this table is operated on prior
                 meant to transmission."
	      ::= { diffServClassifierEntry 1 }

	  diffServClassifierNumber OBJECT-TYPE
	      SYNTAX	   INTEGER (1..2147483647)
	      MAX-ACCESS   not-accessible
	      STATUS	   current
	      DESCRIPTION
		 "diffServClassifierNumber enumerates be referenced by the classifier
		 entry." diffServAction attribute
                 of entries in diffServActionTable.  The entries of this
                 table is used for:  Tail Drop Action when
                 diffServActionType = tailDrop Random Drop Action when
                 diffServActionType = randomDrop Deterministic Drop
                 Action when diffServActionType = deterDrop"
              ::= { diffServClassifierEntry 2 diffServTables 6 }

	  diffServClassifierMatchObject

          diffServDropActEntry OBJECT-TYPE
              SYNTAX	   RowPointer       DiffServDropActEntry
              MAX-ACCESS   read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "A pointer to
                 "An entry in the row that drop action table describes a single
                 drop process's configuration.  For Tail Drop Process:

                 For Random Drop Process:  (QMin,PMin) and (QMax,PMax)
                 defines the applicable
		 classifier. An	obvious	choice would be	the
		 diffServAggregateEntry drop probability used for the random drop
                 process.  Normally PMin have a given DSCP, but other
		 choices include tables	describing any classifier that
		 may be value of interest. If zero.  QClip
                 defines the row	pointed	to does	not
		 exist, guaranteed average queue depth, after which
                 the classifier is ignored.

		 The NULL OID zeroDotZero is interpreted drop probability reaches 100%.  For Deterministic
                 Drop Process:  QMeasure points to match
		 anything not matched by another classifier."
	      DEFVAL an entry providing
                 Queue Measurement needed for the drop process."
              INDEX { zeroDotZero diffServQueueId, diffServDropActId }
              ::= { diffServClassifierEntry 3 diffServTable 1 }

          DiffServDropActEntry ::= SEQUENCE  {
              diffServDropActId               Unsigned32,
              diffServDropActQMin             Unsigned32,
              diffServDropActQMax             Unsigned32,
              diffServDropActQClip            Unsigned32,
              diffServDropActPMin             Unsigned32,
              diffServDropActPMax             Unsigned32,
              diffServDropActPCur             Unsigned32,
              diffServDropActQMeasure         RowPointer,
              diffServDropActOctetsCnt        Counter32,
              diffServDropActPktsCnt          Counter32,
              diffServDropActStatus           RowStatus
          }






	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 19] 32]





          Draft            Differentiated Services MIB	    October 1999


	  diffServClassifierNext        March 2000


          diffServDropActId OBJECT-TYPE
              SYNTAX	   RowPointer       Unsigned32 (1..2147483647)
              MAX-ACCESS   read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "The 'next' variable selects
                 "Drop Action Id enumerates the appropriate meter or
		 action	to apply to this class of traffic." Drop Action entry."
              ::= { diffServClassifierEntry 4 diffServDropActEntry 1 }

	  diffServClassifierSequence

          diffServDropActQMin OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "Kilo Bits"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
		 "The sequence in which	classifiers are	applied, in
		 ascending order. Classifiers with the same sequence
		 number	must be	unambiguous.  Classifiers with different
		 sequence numbers may overlap in their ranges,
                 "QMin, with PMin, defines the
		 understanding that lowerest drop probability
                 point for this random drop process.  With PMin=0, the	first applied classifier to
		 match
                 queue may drop if a packet is taken."
	      DEFVAL { 0 } presented to it and the
                 average queue depth exceeds QMin."
              ::= { diffServClassifierEntry 5 diffServDropActEntry 2 }

	  diffServClassifierConfigType

          diffServDropActQMax OBJECT-TYPE
              SYNTAX	   INTEGER {
			       OTHER (0),
			       MIB (1),	   -- Configured via MIB
			       PIB (2),	   -- Configured via PIB
			       BGP (3)	   -- Configured via BGP
			   }       Unsigned32
              UNITS        "Kilo Bits"
              MAX-ACCESS   read-write   read-create
              STATUS       current
	      DESCRIPTION
		 "Used to indicate how
                 "QMax, with PMax, defines the higher point of drop
                 probability for random drop process.  For Tail Drop
                 Process:  This represents the measure by which the classifer
                 queue will drop if a packet is	configured." presented to it."
              ::= { diffServClassifierEntry 6 diffServDropActEntry 3 }

	  diffServClassifierConfigTypeInfo

          diffServDropActQClip OBJECT-TYPE
              SYNTAX	   OCTET STRING       Unsigned32
              UNITS        "Kilo Bits"
              MAX-ACCESS   read-write   read-create
              STATUS       current
	      DESCRIPTION
		 "Additional information associated with how
                 "The average queue length at which point the
		 classifier is configured." drop
                 probability reaches 100%."
              ::= { diffServClassifierEntry 7 diffServDropActEntry 4 }

	  diffServClassifierStatus

          diffServDropActPMin OBJECT-TYPE
              SYNTAX	   RowStatus





	  Fred Baker, etc     Expiration: April	2000	       [Page 20]




	  Draft		   Differentiated Services MIB	    October 1999       Unsigned32 (0..1000000)
              UNITS        "per-micro-age"
              MAX-ACCESS   read-create   read-write
              STATUS       current
	      DESCRIPTION
		 "The RowStatus	variable controls
                 "QMin, with PMin, defines the activation,
		 deactivation, or deletion of a	classifier. Any	writable
		 variable may be modified whether lowerest drop probability
                 point for this random drop process.  With PMin=0, the row is active or
		 notInService."
	      ::= { diffServClassifierEntry 8 }












































	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 21] 33]





          Draft            Differentiated Services MIB	    October 1999


	  -- This object allows        March 2000


                 queue may drop if a configuring system packet is presented to it and the
                 average queue depth exceeds QMin.  This drop
                 probability is expressed in per-micro-age, the value in
                 this attribute needs to be divided by 1,000,000 to
                 obtain a
	  -- unique value for diffServClassifierNumber for purposes of
	  -- configuration

	  diffServTBMeterUnique the drop probability between 0 and 1."
              ::= { diffServDropActEntry 5 }

          diffServDropActPMax OBJECT-TYPE
              SYNTAX	   TestAndIncr       Unsigned32 (0..1000000)
              UNITS        "per-micro-age"
              MAX-ACCESS   read-write
              STATUS       current
	      DESCRIPTION
		 "The diffServTBMeterUnique object yieldiffServ	a unique
		 new value for diffServTBMeterNumber when read
                 "QMax and
		 subsequently set. PMax are part of the drop probability
                 configuration.  This drop probability is expressed in
                 per-micro-age, the value must in this attribute needs to be tested for
		 uniqueness."
	      ::= { diffServObjects 3 }

	  -- The Meter Table allows us
                 divided by 1,000,000 to enumerate obtain the
	  -- relationship drop probability
                 between  meters and the actions, other
	  -- meters, 0 and queues	that result from them.

	  diffServTBMeterTable 1."
              ::= { diffServDropActEntry 6 }

          diffServDropActPCur OBJECT-TYPE
              SYNTAX	   SEQUENCE OF DiffServTBMeterEntry       Unsigned32 (0..1000000)
              UNITS        "per-micro-age"
              MAX-ACCESS   not-accessible   read-only
              STATUS       current
	      DESCRIPTION
                 "The Meter Table enumerates specific token bucket
		 meters	that a system may use to police	a stream of
		 classified traffic. Such a stream may include a single
		 micro-flow, all traffic from a	given source current drop probability.  This drop probability
                 is expressed in per-micro-age, the value in this
                 attribute needs to	a given
		 destination, all traffic conforming be divided by 1,000,000 to	a single
		 classifier, or	any other cut of the traffic, including
		 all of	it.

		 Note that obtain
                 the conceptual model	requires all traffic to
		 pass through one or more meters, drop probability between 0 and that the last
		 meter configured in such a sequence must always
		 conform.

		 Counters 1."
              ::= { diffServDropActEntry 7 }

          diffServDropActQMeasure OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
                 "Points to an entry in this table	start counting on creation of the meter that	specifies their	existence." diffServQMeasureTable for
                 queue information required by the drop process."
              ::= { diffServTables 4 diffServDropActEntry 8 }

	  diffServTBMeterEntry

          diffServDropActOctetsCnt OBJECT-TYPE
              SYNTAX	   DiffServTBMeterEntry       Counter32
              MAX-ACCESS   not-accessible   read-only
              STATUS       current
              DESCRIPTION
		 "An entry in
                 "The number of octets that have been dropped by a drop
                 process.  On high speed devices, this object implements
                 the meter	table describes	a single token





	  Fred least significant 32 bits of
                 diffServDropActOctetsHCnt.





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 22] 34]





          Draft            Differentiated Services MIB	    October 1999


		 bucket	meter. Note that a meter has exactly one rate,
		 defined        March 2000


                 Discontinuities in the value of this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the	burst size each	time interval. Multiple
		 meters	may be cascaded	should a multi-rate token bucket
		 be needed in a	given Per-Hop Behavior.	An example value of
		 such a	PHB is AF."
	      INDEX { ifIndex, diffServInterfaceDirection,
		      diffServTBMeterNumber  }
	      ::= { diffServTBMeterTable 1 }

	  DiffServTBMeterEntry
                 ifCounterDiscontinuityTime."
              ::= SEQUENCE {
	      diffServTBMeterNumber	       INTEGER,
	      diffServTBMeterInterval	       Unsigned32,
	      diffServTBMeterBurstSize	       Unsigned32,
	      diffServTBMeterFailNext	       RowPointer,
	      diffServTBMeterSucceedNext       RowPointer,
	      diffServTBMeterStatus	       RowStatus diffServDropActEntry 9 }

	  diffServTBMeterNumber

          diffServDropActPktsCnt OBJECT-TYPE
              SYNTAX	   INTEGER (1..2147483647)       Counter32
              MAX-ACCESS   not-accessible   read-only
              STATUS       current
              DESCRIPTION
                 "The number of packets that have been dropped by a drop
                 process.  On high speed devices, this object implements
                 the meter, for reference from the
		 classifier or least significant 32 bits of
                 diffServDropActPktsHCnt.

                 Discontinuities in cascade from another meter." the value of this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServTBMeterEntry 1 diffServDropActEntry 10 }

	  diffServTBMeterInterval

          diffServDropActStatus OBJECT-TYPE
              SYNTAX	   Unsigned32
	      UNITS	   "microseconds"       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The number of	microseconds in	the token bucket
		 interval for this meter. Note that implementations
		 frequently do not keep	time in	microseconds internally,
		 so in implementation RowStatus variable controls the effect activation,
                 deactivation, or deletion of this value must entry. Any writable
                 variable may be
		 approximated." modified whether the row is active or
                 notInService."
              ::= { diffServTBMeterEntry 2 diffServDropActEntry 11 }

	  diffServTBMeterBurstSize

          --
          -- High Capacity Counter Extension for Drop Action Table
          --

          diffServDropActXTable OBJECT-TYPE
              SYNTAX	   Unsigned32
	      UNITS	   "bytes"       SEQUENCE OF DiffServDropActXEntry
              MAX-ACCESS   read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "The number
                 "This table contains the high capacity counters for the
                 counters in the Drop Action Table.  These objects are
                 all 64 bit versions of	bytes in a single transmission burst.





	  Fred the basic counters, having the
                 same basic semantics as their 32-bit counterparts, with
                 syntax extended to 64 bits."





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 23] 35]





          Draft            Differentiated Services MIB	    October 1999


		 The rate at which the metered traffic may run is one
		 burst per interval. Note that if multiple meters are
		 cascaded onto one PHB,	such as	in AF, their intervals
		 must be equal,	and the	peak rate of the data stream is
		 the sum of their intervals per	interval."        March 2000


              AUGMENTS { diffServDropActEntry }
              ::= { diffServTBMeterEntry 3 diffServAugments 2 }

	  diffServTBMeterFailNext

          diffServDropActXEntry OBJECT-TYPE
              SYNTAX	   RowPointer       DiffServDropActXEntry
              MAX-ACCESS   read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "If
                 "An entry containing the traffic does not conform 64 bit counters applicable to the meter,	the next
		 meter or
                 a specific drop action to enquire of." entry."
              ::= { diffServTBMeterEntry 4 diffServDropActXTable 1 }

	  diffServTBMeterSucceedNext

          DiffServDropActXEntry ::= SEQUENCE  {
              diffServDropActOctetsHCnt       Counter64,
              diffServDropActPktsHCnt         Counter64
          }

          diffServDropActOctetsHCnt OBJECT-TYPE
              SYNTAX	   RowPointer       Counter64
              MAX-ACCESS   read-create   read-only
              STATUS       current
              DESCRIPTION
                 "The 'Succeed Next' pointer selects which action or
		 queue on the interface number of octets that to have been dropped by a drop
                 process.  This object should be used	with the
		 message. Incoming traffic may use on high speed
                 interfaces.

                 Discontinuities in the value zeroDotZero
		 in of this variable to indicate that no queuing on receipt
		 occurs. Incoming interfaces generally use queuing
		 either	to divert routing traffic for speedier
		 processing during a flap, or for shaping purposes."
	      DEFVAL	  { zeroDotZero	} counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServTBMeterEntry 5 diffServDropActXEntry 1 }

	  diffServTBMeterStatus

          diffServDropActPktsHCnt OBJECT-TYPE
              SYNTAX	   RowStatus       Counter64
              MAX-ACCESS   read-create   read-only
              STATUS       current
              DESCRIPTION
                 "The RowStatus	variable controls the activation,
		 deactivation, or deletion number of packets that have been dropped by a	meter. Any writable
		 variable may drop
                 process.  This object should be modified whether used on high speed
                 interfaces.

                 Discontinuities in the value of this counter can occur
                 at re-initialization of the management system, and at
                 other times as indicated by the row is active or
		 notInService." value of
                 ifCounterDiscontinuityTime."
              ::= { diffServTBMeterEntry 6 diffServDropActXEntry 2 }











	  Fred






          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 24] 36]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          -- This object allows a configuring system to obtain a
          -- unique value for diffServActionNumber diffServActionId for purposes of
          -- configuration

          diffServActionUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServActionUnique object yields a unique new
                 value for diffServActionNumber diffServActionId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= { diffServObjects 4 7 }

          -- The Meter Action Table allows us to enumerate the different
          -- relationship between  meters and the actions, other meters,
	  -- and queues	that result from them. types of actions to be applied to a flow.

          diffServActionTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServActionEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Action Table enumerates specific apply actions that can be
                 performed to a stream of classified traffic.	Such  Multiple Actions can
                 be concatenated.  For example, marking of a stream may include a
		 single	micro-flow, all of
                 traffic	from exiting a given source to meter (conforming or non-conforming),
                 then perform a
		 given destination, all drop process with dropped traffic	conforming to counts
                 maintained.  Notice counting is considered as a	single
		 classifier, or	any other cut type of the traffic, including
		 all
                 action.  The set of	it.

		 Counters flow specific counters in this table	start counting on creation of the action Count
                 Action Table maintains statistics for a flow that specifies their existence."
                 arrives to this Action datapath element.  This count is
                 always taken before any drop processing is performed."
              ::= { diffServTables 5 7 }

          diffServActionEntry OBJECT-TYPE
              SYNTAX       DiffServActionEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An entry in the action table describes the actions
                 applied to traffic conforming to exiting a given meter."
              INDEX { ifIndex, diffServInterfaceDirection,
		      diffServActionNumber
                      diffServActionId }
              ::= { diffServActionTable 1 }

          DiffServActionEntry ::= SEQUENCE  {





	  Fred
              diffServActionId                Unsigned32,





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 25] 37]





          Draft            Differentiated Services MIB	    October 1999


	      diffServActionNumber	      INTEGER,        March 2000


              diffServActionNext              RowPointer,
	      diffServActionDSCP	      Dscp,
	      diffServActionMinThreshold      Unsigned32,
	      diffServActionMaxThreshold      Unsigned32,
	      diffServActionDropPolicy
              diffServActionType              INTEGER,
	      diffServActionHCConformingPackets	Counter64,
	      diffServActionConformingPackets Counter32,
	      diffServActionHCConformingOctets	Counter64,
	      diffServActionConformingOctets  Counter32,
	      diffServActionTailDrops	      Counter32,
	      diffServActionHCTailDrops	      Counter64,
	      diffServActionRandomDrops	      Counter32,
	      diffServActionHCRandomDrops     Counter64,
              diffServAction                  RowPointer,
              diffServActionStatus            RowStatus
          }

	  diffServActionNumber

          diffServActionId OBJECT-TYPE
              SYNTAX	   INTEGER       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
		 "The number of	the meter, for reference from
                 "Action Id enumerates the
		 classifier or in cascade from another meter." Action entry."
              ::= { diffServActionEntry 1 }

          diffServActionNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The 'Next' Next pointer selects which queue or Traffic
		 Control Block on indicates the interface. Incoming traffic may
		 use next datapath element
                 to handle the traffic.  For example, a queue datapath
                 element.  The value zeroDotZero in this variable to indicate
		 that
                 indicates no queuing further DiffServ treatment is performed on receipt occurs. Incoming interfaces
		 generally use queuing either to divert	routing	traffic
		 for speedier processing during	a flap,	or
                 this flow by the current interface for shaping
		 purposes." this interface
                 direction."
              DEFVAL      { zeroDotZero }
              ::= { diffServActionEntry	2 2 }

          diffServActionType OBJECT-TYPE
              SYNTAX       INTEGER {
                               other(1),      -- types not specified here.
                               mark(2),       -- mark or remark
                               count(3),      -- count
                               alwaysDrop(4), -- disallow traffic
                               tailDrop(5),   -- fix queue size Drop
                               randomDrop(6), -- Random Drop
                               deterDrop(7)   -- Deterministic Drop
                           }
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "Indicates the type of action diffServAction points
                 to."
              ::= { diffServActionEntry 3 }

	  diffServActionDSCP

          diffServAction OBJECT-TYPE
              SYNTAX	   Dscp
	      MAX-ACCESS   read-create
	      STATUS	   current
	      DESCRIPTION
		 "The DSCP that	traffic	conforming to this classifier





	  Fred       RowPointer





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 26] 38]





          Draft            Differentiated Services MIB	    October 1999


		 and this meter	is remarked with. Note        March 2000


              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "Points to a row in a Action Type Table that if the
		 classifier is working from provides
                 all the	same DSCP value, no
		 effective change in parameters for the DSCP results.

		 Differentiated	Services may result type of action indicated in packet remarking
		 both on ingress
                 diffServActionType.  Can also points to a network and on egress, and it is
		 quite possible	that ingress and egress	would occur row in
		 the same router." some
                 other MIB to provide some proprietary action type."
              ::= { diffServActionEntry	3 4 }

	  diffServActionMinThreshold

          diffServActionStatus OBJECT-TYPE
              SYNTAX	   Unsigned32
	      UNITS	   "packets"       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The min-threshold is RowStatus variable controls the queue depth that activation,
                 deactivation, or deletion of a random
		 drop process will seek	to manage meter. Any writable
                 variable may be modified whether the queue's depth to.

		 This object row is active or
                 notInService."
              ::= { diffServActionEntry 5 }

































          Baker, Chan, SmithExpiration: September 2000         [Page 39]





          Draft            Differentiated Services MIB        March 2000


          --
          -- Queue Set Table
          -- The Queue Set Table is used for organizing queues
          -- defined in the action table rather than	the Queue Table into Queue Sets, with
          -- queue table because Differentiated Services PHBs, such
		 as scheduling defined in the	Assured	Service, permit	differently classified
		 traffic to have different drop	parameters even	though
		 they occupy queue set entry.
          -- Queue Set Table provides flexibility in queue
          -- organization and allows more complex hierarchical
          -- scheduling algorithms be defined.  For example,
          -- multiple scheduling algorithms, each with multiple
          -- queues, used on the same queue." logical/physical interface.
          --

          -- This object allows a configuring system to obtain a
          -- unique value for diffServQSetId for purposes of
          -- configuration

          diffServQSetUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServQSetUnique object yields a unique new
                 value for diffServQSetId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= { diffServActionEntry	4 diffServObjects 8 }

	  diffServActionMaxThreshold


          diffServQSetTable OBJECT-TYPE
              SYNTAX	   Unsigned32
	      UNITS	   "packets"       SEQUENCE OF DiffServQSetEntry
              MAX-ACCESS   read-create   not-accessible
              STATUS       current
              DESCRIPTION
                 "The max-threshold is the maximum permissible queue
		 depth.	In tail	drop scenarios, Queue Set Table enumerates the queue will drop if a
		 packet	is presented sets.  Queue
                 Sets are used to	it and it is instantaneously
		 full organize queues based on their
                 scheduling algorithms.  Multiple sheduling algorithms
                 can be used, with each algorithm described by this measure. In random drop scenarios, the
		 queue will drop if one Queue
                 Set Entry.  Multiple instances of a packet is	presented single sheduling
                 algorithm, each with different scheduling parameters
                 can also be expressed, each described by its own Queue
                 Set Entry.  Relationships between Queue Sets are used
                 to it	and the
		 average build scheduling algorithm hierarchies.  For
                 example, a weighed fair queueing queue depth exceeds the max-threshold.

		 This object is	in the action table rather than	the set can be a
                 part of a priority queueing queue table because Differentiated Services PHBs, such
		 as set, having the	Assured	Service, permit	differently classified
		 traffic to have different drop	parameters even	though
		 they occupy
                 weighed fair queueing queue set be a branch of the same queue."
                 priority queueing queue set.  More complex hierarchies
                 can also be expressed using this mechanism."
              ::= { diffServActionEntry	5 diffServTables 8 }

	  diffServActionDropPolicy OBJECT-TYPE





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 27] 40]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          diffServQSetEntry OBJECT-TYPE
              SYNTAX	   INTEGER {
			       other(1),
			       alwaysDrop (2), -- Disallowed traffic
			       tailDrop(3),    -- Fixed	Queue Size
			       randomDrop(4)   -- RED w/thresholds
					       --     per class
			   }       DiffServQSetEntry
              MAX-ACCESS   read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "The drop policy applied to traffic."
                 "An entry in the Queue Set Table describes a single
                 queue set."
              INDEX { ifIndex, diffServInterfaceDirection,
                      diffServQSetId }
              ::= { diffServActionEntry	6 diffServQSetTable 1 }

          DiffServQSetEntry ::= SEQUENCE  {
              diffServQSetId                   Unsigned32,
              diffServQSetParentId             Unsigned32,
              diffServQSetWeight               Unsigned32,
              diffServQSetMethod               INTEGER,
              diffServQSetRateUnit             INTEGER,
              diffServQSetMinRate              Unsigned32,
              diffServQSetMaxRate              Unsigned32,
              diffServQSetNext                 RowPointer,
              diffServQSetStatus               RowStatus
          }

	  diffServActionHCConformingPackets

          diffServQSetId OBJECT-TYPE
              SYNTAX	   Counter64
	      UNITS	   "bytes"       Unsigned32 (1..2147483647)
              MAX-ACCESS   read-only   not-accessible
              STATUS       current
              DESCRIPTION
                 "The number of	Packets	conforming to this meter. This
		 object	is used	on high	speed interfaces.

		 Discontinuities in the	value of this counter can occur
		 at re-initialization of the management	system,	and at
		 other times as	indicated by Queue Set Id enumerates the value of
		 ifCounterDiscontinuityTime." Queue Set entry."
              ::= { diffServActionEntry	7 diffServQSetEntry 1 }

	  diffServActionConformingPackets

          diffServQSetParentId OBJECT-TYPE
              SYNTAX	   Counter32
	      UNITS	   "bytes"       Unsigned32 (1..2147483647)
              MAX-ACCESS   read-only   not-accessible
              STATUS       current
              DESCRIPTION
                 "The number of	Packets	conforming to this meter.  This
		 object	may be used on low speed interfaces, and
		 represents the	least significant 32 bits of
		 diffServActionHCConformingPackets.

		 Discontinuities in the	value of this counter can occur
		 at re-initialization of the management	system,	and at
		 other times as	indicated by Queue Set Parent Id allows the value formation of
		 ifCounterDiscontinuityTime."
                 hierarchical relationships between scheduling
                 algorithms."
              ::= { diffServActionEntry	8 diffServQSetEntry 2 }

	  diffServActionHCConformingOctets

          diffServQSetWeight OBJECT-TYPE
              SYNTAX	   Counter64





	  Fred       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "Used with QSetParentId in hierarchical scheduling





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 28] 41]





          Draft            Differentiated Services MIB	    October 1999


	      UNITS	   "bytes"
	      MAX-ACCESS   read-only
	      STATUS	   current
	      DESCRIPTION
		 "The number        March 2000


                 setup.  QSetWeight represent the weight of	octets conforming to all queues
                 within this meter. This
		 object	is used	on high	speed interfaces.

		 Discontinuities queue set, with respect to queues in other
                 queue sets in hierarchical scheduling.  For example,
                 this queue set represents the	value of weighed fair queueing
                 scheduling amongst all the queues in this counter can occur
		 at re-initialization queue set.
                 This set of the management	system,	and at
		 other times weighted fair queueing queues as	indicated by a whole
                 belongs to a priority queueing queue set.  QSetWeight
                 determines this queue set's priority/weight in the value of
		 ifCounterDiscontinuityTime."
                 parent queue set's priority queueing scheduling
                 algorithm.  There can be more than one weighed fair
                 queueing queue sets belonging to the same priority
                 queueing parent queue set."
              ::= { diffServActionEntry	9 diffServQSetEntry 3 }

          diffServQSetMethod OBJECT-TYPE
              SYNTAX       INTEGER {
                               other(1), -- not listed here
                               pq(2),    -- Priority Queueing
                               wfq(3),   -- Weighed Fair Queueing
                               wrr(4)    -- Weighed Round Robin
                           }

	  diffServActionConformingOctets OBJECT-TYPE
	      SYNTAX	   Counter32
	      UNITS	   "bytes"
              MAX-ACCESS   read-only   read-create
              STATUS       current
              DESCRIPTION
                 "The number of	octets conforming to this meter.  This
		 object	may be scheduling algorithm used on low speed interfaces, and
		 represents the	least significant 32 bits of
		 diffServActionHCConformingOctets.

		 Discontinuities by queues in the	value of this counter can occur
		 at re-initialization of the management	system,	and at
		 other times as	indicated by the value of
		 ifCounterDiscontinuityTime." queue
                 set."
              ::= { diffServActionEntry	10 diffServQSetEntry 4 }

	  diffServActionTailDrops

          diffServQSetRateUnit OBJECT-TYPE
              SYNTAX	   Counter32       INTEGER {
                               kbps(1),    -- kilo bits per second
                               packets(2)  -- packets per second
                           }
              MAX-ACCESS   read-only   read-create
              STATUS       current
              DESCRIPTION
                 "The number of	packets	conforming to this classifier
		 and meter that	have been dropped because either the
		 meter always drops, or	the queue's depth exceeds the
		 max-threshold value.  On high speed devices, this
		 object	implements the least significant 32 bits of
		 diffServActionHCTailDrops .

		 Discontinuities in the	value of this counter can occur
		 at re-initialization unit of measure for the management	system, MinRate and at
		 other times as	indicated by the value of
		 ifCounterDiscontinuityTime." MaxRate
                 attributes.  The packet unit allows packet fair
                 algorithms in addition to bit fair algorithms."
              ::= { diffServActionEntry	11 diffServQSetEntry 5 }





	  Fred

          diffServQSetMinRate OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "KBPS"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 29] 42]





          Draft            Differentiated Services MIB	    October 1999


	  diffServActionHCTailDrops OBJECT-TYPE
	      SYNTAX	   Counter64
	      MAX-ACCESS   read-only
	      STATUS	   current
	      DESCRIPTION        March 2000


                 "The number of	packets	conforming to this classifier
		 and meter that	have been dropped because either the
		 meter always drops, or	the queue's depth exceeds minimum rate for the
		 max-threshold value.  This object should be used on
		 high speed interfaces.

		 Discontinuities in whole queue set.  If the
                 value of this counter can occur
		 at re-initialization of is zero, then there is effectively no minimum
                 rate.  If the management	system,	and at
		 other times as	indicated by value is non-zero, the value queue set will
                 seek to assure this class of
		 ifCounterDiscontinuityTime." traffic at least this
                 rate."
              ::= { diffServActionEntry	12 diffServQSetEntry 6 }

	  diffServActionRandomDrops

          diffServQSetMaxRate OBJECT-TYPE
              SYNTAX	   Counter32       Unsigned32
              UNITS        "KBPS"
              MAX-ACCESS   read-only   read-create
              STATUS       current
              DESCRIPTION
                 "The number of	packets	conforming to this classifier
		 and meter that	have been dropped by a random drop
		 process because maximum rate for the whole queue is over-full.  On high speed
		 lines,	this object reflects set.  If the least significant 32
		 bits of diffServActionHCRandomDrops.

		 Discontinuities in
                 value is zero, then there is effectively no maximum
                 rate.  If the value of is non-zero, the queue set will
                 seek to assure this counter can occur
		 at re-initialization class of the management	system,	and traffic at
		 other times as	indicated by the value of
		 ifCounterDiscontinuityTime." most this
                 rate."
              ::= { diffServActionEntry	13 diffServQSetEntry 7 }

	  diffServActionHCRandomDrops

          diffServQSetNext OBJECT-TYPE
              SYNTAX	   Counter64       RowPointer
              MAX-ACCESS   read-only   read-create
              STATUS       current
              DESCRIPTION
		 "The number of	packets	conforming to this classifier
		 and meter that	have been dropped by a random drop
		 process because
                 "Selects the queue next data path component, which can be
                 another Queue Set.  One usage of multiple serial Queue
                 Sets is over-full.  This object for Class Base Queueing (CBQ).  The value
                 zeroDotZero in this variable indicates no further
                 DiffServ treatment is
		 used performed on high speed lines.

		 Discontinuities in this flow by the	value of
                 current interface for this counter can occur
		 at re-initialization of interface direction.  For
                 example, for an inbound interface the management	system, value zeroDotZero
                 indicates that the packet flow has now completed
                 inbound DiffServ treatment and at
		 other times as	indicated by should be forwarded on
                 to the value of





	  Fred Baker, etc     Expiration: April	2000	       [Page 30]




	  Draft		   Differentiated Services MIB	    October 1999


		 ifCounterDiscontinuityTime." appropriate outbound interface."
              DEFVAL       { zeroDotZero }
              ::= { diffServActionEntry	14 diffServQSetEntry 8 }

	  diffServActionStatus

          diffServQSetStatus OBJECT-TYPE
              SYNTAX       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The RowStatus variable controls the activation,
                 deactivation, or deletion of a	meter. queue. Any writable
                 variable may be modified whether the row is active or
                 notInService."





          Baker, Chan, SmithExpiration: September 2000         [Page 43]





          Draft            Differentiated Services MIB        March 2000


              ::= { diffServActionEntry	15 diffServQSetEntry 9 }







































	  Fred



















































          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 31] 44]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          --
          -- Queue Table
          --

          -- This object allows a configuring system to obtain a
          -- unique value for diffServQueueNumber diffServQId for purposes of
          -- configuration

	  diffServQueueUnique configuration.

          diffServQUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServQueueUnique diffServQUnique object yields a unique new value
                 for diffServQueueNumber diffServQId when read and subsequently set. This
                 value must be tested for uniqueness."
              ::= { diffServObjects 5 9 }

          -- The Queue Table allows us to describe individual queues

	  diffServQueueTable

          diffServQTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServQueueEntry DiffServQEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Queue Table enumerates the queues on an interface.
		 Queues	are used to store traffic during intervals when
		 the arrival rate exceeds
                 interface."
              ::= { diffServTables 9 }

          diffServQEntry OBJECT-TYPE
              SYNTAX       DiffServQEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An entry in the departure	rate for Queue Table describes a class
		 of traffic. Because some PHBs indicate	that single FIFO
                 queue."
              INDEX { diffServQQSetId, diffServQId }
              ::= { diffServQTable 1 }

          DiffServQEntry ::= SEQUENCE  {
              diffServQId                      Unsigned32,
              diffServQQSetId                  Unsigned32,
              diffServQSchedulerWeight         Unsigned32,
              diffServQStatus                  RowStatus
          }

          diffServQId OBJECT-TYPE





          Baker, Chan, SmithExpiration: September 2000         [Page 45]





          Draft            Differentiated Services MIB        March 2000


              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Queue Id enumerates the use of
		 a priority queue may be advisable, each queue in Queue entry."
              ::= { diffServQEntry 1 }

          diffServQQSetId OBJECT-TYPE
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Indicates the Queue Set this
		 system queue is seen	as having a priority. Those queues that
		 share the same part of."
              ::= { diffServQEntry 2 }

          diffServQSchedulerWeight OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The weight or priority operate in what may externally
		 appear	to be a	Weighted Round Robin manner, and preempt of the traffic belonging to any lower priority. For this
		 reason, it is strongly	urged that traffic placed into
		 prioritized queues be strongly	policed	to avoid traffic
		 lockout.

		 Queues	in this	table also have	a minimum and a	maximum
		 rate.	When a maximum rate is specified, queue, depending on the queue acts
		 as a shaper if	it has sufficient traffic and capacity
		 is available.	If it is a minimum rate, then
                 scheduling method used.  Notice only the weight
		 in of the	WRR
                 queue is effectively set to this rate divided by
		 the sum used, instead of the	rates of queues rate.  The rate can be
                 derived based on the interface,
		 guaranteeing it at least that throughput rate.	If it is
		 a maximum rate, rate of the queue operates as a shaper. A
		 shaper	potentially reduces set.  This is to
                 facilitate changing link speed and/or changing
                 scheduling method without reconfiguring the	rate queues."
              ::= { diffServQEntry 3 }

          diffServQStatus OBJECT-TYPE
              SYNTAX       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The RowStatus variable controls the activation,
                 deactivation, or deletion of	traffic	through
		 it to a queue. Any writable
                 variable may be modified whether the indicated rate, and minimizes variations in
		 rate." row is active or
                 notInService."
              ::= { diffServTables 6 diffServQEntry 4 }





	  Fred

          -- Queue Measurement Table

          -- This object allows a configuring system to obtain a
          -- unique value for diffServQMeasureId for purposes of
          -- configuration.

          diffServQMeasureUnique OBJECT-TYPE
              SYNTAX       TestAndIncr





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 32] 46]





          Draft            Differentiated Services MIB	    October 1999


	  diffServQueueEntry OBJECT-TYPE
	      SYNTAX	   DiffServQueueEntry        March 2000


              MAX-ACCESS   not-accessible   read-write
              STATUS       current
              DESCRIPTION
		 "An entry in the Queue	Table describes
                 "The diffServQMeasureUnique object yields a single FIFO
		 queue."
	      INDEX { ifIndex, diffServInterfaceDirection,
		      diffServQueueNumber  }
	      ::= { diffServQueueTable 1 }

	  DiffServQueueEntry unique new
                 value for diffServQMeasureId when read and subsequently
                 set. This value must be tested for uniqueness."
              ::= SEQUENCE {
	      diffServQueueNumber    INTEGER,
	      diffServQueueMinimumRate Unsigned32,
	      diffServQueueMaximumRate Unsigned32,
	      diffServQueuePriority  Unsigned32,
	      diffServQueueNextTCB   RowPointer,
	      diffServQueueOccupancyWeight  Unsigned32,
	      diffServQueueStatus    RowStatus diffServObjects 10 }

	  diffServQueueNumber

          diffServQMeasureTable OBJECT-TYPE
              SYNTAX	   INTEGER (1..2147483647)       SEQUENCE OF DiffServQMeasureEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The number Queue Measurement Table contains entries
                 describing the state of queues, this include states for
                 implementing traffic treatment algorithms.  Notice
                 multiple queue measurement entries for the queue." same queue
                 is allowed."
              ::= { diffServQueueEntry 1 diffServTables 10 }

	  diffServQueueMinimumRate

          diffServQMeasureEntry OBJECT-TYPE
              SYNTAX	   Unsigned32
	      UNITS	   "KBPS"       DiffServQMeasureEntry
              MAX-ACCESS   read-create   not-accessible
              STATUS       current
              DESCRIPTION
		 "The rate of the queue,
                 "An entry in kilobits per second	(KBPS).
		 This unit is chosen because interfaces	exist at the
		 time of this writing which exceed the number of bits
		 per second which may be represented in Queue Measure Table describes a 32 bit number.

		 If the	value is zero, then there is effectively no
		 minimum rate. If the value is non-zero, the queue single
                 set
		 will seek to assure this class of traffic at least this
		 rate." measurement for a specific queue."
              INDEX { diffServQMeasureQId, diffServQMeasureId }
              ::= { diffServQMeasureTable 1 }

          DiffServQMeasureEntry ::= SEQUENCE  { diffServQueueEntry 2
              diffServQMeasureId               Unsigned32,
              diffServQMeasureQId              Unsigned32,
              diffServQMeasureAvgSampleInt     Unsigned32,
              diffServQMeasureAvgWeightExp     Unsigned32,
              diffServQMeasureAvgWeightMan     Unsigned32,
              diffServQMeasureQAverage         Unsigned32,
              diffServQMeasureStatus           RowStatus
          }

	  diffServQueueMaximumRate

          diffServQMeasureId OBJECT-TYPE





	  Fred
              SYNTAX       Unsigned32 (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Queue Measure Id enumerates the Queue Measure
                 entry."





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 33] 47]





          Draft            Differentiated Services MIB	    October 1999        March 2000


              ::= { diffServQMeasureEntry 1 }

          diffServQMeasureQId OBJECT-TYPE
              SYNTAX       Unsigned32
	      UNITS	   "KBPS" (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "Indicates the queue this measurement is associated
                 with."
              ::= { diffServQMeasureEntry 2 }

          diffServQMeasureAvgSampleInt OBJECT-TYPE
              SYNTAX       Unsigned32
              UNIT         millisecond
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The rate of the queue, sampling interval for queue average calculation,
                 in kilobits per second	(KBPS).
		 This unit is chosen because interfaces	exist at the
		 time of milliseconds.  For queue sampling based on packet
                 enqueueing or dequeueing intervals, this writing which exceed the number of bits
		 per second which may be represented in	a 32 bit number.

		 If the	value is zero, then there is effectively no
		 maximum rate. If attribute
                 should contain the value is non-zero, the queue set
		 will seek to assure this class of traffic at most this
		 rate." zero."
              ::= { diffServQueueEntry diffServQMeasureEntry 3 }

	  diffServQueuePriority

          diffServQMeasureAvgWeightExp OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
	      DESCRIPTION
                 "The priority exponent part of the queue. If	multiple queues	exist on
		 the same interface at the same	priority, they are
		 effectively given Weighted Round Robin	service. If
		 multiple priorities are configured on an interface,
		 traffic with a	numerically higher priority weight (in real number format)
                 for queue average calculation.  This is
		 deemed a base 10
                 exponent, with the attribute representing a negative
                 value.  For example, with 8 in this attribute meaning
                 10 to have	higher priority	than other traffic, and
		 is preemptively serviced." the power of -8.  An 8 bit value here will be
                 sufficient."
              ::= { diffServQueueEntry diffServQMeasureEntry 4 }

	  diffServQueueNextTCB

          diffServQMeasureAvgWeightMan OBJECT-TYPE
              SYNTAX	   RowPointer       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
	      DESCRIPTION
                 "The 'Next' pointer selects the successor TCB on the
		 interface.  Incoming traffic may use the value
		 zeroDotZero in	this variable to indicate that the
		 packet	is now to be routed; outbound traffic may use
		 the same value	to indicate that no subsequent queuing
		 applies.  Ingress interfaces generally	use queuing
		 either	to divert routing traffic mantissa part of weight (in real number format)
                 for speedier
		 processing during queue average calculation.  Always a flap, or for shaping purposes."
	      DEFVAL	  { zeroDotZero	} positive
                 number.  Need 16 bits of accuracy."
              ::= { diffServQueueEntry diffServQMeasureEntry 5 }

	  diffServQueueOccupancyWeight

          diffServQMeasureQAverage OBJECT-TYPE





	  Fred
              SYNTAX       Unsigned32
              UNITS        kilo-bits





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 34] 48]





          Draft            Differentiated Services MIB	    October 1999


	      SYNTAX	   Unsigned32        March 2000


              MAX-ACCESS   read-create   read-only
              STATUS       current
	      DESCRIPTION
                 "The amount, in the form of a factor, that the	current,
		 actual	queue occupancy	should influence the averaged
		 queue occupancy.  The averaged	queue occupancy	can be
		 used for comparison to	configured drop	thresholds in
		 RED or	RED-like dropper implementations.  Larger the
		 weight, the greater the instantaneous queue occupancy
		 influences the	averaged queue occupancy.  Usually,
		 dramatic changes in the instantaneous current queue occupancy
		 is the	result of bursty input streams.	 Notice	this
		 numeric attribute is divided by 10,000	to get the
		 effective fractional factor used average in the actual
		 calculations." kilo bits."
              ::= { diffServQueueEntry diffServQMeasureEntry 6 }

	  diffServQueueStatus

          diffServQMeasureStatus OBJECT-TYPE
              SYNTAX       RowStatus
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The RowStatus variable controls the activation,
                 deactivation, or deletion of a queue. Any writable
                 variable may be modified whether the row is active or
                 notInService."
              ::= { diffServQueueEntry diffServQMeasureEntry 7 }
























	  Fred





































          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 35] 49]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          -- MIB Compliance statements. Three variations of
          -- compliance are described, for optical, LAN, and low speed
          -- interfaces.  The difference is the implementation of
          -- diffServActionHCConformingOctets diffServActionOctetsHCnt, diffServActionPktsHCnt
          -- and diffServActionHCConformingPackets diffServCountActOctetsHCnt, diffServCountActPktsHCnt.

          diffServMIBCompliances OBJECT IDENTIFIER ::= { diffServMIBConformance 1 }
          diffServMIBGroups      OBJECT IDENTIFIER ::= { diffServMIBConformance 2 }

          diffServMIBCompliance MODULE-COMPLIANCE
              STATUS current
              DESCRIPTION
                 "This MIB may be implemented as a read-only or as a
                 read-create MIB. As a result, it may be used for
                 monitoring or for configuration.

                 Standard compliance implies that the implementation
                 complies for interfaces for which an interface's octet
                 counter might wrap at most once an hour, which by the
                 IFMIB's convention applies to interfaces under 20 MBPS.
                 It thus applies to any device which might implement a
                 low speed serial line, Ethernet, Token Ring."
              MODULE -- This Module
              MANDATORY-GROUPS {
                  diffServMIBClassifierGroup, diffServMIBMeterGroup,
                  diffServMIBQueueGroup, diffServMIBActionGroup

                  -- note that diffServMIBHCCounterGroup is
                  -- mandatory for medium and high speed interfaces

                  -- note that diffServMIBVHCCounterGroup is
                  -- mandatory for high speed interfaces

                  -- note that the diffServMIBStaticGroup is
                  -- mandatory for implementations that implement a
                  -- read-write or read-create mode.
              }

              GROUP diffServMIBHCCounterGroup
              DESCRIPTION
                 "This group is mandatory for those network interfaces
                 for which the value of the corresponding instance of
                 ifSpeed is greater than 20,000,000 bits/second."

              GROUP diffServMIBVHCCounterGroup
              DESCRIPTION
                 "This group is mandatory for those network interfaces





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 36] 50]





          Draft            Differentiated Services MIB	    October 1999        March 2000


                 for which the value of the corresponding instance of
                 ifSpeed is greater than 650,000,000 bits/second."

              OBJECT diffServClassifierMatchObject
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierSequence
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterInterval
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterBurstSize
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterFailNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterSucceedNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 37] 51]





          Draft            Differentiated Services MIB	    October 1999        March 2000


              OBJECT diffServActionNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDSCP
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionMinThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionMaxThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDropPolicy
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMinimumRate
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMaximumRate
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueuePriority
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueNextTCB
              MIN-ACCESS read-only





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 38] 52]





          Draft            Differentiated Services MIB	    October 1999        March 2000


              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."
              ::= { diffServMIBCompliances 1 }












































	  Fred












































          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 39] 53]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          diffServMIBVHCCompliance MODULE-COMPLIANCE
              STATUS current
              DESCRIPTION
                 "This MIB may be implemented as a read-only or as a
                 read-create MIB. As a result, it may be used for
                 monitoring or for configuration.

                 Very High Speed compliance implies that the
                 implementation complies for interfaces for which an
                 interface's packet or octet counters might wrap more
                 than once an hour, which by the IFMIB's convention
                 applies to interfaces over 650 MBPS, or OC-12."
              MODULE -- This Module
              MANDATORY-GROUPS {
                  diffServMIBClassifierGroup, diffServMIBMeterGroup,
                  diffServMIBQueueGroup, diffServMIBHCCounterGroup,
                  diffServMIBVHCCounterGroup, diffServMIBActionGroup

                  -- note that the diffServMIBStaticGroup is
                  -- mandatory for implementations that implement a
                  -- read-write or read-create mode.
              }


              OBJECT diffServClassifierMatchObject
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierSequence
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterInterval
              MIN-ACCESS read-only
              DESCRIPTION





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 40] 54]





          Draft            Differentiated Services MIB	    October 1999        March 2000


                 "Write access is not required."

              OBJECT diffServTBMeterBurstSize
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterFailNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterSucceedNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDSCP
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionMinThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionMaxThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDropPolicy
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."






	  Fred






          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 41] 55]





          Draft            Differentiated Services MIB	    October 1999        March 2000


              OBJECT diffServActionStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMinimumRate
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMaximumRate
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueuePriority
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueNextTCB
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."
              ::= { diffServMIBCompliances 2 }






















	  Fred






















          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 42] 56]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          diffServMIBHCCompliance MODULE-COMPLIANCE
              STATUS current
              DESCRIPTION
                 "This MIB may be implemented as a read-only or as a
                 read-create MIB. As a result, it may be used for
                 monitoring or for configuration.

                 High Speed compliance implies that the implementation
                 complies for interfaces for which an interface's octet
                 counters might wrap more than once an hour, which by
                 the IFMIB's convention applies to interfaces over 20
                 MBPS, but under 650 MBPS.  It thus applies to devices
                 which implement a 100 MBPS Ethernet, FDDI, E3, DS3, or
                 SONET/SDH interface up to OC-12."
              MODULE -- This Module
              MANDATORY-GROUPS {
                  diffServMIBClassifierGroup, diffServMIBMeterGroup,
                  diffServMIBQueueGroup, diffServMIBHCCounterGroup,
                  diffServMIBActionGroup

                  -- note that diffServMIBVHCCounterGroup is
                  -- mandatory for high speed interfaces

                  -- note that the diffServMIBStaticGroup is
                  -- mandatory for implementations that implement a
                  -- read-write or read-create mode.
              }

              GROUP diffServMIBVHCCounterGroup
              DESCRIPTION
                 "This group is mandatory for those network interfaces
                 for which the value of the corresponding instance of
                 ifSpeed is greater than 650,000,000 bits/second."

              OBJECT diffServClassifierMatchObject
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServClassifierSequence
              MIN-ACCESS read-only
              DESCRIPTION





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 43] 57]





          Draft            Differentiated Services MIB	    October 1999        March 2000


                 "Write access is not required."

              OBJECT diffServClassifierStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterInterval
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterBurstSize
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterFailNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterSucceedNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServTBMeterStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionNext
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDSCP
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionMinThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."






	  Fred






          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 44] 58]





          Draft            Differentiated Services MIB	    October 1999        March 2000


              OBJECT diffServActionMaxThreshold
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionDropPolicy
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServActionStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMinimumRate
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueMaximumRate
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueuePriority
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueNextTCB
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."

              OBJECT diffServQueueStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."
              ::= { diffServMIBCompliances 3 }












	  Fred












          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 45] 59]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          diffServMIBClassifierGroup OBJECT-GROUP
              OBJECTS {
                  diffServAggregateDSCP,
                  diffServClassifierMatchObject,
                  diffServClassifierNext,
                  diffServClassifierSequence,
                  diffServClassifierStatus
              }
              STATUS current
              DESCRIPTION
                 "The Classifier Group defines the MIB Objects that
                 describe a classifier."
              ::= { diffServMIBGroups 1 }

          diffServMIBMeterGroup OBJECT-GROUP
              OBJECTS {
                  diffServTBMeterInterval, diffServTBMeterBurstSize,
                  diffServTBMeterSucceedNext, diffServTBMeterFailNext,
                  diffServTBMeterStatus
              }
              STATUS current
              DESCRIPTION
                 "The Meter Group defines the objects used in describing
                 a meter."
              ::= { diffServMIBGroups 2 }

          diffServMIBActionGroup OBJECT-GROUP
              OBJECTS {
                  diffServActionDropPolicy,
                  diffServActionRandomDrops,
                  diffServActionTailDrops,
                  diffServActionMinThreshold,
                  diffServActionMaxThreshold, diffServActionDSCP,
                  diffServActionNext,
                  diffServActionConformingPackets,
                  diffServActionConformingOctets,
                  diffServActionStatus
              }
              STATUS current
              DESCRIPTION
                 "The Action Group defines the objects used in
                 describing an action."
              ::= { diffServMIBGroups 3 }

          diffServMIBHCCounterGroup OBJECT-GROUP
              OBJECTS {
                  diffServActionHCConformingOctets





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 46] 60]





          Draft            Differentiated Services MIB	    October 1999        March 2000


              }
              STATUS current
              DESCRIPTION
                 "At 20,000,000 bits per second or greater, the number
                 of octets a given class may count can overflow a 32 bit
                 counter in under an hour.  Therefore, by convention
                 established in the IFMIB, the 64 bit counter must be
                 implemented as well."
              ::= { diffServMIBGroups 4 }

          diffServMIBVHCCounterGroup OBJECT-GROUP
              OBJECTS {
                  diffServActionHCConformingPackets,
                  diffServActionHCRandomDrops,
                  diffServActionHCTailDrops
              }
              STATUS current
              DESCRIPTION
                 "At 650,000,000 bits per second or greater, the number
                 of packets a given class may count can overflow a 32
                 bit counter in under an hour.  Therefore, by convention
                 established in the IFMIB, the 64 bit counter must be
                 implemented as well."
              ::= { diffServMIBGroups 5 }

          diffServMIBQueueGroup OBJECT-GROUP
              OBJECTS {
                  diffServQueueMinimumRate,
                  diffServQueueMaximumRate,
                  diffServQueuePriority, diffServQueueStatus,
                  diffServQueueNextTCB
              }
              STATUS current
              DESCRIPTION
                 "The Queue Group contains the objects that describe an
                 interface's queues."
              ::= { diffServMIBGroups 6 }

          diffServMIBStaticGroup OBJECT-GROUP
              OBJECTS {
                  diffServClassifierUnique, diffServTBMeterUnique,
                  diffServQueueUnique, diffServActionUnique
              }
              STATUS current
              DESCRIPTION
                 "The Static Group contains scalar objects used in
                 creating unique enumerations for classifiers, meters,





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 47] 61]





          Draft            Differentiated Services MIB	    October 1999        March 2000


                 and queues."
              ::= { diffServMIBGroups 7 }
          END

















































	  Fred

















































          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 48] 62]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          5.  Acknowledgments

          This MIB has been developed with active involvement from a
          number of sources, but most notably Yoram Bernet, Steve Blake,
          Brian Carpenter, Kwok Chan, Dave Durham, Jeremy Greene, Roch
          Guerin, Scott Hahn, Keith McCloghrie, Kathleen Nichols, Ping
          Pan, Andrew Smith, and Bert Wijnen.

          6.  Security Considerations

          It is clear that this MIB is potentially useful for
          configuration, and anything that can be configured can be
          misconfigured, with potentially disastrous effect.

          At this writing, no security holes have been identified beyond
          those that SNMP Security is itself intended to address. These
          relate to primarily controlled access to sensitive information
          and the ability to configure a device - or which might result
          from operator error, which is beyond the scope of any security
          architecture.

          There are a number of management objects defined in this MIB
          that have a MAX-ACCESS clause of read-write and/or read-
          create. Such objects may be considered sensitive or vulnerable
          in some network environments.  The support for SET operations
          in a non-secure environment without proper protection can have
          a negative effect on network operations. The use of SNMP
          Version 3 is recommended over prior versions, for
          configuration control, as its security model is improved.

          There are a number of managed objects in this MIB that may
          contain information that may be sensitive from a business
          perspective, in that they may represent a customer's service
          contract or the filters that the service provider chooses to
          apply to a customer's ingress or egress traffic. There are no
          objects which are sensitive in their own right, such as
          passwords or monetary amounts.

          It may be important to control even GET access to these
          objects and possibly to even encrypt the values of these
          object when sending them over the network via SNMP.  Not all
          versions of SNMP provide features for such a secure
          environment.









	  Fred









          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 49] 63]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          7.  References

          [1]  Harrington, D., Presuhn, R., and B. Wijnen, "An
               Architecture for Describing SNMP Management Frameworks",
               RFC 2571, Cabletron Systems, Inc., BMC Software, Inc.,
               IBM T. J. Watson Research, April 1999

          [2]  Rose, M., and K. McCloghrie, "Structure and
               Identification of Management Information for TCP/IP-based
               Internets", RFC 1155, STD 16, Performance Systems
               International, Hughes LAN Systems, May 1990

          [3]  Rose, M., and K. McCloghrie, "Concise MIB Definitions",
               RFC 1212, STD 16, Performance Systems International,
               Hughes LAN Systems, March 1991

          [4]  M. Rose, "A Convention for Defining Traps for use with
               the SNMP", RFC 1215, Performance Systems International,
               March 1991

          [5]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
               Rose, M., and S. Waldbusser, "Structure of Management
               Information Version 2 (SMIv2)", RFC 2578, STD 58, Cisco
               Systems, SNMPinfo, TU Braunschweig, SNMP Research, First
               Virtual Holdings, International Network Services, April
               1999

          [6]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
               Rose, M., and S. Waldbusser, "Textual Conventions for
               SMIv2", RFC 2579, STD 58, Cisco Systems, SNMPinfo, TU
               Braunschweig, SNMP Research, First Virtual Holdings,
               International Network Services, April 1999

          [7]  McCloghrie, K., Perkins, D., Schoenwaelder, J., Case, J.,
               Rose, M., and S. Waldbusser, "Conformance Statements for
               SMIv2", RFC 2580, STD 58, Cisco Systems, SNMPinfo, TU
               Braunschweig, SNMP Research, First Virtual Holdings,
               International Network Services, April 1999

          [8]  Case, J., Fedor, M., Schoffstall, M., and J. Davin,
               "Simple Network Management Protocol", RFC 1157, STD 15,
               SNMP Research, Performance Systems International,
               Performance Systems International, MIT Laboratory for
               Computer Science, May 1990.

          [9]  Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
               "Introduction to Community-based SNMPv2", RFC 1901, SNMP





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 50] 64]





          Draft            Differentiated Services MIB	    October 1999        March 2000


               Research, Inc., Cisco Systems, Inc., Dover Beach
               Consulting, Inc., International Network Services, January
               1996.

          [10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
               "Transport Mappings for Version 2 of the Simple Network
               Management Protocol (SNMPv2)", RFC 1906, SNMP Research,
               Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
               International Network Services, January 1996.

          [11] Case, J., Harrington D., Presuhn R., and B. Wijnen,
               "Message Processing and Dispatching for the Simple
               Network Management Protocol (SNMP)", RFC 2572, SNMP
               Research, Inc., Cabletron Systems, Inc., BMC Software,
               Inc., IBM T. J. Watson Research, April 1999

          [12] Blumenthal, U., and B. Wijnen, "User-based Security Model
               (USM) for version 3 of the Simple Network Management
               Protocol (SNMPv3)", RFC 2574, IBM T. J. Watson Research,
               April 1999

          [13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
               "Protocol Operations for Version 2 of the Simple Network
               Management Protocol (SNMPv2)", RFC 1905, SNMP Research,
               Inc., Cisco Systems, Inc., Dover Beach Consulting, Inc.,
               International Network Services, January 1996.

          [14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3
               Applications", RFC 2573, SNMP Research, Inc., Secure
               Computing Corporation, Cisco Systems, April 1999

          [15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
               Access Control Model (VACM) for the Simple Network
               Management Protocol (SNMP)", RFC 2575, IBM T. J. Watson
               Research, BMC Software, Inc., Cisco Systems, Inc., April
               1999

          [16] Case, J., Mundy, R., Partain, D., and B. Stewart,
               "Introduction to Version 3 of the Internet-standard
               Network Management Framework", RFC 2570, SNMP Research,
               Inc., TIS Labs at Network Associates, Inc., Ericsson,
               Cisco Systems, April 1999

          [DSCP]
               K. Nichols, S. Blake, F. Baker, D. Black, "Definition of
               the Differentiated Services Field (DS Field) in the IPv4
               and IPv6 Headers." RFC 2474, December 1998.





	  Fred





          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 51] 65]





          Draft            Differentiated Services MIB	    October 1999        March 2000


          [Architecture]
               S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang, W.
               Weiss, "An Architecture for Differentiated Service." RFC
               2475, December 1998.

          [AF] J. Heinanen, F. Baker, W. Weiss, J.  Wroclawski, "Assured
               Forwarding PHB Group." RFC 2597, June 1999.

          [EF] V. Jacobson, K. Nichols, K. Poduri.  "An Expedited
               Forwarding PHB." RFC 2598, June 1999.

          [Model]
               Bernet et al, "A Conceptual Model for Diffserv Routers",
	       06/25/1999, draft-ietf-diffserv-model-00.txt
               March 2000, draft-ietf-diffserv-model-02.txt

          [IFMIB]
               K. McCloghrie, F.  Kastenholz.  "The Interfaces Group MIB
               using SMIv2", Request for Comments 2233, November 1997.

          [DSPIB]
               M. Fine, K. McCloghrie, J. Seligson, K. Chan, S. Hahn, A.
               Smith "Differentiated Services Policy Information Base",
               March 2000, draft-ietf-diffserv-pib-00.txt

          [INETADDRESS]
               Daniele, M., Haberman, B., Routhier, S., Schoenwaelder,
               J.  "Textual Conventions for Internet Network
               Addresses.", February 17, 2000, draft-ops-endpoint-mib-
               07.txt

          [ActQMgmt]
               V. Firoiu, M. Borden "A Study of Active Queue Management
               for Congestion Control", March 2000, In IEEE Infocom
               2000, http://www.ieee-infocom.org/2000/papers/405.pdf

          8.  Authors'  Addresses:

                 Fred Baker
                 519 Lado Drive
                 Santa Barbara, California 93111
                 fred@cisco.com

                 Kwok Ho Chan
                 Nortel Networks
                 600 Technology Park Drive
                 Billerica, MA 01821
                 khchan@nortelnetworks.com





          Baker, Chan, SmithExpiration: September 2000         [Page 66]





          Draft            Differentiated Services MIB        March 2000


                 Andrew Smith
                 Extreme Networks
                 3585 Monroe Street
                 Santa Clara, CA 95051
                 USA
                 andrew@extremenetworks.com














	  Fred














































          Baker, etc     Expiration: April Chan, SmithExpiration: September 2000         [Page 52] 67]


----