rfc9436.original   rfc9436.txt 
PIM S. Venaas Internet Engineering Task Force (IETF) S. Venaas
Internet-Draft Cisco Systems, Inc. Request for Comments: 9436 Cisco Systems, Inc.
Obsoletes: 8736 (if approved) A. Retana Obsoletes: 8736 A. Retana
Updates: 3973, 5015, 5059, 6754, 7761, Futurewei Technologies, Inc. Updates: 3973, 5015, 5059, 6754, 7761, Futurewei Technologies, Inc.
8364 (if approved) 24 May 2023 8364 August 2023
Intended status: Standards Track Category: Standards Track
Expires: 25 November 2023 ISSN: 2070-1721
PIM Message Type Space Extension and Reserved Bits PIM Message Type Space Extension and Reserved Bits
draft-ietf-pim-rfc8736bis-04
Abstract Abstract
The PIM version 2 messages share a common message header format. The The PIM version 2 messages share a common message header format. The
common header definition contains eight reserved bits. This document common header definition contains eight reserved bits. This document
specifies how these bits may be used by individual message types and specifies how these bits may be used by individual message types and
extends the PIM type space. extends the PIM type space.
This document updates RFC7761 and RFC3973 by defining the use of the This document updates RFCs 7761 and 3973 by defining the use of the
currently Reserved field in the PIM common header. This document Reserved field in the PIM common header. This document further
further updates RFC7761 and RFC3973, along with RFC5015, RFC5059, updates RFCs 7761 and 3973, along with RFCs 5015, 5059, 6754, and
RFC6754, and RFC8364, by specifying the use of the currently reserved 8364, by specifying the use of the bits for each PIM message.
bits for each PIM message.
This document obsoletes RFC8736. This document obsoletes RFC 8736.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
This Internet-Draft will expire on 25 November 2023. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9436.
Copyright Notice Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
2. Conventions Used in This Document . . . . . . . . . . . . . . 3 2. Conventions Used in This Document
3. PIM Header Common Format . . . . . . . . . . . . . . . . . . 3 3. PIM Header Common Format
4. Flag Bit Definitions . . . . . . . . . . . . . . . . . . . . 3 4. Flag Bit Definitions
4.1. Flag Bits for Type 4 (Bootstrap) . . . . . . . . . . . . 4 4.1. Flag Bits for Type 4 (Bootstrap)
4.2. Flag Bits for Type 10 (DF Election) . . . . . . . . . . . 4 4.2. Flag Bits for Type 10 (DF Election)
4.3. Flag Bits for Type 12 (PFM) . . . . . . . . . . . . . . . 4 4.3. Flag Bits for Type 12 (PIM Flooding Mechanism)
4.4. Flag Bits for Types 13, 14, and 15 (Type Space 4.4. Flag Bits for Types 13, 14, and 15 (Type Space Extension)
Extension) . . . . . . . . . . . . . . . . . . . . . . . 4 5. PIM Type Space Extension
5. PIM Type Space Extension . . . . . . . . . . . . . . . . . . 4 6. Security Considerations
6. Security Considerations . . . . . . . . . . . . . . . . . . . 5 7. IANA Considerations
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 8. References
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 8.1. Normative References
8.1. Normative References . . . . . . . . . . . . . . . . . . 7 8.2. Informative References
8.2. Informative References . . . . . . . . . . . . . . . . . 7 Authors' Addresses
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8
1. Introduction 1. Introduction
The PIM version 2 messages share a common message header format The PIM version 2 messages share a common message header format
defined in the PIM Sparse Mode specification [RFC7761]. The common defined in the PIM Sparse Mode specification [RFC7761]. The common
header definition contains eight reserved bits. While all message header definition contains eight reserved bits. While all message
types use this common header, there is no document formally types use this common header, there is no document formally
specifying that these bits are to be used per message type. specifying that these bits are to be used per message type.
This document refers to the bits in the Reserved field of the common This document updates the definition of the Reserved field and refers
PIM header [RFC7761] as "PIM message type Flag Bits" or, simply, to it as the "Flag Bits field". It specifies that the flag bits are
"Flag Bits", and it specifies that they are to be separately used on to be separately used on a per-message-type basis. It updates the
a per-message-type basis. It updates the "PIM Message Types" "PIM Message Types" registry to indicate the per-message-type usage.
registry to indicate the per-message-type usage.
This document updates [RFC7761] and [RFC3973] by defining the use of This document updates [RFC7761] and [RFC3973] by defining the use of
the currently Reserved field in the PIM common header. This document the Reserved field in the PIM common header. This document further
further updates [RFC7761] and [RFC3973], along with [RFC5015], updates [RFC7761] and [RFC3973], along with [RFC5015], [RFC5059],
[RFC5059], [RFC6754], and [RFC8364], by specifying the use of the [RFC6754], and [RFC8364], by specifying the use of the bits for each
currently reserved bits for each PIM message. PIM message.
The originally defined PIM message types were in the range from 0 to The originally defined PIM message types were in the range from 0 to
15. Message type 15 had been reserved by [RFC6166] for type space 15. Message type 15 had been reserved by [RFC6166] for type space
extension. In Section 5, this document specifies the use of the Flag extension. In Section 5, this document specifies the use of the Flag
Bits for message types 13, 14, and 15 in order to extend the PIM type Bits field for message types 13, 14, and 15 in order to extend the
space. The type space extension in [RFC6166] was made obsolete by PIM type space. The type space extension in [RFC6166] was made
[RFC8736]. This document obsoletes [RFC8736]. obsolete by [RFC8736]. This document obsoletes [RFC8736].
2. Conventions Used in This Document 2. Conventions Used in This Document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in "OPTIONAL" in this document are to be interpreted as described in
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. capitals, as shown here.
3. PIM Header Common Format 3. PIM Header Common Format
The common PIM header is defined in Section 4.9 of [RFC7761]. This The common PIM header is defined in Section 4.9 of [RFC7761]. This
document updates the definition of the Reserved field and refers to document updates the definition of the Reserved field and refers to
that field as "PIM message type Flag Bits" or, simply, "Flag Bits". it as the "Flag Bits field". The updated common header format is as
The updated common header format is as below. below.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PIM Ver| Type | Flag Bits | Checksum | |PIM Ver| Type | Flag Bits | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: Updated Common Header Figure 1: Updated Common Header
The Flag Bits field is defined in Section 4. All other fields remain The Flag Bits field is defined in Section 4. All other fields remain
unchanged. unchanged.
4. Flag Bit Definitions 4. Flag Bit Definitions
Unless otherwise specified, all the flag bits for each PIM type are Unless otherwise specified, all the flag bits for each PIM type are
Unassigned [RFC8126]. They MUST be set to zero on transmission, and Unassigned [RFC8126]. They MUST be set to zero on transmission, and
they MUST be ignored upon receipt. The specification of a new PIM they MUST be ignored upon receipt. The specification of a new PIM
type MUST indicate whether the bits should be treated differently. type MUST indicate whether the bits should be treated differently.
When defining flag bits, it is helpful to have a well-defined way of When defining flag bits, it is helpful to have a well-defined way of
referring to a particular bit. The most significant of the flag referring to a particular bit. The most significant of the flag
bits, the bit immediately following the Type field, is referred to as bits, the bit immediately following the Type field, is referred to as
bit 7. The least significant, the bit right in front of the Checksum bit 7. The least significant, the bit right in front of the Checksum
field, is referred to as bit 0. This is shown in the diagram below. field, is referred to as bit 0. This is shown in the diagram below.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PIM Ver| Type |7 6 5 4 3 2 1 0| Checksum | |PIM Ver| Type |7 6 5 4 3 2 1 0| Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: Flag Bits Figure 2: Flag Bits
4.1. Flag Bits for Type 4 (Bootstrap) 4.1. Flag Bits for Type 4 (Bootstrap)
PIM message type 4 (Bootstrap) [RFC5059] defines flag bit 7 as No- PIM message type 4 (Bootstrap) [RFC5059] defines flag bit 7 as No-
Forward. The usage of the bit is defined in that document. The Forward. The usage of the bit is defined in that document. The
remaining flag bits are unassigned. remaining flag bits are unassigned.
4.2. Flag Bits for Type 10 (DF Election) 4.2. Flag Bits for Type 10 (DF Election)
PIM message type 10 (DF Election) [RFC5015] specifies that the four PIM message type 10 (DF Election) [RFC5015] specifies that the four
most significant flag bits (bits 4-7) are to be used as a subtype. most significant flag bits (bits 4-7) are to be used as a subtype.
The usage of those bits is defined in that document. The remaining The usage of those bits is defined in that document. The remaining
flag bits are unassigned. flag bits are unassigned.
4.3. Flag Bits for Type 12 (PFM) 4.3. Flag Bits for Type 12 (PIM Flooding Mechanism)
PIM message type 12 (PIM Flooding Mechanism) [RFC8364] defines flag PIM message type 12 (PIM Flooding Mechanism) [RFC8364] defines flag
bit 7 as No-Forward. The usage of the bit is defined in that bit 7 as No-Forward. The usage of the bit is defined in that
document. The remaining flag bits are unsassigned. document. The remaining flag bits are unassigned.
4.4. Flag Bits for Types 13, 14, and 15 (Type Space Extension) 4.4. Flag Bits for Types 13, 14, and 15 (Type Space Extension)
These types and the corresponding flag bits are defined in Section 5. These types and the corresponding flag bits are defined in Section 5.
5. PIM Type Space Extension 5. PIM Type Space Extension
This document extends types 13, 14, and 15 such that each becomes 16 This document extends types 13, 14, and 15 such that each becomes 16
new types, resulting in 48 types available for future PIM extensions. new types, resulting in 48 types available for future PIM extensions.
This extension is achieved by defining a Subtype field (see Figure 3) This extension is achieved by defining a Subtype field (see Figure 3)
using the four most significant flag bits (bits 4-7). The notation using the four most significant flag bits (bits 4-7). The notation
type.subtype is used to reference the new extended types. The type.subtype is used to reference the new extended types. The
remaining four flag bits (bits 0-3, abbreviated as FB below) are to remaining four flag bits (bits 0-3, abbreviated as FB below) are to
be defined by each extended type. be defined by each extended type.
Each of the extended types is represented by the eight bits resulting Each of the extended types is represented by the eight bits resulting
from the concatenation of the Type and Subtype fields. No from the concatenation of the Type and Subtype fields. No
relationship is expected or implied between extended type messages relationship is expected or implied between extended type messages
with a common Type field. with a common Type field.
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|PIM Ver| Type |Subtype| FB | Checksum | |PIM Ver| Type |Subtype| FB | Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: Subtypes Figure 3: Subtypes
6. Security Considerations 6. Security Considerations
This document clarifies the use of the flag bits in the common PIM This document clarifies the use of the flag bits in the common PIM
header, and it extends the PIM type space. As such, there is no header, and it extends the PIM type space. As such, there is no
impact on security or changes to the considerations in [RFC7761] and impact on security or changes to the considerations in [RFC7761] and
[RFC3973]. [RFC3973].
7. IANA Considerations 7. IANA Considerations
This document updates the "PIM Message Types" registry to indicate This document updates the "PIM Message Types" registry to indicate
which flag bits are defined for use by each of the PIM message types, which flag bits are defined for use by each of the PIM message types
and changes their registration status to Unassigned, as shown in and changes their registration status to Unassigned except where the
Table 1. The registration policy remains IETF Review [RFC8126]. bits have already been specified, as shown in Table 1. The
Assignments to this registry MUST define any non-default usage (see registration policy remains IETF Review [RFC8126]. Assignments to
Section 4) of the flag bits in addition to the type. this registry MUST define any non-default usage (see Section 4) of
the flag bits in addition to the type.
Extended type 15.15 is Reserved [RFC8126] for future extensions. Extended type 15.15 is Reserved [RFC8126] for future extensions.
Because this document obsoletes RFC 8736, IANA is asked to change all Because this document obsoletes [RFC8736], IANA has changed the
registration information that references [RFC8736] to instead references to [RFC8736] in the registry to point to this document
reference [this document]. instead.
The updated "PIM Message Types" registry is shown below. The updated "PIM Message Types" registry is shown below.
+============+===============+=================+====================+ +============+===============+=================+===========+
| Type | Name | Flag Bits | Reference | | Type | Name | Flag Bits | Reference |
+============+===============+=================+====================+ +============+===============+=================+===========+
| 0 | Hello | 0-7: | [RFC3973][RFC7761] | | 0 | Hello | 0-7: Unassigned | [RFC3973] |
| | | Unassigned | | | | | | [RFC7761] |
+------------+---------------+-----------------+--------------------+ +------------+---------------+-----------------+-----------+
| 1 | Register | 0-7: | [RFC7761] | | 1 | Register | 0-7: Unassigned | [RFC7761] |
| | | Unassigned | | +------------+---------------+-----------------+-----------+
+------------+---------------+-----------------+--------------------+ | 2 | Register Stop | 0-7: Unassigned | [RFC7761] |
| 2 | Register Stop | 0-7: | [RFC7761] | +------------+---------------+-----------------+-----------+
| | | Unassigned | | | 3 | Join/Prune | 0-7: Unassigned | [RFC3973] |
+------------+---------------+-----------------+--------------------+ | | | | [RFC7761] |
| 3 | Join/Prune | 0-7: | [RFC3973][RFC7761] | +------------+---------------+-----------------+-----------+
| | | Unassigned | | | 4 | Bootstrap | 0-6: Unassigned | [RFC5059] |
+------------+---------------+-----------------+--------------------+ | | | | [RFC7761] |
| 4 | Bootstrap | 0-6: | [RFC5059][RFC7761] | | | +-----------------+-----------+
| | | Unassigned | | | | | 7: No-Forward | [RFC5059] |
| | +-----------------+--------------------+ +------------+---------------+-----------------+-----------+
| | | 7: No- | [RFC5059] | | 5 | Assert | 0-7: Unassigned | [RFC3973] |
| | | Forward | | | | | | [RFC7761] |
+------------+---------------+-----------------+--------------------+ +------------+---------------+-----------------+-----------+
| 5 | Assert | 0-7: | [RFC3973][RFC7761] | | 6 | Graft | 0-7: Unassigned | [RFC3973] |
| | | Unassigned | | +------------+---------------+-----------------+-----------+
+------------+---------------+-----------------+--------------------+ | 7 | Graft-Ack | 0-7: Unassigned | [RFC3973] |
| 6 | Graft | 0-7: | [RFC3973] | +------------+---------------+-----------------+-----------+
| | | Unassigned | | | 8 | Candidate RP | 0-7: Unassigned | [RFC7761] |
+------------+---------------+-----------------+--------------------+ | | Advertisement | | |
| 7 | Graft-Ack | 0-7: | [RFC3973] | +------------+---------------+-----------------+-----------+
| | | Unassigned | | | 9 | State Refresh | 0-7: Unassigned | [RFC3973] |
+------------+---------------+-----------------+--------------------+ +------------+---------------+-----------------+-----------+
| 8 | Candidate RP | 0-7: | [RFC7761] | | 10 | DF Election | 0-3: Unassigned | [RFC5015] |
| | Advertisement | Unassigned | | | | +-----------------+-----------+
+------------+---------------+-----------------+--------------------+ | | | 4-7: Subtype | [RFC5015] |
| 9 | State Refresh | 0-7: | [RFC3973] | +------------+---------------+-----------------+-----------+
| | | Unassigned | | | 11 | ECMP Redirect | 0-7: Unassigned | [RFC6754] |
+------------+---------------+-----------------+--------------------+ +------------+---------------+-----------------+-----------+
| 10 | DF Election | 0-3: | [RFC5015] | | 12 | PIM Flooding | 0-6: Unassigned | [RFC8364] |
| | | Unassigned | | | | Mechanism +-----------------+-----------+
| | +-----------------+--------------------+ | | | 7: No-Forward | [RFC8364] |
| | | 4-7: | [RFC5015] | +------------+---------------+-----------------+-----------+
| | | Subtype | | | 13.0-15.14 | Unassigned | 0-3: Unassigned | |
+------------+---------------+-----------------+--------------------+ +------------+---------------+-----------------+-----------+
| 11 | ECMP Redirect | 0-7: | [RFC6754] | | 15.15 | Reserved | 0-3: Reserved | RFC 9436 |
| | | Unassigned | | +------------+---------------+-----------------+-----------+
+------------+---------------+-----------------+--------------------+
| 12 | PIM Flooding | 0-6: | [RFC8364] |
| | Mechanism | Unassigned | |
| | +-----------------+--------------------+
| | | 7: No- | [RFC8364] |
| | | Forward | |
+------------+---------------+-----------------+--------------------+
| 13.0-15.14 | Unassigned | 0-3: | [This document] |
| | | Unassigned | |
+------------+---------------+-----------------+--------------------+
| 15.15 | Reserved | 0-3: | [This document] |
| | | Reserved | |
+------------+---------------+-----------------+--------------------+
Table 1: Updated PIM Message Types Registry Table 1: Updated PIM Message Types Registry
The unassigned types above, as explained in Section 5, use the The unassigned types above, as explained in Section 5, use the
extended type notation of type.subtype. Each extended type only has extended type notation of type.subtype. Each extended type only has
4 flag bits available. New extended message types should be assigned 4 flag bits available. New extended message types should be assigned
consecutively, starting with 13.0, then 13.1, etc. consecutively, starting with 13.0, then 13.1, etc.
8. References 8. References
8.1. Normative References 8.1. Normative References
 End of changes. 23 change blocks. 
145 lines changed or deleted 127 lines changed or added

This html diff was produced by rfcdiff 1.48.