-- extracted from draft-baker-diffserv-mib-00.txt -- at Mon Nov 15 17:11:37 1999 DIFF-SERV-MIB DEFINITIONS ::= BEGIN IMPORTS transmission, Unsigned32, Counter32, Counter64, OBJECT-TYPE, MODULE-IDENTITY FROM SNMPv2-SMI TEXTUAL-CONVENTION, RowStatus, TruthValue, RowPointer, TestAndIncr FROM SNMPv2-TC MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF ifIndex FROM IF-MIB; diffServMib MODULE-IDENTITY LAST-UPDATED "9906250138Z" -- Fri Jun 25 01:38:49 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." ::= { transmission 12345 } dsObjects OBJECT IDENTIFIER ::= { diffServMib 1 } dsTables OBJECT IDENTIFIER ::= { diffServMib 2 } dsConform OBJECT IDENTIFIER ::= { diffServMib 3 } diffServMibCompliance OBJECT IDENTIFIER ::= { dsMib 4 } dsGroups OBJECT IDENTIFIER ::= { diffServMib 5 } -- 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) dsAggregateTable OBJECT-TYPE SYNTAX SEQUENCE OF DsAggregateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The 'Aggregate' Table enumerates Behavior Aggregate classifiers (DSCPs) that a system may identify traffic using." ::= { dsTables 1 } dsAggregateEntry OBJECT-TYPE SYNTAX DsAggregateEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A 'aggregate' entry describes a single BA classifier." INDEX { dsAggregateDSCP } ::= { dsAggregateTable 1 } DsAggregateEntry ::= SEQUENCE { dsAggregateDSCP Dscp } dsAggregateDSCP OBJECT-TYPE SYNTAX Dscp MAX-ACCESS read-only STATUS current DESCRIPTION "This is the Differentiated Services Code Point (DSCP) for the classifier. This is used only as a RowPointer in the dsClassifierMFPointer, and is not actually configured to changed." ::= { dsAggregateEntry 1 } -- This object allows a configuring system to obtain a unique -- value for dsClassifierNumber for purposes of configuration dsClassifierUnique OBJECT-TYPE SYNTAX TestAndIncrement MAX-ACCESS read-only STATUS current DESCRIPTION "The dsClassifierUnique object yields a unique new value for dsClassifierNumber when read." ::= { dsObjects 1 } -- The Classifier Table allows us to enumerate the relationship -- between arbitrary classifiers and the meters which apply to -- classified streams. dsClassifierTable OBJECT-TYPE SYNTAX SEQUENCE OF DsClassifierEntry 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)." ::= { dsTables 2 } dsClassifierEntry OBJECT-TYPE SYNTAX DsClassifierEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the classifier table describes a single classifier." INDEX { ifIndex, dsInterfaceDirection, dsClassifierNumber } ::= { dsClassifierTable 1 } DsClassifierEntry ::= SEQUENCE { dsInterfaceDirection INTEGER, dsClassifierNumber Unsigned32, dsClassifierMFPointer RowPointer, dsClassifierMeterNumber Unsigned32, dsClassifierStatus RowStatus } dsInterfaceDirection 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." ::= { dsClassifierEntry 1 } dsClassifierNumber OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "Number enumerates the classifier entry." ::= { dsClassifierEntry 2 } dsClassifierMFPointer 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 dsAggregateEntry for a given DSCP, but other choices include tables describing any classifier that may be of interest. The NULL OID { 0 0 } is interpreted to match anything not matched by another classifier." ::= { dsClassifierEntry 3 } dsClassifierMeterNumber OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The Meter Number selects the Meter Entry that will govern the rate-limited acceptance of traffic of this type." ::= { dsClassifierEntry 4 } dsClassifierStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The RowStatus variable controls the reading, writing, enabling, and disabling of a classifier entry." ::= { dsClassifierEntry 5 } -- This object allows a configuring system to obtain a unique -- value for dsClassifierNumber for purposes of configuration dsMeterUnique OBJECT-TYPE SYNTAX TestAndIncrement MAX-ACCESS read-only STATUS current DESCRIPTION "The dsMeterUnique object yields a unique new value for dsMeterNumber when read." ::= { dsObjects 2 } -- The Meter Table allows us to enumerate the relationship -- between meters and the actions, other meters, and queues that -- result from them. dsMeterTable OBJECT-TYPE SYNTAX SEQUENCE OF DsMeterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Meter Table enumerates specific meters that a system may 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. Note that the 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." ::= { dsTables 3 } dsMeterEntry OBJECT-TYPE SYNTAX DsMeterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the meter table describes a single 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 meter be needed in a given Per-Hop Behavior. An example of such a PHB is AF." INDEX { ifIndex, dsInterfaceDirection, dsMeterNumber } ::= { dsMeterTable 1 } DsMeterEntry ::= SEQUENCE { dsMeterNumber Unsigned32, dsMeterInterval Unsigned32, dsMeterBurstSize Unsigned32, dsMeterFailMeter Unsigned32, dsMeterQueueNumber Unsigned32, dsMeterDSCP Dscp, dsMeterMinThreshold Unsigned32, dsMeterMaxThreshold Unsigned32, dsMeterAlwaysDrop TruthValue, dsMeterAlwaysConform TruthValue, dsMeterConformingPackets Counter32, dsMeterConformingOctets Counter64, dsMeterTailDrops Counter32, dsMeterRandomDrops Counter32, dsMeterStatus RowStatus } dsMeterNumber OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "The number of the meter, for reference from the classifier or in cascade from another meter." ::= { dsMeterEntry 1 } dsMeterInterval OBJECT-TYPE SYNTAX Unsigned32 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." ::= { dsMeterEntry 2 } dsMeterBurstSize OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The number of bytes in a single transmission burst. 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." ::= { dsMeterEntry 3 } dsMeterFailMeter OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "If the traffic does not conform to the meter, the number of the next meter to enquire of. If Always- Conform is true, this number must be zero, as no more tests are necessary. If Always-Conform is false, this number may not be zero, as there is some possibility that the test will fail." ::= { dsMeterEntry 4 } dsMeterQueueNumber OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS read-create STATUS current DESCRIPTION "The Queue Number selects which queue on the interface that a message is placed into. Incoming traffic may use the value zero 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." ::= { dsMeterEntry 5 } dsMeterDSCP OBJECT-TYPE SYNTAX Dscp MAX-ACCESS read-create STATUS current DESCRIPTION "The DSCP that traffic conforming to this classifier 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." ::= { dsMeterEntry 6 } dsMeterMinThreshold OBJECT-TYPE SYNTAX Unsigned32 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." ::= { dsMeterEntry 7 } dsMeterMaxThreshold OBJECT-TYPE SYNTAX Unsigned32 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." ::= { dsMeterEntry 8 } dsMeterAlwaysDrop OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "If true, traffic conforming to this meter is always dropped. In such a case, the drop controls are ignored." ::= { dsMeterEntry 9 } dsMeterAlwaysConform OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-create STATUS current DESCRIPTION "If true, the meter always accepts all traffic; its rate is effectively infinite. In such a case, the token bucket defined by the Interval and Burst-Size parameters is ignored." ::= { dsMeterEntry 10 } dsMeterConformingPackets OBJECT-TYPE SYNTAX Counter32 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of packets conforming to this meter." ::= { dsMeterEntry 11 } dsMeterConformingOctets OBJECT-TYPE SYNTAX Counter64 MAX-ACCESS read-only STATUS current DESCRIPTION "The number of octets conforming to this meter." ::= { dsMeterEntry 12 } dsMeterTailDrops 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." ::= { dsMeterEntry 13 } dsMeterRandomDrops 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." ::= { dsMeterEntry 14 } dsMeterStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The RowStatus variable controls the reading, writing, enabling, and disabling of a meter entry." ::= { dsMeterEntry 15 } -- This object allows a configuring system to obtain a unique -- value for dsClassifierNumber for purposes of configuration dsQueueUnique OBJECT-TYPE SYNTAX TestAndIncrement MAX-ACCESS read-only STATUS current DESCRIPTION "The dsQueueUnique object yields a unique new value for dsQueueNumber when read." ::= { dsObjects 3 } -- The Queue Table allows us to describe queues dsQueueTable OBJECT-TYPE SYNTAX SEQUENCE OF DsQueueEntry 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 rate, which may be a minimum or a maximum rate. 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, potentially reducing the rate of traffic through it to the indicated rate." ::= { dsTables 4 } dsQueueEntry OBJECT-TYPE SYNTAX DsQueueEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "An entry in the Queue Table describes a single queue." INDEX { ifIndex, dsInterfaceDirection, dsQueueNumber } ::= { dsQueueTable 1 } DsQueueEntry ::= SEQUENCE { dsQueueNumber Unsigned32, dsQueueRate Unsigned32, dsQueueType INTEGER, dsQueuePriority Unsigned32, dsQueueStatus RowStatus } dsQueueNumber OBJECT-TYPE SYNTAX Unsigned32 MAX-ACCESS not-accessible STATUS current DESCRIPTION "The number of the queue, used as a link from the Meter Table to the Queue Table." ::= { dsQueueEntry 1 } dsQueueRate OBJECT-TYPE SYNTAX Unsigned32 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." ::= { dsQueueEntry 2 } dsQueueType OBJECT-TYPE SYNTAX INTEGER { minimum(1), -- work-conserving queue maximum(2) -- non-work-conserving queue } MAX-ACCESS read-create STATUS current DESCRIPTION "A queue guarantees its traffic, assuming ifSpeed is properly configured or calculated, at least or at most the rate in question. If the value 'minimum' is selected, the queue is a work-conserving queue, and guarantees at least the rate specified. If other queues are not fully utilized, it may give a higher service rate. If the value guarantees that its throughput will not exceed that rate." ::= { dsQueueEntry 3 } dsQueuePriority 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." ::= { dsQueueEntry 4 } dsQueueStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The RowStatus variable controls the reading, writing, enabling, and disabling of a queue entry." ::= { dsQueueEntry 5 } dsCompliance 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." MODULE -- This Module MANDATORY-GROUPS { dsClassifierGroup, dsMeterGroup, dsQueueGroup -- note that the dsStaticGroup is not mandatory } OBJECT dsAggregateDSCP MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsClassifierMFPointer MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsClassifierMeterNumber MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsClassifierStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterInterval MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterBurstSize MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterAlwaysConform MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterAlwaysDrop MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterMinThreshold MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterMaxThreshold MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterDSCP MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterQueueNumber MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterFailMeter MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsMeterStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsQueueRate MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsQueueType MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsQueuePriority MIN-ACCESS read-only DESCRIPTION "Write access is not required." OBJECT dsQueueStatus MIN-ACCESS read-only DESCRIPTION "Write access is not required." ::= { diffServMibCompliance 1 } dsClassifierGroup OBJECT-GROUP OBJECTS { dsAggregateDSCP, dsClassifierMFPointer, dsClassifierMeterNumber, dsClassifierStatus } STATUS current DESCRIPTION "The Classifier Group defines the MIB Objects that describe a classifier." ::= { dsGroups 1 } dsMeterGroup OBJECT-GROUP OBJECTS { dsMeterInterval, dsMeterBurstSize, dsMeterAlwaysConform, dsMeterAlwaysDrop, dsMeterRandomDrops, dsMeterTailDrops, dsMeterMinThreshold, dsMeterMaxThreshold, dsMeterDSCP, dsMeterQueueNumber, dsMeterConformingPackets, dsMeterConformingOctets, dsMeterFailMeter, dsMeterStatus } STATUS current DESCRIPTION "The Meter Group defines the objects used in describing a meter." ::= { dsGroups 2 } dsQueueGroup OBJECT-GROUP OBJECTS { dsQueueRate, dsQueueType, dsQueuePriority, dsQueueStatus } STATUS current DESCRIPTION "The Queue Group contains the objects that describe an interface's queues." ::= { dsGroups 3 } dsStaticGroup OBJECT-GROUP OBJECTS { dsClassifierUnique, dsMeterUnique, dsQueueUnique } STATUS current DESCRIPTION "The Static Group contains scalar objects used in creating unique enumerations for classifiers, meters, and queues." ::= { dsGroups 4 } 5. Acknowledgments This MIB has been developed with active involvement from a number of sources, but most notably Andrew Smith, Yoram Bernet, Steve Blake, Ping Pan, Roch Guerin, Keith McCloghrie, Kathleen Nichols, Brian Carpenter, Scott Hahn, and Jeremy Greene. 6. Security Considerations This part remains to be filled in. 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 which SNMP Security is itself intended to address - 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. 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 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. [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. [Framework] Bernet et al, "A Framework for Differentiated Services", 03/01/1999, draft-ietf-diffserv-framework-02.txt 8. Author's Address: Fred Baker 519 Lado Drive Santa Barbara, California 93111 fred.baker@cisco.com