📄 rfc2117.txt
字号:
flag cleared, and
3 The oif list in the (S,G) entry is not null.
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
Estrin, et. al. Experimental [Page 15]
RFC 2117 PIM-SM June 1997
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).
3.2.1.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
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 :
Estrin, et. al. Experimental [Page 16]
RFC 2117 PIM-SM June 1997
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.
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 and a set RPT-bit in the prune list.
Estrin, et. al. Experimental [Page 17]
RFC 2117 PIM-SM June 1997
4 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.)
5 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 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.
6 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.
7 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.
3.2.1.3 Fragmentation: 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.
Estrin, et. al. Experimental [Page 18]
RFC 2117 PIM-SM June 1997
3.2.2 Receiving Join/Prune Messages When a router receives a
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 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, if Si
is not included in the prune list, and 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
Estrin, et. al. Experimental [Page 19]
RFC 2117 PIM-SM June 1997
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,
5 The incoming interface is set to the interface used to
send unicast packets to the RP in the (*,G) route
entry, i.e., RPF interface toward the RP.
2 For each address, Sj, in the join list whose RPT-bit and
WC-bit are not set, and for which there is no existing (Sj,G)
route entry, the router initiates one. The router creates a
(S,G) entry and copies all outgoing interfaces from the
(S,G)RPT-bit entry, if it exists. If there is no (S,G) entry,
the oif list is copied from the (*,G) entry; and if there is
no (*,G) entry, the oif list is copied from the (*,*,RP)
entry, if it exists. In all cases, the iif of the (S,G)
entry is always excluded from the oif list.
1 The outgoing interface for (Sj,G) is set to I. The
incoming interface for (Sj,G) is set to the interface
used to send unicast packets to Sj (i.e., the RPF
neighbor).
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -