📄 rfc2117.txt
字号:
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 2117 PIM-SM June 1997
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 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.
Estrin, et. al. Experimental [Page 21]
RFC 2117 PIM-SM June 1997
2 For each address, Sp, in the prune list whose RPT-bit is
set and whose WC-bit 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 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.)
Estrin, et. al. Experimental [Page 22]
RFC 2117 PIM-SM June 1997
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
prune list `completely-matches' a route entry only if both the IP
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 IP 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
1 If there is no corresponding (S,G) entry, and the
router has RP-Set information, the DR creates one 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.
2 If there is a (S,G) entry in existence, the DR simply
restarts the corresponding Entry-timer.
Estrin, et. al. Experimental [Page 23]
RFC 2117 PIM-SM June 1997
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 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 IP 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.
Estrin, et. al. Experimental [Page 24]
RFC 2117 PIM-SM June 1997
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.
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 there
exists (*,G) or (*,*,RP) entry, the RP creates a
(S,G) entry, with a `PMBR' field. This field
holds the source of the Register (i.e. the outer
IP address of the register packet). The RP
triggers a (S,G) jo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -