📄 rfc2362.txt
字号:
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).
2 If the interface used to reach Sj, is the same as I,
this represents an error (or a unicast routing change) and
the Join/Prune must not be processed.
Estrin, et. al. Experimental [Page 20]
RFC 2362 PIM-SM June 1998
3 For each address, Sj, in the join list of the Join/Prune
message, for which there is an existing (Sj,G) route entry,
1 If the RPT-bit is not set for Sj listed in the
Join/Prune message, but the RPT-bit flag is set on the
existing (Sj,G) entry, the router clears the RPT-bit flag
on the (Sj,G) entry, sets the incoming interface to point
towards Sj for that (Sj,G) entry, and sends a Join/Prune
message corresponding to that entry through the new
incoming interface; and
2 If I is not the same as the existing incoming
interface, the router adds I to the list of outgoing
interfaces.
3 The Oif-timer for I 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.
4 The (Sj,G) entry's SPT bit is cleared until data comes
down the shortest path tree.
For each group address G, in the Join/Prune message, the
associated prune list is processed as follows. We refer to each
address in the prune list as Sp; Sp refers to the RP if the RPT-
bit and WC-bit are both set. For each Sp in the prune list of the
Join/Prune message:
1 For each address, Sp, in the prune list whose RPT-bit and
WC-bit are cleared:
1 If there is an existing (Sp,G) route entry, the router
lowers the entry's Oif-timer for I to its Oif-Deletion-
Delay, allowing for other downstream routers on a multi-
access LAN to override the prune. However, on point-to-
point links, the oif-timer is expired immediately.
2 If the router has a current (*,G), or (*,*,RP), route
entry, and if the existing (Sp,G) entry has its RPT-bit
flag set to 1, then this (Sp,G)RPT-bit entry is maintained
(not deleted) even if its outgoing interface list is null.
2 For each address, Sp, in the prune list whose RPT-bit is
set and whose WC-bit cleared:
Estrin, et. al. Experimental [Page 21]
RFC 2362 PIM-SM June 1998
1 If there is an existing (Sp,G) route entry, the router
lowers the entry's Oif-timer for I to its Oif-Deletion-
Delay, allowing for other downstream routers on a multi-
access LAN to override the prune. However, on point-to-
point links, the oif-timer is expired immediately.
2 If the router has a current (*,G), or (*,*,RP), route
entry, and if the existing (Sp,G) entry has its RPT-bit
flag set to 1, then this (Sp,G)RPT-bit entry is not
deleted, and the Entry-timer is restarted, even if its
outgoing interface list is null.
3 If (*,G), or corresponding (*,*,RP), state exists, but
there is no (Sp,G) entry, an (Sp,G)RPT-bit entry is created
. The outgoing interface list is copied from the (*,G), or
(*,*,RP), entry, with the interface, I, on which the prune
was received, is deleted. Packets from the pruned source,
Sp, match on this state and are not forwarded toward the
pruned receivers.
4 If there exists a (Sp,G) entry, with or without the
RPT-bit set, the oif-timer for I is expired, and the
Entry-timer is restarted.
3 For each address, Sp, in the prune list whose RPT-bit and
WC-bit are both set:
1 If there is an existing (*,G) entry, with Sp as the RP
for G, the router lowers the entry's Oif-timer for I to its
Oif-Deletion-Delay, allowing for other downstream routers
on a multi-access LAN to override the prune. However, on
point-to-point links, the oif-timer is expired immediately.
2 If the corresponding (*,*,RP) state exists, but there
is no (*,G) entry, a (*,G) entry is created. The outgoing
interface list is copied from (*,*,RP) entry, with the
interface, I, on which the prune was received, deleted.
For any new (S,G), (*,G) or (*,*,RP) entry created by an
incoming Join/Prune message, the SPT-bit is cleared (and if a
Join/Prune-Suppression timer is used, it is left off.)
If the entry has a Join/Prune-Suppression timer associated with it,
and if the received Join/Prune does not indicate the router as its
target, then the receiving router examines the join and prune lists
to see if any addresses in the list `completely-match' existing
(S,G), (*,G), or (*,*,RP) state for which the receiving router
currently schedules Join/Prune messages. An element on the join or
Estrin, et. al. Experimental [Page 22]
RFC 2362 PIM-SM June 1998
prune list `completely-matches' a route entry only if both the
addresses and RPT-bit flag are the same. If the incoming Join/Prune
message completely matches an existing (S,G), (*,G), or (*,*,RP)
entry and the Join/Prune arrived on the iif for that entry, then the
router compares the Holdtime included in the Join/Prune message, to
its own [Join/Prune-Holdtime]. If its own [Join/Prune-Holdtime] is
lower, the Join/Prune-Suppression-timer is started at the
[Join/Prune-Suppression-Timeout]. If the [Join/Prune-Holdtime] is
equal, the tie is resolved in favor of the Join/Prune Message
originator that has the higher network layer address. When the
Join/Prune timer expires, the router triggers a Join/Prune message
for the corresponding entry(ies).
3.3 Register and Register-Stop
When a source first starts sending to a group its packets are
encapsulated in Register messages and sent to the RP. If the data
rate warrants source-specific paths, the RP sets up source specific
state and starts sending (S,G) Join/Prune messages toward the source,
with S in the join list.
3.3.1 Sending Registers and Receiving Register-Stops
Register messages are sent as follows:
1 When a DR receives a packet from a directly connected
source, S, on the subnet containing the address S,
1 If there is no corresponding (S,G) entry, and the
router has RP-Set information, and the DR is not the RP for
G, the DR creates an (S,G) entry with the Register-
Suppression-timer turned off and the RP address set
according to the hash function mapping for the
corresponding group. The oif list is copied from existing
(*,G) or (*,*,RP) entries, if they exist. The iif of the
(S,G) entry is always excluded from the oif list. If there
exists a (*,G) or (*,*,RP) entry, the DR sends a Join/Prune
message towards the RP with S in the prune list and the
RPT-bit set.
2 If there is a (S,G) entry in existence, the DR simply
restarts the corresponding Entry-timer.
When a PMBR (e.g., a router that connects the PIM-SM region
to a dense mode region running DVMRP or PIM-DM) receives a
packet from a source in the dense mode region, the router
Estrin, et. al. Experimental [Page 23]
RFC 2362 PIM-SM June 1998
treats the packet as if it were from a directly connected
source. A separate document will describe the details of
interoperability.
2 If the new or previously-existing (S,G) entry's Register-
Suppression-timer is not running, the data packet is
encapsulated in a Register message and unicast to the RP for
that group. The data packet is also forwarded according to (S,G)
state in the DR if the oif list is not null; since a receiver
may join the SP-tree while the DR is still registering to the
RP.
3 If the (S,G) entry's Register-Suppression-timer is running,
the data packet is not sent in a Register message, it is just
forwarded according to the (S,G) oif list.
When the DR receives a Register-Stop message, it restarts the
Register-Suppression-timer in the corresponding (S,G) entry(ies) at
[Register-Suppression-Timeout] seconds. If there is data to be
registered, the DR may send a null Register (a Register message with
a zero-length data portion in the inner packet) to the RP, [Probe-
Time] seconds before the Register-Suppression-timer expires, to avoid
sending occasional bursts of traffic to an RP unnecessarily.
3.3.2 Receiving Register Messages and Sending Register-Stops
When a router (i.e., the RP) receives a Register message, the router
does the following:
1 Decapsulates the data packet, and checks for a
corresponding (S,G) entry.
1 If a (S,G) entry with cleared (0) SPT bit exists, and
the received Register does not have the Null-Register-Bit
set to 1, the packet is forwarded; and the SPT bit is left
cleared (0). If the SPT bit is 1, the packet is dropped,
and Register-Stop messages are triggered. Register-Stops
should be rate-limited (in an implementation-specific
manner) so that no more than a few are sent per round trip
time. This prevents a high datarate stream of packets from
triggering a large number of Register-Stop messages between
the time that the first packet is received and the time
when the source receives the first Register-Stop.
2 If there is no (S,G) entry, but there is a (*,G)
entry, and the received Register does not have the Null-
Register-Bit set to 1, the packet is forwarded according to
the (*,G) entry.
Estrin, et. al. Experimental [Page 24]
RFC 2362 PIM-SM June 1998
3 If there is a (*,*,RP) entry but no (*,G) entry, and
the Register received does not have the Null-Register-Bit
set to 1, a (*,G) or (S,G) entry is created and the oif
list is copied from the (*,*,RP) entry to the new entry.
The packet is forwarded according to the created entry.
4 If there is no G or (*,*,RP) entry corresponding to G,
the packet is dropped, and a Register-Stop is triggered.
5 A "Border bit" bit is added to the Register message,
to facilitate interoperability mechanisms. PMBRs set this
bit when registering for external sources (see Section
2.7). If the "Border bit" is set in the Register,
the RP does the following:
1 If there is no matching (S,G) state, but ther
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -