draft-ietf-pim-join-attributes-06.txt   rfc5384.txt 
PIM WG Arjen Boers Network Working Group A. Boers
Internet Draft IJsbrand Wijnands Request for Comments: 5384 I. Wijnands
Intended Status: Proposed Standard Eric C. Rosen Category: Standards Track E. Rosen
Expires: April 6, 2009 Cisco Systems, Inc. Cisco Systems, Inc.
November 2008
October 6, 2008
The PIM Join Attribute Format
draft-ietf-pim-join-attributes-06.txt
Status of this Memo The Protocol Independent Multicast (PIM)
Join Attribute Format
By submitting this Internet-Draft, each author represents that any Status of This Memo
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering This document specifies an Internet standards track protocol for the
Task Force (IETF), its areas, and its working groups. Note that Internet community, and requests discussion and suggestions for
other groups may also distribute working documents as Internet- improvements. Please refer to the current edition of the "Internet
Drafts. Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Internet-Drafts are draft documents valid for a maximum of six months Copyright Notice
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at Copyright (c) 2008 IETF Trust and the persons identified as the
http://www.ietf.org/ietf/1id-abstracts.txt. document authors. All rights reserved.
The list of Internet-Draft Shadow Directories can be accessed at This document is subject to BCP 78 and the IETF Trust's Legal
http://www.ietf.org/shadow.html. Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Abstract Abstract
A "Protocol Independent Multicast - Sparse Mode" Join message sent by A "Protocol Independent Multicast - Sparse Mode" Join message sent by
a given node identifies one or more multicast distribution trees that a given node identifies one or more multicast distribution trees that
that node wishes to join. Each tree is identified by a multicast that node wishes to join. Each tree is identified by the combination
group address and a source address, which is possibly a "wild card". of a multicast group address and a source address (where the source
Under certain conditions it can be useful, when joining a tree, to address is possibly a "wild card"). Under certain conditions it can
specify additional information related to the construction of the be useful, when joining a tree, to specify additional information
tree. However, there is up to now no way to do so. This document related to the construction of the tree. However, there has been no
describes a modification of the Join message that allows a node to way to do so until now. This document describes a modification of
associate attributes with a particular tree. The attributes are the Join message that allows a node to associate attributes with a
encoded in Type-Length-Value format. particular tree. The attributes are encoded in Type-Length-Value
format.
Table of Contents Table of Contents
1 Specification of requirements ......................... 2 1. Introduction ....................................................2
2 Introduction .......................................... 3 2. Specification of Requirements ...................................3
3 Use of Join Attributes ................................ 4 3. Use of Join Attributes ..........................................3
3.1 Sending Join Attributes ............................... 4 3.1. Sending Join Attributes ....................................3
3.2 The Join Attribute Option in the PIM Hello ............ 4 3.2. The Join Attribute Option in the PIM Hello .................4
3.3 Receiving Join Attributes ............................. 5 3.3. Receiving Join Attributes ..................................4
3.3.1 General Considerations ................................ 5 3.3.1. General Considerations ..............................4
3.3.2 Transitive and Non-Transitive Attributes .............. 5 3.3.2. Transitive and Non-Transitive Attributes ............5
3.3.3 Conflicting Attributes ................................ 6 3.3.3. Conflicting Attributes ..............................5
3.3.4 Attribute Change ...................................... 7 3.3.4. Attribute Change ....................................6
3.4 PIM Attribute Packet Format ........................... 8 3.4. PIM Attribute Packet Format ................................7
3.4.1 PIM Join Packet Format ................................ 8 3.4.1. PIM Join Packet Format ..............................7
3.4.2 PIM Join Attribute Hello Option ....................... 9 3.4.2. PIM Join Attribute Hello Option .....................8
4 IANA Considerations ................................... 9 4. IANA Considerations .............................................8
5 Security Considerations ............................... 10 5. Security Considerations .........................................9
6 Acknowledgments ....................................... 10 6. Acknowledgments .................................................9
7 Authors' Addresses .................................... 10 7. Normative References ............................................9
8 Normative References .................................. 11 8. Informative References ..........................................9
9 Informative References ................................ 11
10 Full Copyright Statement .............................. 11
11 Intellectual Property ................................. 12
1. Specification of requirements
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].
2. Introduction 1. Introduction
In the protocol known as "Protocol Independent Multicast - Sparse In the protocol known as "Protocol Independent Multicast - Sparse
Mode" [RFC4601] (henceforth referred to as "PIM"), a Join message Mode" [RFC4601] (henceforth referred to as "PIM"), a Join message
sent by a given node may identify one or more multicast distribution sent by a given node may identify one or more multicast distribution
trees that that node wishes to join. Each tree is identified by a trees that that node wishes to join. Each tree is identified by the
multicast group address and a source address, which is possibly a combination of a multicast group address and a source address (where
"wild card". Under certain conditions it can be useful, when joining the source address is possibly a "wild card"). Under certain
a tree, to specify additional information related to the construction conditions it can be useful, when joining a tree, to specify
of the tree. However, there is up to now no way to do so. This additional information related to the construction of the tree.
document describes a modification of the Join message that allows a However, there has been no way to do so until now. This document
node to associate an attribute, encoded in Type-Length-Value (TLV) describes a modification of the Join message that allows a node to
format, with a particular tree that it wishes to join. These associate an attribute, encoded in Type-Length-Value (TLV) format,
attributes are known as "PIM Join Attributes". with a particular tree that it wishes to join. These attributes are
known as "PIM Join Attributes".
In the PIM Join message, the Source Address is identified by being In the PIM Join message, the Source Address is identified by being
encoded as an "Encoded-Source Address" ([RFC4601], section 4.9.1). encoded as an "Encoded-Source Address" ([RFC4601], section 4.9.1).
Each Encoded-Source Address occurs in the context of a particular Each Encoded-Source Address occurs in the context of a particular
group address, represented as an "Encoded-Group Address". Together group address, represented as an "Encoded-Group Address". Together,
the Encoded-Source Address and the Encoded-Group Address identify a the Encoded-Source Address and the Encoded-Group Address identify a
multicast distribution tree. The Encoded-Source Address contains an multicast distribution tree. The Encoded-Source Address contains an
"encoding type" field. The only value defined in [RFC4601] is 0. "encoding type" field. The only value defined in [RFC4601] is 0.
This specification is the first to assign another encoding type This specification is the first to assign another encoding type
value. value.
In order to associate TLVs with a particular tree, this specification In order to associate TLVs with a particular tree, this specification
defines a new encoding type for the Encoded-Source address, type 1. defines a new encoding type for the Encoded-Source Address: type 1.
When type 1 is used, the Encoded-Source Address may contain a When type 1 is used, the Encoded-Source Address may contain a
sequence of "Join Attributes", each of which is encoded as a TLV. sequence of "Join Attributes", each of which is encoded as a TLV.
Then the type 1 Encoded-Source Address, in the context of the Then the type 1 Encoded-Source Address, in the context of the
associated Encoded-Group Address, identifies a multicast distribution associated Encoded-Group Address, identifies a multicast distribution
tree, and also specifies (via the Join Attribute TLVs) the attributes tree and specifies (via the Join Attribute TLVs) the attributes that
that apply to the tree. Apart from the fact that the type 1 Encoded- apply to the tree. Apart from the fact that the type 1 Encoded-
Source Address may contain Join Attributes, it is otherwise identical Source Address may contain Join Attributes, it is otherwise identical
to the type 0 Encoded-Source Address. to the type 0 Encoded-Source Address.
This document does not contain the specification for any particular This document does not contain the specification for any particular
Join Attribute. It specifies how Join Attributes are to be encoded Join Attribute. It specifies how Join Attributes are to be encoded
into the Join messages, and it specifies generic procedures that are into the Join messages and it specifies generic procedures that are
common to all Join Attributes. The content and purpose of any common to all Join Attributes. The content and purpose of any
particular Join Attribute is outside the scope of this document. particular Join Attribute is outside the scope of this document.
The use of Join Attributes in "Protocol Independent Multicast - Dense The use of Join Attributes in "Protocol Independent Multicast - Dense
Mode" [RFC3973] is not considered. Mode" [RFC3973] is not considered.
2. Specification of Requirements
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].
3. Use of Join Attributes 3. Use of Join Attributes
3.1. Sending Join Attributes 3.1. Sending Join Attributes
Join Attributes are encoded as TLVs into the Encoded-Source Address Join Attributes are encoded as TLVs into the Encoded-Source Address
field of a PIM Join message, as specified in section 3.3.1 below. field of a PIM Join message, as specified in section 3.4.1 below.
Each attribute applies to same multicast distribution tree that is Each attribute applies to the same multicast distribution tree that
identified by the combination of the Encoded-Source Address and the is identified by the combination of the Encoded-Source Address and
associated Encoded-Group address. The multicast distribution tree the associated Encoded-Group Address. The multicast distribution
may be either a source-specific tree or a shared tree. tree may be either a source-specific tree or a shared tree.
The encoding of the "source address" field within the Encoded-Source The encoding of the "source address" field within the Encoded-Source
Address is exactly the same for a type 1 Encoded-Source Address as Address is exactly the same for a type 1 Encoded-Source Address as
for a type 0 Encoded-Source Address, as specified in [RFC4601]. for a type 0 Encoded-Source Address, specified in [RFC4601].
A type 1 Encoded-Source Address MUST contain at least one Join A type 1 Encoded-Source Address MUST contain at least one Join
Attribute. The way to specify that there are no Join Attributes for Attribute. The way to specify that there are no Join Attributes for
a particular tree is to use the type 0 Encoded-Source Address. a particular tree is to use the type 0 Encoded-Source Address.
Multiple Join Attributes of the same type or of different types may Multiple Join Attributes of the same type or of different types may
occur within a single Encoded-Source Address. This specification occur within a single Encoded-Source Address. This specification
does not require all attributes of a given type to occur does not require all attributes of a given type to occur
contiguously. There is no header field that specifies the number of contiguously. There is no header field that specifies the number of
attributes; rather the last attribute is specially marked as such. attributes; rather the last attribute is specially marked as such.
Any PIM router that does not understand the type 1 Encoded-Source Any PIM router that does not understand the type 1 Encoded-Source
Address will not be able to process a PIM Join message that contains Address will not be able to process a PIM Join message that contains
it. Further, if the use of any particular Join Attribute affects the it. Further, if the use of any particular Join Attribute affects the
construction of the multicast distribution tree, the tree may not be construction of the multicast distribution tree, the tree may not be
formed correctly unless the attribute is understood by all PIM formed correctly unless the attribute is understood by all PIM
routers that receive it. As a consequence, attributes are only routers that receive it. As a consequence, attributes are only
useful within a single administrative domain (or perhaps a small set useful within a single administrative domain (or perhaps a small set
of contiguous, cooperating administrative domains) where it can be of contiguous, cooperating administrative domains) where it can be
determined a priori that all deployed PIM routers understand the type determined a priori that all deployed PIM routers understand the type
1 Encoded-Source address, as well as whatever specific attributes are 1 Encoded-Source Address, as well as whatever specific attributes are
in use. in use.
3.2. The Join Attribute Option in the PIM Hello 3.2. The Join Attribute Option in the PIM Hello
To ensure that a type 1 Encoded-Source Address is not sent to a PIM To ensure that a type 1 Encoded-Source Address is not sent to a PIM
neighbor that does not understand this encoding, a new PIM Hello neighbor that does not understand this encoding, a new PIM Hello
option, the "Join Attribute" option, is defined. This option must be option, the "Join Attribute" option, is defined. This option MUST be
included in the PIM Hello's of any PIM router that is willing to included in the PIM Hellos of any PIM router that is willing to
receive type 1 Encoded-Source Address. A PIM router MUST NOT send a receive type 1 Encoded-Source Address. A PIM router MUST NOT send a
type 1 Encoded-Source Address out any interface on which there is a type 1 Encoded-Source Address out any interface on which there is a
PIM neighbor that has not included this option in its Hellos. (Even PIM neighbor that has not included this option in its Hellos. (Even
a router which is not the upstream neighbor must be able parse the a router that is not the upstream neighbor must be able parse the
packet in order to do Join suppression or overriding.) packet in order to do Join suppression or overriding.)
Note that a PIM router that sends the "Join Attribute" Hello option Note that a PIM router that sends the "Join Attribute" Hello option
does not necessarily understand every possible attribute type. As does not necessarily understand every possible attribute type. As
there is no immediate way to act on a neighbor's inability to process there is no immediate way to act on a neighbor's inability to process
certain attribute types, it is not desired to have a hello option for certain attribute types, it is not desired to have a Hello option for
each possible attribute type. each possible attribute type.
3.3. Receiving Join Attributes 3.3. Receiving Join Attributes
3.3.1. General Considerations 3.3.1. General Considerations
A PIM router that receives a type 1 Encoded-Source Address MUST A PIM router that receives a type 1 Encoded-Source Address MUST
examine all the attributes in the order in which they appear. examine all the attributes in the order in which they appear.
The specification for a given attribute type MUST specify the The specification for a given attribute type MUST specify the
procedure to apply if there are multiple instances of that attribute procedure to apply if there are multiple instances of that attribute
type. type.
Processing an attribute may affect the following: Processing an attribute may affect the following:
- the construction of the associated multicast distribution tree - the construction of the associated multicast distribution tree,
- the processing of other attributes of the same type that also - the processing of other attributes of the same type that also occur
occur in the type 1 Encoded-Source Address in the type 1 Encoded-Source Address, and
- the forwarding (or not) of the attribute itself and/or other - the forwarding (or not) of the attribute itself and/or other
attributes of the same type that also occur in the type 1 attributes of the same type that also occur in the type 1 Encoded-
Encoded-Source Address . Source Address.
If the processing of a received attribute has any effect on the If the processing of a received attribute has any effect on the
construction of the multicast distribution tree or on the set of construction of the multicast distribution tree or on the set of
attributes that are forwarded up the tree, then state MUST be attributes that are forwarded up the tree, then state MUST be
maintained associating the received attribute with the adjacency or maintained associating the received attribute with the adjacency or
adjacencies from which it was received. adjacencies from which it was received.
3.3.2. Transitive and Non-Transitive Attributes 3.3.2. Transitive and Non-Transitive Attributes
If a PIM router understands a particular attribute type, the If a PIM router understands a particular attribute type, the
attribute is processed as specified above. attribute is processed as specified above.
If a PIM router does not understand the type of a particular If a PIM router does not understand the type of a particular
attribute, the PIM router either forwards that attribute or discards attribute, the PIM router either forwards that attribute or discards
it, depending upon the setting of the attribute's F-bit. If the F- it, depending upon the setting of the attribute's F-bit. If the
bit is set, then the router MUST forward the attribute; if the F-bit F-bit is set, then the router MUST forward the attribute; if the
is clear, then the router MUST discard it. F-bit is clear, then the router MUST discard it.
If one or more non-transitive attributes are discarded, the rest of If one or more non-transitive attributes are discarded, the rest of
the Join Attributes (if any) are still forwarded. If there are no the Join Attributes (if any) are still forwarded. If there are no
Join Attributes left to forward, a Join with a type 0 Encoded-Source Join Attributes left to forward, a Join with a type 0 Encoded-Source
Address field MUST be forwarded. Address field MUST be forwarded.
3.3.3. Conflicting Attributes 3.3.3. Conflicting Attributes
It is possible that a router receives conflicting attribute It is possible that a router receives conflicting attribute
information from different downstream routers. Conflicts only occur information from different downstream routers. Conflicts only occur
with attributes of the same type. with attributes of the same type.
( Edge A1 ) ( Edge B1 )---- [R1] ( Edge A1 ) ( Edge B1 )---- [R1]
/ \ / / \ /
/ \ / / \ /
[S] ( Core ) [S] ( Core )
\ / \ \ / \
\ / \ \ / \
( Edge A2 ) ( Edge B2 )---- [R2] ( Edge A2 ) ( Edge B2 )---- [R2]
Figure 2 Figure 1
As an example, consider Figure 1 and suppose a Join Attribute is used
As an example, consider Figure 2, and suppose a join attribute is to indicate a choice of exit router. There are 2 receivers for the
used to indicate a choice of exit router. There are 2 receivers for same group connected to Edge B1 and B2. Suppose that edge router B1
the same group connected to Edge B1 and B2. Suppose that edge router prefers A1 and B2 prefers A2 as exit points to reach the source S.
B1 prefers A1 as the exit point and B2 prefers A2 as exit point to If both Edge B1 and B2 send a Join including an attribute to prefer
reach the source S. If both Edge B1 and B2 send a Join including an their exit router in the network and they cross the same core router,
attribute to prefer their exit router in the network and they cross the core router will get conflicting attribute information for the
the same core router, the core router will get conflicting attribute source. If this happens, we use the attribute from the PIM adjacency
information for the source. If this happens we use the Attribute from with the numerically smallest IP address. In the case of IPv6, the
the PIM adjacency with the numerically smallest IP address. In the link local address will be used. When two neighbors have the same IP
case of IPv6, the link local address will be used. When two neighbors address, either for IPv4 or IPv6, the interface index MUST be used as
have the same IP address, either for IPv4 or IPv6, the interface a tie breaker. The attributes from other sending routers MAY be
index must be used as a tie breaker. The attributes from other remembered; that way, if the adjacency that supplied the selected
sending routers MAY be remembered; then if the adjacency that attribute gets pruned or expires, we are able to immediately use the
supplied the selected attribute gets pruned or expires, we are able attribute that was sent by the adjacency that is next in the order of
to immediately use the attribute that was sent by the adjacency that preference. This enables us to converge quickly without waiting for
is next in the order of preference. This enables us to converge the next periodic update.
quickly without waiting for the next periodic update.
When a particular attribute type is specified, the specification MAY When a particular attribute type is specified, the specification MAY
include a conflict resolution procedure specific to that type. If include a conflict resolution procedure specific to that type. If
so, that conflict resolution procedure MUST be used instead of the so, that conflict resolution procedure MUST be used instead of the
procedure described in this section. procedure described in this section.
It is possible that a router will receive, from two different It is possible that a router will receive, from two different
adjacencies, transitive attributes of a given type. If the router adjacencies, transitive attributes of a given type. If the router
does not understand attributes of that type, and if the two does not understand attributes of that type and if the two
adjacencies have not sent the exact same set of attributes of that adjacencies have not sent the exact same set of attributes of that
type, then the conflict resolution procedure described in this type, then the conflict resolution procedure described in this
section MUST be applied to those attributes. Two adjacencies are section MUST be applied to those attributes. Two adjacencies are
said to have sent the exact same set of attributes of a given type if said to have sent the exact same set of attributes of a given type if
they have sent the same number of instances of that attribute, and if they have sent the same number of instances of that attribute and if
corresponding instances are byte-for-byte identical. corresponding instances are byte-for-byte identical.
3.3.4. Attribute Change 3.3.4. Attribute Change
A PIM router may decide to change the set of attributes it has A PIM router may decide to change the set of attributes it has
associated with a given multicast distribution tree. This can happen associated with a given multicast distribution tree. This can happen
if one of its downstream neighbors on the tree has changed the set of if one of its downstream neighbors on the tree has changed the set of
attributes. It can also happen as a result of processing the attributes. It can also happen as a result of processing the
attributes. It can also happen for reasons outside the scope of this attributes. It can also happen for reasons outside the scope of this
specification (such as a change in configuration.) specification (such as a change in configuration).
If a PIM router needs to change the set of attributes for a given If a PIM router needs to change the set of attributes for a given
tree, but does not change its upstream neighbor for that tree, it tree but does not change its upstream neighbor for that tree, it MUST
MUST send a new Join for that tree, specifying the new set of send a new Join for that tree, specifying the new set of attributes.
attributes. If the new set of attributes is the null set, the type 0 If the new set of attributes is the null set, the type 0 Encoded-
Encoded-Source format MUST be used. Source format MUST be used.
If a PIM router needs to change the set of attributes for a given If a PIM router needs to change the set of attributes for a given
tree, and as a result changes its upstream neighbor for that tree, it tree and as a result changes its upstream neighbor for that tree, it
sends a Prune to the old upstream neighbor. The Prune does not need sends a Prune to the old upstream neighbor. The Prune does not need
to carry any attributes. to carry any attributes.
When a PIM router receives a Join for a given tree, and the Join does When a PIM router receives a Join for a given tree and the Join does
not contain exactly the same set of attributes as the prior Join, the not contain exactly the same set of attributes as the prior Join, the
set of attributes in the new Join becomes the entire new set of set of attributes in the new Join becomes the entire new set of
attributes. No attribute information from the prior Join is attributes. No attribute information from the prior Join is
retained. There is no way to advertise incremental changes to the retained. There is no way to advertise incremental changes to the
set of attributes; any attributes that are no longer present are set of attributes; any attributes that are no longer present are
considered to have been withdrawn. If, as the result of receiving a considered to have been withdrawn. If, as the result of receiving a
Join, a PIM router determines that the set of attributes has changed, Join, a PIM router determines that the set of attributes has changed,
it will need to send a new Join upstream, with the new set of it will need to send a new Join upstream that contains the new set of
attributes. (Of course, the procedures for resolving attribute attributes. (Of course, the procedures for resolving attribute
conflicts may need to be applied first.) conflicts may need to be applied first.)
When a PIM router R1 receives a Prune for a given tree from a given When a PIM router R1 receives a Prune for a given tree from a given
downstream neighbor R2, where R2 had previously sent attributes downstream neighbor R2, where R2 had previously sent attributes
applying to that tree, those attributes are considered to have been applying to that tree, those attributes are considered to have been
withdrawn. Depending on the attributes that R1 has received from its withdrawn. Depending on the attributes that R1 has received from its
other downstream neighbors (if any) on the tree, R1 may determine other downstream neighbors (if any) on the tree, R1 may determine
that the set of attributes applying to the tree has changed, in which that the set of attributes applying to the tree has changed, in which
case it needs to send a new Join, with the new attribute set, to its case it needs to send a new Join, with the new attribute set, to its
upstream neighbor on the tree. upstream neighbor on the tree.
3.4. PIM Attribute Packet Format 3.4. PIM Attribute Packet Format
3.4.1. PIM Join Packet Format 3.4.1. PIM Join Packet Format
There is no space in the default PIM source encoding to include a There is no space in the default PIM source encoding to include an
attribute field. Therefore we introduce a new source encoding type. attribute field. Therefore we introduce a new source encoding type.
The attributes are formatted as TLV's. The new Encoded source address The attributes are formatted as TLVs. The new Encoded-Source Address
looks like this: looks like this:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Addr Family | Encoding Type | Rsrvd |S|W|R| Mask Len | | Addr Family | Encoding Type | Rsrvd |S|W|R| Mask Len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address | Source Address
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+.....
|F|E| Attr Type | Length | Value |F|E| Attr_Type | Length | Value
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+.....
|F|E| Attr_Type | Length | Value |F|E| Attr_Type | Length | Value
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+..... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+.....
. . . . . .
. . . . . .
- Encoding Type: 1 - Encoding Type: 1
- F bit, Transitive Attribute - F-bit, Transitive Attribute. If this bit is set, the attribute is
a transitive attribute; otherwise, it is a non-transitive
If this bit is set, the attribute is a transitive attribute; attribute. See section 3.3.2.
otherwise it is a non-transitive attribute. See section 3.3.2.
- E bit, End of Attributes. If this bit is set then this is the - E-bit, End of Attributes. If this bit is set, then this is the
last Join Attribute appearing in this Encoded-Source Address last Join Attribute appearing in this Encoded-Source Address field.
field.
- "Attr_Type", a 6-bit field identifying the type of the Attribute. - "Attr_Type", a 6-bit field identifying the type of the Attribute.
- Length field, a 1 octet field specifying the length in octets, - Length field, a 1-octet field specifying the length in octets,
encoded as an unsigned binary integer, of the value field. encoded as an unsigned binary integer, of the value field.
The other fields are the same as described in [RFC4601]. The other fields are the same as described in [RFC4601].
3.4.2. PIM Join Attribute Hello Option 3.4.2. PIM Join Attribute Hello Option
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OptionType = 26 | OptionLength = 0 | | OptionType = 26 | OptionLength = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option type: 26. - Option type: 26.
4. IANA Considerations 4. IANA Considerations
A new IANA registry is needed for "PIM Join Attribute Types". These A new IANA registry has been created for "PIM Join Attribute Types".
are values of the "Attr_Type" field depicted in section 3.3.1. These are values of the "Attr_Type" field depicted in section 3.4.1.
Assignments are to be made according to the policy "IETF Review" as Assignments are to be made according to the policy "IETF Review" as
defined in [RFC5226]. defined in [RFC5226].
The PIM Hello Option value 26 should be assigned by IANA to the "Join IANA has assigned the PIM Hello option value 26 to the "Join
Attribute" option, with this document as the reference. [Assuming Attribute" option, with this document as the reference.
that 26 is still available.]
[RFC4601] should have, but did not, create a registry for the [RFC4601] should have, but did not, create a registry for the
"Encoding Type" field of the Encoded-Source Address format defined "Encoding Type" field of the Encoded-Source Address format defined
therein. IANA should set up a registry for this, referencing both therein. IANA has set up a registry for this, referencing both this
this document and [RFC4601]. Assignments should be made according to document and [RFC4601]. Assignments should be made according to the
the policy "IETF Review" as defined in [RFC5226]. Two encoding types policy "IETF Review" as defined in [RFC5226]. Two encoding types are
should be defined: defined:
- The encoding type 0 should be allocated, defined as "native - The encoding type 0 has been allocated, defined as "native encoding
encoding for the address family", and [RFC4601] should be the for the address family", and [RFC4601] is the reference.
reference.
- The encoding type 1 should be allocated, defined as "native - The encoding type 1 has been allocated, defined as "native encoding
encoding for the address family, but with zero or more PIM Join for the address family, but with zero or more PIM Join Attributes
Attributes present", and this document should be the reference. present", and this document is the reference.
5. Security Considerations 5. Security Considerations
Security of the join attribute is only guaranteed by the security of Security of the Join Attribute is only guaranteed by the security of
the PIM packet, so the security considerations for PIM join packets the PIM packet, so the security considerations for PIM Join packets
as described in [RFC4601] apply here. Additional security as described in [RFC4601] apply here. Additional security
considerations may apply to specific attributes; if so, these will considerations may apply to specific attributes; if so, these will
need to be documented in the specification of those attributes. need to be documented in the specification of those attributes.
Security considerations from [RFC5015] may apply as well. Security considerations from [RFC5015] may apply as well.
6. Acknowledgments 6. Acknowledgments
The authors would like to thank Stig Venaas, James Lingard, Bharat The authors would like to thank Stig Venaas, James Lingard, Bharat
Joshi, Marshall Eubanks, Pekka Savola, Tom Pusateri, and Elwyn Davies Joshi, Marshall Eubanks, Pekka Savola, Tom Pusateri, and Elwyn Davies
for their input. for their input.
7. Authors' Addresses 7. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
"Protocol Independent Multicast - Sparse Mode (PIM-SM):
Protocol Specification (Revised)", RFC 4601, August 2006.
8. Informative References
[RFC3973] Adams, A., Nicholas, J., and W. Siadak, "Protocol
Independent Multicast - Dense Mode (PIM-DM): Protocol
Specification (Revised)", RFC 3973, January 2005.
[RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano,
"Bidirectional Protocol Independent Multicast (BIDIR-PIM)",
RFC 5015, October 2007.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, May
2008.
Authors' Addresses
Arjen Boers Arjen Boers
Cisco Systems, Inc. Cisco Systems, Inc.
Avda. Diagnoal, 682 Avda. Diagnoal, 682
Barcelona 08034 Barcelona 08034
E-mail: aboers@cisco.com EMail: aboers@cisco.com
IJsbrand Wijnands IJsbrand Wijnands
Cisco Systems, Inc. Cisco Systems, Inc.
De kleetlaan 6a De kleetlaan 6a
Diegem 1831 Diegem 1831
Belgium Belgium
E-mail: ice@cisco.com EMail: ice@cisco.com
Eric C. Rosen Eric C. Rosen
Cisco Systems, Inc. Cisco Systems, Inc.
1414 Massachusetts Avenue 1414 Massachusetts Avenue
Boxborough, MA, 01719 Boxborough, MA, 01719
E-mail: erosen@cisco.com EMail: erosen@cisco.com
8. Normative References
[RFC2119] "Key words for use in RFCs to Indicate Requirement Levels",
S. Bradner, RFC 2119, March 1997.
[RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
"Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol
Specification (Revised)", RFC 4601, August 2006.
9. Informative References
[RFC3973] "Protocol Independent Multicast - Dense Mode (PIM-DM):
Protocol Specification", A. Adams, J. Nicholas, W. Siadak. January
2005.
[RFC5015] "Bidirectional Protocol Independent Multicast", M. Handley,
I. Kouvelas, T. Speakman, L. Vicisano, RFC 5015, October 2007.
[RFC5226] "Guidelines for Writing an IANA Considerations Section in
RFCs", T. Narten, H. Alvestrand, RFC 5226, May 2008.
10. Full Copyright Statement
Copyright (C) The IETF Trust (2008).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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.
11. Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights 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; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
 End of changes. 51 change blocks. 
157 lines changed or deleted 169 lines changed or added

This html diff was produced by rfcdiff 1.35. The latest version is available from http://tools.ietf.org/tools/rfcdiff/