Internet Draft        DiffServ Policy MIB           April 2000


                   The DiffServ Policy MIB
            draft-ietf-snmpconf-diffpolicy-01.txt
                   Document Revision:  1.3

                          April 2000


                      Harrie Hazewinkel
                             TBD
                harrie.hazewinkel@bigfoot.com

                        David Partain
                           Ericsson
                  David.Partain@ericsson.com






Status of this Memo

This document is an Internet-Draft and is in full conformance
with all provisions of Section 10 of RFC2026.

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.

Copyright Notice







SNMPCONF WG          Expires October 2000             [Page 1]


Internet Draft        DiffServ Policy MIB           April 2000


   Copyright (C) The Internet Society (2000).  All Rights Reserved.

1.  ToDos


  * administrivia:  various template things need to be put in
    (the internet standard management framework, appropriate
    references, security boilerplate, verify intellectual
    property clause, the MUST, MAY, SHOULD stuff, etc.)  There
    are unresolved references.

  * Matt White comments:  "I think the "What does this MIB do?"
    aspect needs to be expanded upon and clarified.  Is it an
    abstraction of the DiffServ MIB?  Is it a DiffServ macro
    storage facility?  Is it a little of both?

  * We need to include at least one example of usage.



2.  Abstract

The MIB Module described in this document provides a
conceptual layer between high-level "network-wide" policy
definitions that affect configuration of the differentiated
services (DiffServ) subsystem and the instance-specific
information that would include such details as the parameters
for all the queues associated with each interface in a system.
This essentially provides an interface for configuring
DiffServ at a conceptually higher layer than that of the
DiffServ Architecture MIB [DSARCHMIB].


3.  Introduction

This memo defines a MIB module which can be used to convey
information about desired network-wide DiffServ-based policy
behavior.  This module is designed to integrate with the
Policy-based Management MIB module [POLICYMIB] as well as the
DiffServ Architecture MIB module [DSARCHMIB] published by the
DiffServ working group.  Together these three documents
represent an instance of an integrated architecture for both
device-specific and network-wide policy management which is
fully integrated with the Internet Standard Management
Framework.





SNMPCONF WG          Expires October 2000             [Page 2]


Internet Draft        DiffServ Policy MIB           April 2000


This is the first of what is expected to be a wide number of
other network-wide policy modules to be developed in the
future in a wide range of areas.

Within the DiffServ architecture a MIB module is already
defined [DSARCHMIB] that operates on a device level.  The MIB
module in this memo (DIFFSERV-POLICY-MIB) should create a
coherent policy configuration management view as an umbrella
over this "device-specific" MIB.  That is, DIFFSERV-POLICY-MIB
provides a conceptual API for configuration of DiffServ
parameters in a device at a higher level than the DiffServ
Architecture MIB.

While the intent of this document is similar to that being
defined by Policy Information Base documents to be used with
COPS-PR [COPS-PR], the degree of reuse from those documents is
unclear.


4.  The Internet Standard Management Framework

Insert framework boilerplate here


5.  Definitions

Insert appropriate definitions here


5.1.  Terms Defined Elsewhere

Two companion documents, the Best Current Practices document
[SNMPBCP] and the Policy-based Management MIB [POLICYMIB]
define terms fundamental to the architecture used for policy-
based management using SNMP.  These terms are:

 - insert the terms defined

Other IETF working groups (such as the policy framework
working group) also have definitions for some of the same
concepts.  To the greatest extent that it is possible, those
definitions will be harmonized with these.








SNMPCONF WG          Expires October 2000             [Page 3]


Internet Draft        DiffServ Policy MIB           April 2000


5.2.  Definitions Specific to this Document

The following definitions are specific and required only for
this document:

-  any definitions required will be placed here


6.  Relationship to other MIBs

In this section we describe the relationship to other MIB
modules.  The overall architecture used for policy
configuration management is described in [POLICYMIB]


6.1.  The Policy-based Management MIB module

The Policy-based Management MIB module defines MIB tables
which are used for representing the capabilities of a device
with respect to policy management.  Examples of information
which is held in these tables are which kinds of policy can be
configured at this managed entity (e.g., DiffServ, VPN, etc.),
the configured roles of the elements in these managed
entities, as well as policy filters and policy actions
configured in the managed entity.

The DiffServ Policy MIB references information in the(se)
table(s) in carrying out configuration of the layer below.

TBD: describe precisely the objects referred by the Policy-
based management MIB module to the DiffServ Policy MIB module
and vice versa.


6.2.  The DiffServ MIB module





The DiffServ Architecture MIB module [DSARCHMIB] provides a
common set of managed objects useful for configuring DiffServ
parameters on a particular device. It is this configuration
which MAY be done via the objects provided by the DiffServ
Policy MIB module defined in this memo.





SNMPCONF WG          Expires October 2000             [Page 4]


Internet Draft        DiffServ Policy MIB           April 2000


It is recognized that vendors may include additional managed
objects in their devices (via vendor-specific MIB modules) for
configuring DiffServ parameters. If a vendor chooses to use
the objects defined in this memo for configuration, the vendor
should also provide additional managed objects in a similar
approach as defined for the DiffServ Architecture MIB module
and the DiffServ Policy MIB module.

The remainder of this subsection will describe the
relationship to this MIB module of each table in the DiffServ
Architecture MIB module (the DiffServ Policy MIB module).

The diffServSixTupleClfrTable is traffic identifying table and
does not have a direct influence on the per-hop-behavior.
Entries identifying traffic can be used directly by the
subsystem implementing the DiffServ Policy MIB module.

The diffServClassifierTable instantiates the traffic
classification data path. Whenever a configuration is made
active a new entry in this table will be created with data
path configuration as defined in the
diffPolicyPerHopBehaviorTable.

The diffServTBMeterTable is the target table for the
diffPolicyMeterTable.  When per-hop-behavior configurations
are made active, the meter configuration used will be
instantiated in the diffServTBMeterTable

The diffServMarkActTable is a configuration table for traffic
marking. It is possible to have mark actions defined in this
table that are not used for the traffic. For this reason the
manager can use this table directly in conjunction with the
DiffServ Policy MIB module.

The diffServCountActTable is not used for configuration.

The diffServCountActXTable is not used for configuration.

The diffServDropActTable is a configuration table for dropping
traffic. It is possible to have mark actions defined in this
table that are not used for the traffic. For this reason the
manager can use this table directly in conjunction with the
DiffServ Policy MIB module.

The diffServDropActXTable is not used for configuration.





SNMPCONF WG          Expires October 2000             [Page 5]


Internet Draft        DiffServ Policy MIB           April 2000


The diffServActionTable instantiates actions that can be
performed on a stream of traffic. This table is the target for
the diffPolicyActionTable whenever a configuration is made
active.

The diffServQSetTable instantiates queue sets. This table is
the target for the diffPolicyQSetTable whenever a
configuration is made active.

The diffServQTable instantiates queue sets. This table is the
target for the diffPolicyQTable whenever a configuration is
made active.

The diffServQMeasureTable is not used for configuration.


7.  MIB Module Design

In this section the overall design of the DiffServ Policy MIB
module is described. The first part will describe how this
module is positioned within the overall architecture.  It is
expected that MIB modules similar in function will be defined
in the future for VPN configuration, security configuration,
etc.

The DiffServ Policy MIB module of the SNMP-based configuration
management framework is positioned between the Policy-based
Management MIB module and the instance-specific MIB module
(the DiffServ Architecture MIB module) as described in section
5.0.  The DiffServ Policy MIB module may be used as a higher
level "API" to the instance-specific MIB module.

However, this could very specific and different for various
implementations. The following scheme of actions MAY be used
for the subsystem:


 1) The instance-specific MIB module (for this document the
    DiffServ Architecture MIB module) is assumed already to be
    implemented on the device.

 2) The Policy-based Management MIB module includes the filters
    and actions and is implemented on the device.

 3) The technology-specific policy MIB module (for this document





SNMPCONF WG          Expires October 2000             [Page 6]


Internet Draft        DiffServ Policy MIB           April 2000


    the DiffServ Policy MIB module) registers its capability
    in the capability table of the Policy-based Management MIB
    module.

 4) If a device has knowledge of default configurations, it can
    create the required managed objects for the default
    configurations in the tables of the technology-specific
    policy MIB module.

 5) The manager can then read the capability table after which
    it knows about the capabilities and can start configuring
    the technology-specific MIB module and the various roles
    that may exist (this defines the configurations and
    associations as necessary)

 6) The manager can then via the policy table map/instantiate
    policies as required.


The MIB module is designed with the following tables:

 -  A per-hop-behavior table
 -  A meter table
 -  An action table
 -  A queue-set table
 -  A queue table

