Fred Baker
          
          
          Draft            Differentiated Services MIB         July 1999
          
          
                       Management Information Base for the
                       Differentiated Services Architecture
          
                          draft-ietf-diffserv-mib-00.txt
          
          Abstract
          
          This memo describes a proposed MIB for the Differentiated
          Services Architecture.
          
          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
          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         Expiration: January 2000           [Page 1]


          Draft            Differentiated Services MIB         July 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
          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         Expiration: January 2000           [Page 2]


          Draft            Differentiated Services MIB         July 1999
          
          
          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 five elements:
          - Behavior Aggregate Classification Table
          - Classifier Table
          
          
          
          
          
          Fred Baker         Expiration: January 2000           [Page 3]


          Draft            Differentiated Services MIB         July 1999
          
          
          - Meter Table
          - Action Table
          - Queue Table
          
          3.2.  Behavior Aggregate Classification Table
          
          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 Classifier is pulled out into a separate
          table is that we envisage the use of other tables for other
          kinds of classifiers, public or proprietary. For example, the
          typical "five-tuple" used in per-flow classification (as in
          RSVP) might be represented by a table whose objects include
          the necessary IP Addresses, the IP protocol, the necessary
          TCP/UDP port numbers, 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 classification
          table that one might wish 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.3.  Classifier Table
          
          The classifier table, now, 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 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
          
          
          
          
          
          Fred Baker         Expiration: January 2000           [Page 4]


          Draft            Differentiated Services MIB         July 1999
          
          
          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.
          
          3.4.  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 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
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000           [Page 5]


          Draft            Differentiated Services MIB         July 1999
          
          
          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
          
          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
          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
          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
          
          
          
          
          
          Fred Baker         Expiration: January 2000           [Page 6]


          Draft            Differentiated Services MIB         July 1999
          
          
          special type of meter to which all traffic conforms, we now
          have the necessary flexibility.
          
          3.5.  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
          "shape the traffic." In this MIB, three actions are
          contemplated: marking the traffic, counting the traffic that
          passes that route, applying a drop policy. The author notes
          that marking the traffic with the same DSCP as it already has
          no effect, and all traffic must expect to come up against some
          drop policy.
          
          Two sizes of objects are defined for some counters. These are
          defined in accordance with the method found in [IFMIB]; both
          32 and 64 bit counters are defined, with the expectation that
          the 32 bit counter is simply the least significant bits of 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.6.  Queue Table
          
          In this version of the MIB, a relatively simple FIFO queue is
          envisaged within the Traffic Control Block. Scheduling among
          TCBs is done by some external scheduler. We presume some form
          of Class Weighted Round Robin within one or more sets of
          queues, each of which enjoys preemptive priority over lower
          numbered priorities of queue sets. Each queue is capable of
          acting as a work-conserving queue (one which transmits as
          rapidly as its weight allows, but guarantees to its class of
          traffic, as a side-effect of its weight, a minimum rate), or
          as a non-work-conserving or "shaping" queue. Queue sets and
          more complex queue types - which are common and required to
          correctly implement Differentiated Services, are modeled as
          several of these FIFO queues.
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000           [Page 7]


          Draft            Differentiated Services MIB         July 1999
          
          
          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.
          
          Some discussion has elapsed concerning the structure of the
          queue in question, and its functions. It is expected that the
          description of the queuing system will grow during working
          group discussion. This is an area where vendors differ
          markedly in their architectures.
          
          3.7.  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
          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.
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000           [Page 8]


          Draft            Differentiated Services MIB         July 1999
          
          
          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;
          
          diffServMib MODULE-IDENTITY
              LAST-UPDATED "9907150732Z" -- Thu Jul 15 07:32:36 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"
              DESCRIPTION
                 "This MIB defines the objects necessary to manage a
                 device that uses the Differentiated Services
                 Architecture described in RFC 2475."
              REVISION "9907150732Z" -- Thu Jul 15 07:32:36 PDT 1999
              DESCRIPTION
                 "Initial version, published as RFC xxxx."
              ::= { mib-2 12345 }  -- anybody who uses this
                                   -- unassigned number
                                   -- deserves the wrath of IANA
          
          diffServObjects OBJECT IDENTIFIER ::= { diffServMib 1 }
          diffServTables OBJECT IDENTIFIER ::= { diffServMib 2 }
          diffServMIBConformance OBJECT IDENTIFIER ::= { diffServMib 3 }
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000           [Page 9]


          Draft            Differentiated Services MIB         July 1999
          
          
          -- The tools necessary to perform basic Behavior
          -- Aggregate Classification
          --
          Dscp ::= TEXTUAL-CONVENTION
              DISPLAY-HINT "d"
              STATUS   current
              DESCRIPTION
                 "The code point used for discriminating a traffic
                 stream."
              SYNTAX   INTEGER (0..63)
          
          diffServAggregateTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServAggregateEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The 'Aggregate' Table enumerates Behavior Aggregate
                 classifiers (DSCPs) that a system may identify traffic
                 using."
              ::= { diffServTables 1 }
          
          diffServAggregateEntry OBJECT-TYPE
              SYNTAX       DiffServAggregateEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An 'aggregate' entry describes a single BA
                 classifier."
              INDEX { diffServAggregateDSCP }
              ::= { diffServAggregateTable 1 }
          
          DiffServAggregateEntry ::= SEQUENCE  {
              diffServAggregateDSCP         Dscp
          }
          
          diffServAggregateDSCP OBJECT-TYPE
              SYNTAX       Dscp
              MAX-ACCESS   read-only
              STATUS       current
              DESCRIPTION
                 "This is the Differentiated Services Code Point (DSCP)
                 for the classifier. This object is only meant to be
                 pointed to by a RowPointer from other tables, such as
                 the diffServClassifierMatchObject, and is no actually
                 configured or changed."
              ::= { diffServAggregateEntry 1 }
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 10]


          Draft            Differentiated Services MIB         July 1999
          
          
          -- 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 diffServClassifierNumber when read and
                 subsequently set. This value must be tested for
                 uniqueness."
              ::= { diffServObjects 1 }
          
          -- 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 2 }
          
          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 }
              ::= { diffServClassifierTable 1 }
          
          DiffServClassifierEntry ::= SEQUENCE  {
              diffServInterfaceDirection     INTEGER,
              diffServClassifierNumber       INTEGER,
              diffServClassifierMatchObject    RowPointer,
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 11]


          Draft            Differentiated Services MIB         July 1999
          
          
              diffServClassifierNext         RowPointer,
              diffServClassifierSequence     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 }
          
          diffServClassifierNumber OBJECT-TYPE
              SYNTAX       INTEGER (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "diffServClassifierNumber enumerates the classifier
                 entry."
              ::= { diffServClassifierEntry 2 }
          
          diffServClassifierMatchObject OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "A pointer to the row that describes the applicable
                 classifier. An obvious choice would be the
                 diffServAggregateEntry for a given DSCP, but other
                 choices include tables describing any classifier that
                 may be of interest. If the row pointed to does not
                 exist, the classifier is ignored.
          
                 The NULL OID zeroDotZero is interpreted to match
                 anything not matched by another classifier."
              DEFVAL { zeroDotZero }
              ::= { diffServClassifierEntry 3 }
          
          diffServClassifierNext OBJECT-TYPE
              SYNTAX       RowPointer
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 12]


          Draft            Differentiated Services MIB         July 1999
          
          
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The 'next' variable selects the appropriate meter or
                 action to apply to this class of traffic."
              ::= { diffServClassifierEntry 4 }
          
          diffServClassifierSequence OBJECT-TYPE
              SYNTAX       Unsigned32
              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, with the
                 understanding that the first applied classifier to
                 match a packet 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 }
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 13]


          Draft            Differentiated Services MIB         July 1999
          
          
          -- This object allows a configuring system to obtain a
          -- unique value for diffServClassifierNumber for purposes of
          -- configuration
          
          diffServTBMeterUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServTBMeterUnique object yieldiffServ a unique
                 new value for diffServTBMeterNumber when read and
                 subsequently set. This value must be tested for
                 uniqueness."
              ::= { diffServObjects 2 }
          
          -- The Meter Table allows us to enumerate the
          -- relationship between  meters and the actions, other
          -- meters, and queues that result from them.
          
          diffServTBMeterTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServTBMeterEntry
              MAX-ACCESS   not-accessible
              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 to a given
                 destination, all traffic conforming to a single
                 classifier, or any other cut of the traffic, including
                 all of it.
          
                 Note that the conceptual model requires all traffic to
                 pass through one or more meters, and that the last
                 meter configured in such a sequence must always
                 conform.
          
                 Counters in this table start counting on creation of
                 the meter that specifies their existence."
              ::= { diffServTables 3 }
          
          diffServTBMeterEntry OBJECT-TYPE
              SYNTAX       DiffServTBMeterEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An entry in the meter table describes a single token
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 14]


          Draft            Differentiated Services MIB         July 1999
          
          
                 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,
                      diffServTBMeterNumber  }
              ::= { diffServTBMeterTable 1 }
          
          DiffServTBMeterEntry ::= SEQUENCE  {
              diffServTBMeterNumber            INTEGER,
              diffServTBMeterInterval          Unsigned32,
              diffServTBMeterBurstSize         Unsigned32,
              diffServTBMeterFailNext          RowPointer,
              diffServTBMeterSucceedNext       RowPointer,
              diffServTBMeterStatus            RowStatus
          }
          
          diffServTBMeterNumber OBJECT-TYPE
              SYNTAX       INTEGER (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The number of the meter, for reference from the
                 classifier or in cascade from another meter."
              ::= { diffServTBMeterEntry 1 }
          
          diffServTBMeterInterval OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "microseconds"
              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 the effect of this value must be
                 approximated."
              ::= { 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.
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 15]


          Draft            Differentiated Services MIB         July 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."
              ::= { diffServTBMeterEntry 3 }
          
          diffServTBMeterFailNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "If the traffic does not conform to the meter, the next
                 meter or action to enquire of."
              ::= { diffServTBMeterEntry 4 }
          
          diffServTBMeterSucceedNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The 'Succeed Next' pointer selects which action or
                 queue on the interface that to be used with the
                 message. Incoming traffic may use the value zeroDotZero
                 in 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 }
              ::= { diffServTBMeterEntry 5 }
          
          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."
              ::= { diffServTBMeterEntry 6 }
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 16]


          Draft            Differentiated Services MIB         July 1999
          
          
          -- This object allows a configuring system to obtain a
          -- unique value for diffServActionNumber 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 when read and
                 subsequently set. This value must be tested for
                 uniqueness."
              ::= { diffServObjects 3 }
          
          -- The Meter Table allows us to enumerate the
          -- relationship between  meters and the actions, other meters,
          -- and queues that result from them.
          
          diffServActionTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServActionEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The Action Table enumerates specific apply to a stream
                 of classified traffic. Such a stream may include a
                 single micro-flow, all traffic from a given source to a
                 given destination, all traffic conforming to a single
                 classifier, or any other cut of the traffic, including
                 all of it.
          
                 Counters in this table start counting on creation of
                 the action that specifies their existence."
              ::= { diffServTables 4 }
          
          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 a given meter."
              INDEX { ifIndex, diffServInterfaceDirection,
                      diffServActionNumber  }
              ::= { diffServActionTable 1 }
          
          DiffServActionEntry ::= SEQUENCE  {
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 17]


          Draft            Differentiated Services MIB         July 1999
          
          
              diffServActionNumber            INTEGER,
              diffServActionNext              RowPointer,
              diffServActionDSCP              Dscp,
              diffServActionMinThreshold      Unsigned32,
              diffServActionMaxThreshold      Unsigned32,
              diffServActionDropPolicy        INTEGER,
              diffServActionHCConformingPackets Counter64,
              diffServActionConformingPackets Counter32,
              diffServActionHCConformingOctets  Counter64,
              diffServActionConformingOctets  Counter32,
              diffServActionTailDrops         Counter32,
              diffServActionHCTailDrops       Counter64,
              diffServActionRandomDrops       Counter32,
              diffServActionHCRandomDrops     Counter64,
              diffServActionStatus            RowStatus
          }
          
          diffServActionNumber OBJECT-TYPE
              SYNTAX       INTEGER (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The number of the meter, for reference from the
                 classifier or in cascade from another meter."
              ::= { diffServActionEntry 1 }
          
          diffServActionNext OBJECT-TYPE
              SYNTAX       RowPointer
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The 'Next' pointer selects which queue or Traffic
                 Control Block on the interface. Incoming traffic may
                 use the value zeroDotZero in 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 }
              ::= { diffServActionEntry 2 }
          
          diffServActionDSCP OBJECT-TYPE
              SYNTAX       Dscp
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The DSCP that traffic conforming to this classifier
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 18]


          Draft            Differentiated Services MIB         July 1999
          
          
                 and this meter is remarked with. Note that if the
                 classifier is working from the same DSCP value, no
                 effective change in the DSCP results.
          
                 Differentiated Services may result in packet remarking
                 both on ingress to a network and on egress, and it is
                 quite possible that ingress and egress would occur in
                 the same router."
              ::= { diffServActionEntry 3 }
          
          diffServActionMinThreshold OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "packets"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The min-threshold is the queue depth that a random
                 drop process will seek to manage the queue's depth to.
          
                 This object is in the action table rather than the
                 queue table because Differentiated Services PHBs, such
                 as the Assured Service, permit differently classified
                 traffic to have different drop parameters even though
                 they occupy the same queue."
              ::= { diffServActionEntry 4 }
          
          diffServActionMaxThreshold OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "packets"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The max-threshold is the maximum permissible queue
                 depth. In tail drop scenarios, the queue will drop if a
                 packet is presented to it and it is instantaneously
                 full by this measure. In random drop scenarios, the
                 queue will drop if a packet is presented to it and the
                 average queue depth exceeds the max-threshold.
          
                 This object is in the action table rather than the
                 queue table because Differentiated Services PHBs, such
                 as the Assured Service, permit differently classified
                 traffic to have different drop parameters even though
                 they occupy the same queue."
              ::= { diffServActionEntry 5 }
          
          diffServActionDropPolicy OBJECT-TYPE
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 19]


          Draft            Differentiated Services MIB         July 1999
          
          
              SYNTAX       INTEGER {
                               other(1),
                               alwaysDrop (2), -- Disallowed traffic
                               tailDrop(3),    -- Fixed Queue Size
                               randomDrop(4)   -- RED w/thresholds
                                               --     per class
                           }
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The drop policy applied to traffic."
              ::= { diffServActionEntry 6 }
          
          diffServActionHCConformingPackets OBJECT-TYPE
              SYNTAX       Counter64
              UNITS        "bytes"
              MAX-ACCESS   read-only
              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 the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServActionEntry 7 }
          
          diffServActionConformingPackets OBJECT-TYPE
              SYNTAX       Counter32
              UNITS        "bytes"
              MAX-ACCESS   read-only
              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 the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServActionEntry 8 }
          
          diffServActionHCConformingOctets OBJECT-TYPE
              SYNTAX       Counter64
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 20]


          Draft            Differentiated Services MIB         July 1999
          
          
              UNITS        "bytes"
              MAX-ACCESS   read-only
              STATUS       current
              DESCRIPTION
                 "The number of octets 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 the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServActionEntry 9 }
          
          diffServActionConformingOctets OBJECT-TYPE
              SYNTAX       Counter32
              UNITS        "bytes"
              MAX-ACCESS   read-only
              STATUS       current
              DESCRIPTION
                 "The number of octets conforming to this meter.  This
                 object may be used on low speed interfaces, and
                 represents the least significant 32 bits of
                 diffServActionHCConformingOctets.
          
                 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."
              ::= { diffServActionEntry 10 }
          
          diffServActionTailDrops OBJECT-TYPE
              SYNTAX       Counter32
              MAX-ACCESS   read-only
              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 of the management system, and at
                 other times as indicated by the value of
                 ifCounterDiscontinuityTime."
              ::= { diffServActionEntry 11 }
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 21]


          Draft            Differentiated Services MIB         July 1999
          
          
          diffServActionHCTailDrops OBJECT-TYPE
              SYNTAX       Counter64
              MAX-ACCESS   read-only
              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.  This object should be 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 value of
                 ifCounterDiscontinuityTime."
              ::= { diffServActionEntry 12 }
          
          diffServActionRandomDrops OBJECT-TYPE
              SYNTAX       Counter32
              MAX-ACCESS   read-only
              STATUS       current
              DESCRIPTION
                 "The number of packets conforming to this classifier
                 and meter that have been dropped by a random drop
                 process because the queue is over-full.  On high speed
                 lines, this object reflects the least significant 32
                 bits of diffServActionHCRandomDrops.
          
                 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."
              ::= { diffServActionEntry 13 }
          
          diffServActionHCRandomDrops OBJECT-TYPE
              SYNTAX       Counter64
              MAX-ACCESS   read-only
              STATUS       current
              DESCRIPTION
                 "The number of packets conforming to this classifier
                 and meter that have been dropped by a random drop
                 process because the queue is over-full.  This object is
                 used on high speed lines.
          
                 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
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 22]


          Draft            Differentiated Services MIB         July 1999
          
          
                 ifCounterDiscontinuityTime."
              ::= { diffServActionEntry 14 }
          
          diffServActionStatus 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."
              ::= { diffServActionEntry 15 }
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 23]


          Draft            Differentiated Services MIB         July 1999
          
          
          -- This object allows a configuring system to obtain a
          -- unique value for diffServQueueNumber for purposes of
          -- configuration
          
          diffServQueueUnique OBJECT-TYPE
              SYNTAX       TestAndIncr
              MAX-ACCESS   read-write
              STATUS       current
              DESCRIPTION
                 "The diffServQueueUnique object yields a unique new
                 value for diffServQueueNumber when read and
                 subsequently set. This value must be tested for
                 uniqueness."
              ::= { diffServObjects 4 }
          
          -- The Queue Table allows us to describe queues
          
          diffServQueueTable OBJECT-TYPE
              SYNTAX       SEQUENCE OF DiffServQueueEntry
              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 the departure rate for a class
                 of traffic. Because some PHBs indicate that the use of
                 a priority queue may be advisable, each queue in this
                 system is seen as having a priority. Those queues that
                 share the same priority operate in what may externally
                 appear to be a Weighted Round Robin manner, and preempt
                 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, the queue acts
                 as a shaper if it has sufficient traffic and capacity
                 is available.  If it is a minimum rate, then the weight
                 in the WRR is effectively set to this rate divided by
                 the sum of the rates of queues on the interface,
                 guaranteeing it at least that throughput rate. If it is
                 a maximum rate, the queue operates as a shaper. A
                 shaper potentially reduces the rate of traffic through
                 it to the indicated rate, and minimizes variations in
                 rate."
              ::= { diffServTables 5 }
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 24]


          Draft            Differentiated Services MIB         July 1999
          
          
          diffServQueueEntry OBJECT-TYPE
              SYNTAX       DiffServQueueEntry
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "An entry in the Queue Table describes a single FIFO
                 queue."
              INDEX { ifIndex, diffServInterfaceDirection,
                      diffServQueueNumber  }
              ::= { diffServQueueTable 1 }
          
          DiffServQueueEntry ::= SEQUENCE  {
              diffServQueueNumber    INTEGER,
              diffServQueueMinimumRate Unsigned32,
              diffServQueueMaximumRate Unsigned32,
              diffServQueuePriority  Unsigned32,
              diffServQueueNextTCB   RowPointer,
              diffServQueueStatus    RowStatus
          }
          
          diffServQueueNumber OBJECT-TYPE
              SYNTAX       INTEGER (1..2147483647)
              MAX-ACCESS   not-accessible
              STATUS       current
              DESCRIPTION
                 "The number of the queue."
              ::= { diffServQueueEntry 1 }
          
          diffServQueueMinimumRate OBJECT-TYPE
              SYNTAX       Unsigned32
              UNITS        "KBPS"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The rate of the queue, 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 a 32 bit number.
          
                 If the value is zero, then there is effectively no
                 minimum rate. If the value is non-zero, the queue set
                 will seek to assure this class of traffic at least this
                 rate."
              ::= { diffServQueueEntry 2 }
          
          diffServQueueMaximumRate OBJECT-TYPE
              SYNTAX       Unsigned32
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 25]


          Draft            Differentiated Services MIB         July 1999
          
          
              UNITS        "KBPS"
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The rate of the queue, 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 a 32 bit number.
          
                 If the value is zero, then there is effectively no
                 maximum rate. If the value is non-zero, the queue set
                 will seek to assure this class of traffic at most this
                 rate."
              ::= { diffServQueueEntry 3 }
          
          diffServQueuePriority OBJECT-TYPE
              SYNTAX       Unsigned32
              MAX-ACCESS   read-create
              STATUS       current
              DESCRIPTION
                 "The priority 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 number is
                 deemed to have higher priority than other traffic, and
                 is preemptively serviced."
              ::= { diffServQueueEntry 4 }
          
          diffServQueueNextTCB OBJECT-TYPE
              SYNTAX       RowPointer
              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 for speedier
                 processing during a flap, or for shaping purposes."
              DEFVAL      { zeroDotZero }
              ::= { diffServQueueEntry 5 }
          
          diffServQueueStatus OBJECT-TYPE
              SYNTAX       RowStatus
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 26]


          Draft            Differentiated Services MIB         July 1999
          
          
              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 6 }
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 27]


          Draft            Differentiated Services MIB         July 1999
          
          
          -- MIB Compliance statements. Three variations of
          -- compliance are described, for optical, LAN, and low speed
          -- interfaces.  The difference is the implementation of
          -- diffServActionHCConformingOctets
          -- and diffServActionHCConformingPackets
          
          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         Expiration: January 2000          [Page 28]


          Draft            Differentiated Services MIB         July 1999
          
          
                 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         Expiration: January 2000          [Page 29]


          Draft            Differentiated Services MIB         July 1999
          
          
              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         Expiration: January 2000          [Page 30]


          Draft            Differentiated Services MIB         July 1999
          
          
              DESCRIPTION
                 "Write access is not required."
          
              OBJECT diffServQueueStatus
              MIN-ACCESS read-only
              DESCRIPTION
                 "Write access is not required."
              ::= { diffServMIBCompliances 1 }
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 31]


          Draft            Differentiated Services MIB         July 1999
          
          
          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         Expiration: January 2000          [Page 32]


          Draft            Differentiated Services MIB         July 1999
          
          
                 "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         Expiration: January 2000          [Page 33]


          Draft            Differentiated Services MIB         July 1999
          
          
              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         Expiration: January 2000          [Page 34]


          Draft            Differentiated Services MIB         July 1999
          
          
          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         Expiration: January 2000          [Page 35]


          Draft            Differentiated Services MIB         July 1999
          
          
                 "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         Expiration: January 2000          [Page 36]


          Draft            Differentiated Services MIB         July 1999
          
          
              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         Expiration: January 2000          [Page 37]


          Draft            Differentiated Services MIB         July 1999
          
          
          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         Expiration: January 2000          [Page 38]


          Draft            Differentiated Services MIB         July 1999
          
          
              }
              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         Expiration: January 2000          [Page 39]


          Draft            Differentiated Services MIB         July 1999
          
          
                 and queues."
              ::= { diffServMIBGroups 7 }
          END
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 40]


          Draft            Differentiated Services MIB         July 1999
          
          
          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         Expiration: January 2000          [Page 41]


          Draft            Differentiated Services MIB         July 1999
          
          
          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         Expiration: January 2000          [Page 42]


          Draft            Differentiated Services MIB         July 1999
          
          
               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         Expiration: January 2000          [Page 43]


          Draft            Differentiated Services MIB         July 1999
          
          
          [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
          
          [IFMIB]
               K. McCloghrie, F.  Kastenholz.  "The Interfaces Group MIB
               using SMIv2", Request for Comments 2233, November 1997.
          
          8.  Author's  Address:
          
                 Fred Baker
                 519 Lado Drive
                 Santa Barbara, California 93111
                 fred@cisco.com
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          
          Fred Baker         Expiration: January 2000          [Page 44]