📄 rfc2362.txt
字号:
interface as the RPF neighbor.
2 A particular source address, S, is included in the join
list with the RPT and WC bits cleared under the following
conditions:
1 The Join/Prune message is being sent to the RPF
neighbor toward S, and
2 There exists an active (S,G) entry with the RPT-bit
flag cleared, and
3 The oif list in the (S,G) entry is not null.
Estrin, et. al. Experimental [Page 15]
RFC 2362 PIM-SM June 1998
3 A particular source address, S, is included in the prune
list with the RPT and WC bits cleared under the following
conditions:
1 The Join/Prune message is being sent to the RPF
neighbor toward S, and
2 There exists an active (S,G) entry with the RPT-bit
flag cleared, and
3 The oif list in the (S,G) entry is null.
4 A particular source address, S, is included in the prune
list with the RPT-bit set and the WC bit cleared under the
following conditions:
1 The Join/Prune message is being sent to the RPF
neighbor toward the RP and there exists a (S,G) entry with
the RPT-bit flag set and null oif list, or
2 The Join/Prune message is being sent to the RPF
neighbor toward the RP, there exists a (S,G) entry with the
RPT-bit flag cleared and SPT-bit set, and the incoming
interface toward S is different than the incoming interface
toward the RP, or
3 The Join/Prune message is being sent to the RPF
neighbor toward the RP, and there exists a (*,G) entry and
(S,G) entry for a directly connected source.
5 The RP address (with RPT and WC bits set) is included in
the prune list if:
1 The Join/Prune message is being sent to the RPF
neighbor toward the RP and there exists a (*,G) entry with
a null oif list (see Section 3.5.2).
Triggered Join/Prune Messages:
In addition to periodic messages, the following events will
trigger Join/Prune messages if as a result, a) a new entry is
created, or b) the oif list changes from null to non-null or non-
null to null. The contents of triggered messages are the same as
the periodic, described above.
1 Receipt of an indication from IGMP that the state of
directly-connected-membership has changed (i.e., new members
have just joined `membership indication' or all members have
Estrin, et. al. Experimental [Page 16]
RFC 2362 PIM-SM June 1998
left), for a group G, may cause the last-hop router to build or
modify corresponding (*,G) state. When IGMP indicates that
there are no longer directly connected members, the oif is
removed from the oif list if the oif-timer is not running. A
Join/Prune message is triggered if and only if a) a new entry is
created, or b) the oif list changes from null to non-null or
non-null to null, as follows:
1 If the receiving router does not have a route entry
for G the router creates a (*,G) entry, copies the oif list
from the corresponding (*,*,RP) entry (if it exists), and
includes the interface included in the IGMP membership
indication in the oif list; as always, the router never
includes the entry's iif in the oif list. The router sends
a Join/Prune message towards the RP with the RP address and
RPT-bit and WC-bits set in the join list. Or,
2 If a (S,G)RPT-bit or (*,G) entry already exists, the
interface included in the IGMP membership indication is
added to the oif list (if it was not included already).
2 Receipt of a Join/Prune message for (S,G), (*,G) or
(*,*,RP) will cause building or modifying corresponding state,
and subsequent triggering of upstream Join/Prune messages, in
the following cases:
1 When there is no current route entry, the RP address
included in the Join/Prune message is checked against the
local RP-Set information. If it matches, an entry will be
created and the new entry will in turn trigger an upstream
Join/Prune message. If the router has no RP-Set information
it may discard the message, or optionally use the RP
address included in the message.
2 When the outgoing interface list of an (S,G)RPT-bit
entry becomes null, the triggered Join/Prune message will
contain S in the prune list.
3 When there exists a (S,G)RPT-bit with null oif list,
and an (*,G) Join/Prune message is received, the arriving
interface is added to the oif list and a (*,G) Join/Prune
message is triggered upstream.
4 When there exists a (*,G) with null oif list, and a
(*,*,RP) Join/Prune message is received, the receiving
interface is added to the oif list and a (*,*,RP)
Join/Prune message is triggered upstream.
Estrin, et. al. Experimental [Page 17]
RFC 2362 PIM-SM June 1998
3 Receipt of a packet that matches on a (S,G) entry whose
SPT-bit is cleared triggers the following if the packet arrived
on the correct incoming interface and there is a (*,G) or
(*,*,RP) entry with a different incoming interface: a) the
router sets the SPT-bit on the (S,G) entry, and b) the router
sends a Join/Prune message towards the RP with S in the prune
list and the RPT-bit set.
4 Receipt of a packet at the DR from a directly connected
source S, on the subnet containing the address S, triggers a
Join/Prune message towards the RP with S in the prune list and
the RPT-bit set under the following conditions: a) there is no
matching (S,G) state, and b) there exists a (*,G) or (*,*,RP)
for which the DR is not the RP.
5 When a Join/Prune message is received for a group G, the
prune list is checked. If the prune list contains a source or RP
for which the receiving router has a corresponding active (S,G),
(*,G) or (*,*,RP) entry, and whose iif is that on which the
Join/Prune was received, then a join for (S,G), (*,G) or
(*,*,RP) is triggered to override the prune, respectively. (This
is necessary in the case of parallel downstream routers
connected to a multi-access network.)
6 When the RP fails, the RP will not be included in the
Bootstrap messages sent to all routers in that domain. This
triggers the DRs to send (*,G) Join/Prune messages towards the
new RP for the group, as determined by the RP-Set and the hash
function. As described earlier, PMBRs trigger (*,*,RP) joins
towards each RP in the RP-Set.
7 When an entry's Join/Prune-Suppression timer expires, a
Join/Prune message is triggered upstream corresponding to that
entry, even if the outgoing interface has not transitioned
between null and non-null states.
8 When the RPF neighbor changes (whether due to an Assert or
changes in unicast routing), the router sets a random delay
timer (the Random-Delay-Join-Timer) whose expiration triggers
sending of a Join/Prune message for the asserted route entry to
the Assert winner (if the Join/Prune Suppression timer has
expired.)
We do not trigger prunes onto interfaces based on data packets. Data
packets that arrive on the wrong incoming interface are silently
dropped. However, on point-to-point interfaces triggered prunes may
be sent as an optimization.
Estrin, et. al. Experimental [Page 18]
RFC 2362 PIM-SM June 1998
aragraphFragmentation It is possible that a Join/Prune message
constructed according to the preceding rules could exceed the MTU of
a network. In this case, the message can undergo semantic
fragmentation whereby information corresponding to different groups
can be sent in different messages. However, if a Join/Prune message
must be fragmented the complete prune list corresponding to a group G
must be included in the same Join/Prune message as the associated
RP-tree Join for G. If such semantic fragmentation is not possible,
IP fragmentation should be used between the two neighboring hops.
3.2.2 Receiving Join/Prune Messages When a router receives
Join/Prune message, it processes it as follows.
The receiver of the Join/Prune notes the interface on which the PIM
message arrived, call it I. The receiver then checks to see if the
Join/Prune message was addressed to the receiving router itself
(i.e., the router's address appears in the Unicast Upstream Neighbor
Router field of the Join/Prune message). (If the router is connected
to a multiaccess LAN, the message could be intended for a different
router.) If the Join/Prune is for this router the following actions
are taken.
For each group address G, in the Join/Prune message, the associated
join list is processed as follows. We refer to each address in the
join list as Sj; Sj refers to the RP if the RPT-bit and WC-bit are
both set. For each Sj in the join list of the Join/Prune message:
1 If an address, Sj, in the join list of the Join/Prune
message has the RPT-bit and WC-bit set, then Sj is the RP
address used by the downstream router(s) and the following
actions are taken:
1 If Sj is not the same as the receiving router's RP
mapping for G, the receiving router may ignore the
Join/Prune message with respect to that group entry. If
the router does not have any RP-Set information, it may use
the address Sj included in the Join/Prune message as the RP
for the group.
2 If Sj is the same as the receiving router's RP mapping
for G, the receiving router adds I to the outgoing
interface list of the (*,G) route entry (if there is no
(*,G) entry, the router creates one first) and sets the
Oif-timer for that interface to the Holdtime specified in
the Join/Prune message. In addition, the Oif-Deletion-Delay
for that interface is set to 1/3rd the Holdtime specified
Estrin, et. al. Experimental [Page 19]
RFC 2362 PIM-SM June 1998
in the Join/Prune message. If a (*,*,RP) entry exists, for
the RP associated with G, then the oif list of the newly
created (*,G) entry is copied from that (*,*,RP) entry.
3 For each (Si,G) entry associated with group G: i) if
Si is not included in the prune list, ii) if I is not on
the same subnet as the address Si, and iii) if I is not the
iif, then interface I is added to the oif list and the
Oif-timer for that interface in each affected entry is
increased (never decreased) to the Holdtime included in the
Join/Prune message. In addition, if the Oif-timer for that
interface is increased, the Oif-Deletion-Delay for that
interface is set to 1/3rd the Holdtime specified in the
Join/Prune message.
If the group address in the Join/Prune message is `*' then
every (*,G) and (S,G) entry, whose group address hashes to
the RP indicated in the (*,*,RP) Join/Prune message, is
updated accordingly. A `*' in the group field of the
Join/Prune is represented by a group address 224.0.0.0 and
a group mask length of 4, indicating a (*,*,RP) Join.
4 If the (Si,G) entry has its RPT-bit flag set to 1, and
its oif list is the same as the (*,G) oif list, then the
(Si,G)RPT-bit entry is deleted,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -