RFC 6807
Population Count Extensions to Protocol Independent Multicast (PIM)
Population Count Extensions to Protocol Independent Multicast (PIM) ๐
okay bestie, this one is RFC 6807, and it's giving experimental energy ๐งชโจ It was written by D. Farinacci, G. Shepherd, and S. Venaas (all from Cisco Systems), plus Y. Cai from Microsoft ๐ It came out in December 2012, it's an Experimental document (ISSN 2070-1721), and the header doesn't list anything it obsoletes or updates ๐ฆ
Abstract ๐ธ
okay so the whole point is giving multicast distribution trees some accounting data ๐ It adds small extensions to the Protocol Independent Multicast (PIM) protocol so you can get a rough approximation of tree-based data, and it does it in a scalable way ๐ซถ
Status of This Memo โจ
so this isn't an Internet Standards Track spec, lowkey. It's published so people can look at it, try implementing it, and evaluate it ๐
this is an Experimental Protocol for the Internet community ๐งช It's a product of the Internet Engineering Task Force (IETF) and it represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 if you want the details ๐
if you want the current status, any errata, or a way to send feedback, go to http://www.rfc-editor.org/info/rfc6807 ๐
Copyright Notice ๐
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. ๐
this doc is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they were on the date of publication. Please read those carefully, bestie, because they explain your rights and restrictions for this document ๐ Code Components pulled out of this document have to include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as the Simplified BSD License describes ๐ซถ
Table of Contents ๐
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements Notation . . . . . . . . . . . . . . . . . . 4
1.2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4
2. Pop-Count-Supported Hello Option . . . . . . . . . . . . . . . 4
3. New Pop-Count Join Attribute Format . . . . . . . . . . . . . 5
3.1. Options . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.1.1. Link Speed Encoding . . . . . . . . . . . . . . . . . 10
3.2. Example Message Layouts . . . . . . . . . . . . . . . . . 10
4. How to Use Pop-Count Encoding . . . . . . . . . . . . . . . . 11
5. Implementation Approaches . . . . . . . . . . . . . . . . . . 12
6. Caveats . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 13
8. Security Considerations . . . . . . . . . . . . . . . . . . . 13
9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 14
10.1. Normative References . . . . . . . . . . . . . . . . . . . 14
10.2. Informative References . . . . . . . . . . . . . . . . . . 14
1. Introduction โจ
okay so this document specifies a way to send accounting info using the Protocol Independent Multicast (PIM) protocol [RFC4601] [RFC5015] ๐ฆ Putting the mechanism inside PIM means the accounting info can be shared and kept up to date really efficiently ๐ The old ways needed data to be correlated from a bunch of different router sources, which is a whole mess ngl ๐
with this mechanism, you can query a single router and get accounting and statistic info for a multicast distribution tree as a whole, or for any distribution sub-tree downstream from the router you queried ๐ณ The amount of info is fixed, so it doesn't grow as multicast membership, tree diameter, or branching goes up. Iconic, right? ๐
the accounting data this spec gives you, per multicast route, is:
- The number of branches in a distribution tree.
- The membership type of the distribution tree, that is, Source-Specific Multicast (SSM) or Any-Source Multicast (ASM).
- Routing domain and time zone boundary information.
- On-tree node and tree diameter counters.
- Effective MTU and bandwidth.
this doc defines a new PIM Join Attribute type [RFC5384] for the Join/Prune message, plus a new Hello option ๐ The mechanism works for both IPv4 and IPv6 multicast ๐
now the honest part ๐ฅน This is a brand-new extension to PIM, and nobody fully knows what collecting info through PIM would do to PIM's operation. It's an entirely new concept, fr fr. A lot of PIM features, including the core protocols, first showed up in Experimental RFCs too, so it makes sense to put this one out as Experimental as well ๐งช Reports of implementation and deployment across whole distribution trees, or within sub-trees (see Section 6), will let people judge how desirable and stable this spec is ๐ After that, the PIM Working Group will decide whether to move it to the Standards Track ๐
this document doesn't say how an administrator or user gets to this info. An implementation might have a command-line interface or some other way to request and display it ๐ป Since this is currently an Experimental doc, defining a MIB module hasn't been considered. If the PIM Working Group decides it should move to the Standards Track, a MIB module should be considered ๐
1.1. Requirements Notation
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.2. Terminology
this section defines the terms used in this document ๐
Multicast Route: An (S,G) or (*,G) entry regardless of whether the route is in ASM, SSM, or BIDIR mode of operation. ๐ฆ
Stub Link: A link with members joined to the group via IGMP or Multicast Listener Discovery (MLD). ๐ธ
Transit Link: A link put in the oif-list (outgoing interface list) for a multicast route because it was joined by PIM routers. ๐
note that a link can be both a Stub Link and a Transit Link at the same time ๐ซถ
2. Pop-Count-Supported Hello Option ๐ง
okay so a PIM router tells everyone it supports the mechanism in this document by including the Pop-Count-Supported Hello option in its PIM Hello message ๐ Note that it also needs to include the Join-Attribute Hello option from [RFC5384], so don't forget that one, bestie ๐ The format of the Pop-Count-Supported Hello option is defined as:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OptionType | OptionLength |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
OptionType = 29, OptionLength = 0. Note that there is no option value included. ๐ So future updates of this spec might add an option value, and implementations of this document MUST accept and process this option even if the length is non-zero ๐ฎ Implementations of this specification MUST accept and process the option while ignoring any option value that may be included ๐ซถ
โ ๏ธ bestie, the big takeaway: even if an option comes with a non-zero length, you still have to accept and process it, and you ignore any value tucked inside. no exceptions ๐
3. New Pop-Count Join Attribute Format โจ
okay so bestie, here's the fun part ๐ A PIM router can send Join/Prune messages that MAY include a Pop-Count Join Attribute ๐ฆ, but only after two things check out. First, it has to have decided from a received Hello that the neighbor supports this mechanism. Second, all the neighbors on the interface have to support join attributes. The way a PIM Join Attribute gets processed is described in [RFC5384], so go read that for the processing side. Here's the shape of the new attribute ๐:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|F|E| Attr_Type | Length | Effective MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Flags | Options Bitmap |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options |
. . .
. . .
. . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
This format is only used for entries in the join-list section of the Join/Prune message, so don't go putting it anywhere else ๐ โโ๏ธ.
Here's the breakdown, bestie:
- F bit:
0, which means it's a Non-Transitive Attribute ๐ธ. - E bit: Whatever [RFC5384] says it is.
- Attr_Type:
3. - Length: The minimum length is
6. - Effective MTU: This is the minimum MTU for any link in the oif-list. The sender of a Join/Prune message takes the minimum MTU in bytes from each link in the oif-list ๐ง. If that value is less than the value stored for the multicast route (the one received from downstream joiners), the value should be reset and sent in a Join/Prune message. Otherwise, it should stay unchanged.
This tells you the MTU the multicast distribution tree supports, whether you look at it from the first-hop router(s) or from the sub-tree of any router on the tree. Iconic ๐.
- Flags: The flags field looks like this ๐:
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unalloc/Reserved |P|a|t|A|S|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
- Unallocated/Reserved Flags: These are the flags nobody has defined yet ๐. If a new flag gets defined and a new implementation uses it, an old implementation should preserve the bit settings. Which means a router MUST preserve the settings of all Unallocated/Reserved Flags in PIM Join messages it receives from downstream routers, in any PIM Join it sends upstream. Non-negotiable, periodt ๐ .
- S flag: This gets set if an IGMPv3 or MLDv2 report with an INCLUDE mode group record was received on any oif-list entry, or if the bit was set from any PIM Join message. It should only be cleared once the above stops being true ๐ซถ.
- A flag: This gets set if an IGMPv3 or MLDv2 report with an EXCLUDE mode group record, or an IGMPv1, IGMPv2, or MLDv1 report, was received on any oif-list entry, or if the bit was set from any PIM Join message. It should only be cleared once the above stops being true ๐ญ.
The combos of the A and S bits tell you what's going on:
A flag S flag Description
------ ------ --------------------------------------
0 0 There are no members for the group.
('Stub Oif-List Count' is 0)
0 1 All group members are using SSM.
1 0 All group members are using ASM.
1 1 A mixture of SSM and ASM group members.
- t flag: This gets set if there are any manually configured tunnels on the distribution tree. That means any tunnel that is not an auto-tunnel. If a manually configured tunnel is in the oif-list, the router sets this bit in its Join/Prune messages. Otherwise, it passes along the bit setting from its downstream joiners ๐.
- a flag: This gets set if there are any auto-tunnels on the distribution tree. If an auto-tunnel is in the oif-list, the router sets this bit in its Join/Prune messages. Otherwise, it passes along the bit setting from its downstream joiners. An example of an auto-tunnel is one set up by the Automatic Multicast Tunneling [AMT] protocol โจ.
- P flag: A router sets this flag if all its downstream routers support this specification, meaning they're all PIM Pop-Count capable. If a downstream router doesn't support this specification, the flag MUST be cleared ๐. This is how you can tell whether the entire sub-tree is completely accounting capable.
- Options Bitmap: This is a bitmap that shows which options are present. It looks like this ๐งโโ๏ธ:
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|T|s|m|M|d|n|D|z| Unalloc/Rsrvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Each of the bits T, s, m, M, d, n, D, and z is tied to one option, and that option is included if and only if its bit is set. The included options MUST show up in the same order as those bits are listed ๐. Here's what each bit means:
bit Option
----- ------------------------
T Transit Oif-List Count
s Stub Oif-List Count
m Minimum Speed Link
M Maximum Speed Link
d Domain Count
n Node Count
D Diameter Count
z TZ Count
See Section 3.1 for the details on each option. The unallocated bits are reserved. Any unknown bits MUST be set to 0 when a message is sent, and they're treated as 0 (ignored) when received. So unknown options that hang off unknown bits just get ignored, no drama ๐.
By using this bitmap, you can specify at most 16 options. If you ever need more than 16, someone can define a new option that holds a bitmap, which can then specify further options. The last bit in the current bitmap could be used for that option. The exact definition of this is left for future documents ๐ฎ.
- Options: This field holds the options, and the flag bits decide which ones are present. New flags and options may be defined in the future, so any unknown or reserved flags MUST be ignored, and any additional trailing options MUST be ignored too ๐ซง. See Section 3.1 for the options defined in this document.
3.1. Options
There are several options defined in this document ๐. Each one has a related flag that shows whether it's present, and the Options Bitmap above lists them along with their bits. Every option has a fixed size. There are no alignment requirements for the options, so an implementation cannot assume they're aligned. Babe, don't assume alignment ๐ โโ๏ธ.
- Transit Oif-List Count: A router sending a Join/Prune message fills this in with the number of transit links on the multicast distribution tree. The value is the number of oifs (outgoing interfaces) for the multicast route that PIM has joined, plus the sum of the values each downstream PIM router advertised after joining on that oif. Length is 4 octets ๐ฐ.
- Stub Oif-List Count: A router sending a Join/Prune message fills this in with the number of stub links on the multicast distribution tree. Stub links are the ones with host members on them. The value is the number of oifs for the multicast route that have been joined by IGMP or MLD, plus the sum of the values each downstream PIM router advertised after joining on that oif. Length is 4 octets ๐ซถ.
- Minimum Speed Link: This holds the minimum bandwidth rate for any link in the oif-list, encoded as specified in Section 3.1.1. The sender of a Join/Prune message takes the minimum value for each link in the oif-list for the multicast route. If that value is less than the value stored for the multicast route (the smallest value received from downstream joiners), the value should be reset and sent in a Join/Prune message. Otherwise, it should stay unchanged. Together with the Maximum Speed Link option, this gives you a way to find the lowest- and highest-speed links on the multicast distribution tree ๐๏ธ. Length is 2 octets.
- Maximum Speed Link: This holds the maximum bandwidth rate for any link in the oif-list, encoded as specified in Section 3.1.1. The sender of a Join/Prune message takes the maximum value for each link in the oif-list for the multicast route. If that value is greater than the value stored for the multicast route (the largest value received from downstream joiners), the value should be reset and sent in a Join/Prune message. Otherwise, it should stay unchanged. Together with the Minimum Speed Link option, this gives you the lowest- and highest-speed links on the tree too ๐. Length is 2 octets.
- Domain Count: This shows how many routing domains the distribution tree goes through. A router should increment this value if it's sending a Join/Prune message over a link that crosses a domain boundary. For this to work, an implementation needs a way to know that a neighbor or an interface is in a different domain. There's no standard way of doing that yet, sadly ๐ค. Length is 1 octet.
- Node Count: This shows how many routers are on the distribution tree. Each router adds up all the Node Counts from all joiners on all oifs, then adds 1 before putting this value into the Join/Prune message ๐งฎ. Length is 1 octet.
- Diameter Count: This shows the longest branch of the tree, measured in router hops. Each router that sends a Join increments the max value it received from all downstream joiners by 1 ๐ณ. Length is 1 octet.
- TZ Count: This shows how many time zones the distribution tree goes through. A router should increment this value if it's sending a Join/Prune message over a link that crosses a time zone. This can be a configured link attribute, or the router can use other means to decide a time zone is acceptable ๐. Length is 1 octet.
3.1.1. Link Speed Encoding ๐
okay so the speed gets squished into 2 octets ๐ง like this:
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Exponent | Significand |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
the link speed is Significand * 10 ^ Exponent kbps ๐
. this gives you up to 3 decimal digits of precision and speeds anywhere from 1 kbps all the way up to 10 ^ 67 kbps ๐คฏ. a computed speed of 0 kbps just means the link is < 1 kbps ๐
here are some examples bestie:
Link Speed Exponent Significand
------------ ---------- -------------
500 kbps 0 500
500 kbps 2 5
155 Mbps 3 155
40 Gpbs 6 40
100 Gpbs 6 100
100 Gpbs 8 1
3.2. Example Message Layouts โจ
let's look at a few examples so you can see the flags and options in action ๐ฆ
a minimum-size message has no option flags set and looks like this, iconic ๐:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|F|E| Attr_Type | Length = 6 | Effective MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unalloc/Reserved |P|a|t|A|S|0|0|0|0|0|0|0|0| Unalloc/Rsrvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
a message with all the options defined in this document would look like this ๐ญ๐ฅ:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|F|E| Attr_Type | Length = 18 | Effective MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unalloc/Reserved |P|a|t|A|S|1|1|1|1|1|1|1|1| Unalloc/Rsrvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transit Oif-List Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Stub Oif-List Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Minimum Speed Link | Maximum Speed Link |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Domain Count | Node Count | Diameter Count| TZ Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
and a message containing only Stub Oif-List Count and Node Count would look like this ๐ง:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|F|E| Attr_Type | Length = 9 | Effective MTU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Unalloc/Reserved |P|a|t|A|S|0|1|0|0|0|1|0|0| Unalloc/Rsrvd |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Stub Oif-List Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Node count |
+-+-+-+-+-+-+-+-+
4. How to Use Pop-Count Encoding ๐
okay this part is the rules ๐ซถ. a router that supports this mechanism MUST, unless administratively disabled, include the PIM Join Attribute option in its PIM Hellos. check out [RFC5384] and "PIM-Hello Options" on [PIM-REG] for the details ๐
It is RECOMMENDED that implementations let admins choose whether to use this mechanism at all ๐. implementations MAY also let you control further what information gets stored and sent upstream โจ
it is very important (like, the most important) that any changes to the values maintained by this mechanism MUST NOT trigger a new Join/Prune message ๐จ. because PIM is periodic, the values can be accurately obtained at 1-minute intervals (or whatever Join/Prune interval is being used) โฐ
when a router removes a link from an oif-list, it needs to be able to reevaluate the values it will advertise upstream ๐. this happens when an oif-list entry times out or a Prune is received
it is RECOMMENDED that the Join Attribute defined in this document be used only for entries in the join-list part of the Join/Prune message. if the attribute shows up in the prune-list, an implementation MUST ignore it and process the Prune as if the attribute were not present ๐ โโ๏ธ
the Join Attribute only belongs in the join-list. in the prune-list it gets ignored, so the Prune is handled like it was never there.
it is also RECOMMENDED that join suppression be disabled on a LAN when Pop-Count is used ๐ธ
it is RECOMMENDED that, when triggered Join/Prune messages are sent by a downstream router, the accounting information not be included in the message ๐โโ๏ธ. this way, when convergence is important, skipping the time to build an accounting record downstream and the time to parse it upstream helps cut down convergence time โก. if an upstream router gets a Join/Prune message with no accounting data, it SHOULD NOT interpret that message as a trigger to clear or reset the accounting data it has cached ๐
5. Implementation Approaches ๐
this section is full of non-normative suggestions for how Pop-Count may be implemented, so think of it as brainstorming ๐ง
an implementation decides how the accounting attributes get maintained ๐๏ธ. one option is storing the values as part of the multicast route data structure, combining the local info with the joined info on a per-oif basis. then when it's time to send a Join/Prune message, the values stored in the multicast route can just be copied into the message ๐จ
or, an implementation could store the accounting values per oif. when a Join/Prune message is sent, it combines the oifs with its local info, and then that combined info gets copied into the message ๐งฉ
when a downstream joiner stops joining, the cached accounting values need to be evaluated ๐ง. there are two approaches. the first is to keep the values learned from each joiner, so when that joiner leaves, the count/max/min values are known and the combined value can be adjusted. the second is to set the value to 0 for the oif, then start accumulating new values as subsequent Joins come in ๐ฑ
the same issue shows up when an oif is removed from the oif-list ๐ซ . keeping per-oif values lets you adjust the per-route values when an oif goes away. or, alternatively, reporting the new set of values from the route can be delayed while all oif values get zeroed. accumulating new values from subsequent Joins repopulates them, and a new max/min/count can be reevaluated for the route ๐
6. Caveats โญ
this one is important, bestie ๐
this specification requires each router on a multicast distribution tree to support this specification, or else the accounting attributes for the tree won't be known ๐ฌ
however, if there's a contiguous set of routers downstream in the distribution tree, they can maintain accounting information for the sub-tree ๐ณ
if there's a set of contiguous routers supporting this specification upstream on the multicast distribution tree, accounting information will be available. but it won't be an accurate picture of the entire tree ๐. also, it won't be clear how much of the distribution tree the accounting information covers ๐คทโโ๏ธ
7. IANA Considerations ๐ง
a new PIM-Hello Option type, 29, has been assigned by IANA ๐. even though the length is specified as 0 in this specification, a non-zero length is allowed, so IANA listed the length as variable ๐ข
a new PIM Join Attribute type, 3, has been assigned by IANA ๐ฆ
8. Security Considerations ๐
this one's serious, okay ๐. using this specification requires some additional processing of PIM Join/Prune messages. however, the extra processing is fairly limited, so it's not believed to be a significant concern ๐งโโ๏ธ
the mechanism includes information like the number of receivers. this information is assumed to not be sensitive ๐คซ. but if an operator is worried about revealing it to upstream routers, or to other routers/hosts that might inspect it, there should be a way to disable the mechanism. or, alternatively, there should be more detailed control of what information gets included ๐ก๏ธโจ
9. Acknowledgments ๐ซถ
the authors want to thank John Zwiebel, Amit Jain, and Clayton Wagar for their review comments on the initial versions of this document ๐. Adrian Farrel did a detailed review and proposed textual changes that have been incorporated ๐. further review and comments came from Thomas Morin and Zhaohui (Jeffrey) Zhang ๐
10. References ๐
10.1. 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.
[RFC5015] Handley, M., Kouvelas, I., Speakman, T., and L. Vicisano,
"Bidirectional Protocol Independent Multicast (BIDIR-
PIM)", RFC 5015, October 2007.
[RFC5384] Boers, A., Wijnands, I., and E. Rosen, "The Protocol
Independent Multicast (PIM) Join Attribute Format",
RFC 5384, November 2008.
10.2. Informative References
[AMT] Bumgardner, G., "Automatic Multicast Tunneling", Work
in Progress, June 2012.
[PIM-REG] IANA, "Protocol Independent Multicast (PIM) Parameters",
<http://www.iana.org/assignments/pim-parameters>.
Authors' Addresses โจ
Dino Farinacci
Cisco Systems
Tasman Drive
San Jose, CA 95134
USA
EMail: dino@cisco.com
Greg Shepherd
Cisco Systems
Tasman Drive
San Jose, CA 95134
USA
EMail: gjshep@gmail.com
Stig Venaas
Cisco Systems
Tasman Drive
San Jose, CA 95134
USA
EMail: stig@cisco.com
Yiqun Cai
Microsoft
1065 La Avenida
Mountain View, CA 94043
USA
EMail: yiqunc@microsoft.com
that's the whole thing, bestie ๐๐
๐ฆ where this page comes from
- ietf: rfc6807 2012-12
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms