rfc2715.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,236 行 · 第 1/4 页
TXT
1,236 行
RFC 2715 Interop Rules October 1999
As with all broadcast-and-prune protocols, PIM-DM components are
automatically wildcard receivers for internally-reached sources.
Unless some form of Domain-Wide-Reports (DWRs) [10] are added to
PIM-DM in the future, all PIM-DM components also act as wildcard
receivers for externally-reached sources. If DWRs are available for
the domain, then a PIM-DM component acts as a wildcard receiver for
externally-reached sources only if internally-reached domains exist
which do not support some form of DWRs.
One simple heuristic to approximate DWRs is to assume that if there
are any internally-reached members, then at least one of them is a
sender. With this heuristic, the presense of any (S,G) state for
internally-reached sources can be used instead. Sending a data
packet to a group is then equivalent to sending a DWR for the group.
4.3.1. Generating Alerts
A (*,*) Join alert is sent to the iif owner of the (*,*) entry (e.g.,
the Interop dispatcher) when the first component becomes a wildcard
receiver for external sources. This may occur when a PIM-DM
component starts up which does not support some form of DWRs.
A (*,*) Prune alert is sent to the iif owner of the (*,*) entry
(e.g., the Interop dispatcher) when all components are no longer
wildcard receivers for external sources. This may occur when a PIM-
DM component which does not support some form of DWRs shuts down.
A (S,G) Prune alert is sent to the component owning the iif for a
forwarding cache entry whenever the last oif is removed from the
forwarding cache entry, and the iif is owned by another component. In
PIM-DM, this may happen when:
o A PIM (S,G) Join/Prune message with S in the prune list is
received on a point-to-point interface.
o The Oif-Timer in an (S,G) route table entry expires.
o A PIM (S,G) Assert message from a preferred neighbor is
received on the interface.
A (S,G) Join alert is sent to the component owning the iif for a
forwarding cache entry whenever the first oif is added to an entry,
and the iif is owned by another component. In PIM-DM, this may
happen when any of the following occur:
o The oif's prune timer expires, or
o A PIM-DM (S,G) Graft message is received on the interface, or
o IGMP notifies PIM-DM that directly-connected group members now
exist on the interface.
Thaler Informational [Page 12]
RFC 2715 Interop Rules October 1999
When it is known that there are no longer any members of a group G in
the PIM-DM domain which receive data for externally-reached sources
from the local router, a (*,G) Prune alert is sent to the "iif owner"
for (*,G) according to the dispatcher. In PIM-DM, this may happen
when:
o The DWR for G times out.
o The members-are-senders approximation is being used and PIM-
DM's last (S,G) entry for G is timed out.
When it is first known that there are members of a group G in the
PIM-DM domain, a (*,G) Join alert is sent to the "iif owner" of
(*,G), according to the dispatcher. In PIM-DM, this may happen when
either of the following occurs:
o A DWR is received for G.
o The members-are-senders approximation is being used and a data
packet for G is received on one of the component's interfaces.
4.3.2. Processing Alerts
When a PIM-DM component receives an (S,G) Creation alert, it adds the
component's interfaces to the entry's oif list (according to normal
PIM-DM behavior) EXCEPT:
o the iif,
o leaf networks without local members of the entry's group,
o and interfaces with scoped boundaries covering the group.
When a PIM-DM component receives an (S,G) Prune alert, and the
forwarding cache entry's oiflist is empty, it sends a PIM-DM (S,G)
Prune message to the upstream neighbor according to normal PIM-DM
behavior.
When a PIM-DM component receives a (*,G) or (*,*) Prune alert, it is
treated as if an (S,G) Prune alert were received for every matching
(S,G) entry.
When a PIM-DM component receives an (S,G) Join alert, and an (S,G)
prune was previously sent upstream, it sends a PIM-DM (S,G) Graft
message to the upstream neighbor according to normal PIM-DM behavior.
When a PIM-DM component receives a (*,G) or (*,*) Join alert, then
for each matching (S,G) entry in the PIM-DM routing table for which a
prune was previously sent upstream, it sends a PIM-DM (S,G) Graft
message to the upstream neighbor according to normal PIM-DM behavior.
In addition, if DWR's are being used, the component sends a DWR Join
message within its domain.
Thaler Informational [Page 13]
RFC 2715 Interop Rules October 1999
4.4. PIM-SM
In this section we describe how the rules in section 2 apply to
Sparse-mode PIM. We assume that the reader is familiar with normal
PIM-SM behavior, as specified in [4].
To achieve correct PIM-SM behavior within the domain, the PIM-SM
domain MUST be convex so that Bootstrap messages reach all routers in
the domain. That is, the shortest-path route from any internal
router to any other internal router must lie entirely within the PIM
domain.
Unless some form of Domain-Wide-Reports (DWRs) [10] are added to
PIM-SM in the future, all PIM-SM components act as wildcard receivers
for externally-reached sources. If DWRs are available for the
domain, then a PIM-SM component acts as a wildcard receiver for
externally-reached sources only if internally-reached domains exist
which do not support some form of DWRs.
A PIM-SM component acts as a wildcard receiver for internally-reached
sources if and only if any other component is a wildcard receiver for
externally-reached sources. It does this by periodically sending
(*,*,RP) Joins to all RPs for non-local groups (for example,
239.x.x.x is considered locally-scoped, and PIM-SM components do not
send (*,*,RP) Joins to RPs supporting only that portion of the
address space). The period is set according to standard PIM-SM rules
for periodic Join/Prune messages.
To properly instantiate Rule 1, whenever PIM creates a PIM (S,G)
entry for an externally-reached source, and the next hop towards S is
reached via an interface owned by another component, the iif should
always point towards S and not towards the RP for G. In addition,
the Border-bit is set in all PIM Register messages for this entry.
Finally, the PIM-SM component acts as a DR for externally-reached
receivers in terms of being able to switch to the shortest-path tree
for internally-reached sources.
4.4.1. Generating Alerts
A (*,*) Join alert is sent to the iif owner of the (*,*) entry (e.g.,
the Interop dispatcher) when the first component becomes a wildcard
receiver for external sources. This may occur when a PIM-SM
component starts up and decides to act in this role.
Thaler Informational [Page 14]
RFC 2715 Interop Rules October 1999
A (*,*) Prune alert is sent to the iif owner of the (*,*) entry
(e.g., the Interop dispatcher) when all components are no longer
wildcard receivers for external sources. This may occur when a PIM-
SM component which was acting in this role shuts down.
A (S,G) Prune alert is sent to the component owning the iif for a
forwarding cache entry whenever the last oif is removed from the
entry and the iif is owned by another component. In PIM-SM, this may
happen when:
o A PIM (S,G) Join/Prune message with S in the prune list is
received on a point-to-point interface, or
o A PIM (S,G) Assert from a preferred neighbor was received on
the interface, or
o A PIM Register-Stop message is received for (S,G), or
o The interface's Oif-Timer for PIM's (S,G) route table entry
expires.
o The Entry-Timer for PIM's (S,G) route table entry expires.
When it is known that there are no longer any members of a group G in
the PIM-SM domain which receive data for externally-reached sources
from the local router, a (*,G) Prune alert is sent to the "iif owner"
for (*,G) according to the dispatcher. In PIM-SM, this may happen
when:
o A PIM (*,G) Join/Prune message with G in the prune list is
received on a point-to-point interface, or
o A PIM (*,G) Assert from a preferred neighbor was received on
the interface, or
o IGMP notifies PIM-SM that directly-connected members no longer
exist on the interface.
o The Entry-Timer for PIM's (*,G) route table entry expires.
A (S,G) Join alert is sent to the component owning the iif for a
forwarding cache entry whenever the first logical oif is added to an
entry and the iif is owned by another component. In PIM-SM, this may
happen when any of the following occur:
o A PIM (S,G) Join/Prune message is received on the interface, or
o The Register-Suppression-Timer for (S,G) expires, or
o The Entry-Timer for an (S,G) negative-cache state route table
entry expires.
When it is first known that there are members of a group G in the
PIM-SM domain, a (*,G) Join alert is sent to the "iif owner" of
(*,G), according to the dispatcher. In PIM-SM, this may happen when
any of the following occur:
Thaler Informational [Page 15]
RFC 2715 Interop Rules October 1999
o A PIM (*,G) Join/Prune message is received on the interface, or
o A PIM (*,*,RP) Join/Prune message is received on the interface,
or
o (*,G) negative cache state expires, or
o IGMP notifies PIM that directly-connected group members now
exist on the interface.
4.4.2. Processing Alerts
When a PIM-SM component receives an (S,G) Creation alert, it does a
longest match search ((S,G), then (*,G), then (*,*,RP)) in its
multicast routing table. All outgoing interfaces of that entry are
then added to the forwarding cache entry. Unless the PIM-SM
component owns the iif, the oiflist is also modified to support
sending PIM Registers with the Border-bit set to the corresponding
RP.
When a PIM-SM component receives an (S,G) Prune alert, and the
forwarding cache entry's oiflist is empty, then for each PIM (S,G)
state entry covered, it sends an (S,G) Join/Prune message with S in
the prune list to the upstream neighbor according to normal PIM-SM
behavior.
When a PIM-SM component receives a (*,G) Prune alert, it sends a
(*,G) Join/Prune message with G in the prune list to the upstream
neighbor towards the RP for G, according to normal PIM-SM behavior.
When a PIM-SM component receives an (S,G) Join alert, it sends an
(S,G) Join/Prune message to the next-hop neighbor towards S, and
resets the (S,G) Entry-timer, according to normal PIM-SM behavior.
When a PIM-SM component receives a (*,G) Join alert, then it sends a
(*,G) Join/Prune message to the next-hop neighbor towards the RP for
G, and resets the (*,G) Entry-timer, according to normal PIM-SM
behavior.
When a PIM-SM component receives a (*,*) Join alert, then it sends
(*,*,RP) Join/Prune messages towards each RP.
When a PIM-SM component receives a (*,*) Prune alert, then it sends a
(*,*,RP) Prune towards each RP.
Thaler Informational [Page 16]
RFC 2715 Interop Rules October 1999
4.5. CBTv2
In this section we describe how the rules in section 2 apply to
CBTv2. We assume that the reader is familiar with normal CBTv2
behavior as specified in [5]. We note that, like MOSPF, CBTv2 allows
joining and pruning entire groups, but not individual sources within
groups.
Interoperability between a single CBTv2 stub domain and a DVMRP
backbone is outlined in [8]. Briefly, CBTv2 MBR components are
statically configured such that, whenever an external route exists
between two or more MBRs, one is designated as the primary, and the
others act as non-forwarding (to prevent duplicate packets) backups.
Thus, a CBTv2 domain must not serve as transit between two domains if
another route between them exists.
We now describe how a CBTv2 implementation may extend this to
interoperate with all other multicast routing protocols. A CBTv2
component acts as a wildcard receiver for internally-reached sources
if and only if any other component is a wildcard receiver for
externally-reached sources. It does this by sending JOIN-REQUESTs
for all non-local group ranges to all known cores, as described in
[8].
Unless some form of Domain-Wide-Reports (DWRs) [10] are added to
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?