RFC 2836 PROPOSED STANDARD QOS · TRAFFIC TREATMENT · DIFFSERV

PHB ID codes: Per Hop Behavior Identification Codes

Compact 16-bit codes to identify how a router should treat traffic.

On rfc-editor.org ↗
PUBLISHED
May 2000
AUTHORS
S. Brim, B. Carpenter, F. Le Faucheur
STREAM
IETF
OBSOLETED BY
RFC 3140 — PHB ID Codes
FIELD SIZE
16 bits
DSCP VALUE SIZE
6 bits
NON-STANDARD PHB CODE SIZE
12 bits
IANA REGISTRY RANGE
0 to 4095
DOI
10.17487/RFC2836

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                            S. Brim
Request for Comments: 2836                                  B. Carpenter
Category: Standards Track                                 F. Le Faucheur
                                                                May 2000


                 Per Hop Behavior Identification Codes

Status of this Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

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

Table of Contents:

   1. Introduction................................................. 1
   1.1. Usage Scenarios............................................ 2
   2. Encoding..................................................... 3
   3. IANA Considerations.......................................... 4
   4. Security considerations...................................... 4
   References...................................................... 4
   Authors' Addresses.............................................. 5
   Intellectual Property........................................... 6
   Full Copyright Statement........................................ 7

1. Introduction

   Differentiated Services [RFC 2474, RFC 2475] introduces the notion of
   Per Hop Behaviors (PHBs) that define how traffic belonging to a
   particular behavior aggregate is treated at an individual network
   node. In IP packet headers, PHBs are not indicated as such; instead
   Differentiated Services Codepoint (DSCP) values are used. There are
   only 64 possible DSCP values, but there is no such limit on the
   number of PHBs. In a given network domain, there is a locally defined
   mapping between DSCP values and PHBs. Standardized PHBs recommend a
   DSCP mapping, but network operators may choose alternative mappings.

   In some cases it is necessary or desirable to identify a particular
   PHB in a protocol message, such as a message negotiating bandwidth
   management or path selection, especially when such messages pass
   between management domains. Examples where work is in progress
   include communication between bandwidth brokers, and MPLS support of
   diffserv.

   In certain cases, what needs to be identified is not an individual
   PHB, but a set of PHBs. One example is a set of PHBs that must follow
   the same physical path to prevent re-ordering.  An instance of this
   is the set of three PHBs belonging to a single Assured Forwarding
   class, such as the PHBs AF11, AF12 and AF13 [RFC 2597].

   This document defines a binary encoding to uniquely identify PHBs
   and/or sets of PHBs in protocol messages. This encoding MUST be used
   when such identification is required.

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

1.1. Usage Scenarios

   Diffserv services are expected to be supported over various
   underlying technologies which we broadly refer to as "link layers"
   for the purpose of this discussion. For the transport of IP packets,
   some of these link layers make use of connections or logical
   connections where the forwarding behavior supported by each link
   layer device is a property of the connection. In particular, within
   the link layer domain, each link layer node will schedule traffic
   depending on which connection the traffic is transported in. Examples
   of such "link layers" include ATM and MPLS.

   For efficient support of diffserv over these link layers, one model
   is for different Behavior Aggregates (BAs) (or sets of Behavior
   Aggregates) to be transported over different connections so that they
   are granted different (and appropriate) forwarding behaviors inside
   the link layer cloud. When those connections are dynamically
   established for the transport of diffserv traffic, it is very useful
   to communicate at connection establishment time what forwarding
   behavior(s) is(are) to be granted to each connection by the link
   layer device so that the BAs transported experience consistent
   forwarding behavior inside the link layer cloud. This can be achieved
   by including in the connection establishment signaling messages the
   encoding of the corresponding PHB, or set of PHBs, as defined in this
   document.  Details on proposed usage of PHB encodings by some MPLS
   label distribution protocols (RSVP and LDP) for support of Diff-Serv
   over MPLS, can be found in [MPLS-DS].

   In another approach, the ATM Forum has a requirement to indicate
   desired IP QOS treatments in ATM signaling, so that ATM switches can
   be just as supportive of the desired service as are IP forwarders.
   To do so the Forum is defining a new VC call setup information
   element is which will carry PHB identification codes (although will
   be generalized to do more if needed).

2. Encoding

   PHBs and sets of PHBs are encoded in an unsigned 16 bit binary field.

   The 16 bit field is arranged as follows:

   Case 1: PHBs defined by standards action, as per [RFC 2474].

   The encoding for a single PHB is the recommended DSCP value for that
   PHB, left-justified in the 16 bit field, with bits 6 through 15 set
   to zero.  Note that the recommended DSCP value MUST be used, even if
   the network in question has chosen a different mapping.

   The encoding for a set of PHBs is the numerically smallest of the set
   of encodings for the various PHBs in the set, with bit 14 set to 1.
   (Thus for the AF1x PHBs, the encoding is that of the AF11 PHB, with
   bit 14 set to 1.)

       0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
     |         DSCP          | 0   0   0   0   0   0   0   0   X   0 |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

   Case 2: PHBs not defined by standards action, i.e. experimental or
   local use PHBs as allowed by [RFC 2474]. In this case an arbitrary 12
   bit PHB identification code, assigned by the IANA, is placed left-
   justified in the 16 bit field. Bit 15 is set to 1, and bit 14 is zero
   for a single PHB or 1 for a set of PHBs.  Bits 12 and 13 are zero.

       0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
     |                      PHB id code              | 0   0   X   1 |
     +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

   Bits 12 and 13 are reserved either for expansion of the PHB
   identification code, or for other use, at some point in the future.

3. IANA Considerations

   IANA is requested to create a new assignment registry for "Per-Hop
   Behavior Identification Codes", initially allowing values in the
   range 0 to 4095 decimal.

   Assignment of values in this field require:

     -the identity of the assignee
     -a brief description of the new PHB, with enough detail to
      distinguish it from existing standardized and non-standardized
      PHBs. In the case of a set of PHBs, this description should cover
      all PHBs in the set.
     -a reference to a stable document describing the PHB in detail.

   During the first year of existence of this registry, IANA is
   requested to refer all requests to the IETF diffserv WG for review.
   Subsequently, requests should be reviewed by the IETF Transport Area
   Directors or by an expert that they designate.

   If the number of assignments begins to approach 4096, the Transport
   Area Directors should be alerted.

4. Security Considerations

   This encoding in itself raises no security issues. However, users of
   this encoding should consider that modifying a PHB identification
   code may constitute theft or denial of service, so protocols using
   this encoding must be adequately protected.

References

   [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

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

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

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

   [MPLS-DS]  MPLS Support of Differentiated Services, Francois Le
              Faucheur, Liwen Wu, Bruce Davie, Shahram Davari, Pasi
              Vaananen, Ram Krishnan, Pierrick Cheval, Juha Heinanen,
              Work in Progress.

Authors' Addresses

   Scott W. Brim
   146 Honness Lane
   Ithaca, NY 14850
   USA

   EMail: sbrim@cisco.com


   Brian E. Carpenter
   IBM
   c/o iCAIR
   Suite 150
   1890 Maple Avenue
   Evanston, IL 60201
   USA

   EMail: brian@icair.org


   Francois Le Faucheur
   Cisco Systems
   Petra B - Les Lucioles
   291, rue Albert Caquot
   06560 Valbonne
   France

   EMail: flefauch@cisco.com

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   intellectual property or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; neither does it represent that it
   has made any effort to identify any such rights.  Information on the
   IETF's procedures with respect to rights in standards-track and
   standards-related documentation can be found in BCP-11.  Copies of
   claims of rights made available for publication and any assurances of
   licenses to be made available, or the result of an attempt made to
   obtain a general license or permission for the use of such
   proprietary rights by implementors or users of this specification can
   be obtained from the IETF Secretariat.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights which may cover technology that may be required to practice
   this standard.  Please address the information to the IETF Executive
   Director.

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 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.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.

AI ELI5

On this page
PROBLEMDifferentiated Services (DiffServ) lets routers treat traffic differently (high priority, low latency, etc.), but the DSCP field in IP headers has only 64 possible values. When routers negotiate treatment over management links or MPLS tunnels, they need a way to identify specific Per Hop Behaviors (PHBs) beyond what DSCP alone can express.
MECHANISMRFC 2836 defines a 16-bit binary encoding where the first 6 bits hold the DSCP value for standardized PHBs, or a 12-bit code for non-standard ones, with flag bits to indicate single PHBs versus sets of PHBs.
WHY IT MATTERSManagement systems, bandwidth brokers, and MPLS implementations can now unambiguously specify what forwarding behavior each route or connection should receive. This was replaced by RFC 3140.

§1Identifying Traffic Treatment Behaviors

RFC 2836 defines a compact way to identify Per Hop Behaviors (PHBs), the rules that determine how a router treats traffic at that hop. PHBs are the foundation of Differentiated Services (DiffServ), which allows networks to offer different service levels for different traffic.

In IP packet headers, PHBs are indicated by the Differentiated Services Codepoint (DSCP), a 6-bit field. But there are only 64 possible DSCP values. A network operator can map each DSCP to a PHB, and can define additional PHBs that do not have a standardized DSCP mapping. When routers negotiate bandwidth management or establish MPLS label-switched paths, they must be able to name the PHB or set of PHBs that a connection should receive—and the 64 DSCP values alone are not always enough.

Routers can treat traffic in different ways (fast, reliable, cheap, etc.). Each way is called a PHB. When routers talk to each other about which treatment to use, they need short names for them.

§2PHBs and PHB Sets

A PHB is a forwarding behavior that a router applies to traffic: for example, "low latency for video" or "best effort." In some cases, multiple related PHBs must be handled together—for example, the Assured Forwarding class defines three PHBs (AF11, AF12, AF13) that must follow the same physical path to prevent packet reordering. This group of PHBs is called a PHB set.

The RFC encoding must handle both single PHBs and PHB sets. It also distinguishes between standardized PHBs, which have a recommended DSCP value defined in an RFC, and experimental or local-use PHBs, which are specific to a network operator and must be registered with IANA.

A PHB is one kind of treatment. Sometimes several related treatments must stay together, called a set. Some treatments are official standards; others are made up for a particular network.

§3The 16-bit Encoding

PHBs are encoded in an unsigned 16-bit field. The encoding has two cases:

Case 1: Standardized PHBs use the recommended DSCP value, left-justified in the 16-bit field, with the lower 10 bits set to zero. For a set of standardized PHBs, the encoding is the smallest DSCP value in the set, with bit 14 set to 1 to mark it as a set (for example, the AF1x class uses the AF11 DSCP with bit 14 set).

Case 2: Non-standardized PHBs use a 12-bit identification code assigned by IANA, left-justified in the field. Bit 15 is set to 1 to distinguish this case from Case 1. Bit 14 indicates whether the code refers to a single PHB (0) or a set (1). Bits 12 and 13 are reserved for future expansion.

The code is just 16 bits long. Standardized kinds use their DSCP number; non-standard ones use a number from an IANA registry. A flag bit tells whether it is one kind or a group of related kinds.

16-bit PHB identification encoding
Case 1: Standardized PHB
FieldNameSizeValueDescription
DSCPDSCP value6 bits6-bit DSCP value, left-justified.
ZERO-1Reserved3 bitsSet to zero.
SET-FLAGSet flag1 bits0 for single PHB, 1 for set of PHBs.
ZERO-2Reserved6 bitsSet to zero.
16-bit PHB identification encoding (continued)
Case 2: Non-standardized PHB
FieldNameSizeValueDescription
PHB-CODEPHB code12 bits12-bit IANA-assigned identification code.
RESERVEDReserved2 bitsBits 12-13, reserved for future use.
SET-FLAGSet flag1 bits0 for single PHB, 1 for set of PHBs.
CASECase1 bits1Set to 1 for non-standardized PHBs.

§4Usage in Networks

PHB codes are used when bandwidth brokers negotiate QoS guarantees across a network, when MPLS establishes label-switched paths that should receive specific treatment, and when ATM switches need to know what forwarding behavior to apply to a virtual circuit. Instead of exchanging a long description of the desired behavior, endpoints can send the compact 16-bit PHB code.

For example, a bandwidth broker might use a PHB code to tell an ATM switch, "traffic on this circuit should receive low-latency treatment." An RSVP or LDP protocol message can include a PHB code to request that an MPLS tunnel be granted a specific forwarding behavior at each hop.

When a network device asks for a certain kind of treatment (like 'give this low latency'), it sends a 16-bit code instead of describing it in words. Other devices understand what the code means.

§5Registry and Assignments

IANA maintains a registry of Per Hop Behavior Identification Codes for non-standardized PHBs, initially allowing values from 0 to 4095 (12 bits). Assignments require the applicant's identity, a brief description of the PHB, and a reference to a detailed specification. During the first year, IANA forwards requests to the IETF DiffServ Working Group for review. After that, the Transport Area Directors or a designated expert reviews requests.

Modifying a PHB identification code could constitute theft or denial of service, so protocols that use these codes must be adequately protected by encryption and authentication.

New, non-standard treatments are registered with IANA so everyone knows what the codes mean. The code itself does not provide security, so the protocol using it must protect against tampering.

§6References