draft-ietf-pim-join-attributes-05.txt   draft-ietf-pim-join-attributes-06.txt 
PIM WG Arjen Boers PIM WG Arjen Boers
Internet Draft IJsbrand Wijnands Internet Draft IJsbrand Wijnands
Intended Status: Proposed Standard Eric C. Rosen Intended Status: Proposed Standard Eric C. Rosen
Expires: January 28, 2009 Cisco Systems, Inc. Expires: April 6, 2009 Cisco Systems, Inc.
July 28, 2008 October 6, 2008
The PIM Join Attribute Format The PIM Join Attribute Format
draft-ietf-pim-join-attributes-05.txt draft-ietf-pim-join-attributes-06.txt
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware 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 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. aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 39 skipping to change at page 1, line 39
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Abstract Abstract
A Protocol Independent Multicast (PIM) Join message sent by a given A "Protocol Independent Multicast - Sparse Mode" Join message sent by
node identifies one or more multicast distribution trees that that a given node identifies one or more multicast distribution trees that
node wishes to join. Each tree is identified by a multicast group that node wishes to join. Each tree is identified by a multicast
address and a source address, which is possibly a "wild card". Under group address and a source address, which is possibly a "wild card".
certain conditions it can be useful, when joining a tree, to specify Under certain conditions it can be useful, when joining a tree, to
additional information related to the construction of the tree. specify additional information related to the construction of the
However, there is up to now no way to do so. This document describes tree. However, there is up to now no way to do so. This document
a modification of the Join message that allows a node to associate describes a modification of the Join message that allows a node to
attributes with a particular tree. The attributes are encoded in associate attributes with a particular tree. The attributes are
Type-Length-Value format. encoded in Type-Length-Value format.
Table of Contents Table of Contents
1 Specification of requirements ......................... 2 1 Specification of requirements ......................... 2
2 Introduction .......................................... 3 2 Introduction .......................................... 3
3 Use of Join Attributes ................................ 4 3 Use of Join Attributes ................................ 4
3.1 Sending Join Attributes ............................... 4 3.1 Sending Join Attributes ............................... 4
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 ............................. 5
3.3.1 General Considerations ................................ 5 3.3.1 General Considerations ................................ 5
skipping to change at page 2, line 27 skipping to change at page 2, line 27
3.4 PIM Attribute Packet Format ........................... 8 3.4 PIM Attribute Packet Format ........................... 8
3.4.1 PIM Join Packet Format ................................ 8 3.4.1 PIM Join Packet Format ................................ 8
3.4.2 PIM Join Attribute Hello Option ....................... 9 3.4.2 PIM Join Attribute Hello Option ....................... 9
4 IANA Considerations ................................... 9 4 IANA Considerations ................................... 9
5 Security Considerations ............................... 10 5 Security Considerations ............................... 10
6 Acknowledgments ....................................... 10 6 Acknowledgments ....................................... 10
7 Authors' Addresses .................................... 10 7 Authors' Addresses .................................... 10
8 Normative References .................................. 11 8 Normative References .................................. 11
9 Informative References ................................ 11 9 Informative References ................................ 11
10 Full Copyright Statement .............................. 11 10 Full Copyright Statement .............................. 11
11 Intellectual Property ................................. 11 11 Intellectual Property ................................. 12
1. Specification of requirements 1. Specification of requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Introduction 2. Introduction
A Protocol Independent Multicast (PIM) Join message sent by a given In the protocol known as "Protocol Independent Multicast - Sparse
node may identify one or more multicast distribution trees that that Mode" [RFC4601] (henceforth referred to as "PIM"), a Join message
node wishes to join. Each tree is identified by a multicast group sent by a given node may identify one or more multicast distribution
address and a source address, which is possibly a "wild card". Under trees that that node wishes to join. Each tree is identified by a
certain conditions it can be useful, when joining a tree, to specify multicast group address and a source address, which is possibly a
additional information related to the construction of the tree. "wild card". Under certain conditions it can be useful, when joining
However, there is up to now no way to do so. This document describes a tree, to specify additional information related to the construction
a modification of the Join message that allows a node to associate an of the tree. However, there is up to now no way to do so. This
attribute, encoded in Type-Length-Value (TLV) format, with a document describes a modification of the Join message that allows a
particular tree that it wishes to join. These attributes are known node to associate an attribute, encoded in Type-Length-Value (TLV)
as "PIM Join Attributes". format, 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.
skipping to change at page 3, line 46 skipping to change at page 3, line 47
that apply to the tree. Apart from the fact that the type 1 Encoded- that 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 "Dense Mode" PIM is not considered. The use of Join Attributes in "Protocol Independent Multicast - Dense
Mode" [RFC3973] is not considered.
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.3.1 below.
Each attribute applies to same multicast distribution tree that is Each attribute applies to same multicast distribution tree that is
identified by the combination of the Encoded-Source Address and the identified by the combination of the Encoded-Source Address and the
associated Encoded-Group address. The multicast distribution tree associated Encoded-Group address. The multicast distribution tree
skipping to change at page 5, line 17 skipping to change at page 5, line 17
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
process the first attribute in it. The result of processing that examine all the attributes in the order in which they appear.
attribute may affect the following:
The specification for a given attribute type MUST specify the
procedure to apply if there are multiple instances of that attribute
type.
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 subsequent attributes of the same type that - the processing of other attributes of the same type that also
also occur in the type 1 Encoded-Source Address occur in the type 1 Encoded-Source Address
- the forwarding (or not) of the attribute itself and/or - the forwarding (or not) of the attribute itself and/or other
subsequently occurring attributes of the same type. attributes of the same type that also occur in the type 1
Encoded-Source Address .
If multiple types of attribute occur in a type 1 Encoded-Source If the processing of a received attribute has any effect on the
Address, the first attribute of each type MUST be processed. construction of the multicast distribution tree or on the set of
attributes that are forwarded up the tree, then state MUST be
maintained associating the received attribute with the adjacency or
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 F-
bit is set, then the router MUST forward the attribute; if the F-bit bit is set, then the router MUST forward the attribute; if the F-bit
is clear, then the router MUST discard it. 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 would 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]
/ \ / / \ /
/ \ / / \ /
skipping to change at page 6, line 33 skipping to change at page 6, line 38
the same group connected to Edge B1 and B2. Suppose that edge router the same group connected to Edge B1 and B2. Suppose that edge router
B1 prefers A1 as the exit point and B2 prefers A2 as exit point to B1 prefers A1 as the exit point and B2 prefers A2 as exit point to
reach the source S. If both Edge B1 and B2 send a Join including an reach the source S. If both Edge B1 and B2 send a Join including an
attribute to prefer their exit router in the network and they cross attribute to prefer their exit router in the network and they cross
the same core router, the core router will get conflicting attribute the same core router, the core router will get conflicting attribute
information for the source. If this happens we use the Attribute from information for the source. If this happens we use the Attribute from
the PIM adjacency with the numerically smallest IP address. In the the PIM adjacency with the numerically smallest IP address. In the
case of IPv6, the link local address will be used. When two neighbors case of IPv6, the link local address will be used. When two neighbors
have the same IP address, either for IPv4 or IPv6, the interface have the same IP address, either for IPv4 or IPv6, the interface
index must be used as a tie breaker. The attributes from other index must be used as a tie breaker. The attributes from other
sending routers MAY be remembered; then if the best attribute gets sending routers MAY be remembered; then if the adjacency that
pruned or expires, we are able to immediately use the second best supplied the selected attribute gets pruned or expires, we are able
attribute and converge quickly without waiting for the next periodic to immediately use the attribute that was sent by the adjacency that
update. is next in the order of preference. This enables us to converge
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 would be used instead of the so, that conflict resolution procedure MUST be used instead of the
described in this section. procedure described in this section.
The conflict resolution procedure described in this section is also It is possible that a router will receive, from two different
used by a router if there are conflicting transitive attributes that adjacencies, transitive attributes of a given type. If the router
the router does not understand. does not understand attributes of that type, and if the two
adjacencies have not sent the exact same set of attributes of that
type, then the conflict resolution procedure described in this
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
they have sent the same number of instances of that attribute, and if
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.)
skipping to change at page 8, line 41 skipping to change at page 9, line 5
If this bit is set, the attribute is a transitive attribute; If this bit is set, the attribute is a transitive attribute;
otherwise it is a non-transitive 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 of - Length field, a 1 octet field specifying the length in octets,
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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
skipping to change at page 9, line 28 skipping to change at page 9, line 33
are values of the "Attr_Type" field depicted in section 3.3.1. are values of the "Attr_Type" field depicted in section 3.3.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 The PIM Hello Option value 26 should be assigned by IANA to the "Join
Attribute" option, with this document as the reference. [Assuming Attribute" option, with this document as the reference. [Assuming
that 26 is still available.] 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 therein. IANA should set up a registry for this, referencing both
[RFC4601]. Assignments should be made according to the policy "IETF this document and [RFC4601]. Assignments should be made according to
Review" as defined in [RFC5226]. Two encoding types should be the policy "IETF Review" as defined in [RFC5226]. Two encoding types
defined: should be defined:
- The encoding type 0 should be allocated, defined as "native - The encoding type 0 should be allocated, defined as "native
encoding for the address family", and [RFC4601] should be the encoding for the address family", and [RFC4601] should be the
reference. reference.
- The encoding type 1 should be allocated, defined as "native - The encoding type 1 should be allocated, defined as "native
encoding for the address family, but with zero or more PIM Join encoding for the address family, but with zero or more PIM Join
Attributes present", and this document should be the reference. Attributes present", and this document should be the reference.
5. Security Considerations 5. Security Considerations
skipping to change at page 11, line 16 skipping to change at page 11, line 16
[RFC2119] "Key words for use in RFCs to Indicate Requirement Levels", [RFC2119] "Key words for use in RFCs to Indicate Requirement Levels",
S. Bradner, RFC 2119, March 1997. S. Bradner, RFC 2119, March 1997.
[RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas, [RFC4601] Fenner, B., Handley, M., Holbrook, H., and I. Kouvelas,
"Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol "Protocol Independent Multicast - Sparse Mode (PIM-SM): Protocol
Specification (Revised)", RFC 4601, August 2006. Specification (Revised)", RFC 4601, August 2006.
9. Informative References 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, [RFC5015] "Bidirectional Protocol Independent Multicast", M. Handley,
I. Kouvelas, T. Speakman, L. Vicisano, RFC 5015, October 2007. I. Kouvelas, T. Speakman, L. Vicisano, RFC 5015, October 2007.
[RFC5226] "Guidelines for Writing an IANA Considerations Section in [RFC5226] "Guidelines for Writing an IANA Considerations Section in
RFCs", T. Narten, H. Alvestrand, RFC 5226, May 2008. RFCs", T. Narten, H. Alvestrand, RFC 5226, May 2008.
10. Full Copyright Statement 10. Full Copyright Statement
Copyright (C) The IETF Trust (2008). Copyright (C) The IETF Trust (2008).
 End of changes. 18 change blocks. 
50 lines changed or deleted 72 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/