Unlike most MIB modules changes on the managed objects in this
MIB module do not cause a change in the device.  This MIB
module is used to set up per-hop-behavior configurations. As
soon as configurations are made active via the POLICY-
MANAGEMENT-MIB, the configurations defined within this MIB
module will be instantiated on the instance specific MIB, the
DIFF-SERV-MIB.

Note that this is a conceptual process.  That is, the
configuration may not actually go through an API available in
the subsystem which implements the DIFF-SERV-MIB module.
However, configuration via the DiffServ Policy MIB module will
alter the same instrumentation as the DIFF-SERV-MIB module
whether it does it via the DIFF-SERV-MIB module or not.

The diffPolicyPerHopBehaviorTable provides managed objects for
per-hop-behavior configuration. This table contains
RowPointers into the following tables in such a way that with





SNMPCONF WG          Expires October 2000             [Page 7]


Internet Draft        DiffServ Policy MIB           April 2000


them the Traffic Control Block (TCB) can be created as soon as
a configuration is made active.

The diffPolicyMeterTable provides the managed objects for the
meters used in the per-hop-behavior configuration.  This table
contains also RowPointers into next data-path elements if the
traffic conforms to the meter or not.

The diffPolicyActionTable provides managed objects for
configuring actions that are connected with meters.  Via this
table by means of 'diffPolicyMeterFailNext' and/or configured.

The diffPolicyQSetTable provides managed objects for setting
up queue set configurations.  The queue sets can be configured
with a weight factor, a queuing method, queue rates and the
next queue sets.

The diffPolicyQTable provides managed objects for setting up
individual queue configurations. The individual queues can be
configured with the sample interval and the weight of the
queue.


8.  Managed objects definitions (MIB module)

-- Editors' notes:
-- This MIB module is a WORK IN PROGRESS.  It has not been
-- checked for syntactical issues.  The important questions are
-- not those regarding syntactical issues but rather that we need to
-- get the big picture right.
--
     DIFFSERV-POLICY-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
         SnmpAdminString                              FROM SNMP-FRAMEWORK-MIB
         InetAddressType, InetAddress                 FROM INET-ADDRESS-MIB
         SixTupleClfrL4Port, Dscp                     FROM DIFF-SERV-MIB;

     diffPolicyMib MODULE-IDENTITY





SNMPCONF WG          Expires October 2000             [Page 8]


Internet Draft        DiffServ Policy MIB           April 2000


         LAST-UPDATED "200004041200Z" -- Tue Apr 4 09:00:00 MET 2000
         ORGANIZATION "SNMPCONF WG"
         CONTACT-INFO
            "SNMPCONF Working Group
             http://www.ietf.org/html.charters/snmpconf-charter.html
            Editors:

            Harrie Hazewinkel
            Postal: Titanstraat 2
                    9933 CE Delfzijl
                    The Netherlands
            Tel: +31 596 615843 or +39 331974135
            FAX: +39 0331974135
            E-mail: harrie.hazewinkel@bigfoot.com

            David Partain
            Postal: Ericsson Radio Systems
                    P.O. Box 1248
                    SE-581 12 Linkoping
                    Sweden
            Tel: +46 13 28 41 44
            E-mail: David.Partain@ericsson.com"
         DESCRIPTION
         "The MIB module containing differentiated services
         specific managed objects to perform policy-based
         configuration management.  This MIB defines
         'templates' to be used to instantiate
         per-hop-behaviors to be assigned when a a policy is
         created and activated."
         ::= { mib-2 XXXX }  -- Needs to be assigned by IANA


--
-- HARRIE: Do we want separation between objects and tables??
-- HARRIE says: NO, but took the scheme over from the DIFF-SERV-MIB.
--
     diffPolicyObjects        OBJECT IDENTIFIER ::= { diffPolicyMib 1 }
     diffPolicyTables         OBJECT IDENTIFIER ::= { diffPolicyMib 2 }
     diffPolicyMIBConformance OBJECT IDENTIFIER ::= { diffPolicyMib 3 }

     --
     -- Textual conventions
     --

     --





SNMPCONF WG          Expires October 2000             [Page 9]


Internet Draft        DiffServ Policy MIB           April 2000


     -- The per-hop-behavior
     --

     -- Issues:
     --   Do we want a spin-lock on this whole table or on each row
     --   of the table, or not at all?
     --   Do we want to have a time stamp on the row so that we
     --   know when the table was changed?
     --   Do we want to have an owner of each row?
     diffPolicyPerHopBehaviorTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF DiffPolicyPerHopBehaviorEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "A table which defines the various per-hop-behaviors
            for which the system has default 'templates'."
         ::= { diffPolicyTables 1 }

     diffPolicyPerHopBehaviorEntry OBJECT-TYPE
         SYNTAX       DiffPolicyPerHopBehaviorEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The per-hop-behavior entry."
         INDEX { diffPolicyPerHopBehaviorId }
         ::= { diffPolicyPerHopBehaviorTable 1 }

     DiffPolicyPerHopBehaviorEntry ::= SEQUENCE {
         diffPolicyPerHopBehaviorId                       INTEGER,
         diffPolicyPerHopBehaviorDescr                    SnmpAdminString,
         diffPolicyPerHopBehaviorTrafficIdentification    RowPointer,
         diffPolicyPerHopBehaviorInterfaceDirection       INTEGER,
         diffPolicyPerHopBehaviorClassificationPrecedence Unsigned32,
         diffPolicyPerHopBehaviorMeter                    RowPointer,
         diffPolicyPerHopBehaviorAction                   RowPointer,
         diffPolicyPerHopBehaviorQset                     RowPointer,
         diffPolicyPerHopBehaviorStatus                   RowStatus
     }

     diffPolicyPerHopBehaviorId OBJECT-TYPE
         SYNTAX         INTEGER (1..2147483647)
         MAX-ACCESS     not-accessible
         STATUS         current
         DESCRIPTION
            "A unique id for the per-hop-behavior."





SNMPCONF WG          Expires October 2000            [Page 10]


Internet Draft        DiffServ Policy MIB           April 2000


         ::= { diffPolicyPerHopBehaviorEntry 1 }

     diffPolicyPerHopBehaviorDescr OBJECT-TYPE
         SYNTAX         SnmpAdminString
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "A human-readable description to identify this
            defined per-hop-behavior.  Note that this is an
         SnmpAdminString, which permits strings other than NVT
         ASCII."
         ::= { diffPolicyPerHopBehaviorEntry 2 }

     diffPolicyPerHopBehaviorTrafficIdentification OBJECT-TYPE
         SYNTAX         RowPointer
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The pointer to traffic identification used for this
            per-hop-behavior definition."
         ::= { diffPolicyPerHopBehaviorEntry 3 }

     diffPolicyPerHopBehaviorInterfaceDirection OBJECT-TYPE
         SYNTAX  INTEGER {
                     inbound(1),     -- ingress interface
                     outbound(2)     -- egress interface
                 }
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The interface direction of this defined per-hop-behavior
            definition."
         ::= { diffPolicyPerHopBehaviorEntry 4 }

     diffPolicyPerHopBehaviorClassificationPrecedence OBJECT-TYPE
         SYNTAX         Unsigned32
         MAX-ACCESS     read-write
         STATUS         current
         DESCRIPTION
            "The precedence of the classifier for this
            per-hop-behavior definition."
         ::= { diffPolicyPerHopBehaviorEntry 5 }

     diffPolicyPerHopBehaviorMeter OBJECT-TYPE
         SYNTAX         RowPointer





SNMPCONF WG          Expires October 2000            [Page 11]


Internet Draft        DiffServ Policy MIB           April 2000


         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The meter which is next in the data path for the
            defined classifier applicable to this
            per-hop-behavior definition."
         DEFVAL { 0 }
         ::= { diffPolicyPerHopBehaviorEntry 6 }

     diffPolicyPerHopBehaviorAction OBJECT-TYPE
         SYNTAX         RowPointer
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The action which is next in the data path for the
            defined classifier applicable to this
            per-hop-behavior definition."
         DEFVAL { zeroDotZero }
         ::= { diffPolicyPerHopBehaviorEntry 7 }

     diffPolicyPerHopBehaviorQset OBJECT-TYPE
         SYNTAX         RowPointer
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "The Qset which is next in the data path for the
            defined classifier applicable to this
            per-hop-behavior definition."
         DEFVAL { zeroDotZero }
         ::= { diffPolicyPerHopBehaviorEntry 8 }

     diffPolicyPerHopBehaviorStatus OBJECT-TYPE
         SYNTAX         RowStatus
         MAX-ACCESS     read-create
         STATUS         current
         DESCRIPTION
            "RowStatus object used for creation and deletion of
          rows in this table."
         ::= { diffPolicyPerHopBehaviorEntry 9 }

     --
     -- Meters Configuration
     --

     -- Issues, which are the same as on the previous table:





SNMPCONF WG          Expires October 2000            [Page 12]


Internet Draft        DiffServ Policy MIB           April 2000


     --   Do we want a spin-lock on this whole table or on each row
     --   of the table, or not at all?
     --   Do we want to have a time stamp on the row so that we
     --   know when the table was changed?
     --   Do we want to have an owner of each row?

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

     diffPolicyMeterTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF DiffPolicyMeterEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The Meter Table enumerates specific token bucket
            meters that can be used for per-hop-behavior definitions."
         ::= { diffPolicyTables 2 }

     diffPolicyMeterEntry OBJECT-TYPE
         SYNTAX       DiffPolicyMeterEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "An entry in the meter table."
         INDEX { diffPolicyMeterId  }
         ::= { diffPolicyMeterTable 1 }


     DiffPolicyMeterEntry ::= SEQUENCE  {
         diffPolicyMeterId                INTEGER,
         diffPolicyMeterRate              Unsigned32,
         diffPolicyMeterBurstSize         Unsigned32,
         diffPolicyMeterFailNext          RowPointer,
         diffPolicyMeterSucceedNext       RowPointer,
         diffPolicyMeterStatus            RowStatus
     }

     diffPolicyMeterId OBJECT-TYPE





SNMPCONF WG          Expires October 2000            [Page 13]


Internet Draft        DiffServ Policy MIB           April 2000


         SYNTAX       INTEGER (1..2147483647)
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "MeterId enumerates the meter entry."
         ::= { diffPolicyMeterEntry 1 }

     diffPolicyMeterRate OBJECT-TYPE
         SYNTAX       Unsigned32
         UNITS        "KBPS" -- kilobits
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The token bucket rate, in kilo-bits per second (KBPS)
            applicable for this per-hop-behavior definition."
         ::= { diffPolicyMeterEntry 2 }

     diffPolicyMeterBurstSize OBJECT-TYPE
         SYNTAX       Unsigned32
         UNITS        "bytes"
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The number of bytes in a single transmission burst
            applicable for this per-hop-behavior definition."
         ::= { diffPolicyMeterEntry 3 }

     diffPolicyMeterFailNext OBJECT-TYPE
         SYNTAX       RowPointer
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "If the traffic does NOT conform to the meter, FailNext
            indicates the next data path element to handle the
            traffic that is applicable for this
            per-hop-behavior definition."
         DEFVAL { zeroDotZero }
         ::= { diffPolicyMeterEntry 4 }

     diffPolicyMeterSucceedNext OBJECT-TYPE
         SYNTAX       RowPointer
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "If the traffic does conform to the meter, SucceedNext





SNMPCONF WG          Expires October 2000            [Page 14]


Internet Draft        DiffServ Policy MIB           April 2000


            indicates the next data path element to handle the
            traffic that is applicable for this
            per-hop-behavior definition."
         DEFVAL      { zeroDotZero }
         ::= { diffPolicyMeterEntry 5 }

     diffPolicyMeterStatus OBJECT-TYPE
         SYNTAX       RowStatus
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The RowStatus variable controls the activation,
            deactivation, or deletion of a meter."
         ::= { diffPolicyMeterEntry 6 }

     --
     -- Actions
     --

     -- Issues, which are the same as on the previous table:
     --   Do we want a spin-lock on this whole table or on each row
     --   of the table, or not at all?
     --   Do we want to have a time stamp on the row so that we
     --   know when the table was changed?
     --   Do we want to have an owner of each row?

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

     diffPolicyActionTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF DiffPolicyActionEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The Action Table enumerates actions that can be
            performed on a stream of traffic.  Multiple Actions can
            be concatenated.  For example, marking of a stream of
            traffic exiting a meter (conforming or non-conforming),





SNMPCONF WG          Expires October 2000            [Page 15]


Internet Draft        DiffServ Policy MIB           April 2000


            then perform a drop process with dropped traffic counts
            maintained.  Notice counting is considered as a type of
            action.  The set of flow specific counters in the Count
            Action Table maintains statistics for a flow that
            arrives to this Action data path element.  This count is
            always taken before any drop processing is performed."
         ::= { diffPolicyTables 3 }

     diffPolicyActionEntry OBJECT-TYPE
         SYNTAX       DiffPolicyActionEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "An entry in the action table describes the actions
            applied to traffic exiting a given meter."
         INDEX { ifIndex, diffPolicyInterfaceDirection,
                 diffPolicyActionId }
         ::= { diffPolicyActionTable 1 }

     DiffPolicyActionEntry ::= SEQUENCE  {
         diffPolicyActionId                Unsigned32,
         diffPolicyActionNext              RowPointer,
         diffPolicyActionType              INTEGER,
         diffPolicyActionPointer           RowPointer,
         diffPolicyActionStatus            RowStatus
     }

     diffPolicyActionId OBJECT-TYPE
         SYNTAX       Unsigned32 (1..2147483647)
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "Action Id enumerates the Action entry for
            a per-hop-behavior definition."
         ::= { diffPolicyActionEntry 1 }

     diffPolicyActionNext OBJECT-TYPE
         SYNTAX       RowPointer
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The Next pointer indicates the next data path element
            to handle the traffic that is applicable to this
            per-hop-behavior definition."
         DEFVAL { zeroDotZero }





SNMPCONF WG          Expires October 2000            [Page 16]


Internet Draft        DiffServ Policy MIB           April 2000


         ::= { diffPolicyActionEntry 2 }

--
-- Harrie believes this is redundant, since with the pointer
-- the type of action can be determined. It even can create
-- inconsistencies.
-- Harrie says: TO BE DELETED!
--
     diffPolicyActionType OBJECT-TYPE
         SYNTAX       INTEGER {
                          other(1),      -- types not specified here.
                          mark(2),       -- mark or remark
                          count(3),      -- count
                          alwaysDrop(4), -- disallow traffic
                          tailDrop(5),   -- fix queue size Drop
                          randomDrop(6), -- Random Drop
                          deterDrop(7)   -- Deterministic Drop
                      }
         MAX-ACCESS   read-write
         STATUS       current
         DESCRIPTION
            "Indicates the type of action diffPolicyAction points
            to."
         ::= { diffPolicyActionEntry 3 }

     diffPolicyActionPointer OBJECT-TYPE
         SYNTAX       RowPointer
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "Pointer to a row that provides all the parameters for
            the type of action indicated applicable for the
            associated per-hop-behavior."
         ::= { diffPolicyActionEntry 4 }

     diffPolicyActionStatus 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."
         ::= { diffPolicyActionEntry 5 }





SNMPCONF WG          Expires October 2000            [Page 17]


Internet Draft        DiffServ Policy MIB           April 2000


     --
     -- Queues
     --

     -- same issues as above

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


     diffPolicyQSetTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF DiffPolicyQSetEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The Queue Set Table enumerates the queue sets that
            can be used to define per-hop-behaviors."
         ::= { diffPolicyTables 4 }


     diffPolicyQSetEntry OBJECT-TYPE
         SYNTAX       DiffPolicyQSetEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "An entry describing a single queue set."
         INDEX { diffPolicyQSetId }
         ::= { diffPolicyQSetTable 1 }

     DiffPolicyQSetEntry ::= SEQUENCE  {
         diffPolicyQSetId                   INTEGER,
         diffPolicyQSetParentId             Unsigned32,
         diffPolicyQSetWeight               Unsigned32,
         diffPolicyQSetMethod               INTEGER,
         diffPolicyQSetRateUnit             INTEGER,
         diffPolicyQSetMinRate              Unsigned32,
         diffPolicyQSetMaxRate              Unsigned32,
         diffPolicyQSetNext                 RowPointer,





SNMPCONF WG          Expires October 2000            [Page 18]


Internet Draft        DiffServ Policy MIB           April 2000


         diffPolicyQSetStatus               RowStatus
     }

     diffPolicyQSetId OBJECT-TYPE
         SYNTAX       INTEGER (1..2147483647)
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The Queue Set Id enumerates the Queue Set entry."
         ::= { diffPolicyQSetEntry 1 }

--
-- HARRIE: has no idea what this means. Do others??
-- HARRIE says: DELETE IT!! I don't see a use for configuration
-- and it can be combined with diffPolicyQSetWeight.
--
     diffPolicyQSetParentId OBJECT-TYPE
         SYNTAX       Unsigned32 (1..2147483647)
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The Queue Set Parent Id allows the formation of
            hierarchical relationships between scheduling
            algorithms."
         ::= { diffPolicyQSetEntry 2 }

     diffPolicyQSetWeight OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "Used with QSetParentId in hierarchical scheduling
            setup.  QSetWeight represent the weight of all queues
            within this queue set, with respect to queues in other
            queue sets in hierarchical scheduling.  For example,
            this queue set represents the weighed fair queuing
            scheduling amongst all the queues in this queue set.
            This set of weighted fair queuing queues as a whole
            belongs to a priority queuing queue set.  QSetWeight
            determines this queue set's priority/weight in the
            parent queue set's priority queuing scheduling
            algorithm.  There can be more than one weighed fair
            queuing queue sets belonging to the same priority
            queuing parent queue set."
         ::= { diffPolicyQSetEntry 3 }





SNMPCONF WG          Expires October 2000            [Page 19]


Internet Draft        DiffServ Policy MIB           April 2000


     diffPolicyQSetMethod OBJECT-TYPE
         SYNTAX       INTEGER {
                          other(1), -- not listed here
                          pq(2),    -- Priority Queuing
                          wfq(3),   -- Weighed Fair Queuing
                          wrr(4)    -- Weighed Round Robin
                      }
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The scheduling algorithm used by this queue
            set that defines the per-hop-behavior."
         ::= { diffPolicyQSetEntry 4 }

     diffPolicyQSetRateUnit OBJECT-TYPE
         SYNTAX       INTEGER {
                          kbps(1),    -- kilo bits per second
                          packets(2)  -- packets per second
                      }
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The unit of measure for the MinRate and MaxRate
            attributes.  The packet unit allows packet fair
            algorithms in addition to bit fair algorithms."
         ::= { diffPolicyQSetEntry 5 }

     diffPolicyQSetMinRate OBJECT-TYPE
         SYNTAX       Unsigned32
         UNITS        "KBPS"
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The minimum rate for the whole queue set
            associated per-hop-behavior."
         ::= { diffPolicyQSetEntry 6 }

     diffPolicyQSetMaxRate OBJECT-TYPE
         SYNTAX       Unsigned32
         UNITS        "KBPS"
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The maximum rate for the whole queue set
            associated per-hop-behavior."





SNMPCONF WG          Expires October 2000            [Page 20]


Internet Draft        DiffServ Policy MIB           April 2000


         ::= { diffPolicyQSetEntry 7 }

     diffPolicyQSetNext OBJECT-TYPE
         SYNTAX       RowPointer
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "Selects the next data path component to define
            the associated per-hop-behavior."
         DEFVAL       { zeroDotZero }
         ::= { diffPolicyQSetEntry 8 }

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

     --

     -- same issues as above.

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

     diffPolicyQTable OBJECT-TYPE
         SYNTAX       SEQUENCE OF DiffPolicyQEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The Queue Table enumerates the queues that
            can be assigned when a per-hop-behavior is assigned.
            This table includes the measure values which





SNMPCONF WG          Expires October 2000            [Page 21]


Internet Draft        DiffServ Policy MIB           April 2000


            are defined in the DIFF-SERV-MIB in a separate table."
         ::= { diffPolicyTables 5 }

     diffPolicyQEntry OBJECT-TYPE
         SYNTAX       DiffPolicyQEntry
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "An entry in the Queue Table describes a single FIFO
            queue."
         INDEX { diffPolicyQSetId, diffPolicyQId }
         ::= { diffPolicyQTable 1 }

     DiffPolicyQEntry ::= SEQUENCE  {
         diffPolicyQId                      INTEGER,
         diffPolicyQSchedulerWeight         Unsigned32,
         diffPolicyQAvgSampleInt            Unsigned32,
         diffPolicyQAvgWeightExp            Unsigned32,
         diffPolicyQAvgWeightMan            Unsigned32,
         diffPolicyQQAverage                Unsigned32,
         diffPolicyQStatus                  RowStatus
     }

     diffPolicyQId OBJECT-TYPE
         SYNTAX       INTEGER (1..2147483647)
         MAX-ACCESS   not-accessible
         STATUS       current
         DESCRIPTION
            "The Queue Id enumerates the Queue entry."
         ::= { diffPolicyQEntry 1 }

     diffPolicyQSchedulerWeight OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-create
         STATUS       current
         DESCRIPTION
            "The weight or priority of the queue for the
            associated per-hop-behavior"
         ::= { diffPolicyQEntry 2 }

     diffPolicyQAvgSampleInt OBJECT-TYPE
         SYNTAX       Unsigned32
         UNIT         millisecond
         MAX-ACCESS   read-create
         STATUS       current





SNMPCONF WG          Expires October 2000            [Page 22]


Internet Draft        DiffServ Policy MIB           April 2000


         DESCRIPTION
            "The sampling interval for queue average calculation,
            in milliseconds that is associated with this
            per-hop-behavior."
         ::= { diffPolicyQEntry 3 }

     diffPolicyQAvgWeightExp OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-create
         STATUS       current
            "The exponent part of weight (in real number format)
            for queue average calculation that is associated with
            this per-hop-behavior."
         ::= { diffPolicyQEntry 4 }

     diffPolicyQAvgWeightMan OBJECT-TYPE
         SYNTAX       Unsigned32
         MAX-ACCESS   read-create
         STATUS       current
            "The mantissa part of weight (in real number format)
            for queue average calculation that is associated with
            this per-hop-behavior."
         ::= { diffPolicyQEntry 5 }

     diffPolicyQQAverage OBJECT-TYPE
         SYNTAX       Unsigned32
         UNITS        "kilo-bits"
         MAX-ACCESS   read-only
         STATUS       current
            "The current queue average in kilo bits."
         ::= { diffPolicyQEntry 6 }

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

     --
     -- MIB Compliance statements.





SNMPCONF WG          Expires October 2000            [Page 23]


Internet Draft        DiffServ Policy MIB           April 2000


     --

     diffPolicyMIBCompliances OBJECT IDENTIFIER ::= { diffPolicyMIBConformance 1 }
     diffPolicyMIBGroups      OBJECT IDENTIFIER ::= { diffPolicyMIBConformance 2 }

     -- TBD

     END










































SNMPCONF WG          Expires October 2000            [Page 24]


Internet Draft        DiffServ Policy MIB           April 2000


9.  Security Considerations

Security information here


10.  Editors' Addresses

   Harrie Hazewinkel
   Titanstraat 2
   9933 CE Delfzijl
   The Netherlands
   Phone: +31 596 615843 or +39 331974135
   EMail: harrie.hazewinkel@bigfoot.com

   David Partain
   Ericsson Radio Systems
   Research and Innovation
   P.O. Box 1248
   SE-581 12 Linkoping
   Sweden
   Phone:  +46 13 28 41 44
   EMail:  David.Partain@ericsson.com


11.  Full Copyright Statement

Copyright (C) The Internet Society (2000).  All Rights
Reserved.

This document and translations of it may be copied and
furnished to others, and derivative works that comment on or
otherwise explain it or assist in its implementation may be
prepared, copied, published and distributed, in whole or in
part, without restriction of any kind, provided that the above
copyright notice and this paragraph are included on all such
copies and derivative works.  However, this document itself
may not be modified in any way, such as by removing the
copyright notice or references to the Internet Society or
other Internet organizations, except as needed for the purpose
of developing Internet standards in which case the procedures
for copyrights defined in the Internet Standards process must
be followed, or as required to translate it into languages
other than English.

The limited permissions granted above are perpetual and will





SNMPCONF WG          Expires October 2000            [Page 25]


Internet Draft        DiffServ Policy MIB           April 2000


not be revoked by the Internet Society or its successors or
assigns.

This document and the information contained herein is provided
on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE
USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR
ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
PARTICULAR PURPOSE."



12.  References


[DSARCHMIB]
     Baker, F., K. Chan, and A. Smith, "Management Information
     Base for the Differentiated Services Architecture", Work
     in Progress, March 2000.

[POLICYMIB]
     Waldbusser, S., J. Saperia, T. Hongal, "Policy Based
     Management MIB", Work in Progress, March 2000.

[SNMPBCP]
     MacFaden M., J. Saperia, "CONFIGURING NETWORKS AND
     DEVICES WITH SNMP", Work in Progress, March 2000.

[COPS-PR]
     Chan, K.H.., D. Durham, S. Gai, S. Herzog, K.
     McCloghrie, F.  Reichmeyer, J. Seligson, A. Smith, R.
     Yavatkar, "COPS Usage for Policy Provisioning", Work in
     Progress, March 2000.
















SNMPCONF WG          Expires October 2000            [Page 26]


Internet Draft        DiffServ Policy MIB           April 2000


Table of Contents



1 ToDos .................................................    2
2 Abstract ..............................................    2
3 Introduction ..........................................    2
4 The Internet Standard Management Framework ............    3
5 Definitions ...........................................    3
5.1 Terms Defined Elsewhere .............................    3
5.2 Definitions Specific to this Document ...............    4
6 Relationship to other MIBs ............................    4
6.1 The Policy-based Management MIB module ..............    4
6.2 The DiffServ MIB module .............................    4
7 MIB Module Design .....................................    6
8 Managed objects definitions (MIB module) ..............    8
9 Security Considerations ...............................   25
10 Editors' Addresses ...................................   25
11 Full Copyright Statement .............................   25
12 References ...........................................   26






























SNMPCONF WG          Expires October 2000            [Page 27]