PHB ID Codes: Per Hop Behavior Identification Codes
A 16-bit code that names a Differentiated Services Per Hop Behavior, or a set of them, inside protocol messages.
Black, D., Brim, S., Carpenter, B., and F. Le Faucheur, "Per Hop Behavior Identification Codes", RFC 3140, DOI 10.17487/RFC3140, June 2001, <https://www.rfc-editor.org/info/rfc3140>.
@misc{rfc3140,
series = {Request for Comments},
number = 3140,
howpublished = {RFC 3140},
publisher = {RFC Editor},
doi = {10.17487/RFC3140},
url = {https://www.rfc-editor.org/info/rfc3140},
author = {D. Black and S. Brim and B. Carpenter and F. Le Faucheur},
title = {{Per Hop Behavior Identification Codes}},
pagetotal = 8,
year = 2001,
month = jun,
} RFC text
Contents
Network Working Group D. Black
Request for Comments: 3140 S. Brim
Obsoletes: 2836 B. Carpenter
Category: Standards Track F. Le Faucheur
June 2001
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 (2001). All Rights Reserved.
Abstract
This document defines a 16 bit encoding mechanism for the
identification of differentiated services Per Hop Behaviors in
protocol messages. It replaces RFC 2836.
Table of Contents
1. Introduction.................................................2
1.1. Usage Scenarios............................................2
2. Encoding.....................................................3
3. Signalling the Class Selector Codepoints.....................4
4. IANA Considerations..........................................5
5. Security Considerations......................................5
Changes from RFC 2836...........................................5
Acknowledgements................................................6
References......................................................6
Authors' Addresses..............................................6
Intellectual Property...........................................7
Full Copyright Statement........................................8
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.
This document replaces RFC 2836, which omitted considerations for the
Class Selector codepoints.
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.
In both cases, when a single PHBID is used to identify a set of PHBs
(i.e., bit 14 is set to 1), that set of PHBs MUST constitute a PHB
Scheduling Class (i.e., use of PHBs from the set MUST NOT cause
intra-microflow traffic reordering when different PHBs from the set
are applied to traffic in the same microflow). The set of AF1x PHBs
[RFC 2597] is an example of a PHB Scheduling Class. Sets of PHBs
that do not constitute a PHB Scheduling Class can be identified by
using more than one PHBID.
3. Signalling the Class Selector Codepoints
[RFC 2474] defines the eight DS codepoint values of the form 'xxx000'
(where x may be '0' or '1') as the Class Selector Codepoints.
Codepoint 000000 is the recommended DSCP value for the Default PHB,
and hence the Case 1 PHBID constructed from that codepoint is used to
signal the Default PHB (see Section 2 above).
For convenience and consistent operation with networks that employ IP
Precedence [RFC 1812], the Case 1 format PHBIDs constructed from the
other seven Class Selector Codepoints may also be used to signal
PHBs. In each case, the PHB signaled by such a PHBID is the PHB to
which the embedded class selector codepoint (or IP Precedence value
that corresponds to it in non-diffserv domains) is mapped in the
recipient's network. Note that different networks will employ
different mappings; see Section 4 of [RFC 2474] for further
discussion.
Any specified use of PHBIDs SHOULD allow the use of the eight Case 1
PHBIDs constructed from the Class Selector Codepoints.
4. 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.
5. 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.
Just signalling a PHBID SHOULD NOT be sufficient to grant the sender
access to a PHB that it would otherwise not be able to use. In cases
where this is an issue, receivers SHOULD treat received PHBIDs as
requests for service, and use local policy to determine whether to
grant or deny such requests.
Changes from RFC 2836
[RFC 2836] did not consider the Class Selector code points, which are
covered by section 3 of the present document. A clarification has
been added at the end of section 2 for the case of PHB Scheduling
Classes. The second paragraph of section 5 has been added.
Acknowledgements
Useful comments were made by members of the IETF Diffserv working
group.
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.
[RFC 2836] Brim, S., Carpenter, B. and F. Le Faucheur, "Per Hop
Behavior Identification Codes", RFC 2836, May 2000.
[MPLS-DS] Le Faucheur, F., et al., "MPLS Support of Differentiated
Services", Work in Progress.
Authors' Addresses
David L. Black
EMC Corporation
42 South St.
Hopkinton, MA 01748
EMail: black_david@emc.com
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 (2001). 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
§1Why PHBs Need Identification Codes
In Differentiated Services, a Per Hop Behavior (PHB) defines how traffic belonging to a behavior aggregate is treated at one network node. Packet headers do not name a PHB. They carry a Differentiated Services Codepoint (DSCP) instead, and there are only 64 possible DSCP values.
There is no such limit on the number of PHBs. Within a network domain a locally defined mapping connects DSCPs to PHBs. Standardized PHBs recommend a DSCP, but operators may choose another mapping, so a bare DSCP is not a reliable name for a PHB when it crosses domains.
RFC 3140 defines a binary encoding that uniquely identifies PHBs and sets of PHBs in protocol messages. The encoding MUST be used whenever such identification is required.
Lots of traffic types exist but only a few labels fit on a packet. So when two networks talk about traffic types, they need a bigger, clearer name tag.
§1.1Where the Codes Are Used
The RFC gives two situations. First, messages that negotiate bandwidth management or path selection, especially between management domains. Examples where work was in progress include communication between bandwidth brokers and MPLS support of diffserv.
Second, some link layers such as ATM and MPLS use connections whose forwarding behavior is a property of the connection. Different behavior aggregates can be carried on different connections. When connections are set up dynamically, the PHB, or set of PHBs, can be included in the connection establishment signalling. The ATM Forum was defining a new call setup information element to carry PHB identification codes.
Sometimes what must be named is a set of PHBs, for example the three PHBs of one Assured Forwarding class (AF11, AF12 and AF13), which must follow the same physical path to prevent re-ordering.
When a road has separate lanes for fast and slow traffic, the sign at the entrance has to say which lane you are in. These codes are that sign.
§2The 16-Bit Encoding
A PHB or set of PHBs is encoded in an unsigned 16-bit binary field. There are two cases.
Case 1 covers PHBs defined by standards action. A single PHB is encoded as its recommended DSCP value, left-justified in the field, with bits 6 through 15 set to zero. The recommended DSCP MUST be used even if the local network maps the PHB to a different DSCP. A set of PHBs is encoded as the numerically smallest encoding in the set, with bit 14 set to 1. For the AF1x PHBs that is the AF11 encoding with bit 14 set.
Case 2 covers PHBs not defined by standards action, meaning experimental or local use PHBs. An arbitrary 12-bit PHB identification code, assigned by IANA, is placed left-justified in the field. Bit 15 is set to 1, bit 14 is zero for a single PHB or 1 for a set, and bits 12 and 13 are zero. Bits 12 and 13 are reserved for expansion of the code or other future use.
The tag is 16 little switches. For well-known traffic types, the first few switches spell the standard label. For homemade types, you get a number from the registry, and one switch says it is homemade.
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
DSCP | DSCP | 6 bits | Recommended DSCP of the PHB, left-justified. | |
ZERO | Zeros | 1 byte | 0 | Bits 6 through 13, set to zero. |
SET-BIT | X | 1 bits | Bit 14: 1 for a set of PHBs. | |
BIT-15 | Bit 15 | 1 bits | 0 | Zero in Case 1. |
| Field | Name | Size | Value | Description |
|---|---|---|---|---|
CODE | PHB id code | 12 bits | 12-bit code assigned by IANA. | |
RESERVED | Reserved | 2 bits | 0 | Bits 12 and 13, set to zero. |
SET-BIT | X | 1 bits | Bit 14: 0 for a single PHB, 1 for a set. | |
CASE-BIT | Bit 15 | 1 bits | 1 | Set to 1 in Case 2. |
§2.1Sets Must Be Scheduling Classes
In both cases, when one PHBID identifies a set of PHBs (bit 14 is 1), that set MUST constitute a PHB Scheduling Class. That means using different PHBs from the set MUST NOT cause intra-microflow traffic reordering when they are applied to traffic in the same microflow.
The AF1x PHBs are the example given. Sets of PHBs that do not form a PHB Scheduling Class can still be identified, by using more than one PHBID.
You can only group treatments together if packets from one conversation will not get shuffled out of order by switching between them.
§3Signalling the Class Selector Codepoints
RFC 2474 defines the eight codepoints of the form xxx000 as the Class Selector Codepoints. Codepoint 000000 is the recommended DSCP for the Default PHB, so the Case 1 PHBID built from it signals the Default PHB.
For consistency with networks that use IP Precedence, the Case 1 PHBIDs built from the other seven Class Selector Codepoints may also be used to signal PHBs. The PHB signalled is the one to which that class selector codepoint, or the corresponding IP Precedence value in non-diffserv domains, is mapped in the recipient's network. Different networks use different mappings.
Any specified use of PHBIDs SHOULD allow the eight Case 1 PHBIDs constructed from the Class Selector Codepoints.
Some older networks use a simple priority number. These codes let those numbers be used too, and each network decides what treatment its own number means.
§4The IANA Registry
IANA is asked to create a registry of "Per-Hop Behavior Identification Codes", initially allowing values from 0 to 4095. An assignment requires the identity of the assignee, a brief description of the new PHB detailed enough to distinguish it from existing ones (covering every PHB in a set), and a reference to a stable document describing the PHB.
During the first year, IANA was asked to refer all requests to the IETF diffserv working group. After that, requests should be reviewed by the IETF Transport Area Directors or an expert they designate. If assignments approach 4096, the Transport Area Directors should be alerted.
There is an official list of homemade tags. To get one you say who you are, describe the treatment, and point to a document, so nobody gets the same tag twice.
§5Security Considerations
The encoding in itself raises no security issues. However, modifying a PHB identification code may constitute theft or denial of service, so protocols that use it must be adequately protected.
Just signalling a PHBID SHOULD NOT be enough to give the sender access to a PHB it could not otherwise use. Where that matters, receivers SHOULD treat received PHBIDs as requests for service and use local policy to decide whether to grant them.
Asking for the express lane should not automatically get you the express lane. The receiver checks its rules first.