Internet Engineering Task Force Fred Baker (Cisco) INTERNET DRAFT Roch Guerin (U Penn) Ping Pan (Bell Labs) 14 December 1998 Differentiated Service Management Information Base using SMIv2 draft-pan-diffserv-mib-01.txt Status of this Memo This document is an Internet-Draft. 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 not appropriate to use Internet Drafts as reference material, or to cite them other than as a ``working draft'' or ``work in progress.'' To learn the current status of any Internet-Draft, please check the ``1id-abstracts.txt'' listing contained in the internet-drafts Shadow Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim). Distribution of this document is unlimited. Abstract This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in TCP/IP-based Internets. In particular, it defines objects for managing the interface attributes defined in the Differentiated Services Model[HBWW98, JNP98]. 1. The SNMP Network Management Framework The SNMPv2 Network Management Framework consists of four major components. They are: Baker, Guerin, Pan expires May 1999 [Page 1] INTERNET DRAFT December 1998 - RFC 1441 which defines the SMI, the mechanisms used for describing and naming objects for the purpose of management. - STD 17, RFC 1213 defines MIB-II, the core set of managed objects for the Internet suite of protocols. - RFC 1445 which defines the administrative and other architectural aspects of the framework. - RFC 1448 which defines the protocol used for network access to managed objects. The Framework permits new objects to be defined for the purpose of experimentation and evaluation. 1.1. Object Definitions Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined in the SMI. In particular, each object type is named by an OBJECT IDENTIFIER, an administratively assigned name. The object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience, we often use a textual string, termed the descriptor, to refer to the object type. 2. Overview 2.1. Textual Conventions Several new data types are introduced as a textual convention in this MIB document. These textual conventions enhance the readability of the specification and can ease comparison with other specifications if appropriate. It should be noted that the introduction of these textual conventions has no effect on either the syntax nor the semantics of any managed objects. The use of these is merely an artifact of the explanatory method used. Objects defined in terms of one of these methods are always encoded by means of the rules that define the primitive type. Hence, no changes to the SMI or the SNMP are necessary to accommodate these textual conventions, Baker, Guerin, Pan expires May 1999 [Page 2] INTERNET DRAFT December 1998 which are adopted merely for the convenience of readers and writers in pursuit of the elusive goal of clear, concise, and unambiguous MIB documents. 2.2. Structure of MIB The MIB is composed of the following sections: Differentiated Services Interface Queue Table Control Attributes Table Traffic Attributes Table Interface Attributes Table 3.0 Implementation Model Before defining the MIB itself, it seems prudent to describe a conceptual implementation model. The reader is given to understand that this is not an attempt to specify implementations in any sense, but to make the tables and their component objects understood and their intended usage clear. +------------+------------+----------------+ | ingress | packet | egress | | interface | forwarding | interface | ------------------------------------||-----------> | metering | | ---||---/ | | remarking | | ---||--- | | policing | | queuing, | | | | random discard,| | | | or shaping | +------------+------------+----------------+ Figure 1: Conceptual Router What we need to define are the necessary capabilities that permit us to instruments, at minimum, a device, which simultaneously implements: On entry to the router or host: - received traffic statistics accumulation by interface and code point - Optional AF traffic metering - Optional discard of traffic in excess of acceptable rate (policing) - Optional code point remarking - Optional classification of traffic from non-diff-serv neighbors - Optional discard of traffic which contains a disallowed code point On exit from a host or router: Baker, Guerin, Pan expires May 1999 [Page 3] INTERNET DRAFT December 1998 - one or more FIFO queues on each interface - queues have priorities. This is required by IP Precedence backward compatibility features, and potentially required for EF-style behaviors on very low speed links. - queues that have the same priority interleave their traffic in a manner that achieves their respective configured rates. Obvious implementations include round-robin lists, calendar queues, or WFQ systems. An implementation issue arises when multiple priorities and rate-controlled queues are both configured; priority shields the favored traffic from jitter by moving it to less favored traffic. As a result, lower priority traffic that has a rate defined for the queue may not achieve the desired rate, or may do so with more inter-packet timing variance. A Queue may be work conserving or non-work-conserving. When all queues are constantly overloaded, the rate on a work-conserving queue is a lower bound, but when some queues are not overloaded, a work conserving queue achieves a faster rate. In the same circumstance, the rate of a non-work-conserving queue is an upper bound, achieved by emitting data in appropriately timed short bursts. Since IP uses variable length messages, in the AF service no individual measurement interval will have exactly the specified number of bytes in each drop probability. Rather, the specification will be achieved on average for traffic from several successive intervals. When a message is presented to an interface for transmission, its code point is inspected to determine what queue it should be placed into, what drop probabilities apply, and (optionally) what code point it should be changed to. Therefore, the code point on the egress interface needs to be configurable with the new code point drop management parameters selected queue and needs to accumulate transmitted traffic statistics by interface and code point. 4. Definitions DIFFSERV-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32, Integer32, mib-2 FROM SNMPv2-SMI TimeInterval, TEXTUAL-CONVENTION, RowStatus, TruthValue FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF ifIndex, InterfaceIndex FROM IF-MIB; -- The following textual conventions are defined locally within -- this MIB module. They have been prefixed with 'DiffServ'. Baker, Guerin, Pan expires May 1999 [Page 4] INTERNET DRAFT December 1998 DiffServMIB MODULE-IDENTITY LAST-UPDATED "9811180000Z" -- November 18, 1998 ORGANIZATION "IETF DiffServ WG" CONTACT-INFO " Ping Pan Postal: Bell Laboratories Lucent Technologies 101 Crawfords Corner Road Holmdel, NJ 07733 Tel: +1 732 332 6744 Email: pingpan@dnrc.bell-labs.com Fred Baker Postal: Cisco Systems 519 Lado Drive Santa Barbara, California 93111 Tel: +1 805 681 0115 E-Mail: fred@cisco.com Roch Guerin Postal: Dept Elec. Eng. University of Pennsylvania Philadelphia, PA 19104 Tel: +1 215 898 9351 E-mail: guerin@ee.upenn.edu" DESCRIPTION "This module defines a portion of the management information base (MIB) for configuring DiffServ at routers." ::= { transmission 46 } DiffServIfObjects OBJECT IDENTIFIER ::= { DiffServ 1 } 4.1. Interface Queue Table diffServQueueTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffServQueueEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of DiffServ queue management information for a given interface." ::= { DiffServIfObjects 2 } diffServQueueEntry OBJECT-TYPE SYNTAX DiffServQueueEntry ACCESS not-accessible STATUS mandatory Baker, Guerin, Pan expires May 1999 [Page 5] INTERNET DRAFT December 1998 DESCRIPTION "Queue information for DiffServ for an interface." INDEX { ifIndex, diffServQueue } ::= { DiffServQueueTable 1 } diffServQueueEntry ::= SEQUENCE { diffServQueueNumber Integer32, diffServQueueTokenSize Integer32, diffServQueueInterval Integer32, diffServQueueWeight Integer32 } diffServQueueNumber OBJECT-TYPE SYNTAX INTEGER (0..63) ACCESS read-only STATUS mandatory DESCRIPTION "The queue that one or a code point might send its traffic into." ::= { diffServQueueEntry 1 } diffServQueueTokenSize OBJECT-TYPE SYNTAX PositiveInteger ACCESS read-only STATUS mandatory DESCRIPTION "This value is the maximum number of *bytes* that can be transmitted per interval." ::= { diffServQueueEntry 2 } diffServQueueInterval OBJECT-TYPE SYNTAX PositiveInteger ACCESS read-only STATUS mandatory DESCRIPTION "The rate of the queue is given by diffServQueueTokenSize/diffServQueueInterval The local system will turn this into a weight that will result in the rate being met." ::= { diffServQueueEntry 3 } diffServQueueWeight OBJECT-TYPE SYNTAX PositiveInteger ACCESS read-only STATUS mandatory DESCRIPTION Baker, Guerin, Pan expires May 1999 [Page 6] INTERNET DRAFT December 1998 "The weight of the queue. The local system may derive the weight from the rate being allocated to the queue, however, for preferential delay treatment, the router can assign a higher weight than its rate in the context of a WFQ scheduler." ::= { diffServQueueEntry 4 } 4.2. Control Attributes Table diffServControlTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffServControlEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of DiffServ queue management information for a given interface." ::= { DiffServIfObjects 2 } diffServControlEntry OBJECT-TYPE SYNTAX DiffServControlEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Control information for DiffServ for an interface." INDEX { ifIndex, diffServCodePoint } ::= { DiffServControlTable 1 } diffServControlEntry ::= SEQUENCE { diffServControlCodePoint Integer32, diffServControlQueueNumber Integer32, diffServControlMinDropThreshold Integer32, diffServControlMidDropThreshold Integer32, diffServControlMaxDropThreshold Integer32 } diffServControlCodePoint OBJECT-TYPE SYNTAX INTEGER (0..63) ACCESS read-only STATUS mandatory DESCRIPTION "The Differentiated Services Code Point that this entry controls" ::= { diffServControlEntry 1 } diffServControlQueueNumber OBJECT-TYPE SYNTAX INTEGER (0..63) Baker, Guerin, Pan expires May 1999 [Page 7] INTERNET DRAFT December 1998 ACCESS read-only STATUS mandatory DESCRIPTION "the queue (value of diffServQueueNumber) that traffic with this code point will be placed into on output. ::= { diffServControlEntry 2 } diffServControlMinDropThreshold OBJECT-TYPE SYNTAX PositiveInteger ACCESS read-only STATUS mandatory DESCRIPTION "The first drop precedence level for the queue. The dropping mechanism is implementation specific, however, it needs to be consistent end to end." ::= { diffServControlEntry 3 } diffServControlMidDropThreshold OBJECT-TYPE SYNTAX PositiveInteger ACCESS read-only STATUS mandatory DESCRIPTION "The second drop precedence level for the queue. The dropping mechanism is implementation specific, however, it needs to be consistent end to end." ::= { diffServControlEntry 4 } diffServControlMaxDropThreshold OBJECT-TYPE SYNTAX PositiveInteger ACCESS read-only STATUS mandatory DESCRIPTION "The third drop precedence level for the queue. The dropping mechanism is implementation specific, however, it needs to be consistent end to end." ::= { diffServControlEntry 5 } 4.3. Traffic Attributes Table diffServTrafficTable OBJECT-TYPE SYNTAX SEQUENCE OF DiffServTrafficEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of DiffServ traffic information for a given interface." INDEX { ifIndex } Baker, Guerin, Pan expires May 1999 [Page 8] INTERNET DRAFT December 1998 ::= { DiffServIfObjects 2 } diffServTrafficEntry OBJECT-TYPE SYNTAX DiffServTrafficEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Traffic information for DiffServ for an interface." INDEX { ifIndex, diffServCodePoint } ::= { DiffServTrafficTable 1 } diffServTrafficEntry ::= SEQUENCE { diffServTrafficCodePoint Integer32, diffServTrafficReceivedPackets Counter32, diffServTrafficTransmitPackets Counter32, diffServTrafficReceivedBytes Counter32, diffServTrafficTransmitBytes Counter32, diffServTrafficIngressDropped Counter32, diffServTrafficEgressDropped Counter32, diffServTrafficReceivedOutprofile Counter32, diffServTrafficTransmitOutprofile Counter32 } diffServTrafficCodePoint OBJECT-TYPE SYNTAX INTEGER (0..63) ACCESS read-only STATUS mandatory DESCRIPTION "The Differentiated Services Code Point that this entry measures" ::= { diffServTrafficEntry 1 } diffServTrafficReceivedPackets OBJECT-TYPE SYNTAX Counter32 ACCESS read-only STATUS mandatory DESCRIPTION "The total number of packets received successfully." ::= { diffServTrafficEntry 2 } diffServTrafficTransmitPackets OBJECT-TYPE SYNTAX Counter32 ACCESS read-only STATUS mandatory DESCRIPTION "The total number of packets transmitted Baker, Guerin, Pan expires May 1999 [Page 9] INTERNET DRAFT December 1998 successfully." ::= { diffServTrafficEntry 3 } diffServTrafficReceivedBytes OBJECT-TYPE SYNTAX Counter32 ACCESS read-only STATUS mandatory DESCRIPTION "The total number of bytes received successfully." ::= { diffServTrafficEntry 4 } diffServTrafficTransmitBytes OBJECT-TYPE SYNTAX Counter32 ACCESS read-only STATUS mandatory DESCRIPTION "The total number of bytes transmitted successfully." ::= { diffServTrafficEntry 5 } diffServTrafficIngressDropped OBJECT-TYPE SYNTAX Counter32 ACCESS read-only STATUS mandatory DESCRIPTION "The total number of packets dropped having this code point on receipt." ::= { diffServTrafficEntry 6 } diffServTrafficEgressDropped OBJECT-TYPE SYNTAX Counter32 ACCESS read-only STATUS mandatory DESCRIPTION "The total number of packets dropped having this code point prior to transmission." ::= { diffServTrafficEntry 7 } diffServTrafficReceivedOutprofile OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The total number of out-profiled packets being received." ::= { DiffServTrafficEntry 8 } diffServTrafficTranmitOutprofile OBJECT-TYPE SYNTAX INTEGER Baker, Guerin, Pan expires May 1999 [Page 10] INTERNET DRAFT December 1998 ACCESS read-only STATUS mandatory DESCRIPTION "The total number of out-profiled packets being transmitted." ::= { DiffServTrafficEntry 9 } 4.4. Interface Attributes Table diffServAttribTable OBJECT-TYPE SYNTAX SEQUENCE OF diffServAttribEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of DiffServ configuration data for a given interface." INDEX { ifIndex } ::= { diffServIfObjects 1 } diffServAttribEntry OBJECT-TYPE SYNTAX DiffServAttribEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Config data for DiffServ for an interface." INDEX { ifIndex } ::= { DiffServAttribTable 1 } diffServAttribEntry ::= SEQUENCE { diffServAttribStatus TruthValue, diffServAttribEFStatus TruthValue, diffServAttribAFStatus TruthValue, diffServAttribMaxEFBits BitRate, diffServAttribMaxAFBits BitRate } diffServAttribStatus OBJECT-TYPE SYNTAX TruthValue ACCESS read-only STATUS mandatory DESCRIPTION "If true (1), the interface is DiffServ enabled. False (0) means the interface does not support DiffServ." ::= { diffServAttribEntry 1 } diffServAttribEFStatus OBJECT-TYPE SYNTAX TruthValue ACCESS read-create Baker, Guerin, Pan expires May 1999 [Page 11] INTERNET DRAFT December 1998 STATUS mandatory DESCRIPTION "If true (1), the interface is DiffServ Expedited Forwarding enabled. False (0) means the interface does not support the EF PHB." ::= { diffServAttribEntry 2 } diffServAttribAFStatus OBJECT-TYPE SYNTAX TruthValue ACCESS read-create STATUS mandatory DESCRIPTION "If true (1), the interface is DiffServ Assured Forwarding enabled. False (0) means the interface does not support the AF PHB." ::= { diffServAttribEntry 3 } diffServAttribMaxEFBits OBJECT-TYPE SYNTAX BitRate ACCESS read-write STATUS mandatory DESCRIPTION "The transmit link bandwidth allocated to the EF traffic at the interface in Kbit/second." ::= { diffServAttribEntry 4 } diffServAttribMaxAFBits OBJECT-TYPE SYNTAX BitRate ACCESS read-write STATUS mandatory DESCRIPTION "The transmit link bandwidth allocated to AF traffic at the interface in Kbit/second. The sum of MaxEFBits and MaxAFBits must be equal to the total interface bandwidth." ::= { diffServAttribEntry 5 } 5. Security Considerations The security considerations are the beyond the scope of the work for the time being. References [HBWW98] J. Heinanen, F. Baker, Weiss W., and J. Wroclawski. Assured forwarding phb group. Internet Draft, Internet Engineering Task Force, November 1998. Work in progress. [JNP98] V. Jacobson, K. Nichols, and K. Poduri. An expedited Baker, Guerin, Pan expires May 1999 [Page 12] INTERNET DRAFT December 1998 forwarding phb. Internet Draft, Internet Engineering Task Force, November 1998. Work in progress. Authors' Address Ping Pan Bell Laboratories Lucent Technologies 101 Crawfords Corner Road Holmdel, NJ 07733 E-Mail: pingpan@dnrc.bell-labs.com Fred Baker Cisco Systems 519 Lado Drive Santa Barbara, California 93111 E-Mail: fred@cisco.com Roch Guerin Dept Elec. Eng. University of Pennsylvania Philadelphia, PA 19104 E-Mail: guerin@ee.upenn.edu Baker, Guerin, Pan expires May 1999 [Page 13]