One document matched: draft-ietf-pim-sm-v2-new-11.ps


%!PS-Adobe-3.0
%%Creator: groff version 1.18.1
%%CreationDate: Mon Oct 25 05:54:10 2004
%%DocumentNeededResources: font Courier-Bold
%%+ font Times-Bold
%%+ font Times-Roman
%%+ font Courier
%%+ font Symbol
%%+ font Times-Italic
%%DocumentSuppliedResources: file starg-assert.ps
%%+ file sg-assert.ps
%%+ file sgrpt-override.ps
%%+ file sending-sg-std.ps
%%+ file sending-starg-std.ps
%%+ file sending-starstarrp-std.ps
%%+ file sgrpt-std.ps
%%+ file sg-std.ps
%%+ file starg-std.ps
%%+ file starstarrp-std.ps
%%+ file register-std.ps
%%+ procset grops 1.18 1
%%Pages: 113
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
%%BeginResource: procset grops 1.18 1
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/MANUAL{
statusdict begin/manualfeed true store end
}bind def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}bind def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/Fr{
setrgbcolor fill
}bind def
/Fk{
setcmykcolor fill
}bind def
/Fg{
setgray fill
}bind def
/FL/fill load def
/LW/setlinewidth load def
/Cr/setrgbcolor load def
/Ck/setcmykcolor load def
/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
}bind def
/PEND{
clear
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%IncludeResource: font Courier-Bold
%%IncludeResource: font Times-Bold
%%IncludeResource: font Times-Roman
%%IncludeResource: font Courier
%%IncludeResource: font Symbol
%%IncludeResource: font Times-Italic
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Times-Italic@0 ENC0/Times-Italic RE/Courier@0 ENC0/Courier RE
/Times-Roman@0 ENC0/Times-Roman RE/Times-Bold@0 ENC0/Times-Bold RE
/Courier-Bold@0 ENC0/Courier-Bold RE
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Courier-Bold@0 SF(Internet Engineering Task Force)72 106.6 Q
(PIM WG)209.999 E 245.999(INTERNET-DRAFT Bill)72 119.6 R(Fenner/AT&T)6 E
149.999(draft-ietf-pim-sm-v2-new-11.ps Mark)72 132.6 R(Handley/UCL)6 E
(Hugh Holbrook/Cisco)389.999 145.6 Q(Isidor Kouvelas/Cisco)377.999 158.6
Q(25 October 2004)413.999 171.6 Q(Expires: April 2005)389.999 184.6 Q/F1
14/Times-Bold@0 SF(Pr)113.147 209.6 Q
(otocol Independent Multicast - Sparse Mode \(PIM-SM\):)-.252 E(Pr)
193.353 222.6 Q(otocol Speci\214cation \(Re)-.252 E(vised\))-.21 E/F2 11
/Times-Bold@0 SF(Status of this Document)72 254.6 Q/F3 11/Times-Roman@0
SF(By submitting this Internet-Draft, I certify that an)72 271.2 Q 2.75
(ya)-.165 G(pplicable patent or other IPR claims of which)-2.75 E 2.75
(Ia)72 284.2 S 2.75(ma)-2.75 G -.11(wa)-2.915 G(re ha).11 E .33 -.165
(ve b)-.22 H(een disclosed, or will be disclosed, and an).165 E 2.75(yo)
-.165 G 2.75(fw)-2.75 G(hich I become a)-2.75 E -.11(wa)-.165 G
(re will be).11 E(disclosed, in accordance with RFC 3668.)72 297.2 Q
(Internet-Drafts are w)72 313.8 Q
(orking documents of the Internet Engineering T)-.11 E(ask F)-.88 E
(orce \(IETF\), its areas,)-.165 E(and its w)72 326.8 Q(orking groups.)
-.11 E(Note that other groups may also distrib)5.5 E(ute w)-.22 E
(orking documents as)-.11 E(Internet-Drafts.)72 339.8 Q
(Internet-Drafts are draft documents v)72 356.4 Q
(alid for a maximum of six months and may be updated,)-.275 E
(replaced, or obsoleted by other documents at an)72 369.4 Q 2.75(yt)
-.165 G 2.75(ime. It)-2.75 F(is inappropriate to use Internet-Drafts)
2.75 E(as reference material or to cite them other than as "w)72 382.4 Q
(ork in progress.")-.11 E
(The list of current Internet-Drafts can be accessed at http://www)72
399 Q(.ietf.or)-.715 E(g/ietf/1id-abstracts.txt)-.198 E
(The list of Internet-Draft Shado)72 415.6 Q 2.75(wD)-.275 G
(irectories can be accessed at http://www)-2.75 E(.ietf.or)-.715 E
(g/shado)-.198 E -.715(w.)-.275 G(html.).715 E
(This document is a product of the IETF PIM WG.)72 445.2 Q
(Comments should be addressed to the authors,)5.5 E
(or the mailing list at pim@ietf.or)72 458.2 Q(g.)-.198 E(Fenner/Handle)
72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 232.471(elas [P)-.165 F
(age 1])-.165 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF
(Abstract)267.534 85 Q F0(This document speci\214es Protocol Independen\
t Multicast - Sparse Mode \(PIM-SM\).)97 107.6 Q(PIM-SM is a multicast \
routing protocol that can use the underlying unicast routing)97 120.6 Q
(information base or a separate multicast-capable routing information b\
ase.)97 133.6 Q(It b)5.5 E(uilds)-.22 E
(unidirectional shared trees rooted at a Rendezv)97 146.6 Q
(ous Point \(RP\) per group, and)-.22 E
(optionally creates shortest-path trees per source.)97 159.6 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 232.471
(elas [P)-.165 F(age 2])-.165 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 13/Times-Bold@0 SF -1.196
(Ta)239.126 85 S(ble of Contents)1.196 E/F2 10/Times-Roman@0 SF
(1. Introduction)97 123 Q F0 11(......................)3.56 G F2(5)11.5
E(2. T)97 135 Q(erminology)-.7 E F0 11(......................)1.48 G F2
(5)11.5 E(2.1. De\214nitions)107 147 Q F0 11(.....................)4.8 G
F2(5)11.5 E(2.2. Pseudocode Notation)107 159 Q F0 11(..................)
5.23 G F2(6)11.5 E(3. PIM-SM Protocol Ov)97 171 Q(ervie)-.15 E(w)-.25 E
F0 11(.................)8.27 G F2(6)11.5 E(4. Protocol Speci\214cation)
97 183 Q F0 11(...................)5.64 G F2(10)6.5 E
(4.1. PIM Protocol State)107 195 Q F0 11(...................).08 G F2
(10)6.5 E(4.1.1. General Purpose State)117 207 Q F0 11(................)
11.63 G F2(11)6.5 E(4.1.2. \(*,*,RP\) State)117 219 Q F0 11
(...................)2.86 G F2(11)6.5 E(4.1.3. \(*,G\) State)117 231 Q
F0 11(....................)1.62 G F2(12)6.5 E(4.1.4. \(S,G\) State)117
243 Q F0 11(....................)1.06 G F2(13)6.5 E
(4.1.5. \(S,G,rpt\) State)117 255 Q F0 11(...................)1.2 G F2
(14)6.5 E(4.1.6. State Summarization Macros)117 267 Q F0 11
(..............)11.9 G F2(15)6.5 E(4.2. Data P)107 279 Q(ack)-.15 E
(et F)-.1 E(orw)-.15 E(arding Rules)-.1 E F0 11(...............)9.77 G
F2(18)6.5 E(4.2.1. Last-hop Switcho)117 291 Q -.15(ve)-.15 G 2.5(rt).15
G 2.5(ot)-2.5 G(he SPT)-2.5 E F0 11(.............)13.72 G F2(21)6.5 E
(4.2.2. Setting and Clearing the \(S,G\) SPTbit)117 303 Q F0 11
(............)3.83 G F2(21)6.5 E
(4.3. Designated Routers \(DR\) and Hello Messages)107 315 Q F0 11
(...........)2.06 G F2(22)6.5 E(4.3.1. Sending Hello Messages)117 327 Q
F0 11(................)1.62 G F2(22)6.5 E(4.3.2. DR Election)117 339 Q
F0 11(...................)9.53 G F2(24)6.5 E
(4.3.3. Reducing Prune Propag)117 351 Q(ation Delay on LANs)-.05 E F0 11
(..........)2.24 G F2(25)6.5 E
(4.3.4. Maintaining Secondary Address Lists)117 363 Q F0 11
(............)4.68 G F2(28)6.5 E(4.4. PIM Re)107 375 Q(gister Messages)
-.15 E F0 11(.................)9.41 G F2(29)6.5 E(4.4.1. Sending Re)117
387 Q(gister Messages from the DR)-.15 E F0 11(...........)6.36 G F2(29)
6.5 E(4.4.2. Recei)117 399 Q(ving Re)-.25 E(gister Messages at the RP)
-.15 E F0 11(...........)12.72 G F2(33)6.5 E
(4.5. PIM Join/Prune Messages)107 411 Q F0 11(................)13.56 G
F2(35)6.5 E(4.5.1. Recei)117 423 Q(ving \(*,*,RP\) Join/Prune Messages)
-.25 E F0 11(...........)5.9 G F2(36)6.5 E(4.5.2. Recei)117 435 Q
(ving \(*,G\) Join/Prune Messages)-.25 E F0 11(............)4.66 G F2
(38)6.5 E(4.5.3. Recei)117 447 Q(ving \(S,G\) Join/Prune Messages)-.25 E
F0 11(............)4.1 G F2(41)6.5 E(4.5.4. Recei)117 459 Q
(ving \(S,G,rpt\) Join/Prune Messages)-.25 E F0 11(...........)4.24 G F2
(44)6.5 E(4.5.5. Sending \(*,*,RP\) Join/Prune Messages)117 471 Q F0 11
(...........)13.42 G F2(48)6.5 E
(4.5.6. Sending \(*,G\) Join/Prune Messages)117 483 Q F0 11
(............)12.18 G F2(52)6.5 E
(4.5.7. Sending \(S,G\) Join/Prune Messages)117 495 Q F0 11
(............)11.62 G F2(55)6.5 E(4.5.8. \(S,G,rpt\) Periodic Messages)
117 507 Q F0 11(...............)1.49 G F2(59)6.5 E
(4.5.9. State Machine for \(S,G,rpt\) T)117 519 Q(riggered Messages)-.35
E F0 11(.........)4.09 G F2(60)6.5 E
(4.5.10. Background: \(*,*,RP\) and \(S,G,rpt\) Interaction)117 531 Q F0
11(.........)2.89 G F2(63)6.5 E(4.6. PIM Assert Messages)107 543 Q F0 11
(..................)3.29 G F2(64)6.5 E
(4.6.1. \(S,G\) Assert Message State Machine)117 555 Q F0 11
(............)8.03 G F2(64)6.5 E
(4.6.2. \(*,G\) Assert Message State Machine)117 567 Q F0 11
(............)8.59 G F2(70)6.5 E(4.6.3. Assert Metrics)117 579 Q F0 11
(...................).65 G F2(75)6.5 E(4.6.4. AssertCancel Messages)117
591 Q F0 11(................)5.8 G F2(76)6.5 E
(4.6.5. Assert State Macros)117 603 Q F0 11(.................)6.21 G F2
(77)6.5 E(4.7. PIM Bootstrap and RP Disco)107 615 Q -.15(ve)-.15 G(ry)
.15 E F0 11(..............)11.36 G F2(79)6.5 E
(4.7.1. Group-to-RP Mapping)117 627 Q F0 11(................)9.67 G F2
(80)6.5 E(4.7.2. Hash Function)117 639 Q F0 11(...................).64 G
F2(80)6.5 E(4.8. Source-Speci\214c Multicast)107 651 Q F0 11
(.................).65 G F2(81)6.5 E
(4.8.1. Protocol Modi\214cations for SSM destination addresses)117 663 Q
F0 11(.......)8.42 G F2(81)6.5 E(4.8.2. PIM-SSM-only Routers)117 675 Q
F0 11(................)4.66 G F2(82)6.5 E(4.9. PIM P)107 687 Q(ack)-.15
E(et F)-.1 E(ormats)-.15 E F0 11(..................)8.68 G F2(82)6.5 E
(4.9.1. Encoded Source and Group Address F)117 699 Q(ormats)-.15 E F0 11
(..........)2.35 G F2(83)6.5 E(4.9.2. Hello Message F)117 711 Q(ormat)
-.15 E F0 11(................)9.55 G F2(86)6.5 E(4.9.3. Re)117 723 Q
(gister Message F)-.15 E(ormat)-.15 E F0 11(...............)12.34 G F2
(88)6.5 E F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E
232.471(elas [P)-.165 F(age 3])-.165 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 10/Times-Roman@0 SF
(4.9.4. Re)117 84 Q(gister)-.15 E(-Stop Message F)-.2 E(ormat)-.15 E F0
11(..............)4.62 G F1(90)6.5 E(4.9.5. Join/Prune Message F)117 96
Q(ormat)-.15 E F0 11(...............)2.74 G F1(91)6.5 E
(4.9.5.1. Group Set Source List Rules)127 108 Q F0 11(.............)9.81
G F1(94)6.5 E(4.9.5.2. Group Set Fragmentation)127 120 Q F0 11
(..............)8.84 G F1(96)6.5 E(4.9.6. Assert Message F)117 132 Q
(ormat)-.15 E F0 11(................)6.22 G F1(97)6.5 E(4.10. PIM T)107
144 Q(imers)-.35 E F0 11(....................)9.74 G F1(98)6.5 E
(4.11. T)107 156 Q(imer V)-.35 E(alues)-1.11 E F0 11
(....................)4.75 G F1(99)6.5 E(5. IAN)97 168 Q 2.5(AC)-.35 G
(onsiderations)-2.5 E F0 11(...................)7.11 G F1(102)1.5 E
(5.1. PIM Address F)107 180 Q(amily)-.15 E F0 11(..................)6.76
G F1(102)1.5 E(5.2. PIM Hello Options)107 192 Q F0 11
(...................).08 G F1(103)1.5 E(6. Security Considerations)97
204 Q F0 11(..................)12.17 G F1(103)1.5 E
(6.1. Attacks based on for)107 216 Q(ged messages)-.18 E F0 11
(..............)8.49 G F1(103)1.5 E(6.1.1. F)117 228 Q(or)-.15 E
(ged link-local messages)-.18 E F0 11(...............)5.15 G F1(103)1.5
E(6.1.2. F)117 240 Q(or)-.15 E(ged unicast messages)-.18 E F0 11
(................)1.4 G F1(103)1.5 E
(6.2. Non-cryptographic Authentication Mechanisms)107 252 Q F0 11
(..........)9.42 G F1(104)1.5 E(6.3. Authentication using IPsec)107 264
Q F0 11(................)10.23 G F1(104)1.5 E
(6.3.1. Protecting link-local multicast messages)117 276 Q F0 11
(...........)7.87 G F1(104)1.5 E(6.3.2. Protecting unicast messages)117
288 Q F0 11(...............)2.04 G F1(105)1.5 E(6.3.2.1. Re)127 300 Q
(gister messages)-.15 E F0 11(................)9.55 G F1(105)1.5 E
(6.3.2.2. Re)127 312 Q(gister)-.15 E(-Stop messages)-.2 E F0 11
(...............)1.83 G F1(105)1.5 E(6.4. Denial of Service Attacks)107
324 Q F0 11(.................)1.22 G F1(105)1.5 E(7. Authors' Addresses)
97 336 Q F0 11(....................)1.35 G F1(106)1.5 E(8. Ackno)97 348
Q(wledgments)-.25 E F0 11(....................)5.76 G F1(106)1.5 E
(9. Normati)97 360 Q .3 -.15(ve R)-.25 H(eferences).15 E F0 11
(...................)4.96 G F1(106)1.5 E(10. Informati)97 372 Q .3 -.15
(ve R)-.25 H(eferences).15 E F0 11(..................)9.27 G F1(107)1.5
E(11. Appendix A: PIM Multicast Border Router Beha)97 384 Q(vior)-.2 E
F0 11(..........)1.55 G F1(108)1.5 E
(11.1. Sources External to the PIM-SM Domain)107 396 Q F0 11
(............)2.18 G F1(108)1.5 E
(11.2. Sources Internal to the PIM-SM Domain)107 408 Q F0 11
(............)4.96 G F1(108)1.5 E(12. Inde)97 420 Q(x)-.15 E F0 11
(.......................)11.63 G F1(110)1.5 E(13. Full Cop)97 432 Q
(yright Statement)-.1 E F0 11(..................)1.42 G F1(113)1.5 E/F2
13/Times-Bold@0 SF(List of Figur)247.674 484 Q(es)-.234 E F1
(Figure 1. Per)97 522 Q(-\(S,G\) re)-.2 E(gister state machine at a DR)
-.15 E F0 11(............).89 G F1(29)6.5 E(Figure 2. Do)97 534 Q
(wnstream per)-.25 E(-interf)-.2 E(ace \(*,*,RP\) state machine)-.1 E F0
11(.........)5.41 G F1(36)6.5 E(Figure 3. Do)97 546 Q(wnstream per)-.25
E(-interf)-.2 E(ace \(*,G\) state machine)-.1 E F0 11(..........)4.17 G
F1(39)6.5 E(Figure 4. Do)97 558 Q(wnstream per)-.25 E(-interf)-.2 E
(ace \(S,G\) state machine)-.1 E F0 11(..........)3.61 G F1(42)6.5 E
(Figure 5. Do)97 570 Q(wnstream per)-.25 E(-interf)-.2 E
(ace \(S,G,rpt\) state machine)-.1 E F0 11(.........)3.75 G F1(45)6.5 E
(Figure 6. Upstream \(*,*,RP\) state machine)97 582 Q F0 11
(..............)1.91 G F1(49)6.5 E
(Figure 7. Upstream \(*,G\) state machine)97 594 Q F0 11
(...............).67 G F1(52)6.5 E
(Figure 8. Upstream \(S,G\) state machine)97 606 Q F0 11
(...............).11 G F1(55)6.5 E
(Figure 9. Upstream \(S,G,rpt\) state machine for triggered messages)97
618 Q F0 11(.......)3.47 G F1(60)6.5 E(Figure 10. Per)97 630 Q(-interf)
-.2 E(ace \(S,G\) Assert State machine)-.1 E F0 11(...........)7.93 G F1
(65)6.5 E(Figure 11. Per)97 642 Q(-interf)-.2 E
(ace \(*,G\) Assert State machine)-.1 E F0 11(...........)8.49 G F1(71)
6.5 E F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 232.471
(elas [P)-.165 F(age 4])-.165 E 0 Cg EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(1.)72 85
Q/F2 14/Times-Bold@0 SF(Intr)5.5 E(oduction)-.252 E F0
(This document speci\214es a protocol for ef)72 101.6 Q
(\214ciently routing multicast groups that may span wide-)-.275 E
(area \(and inter)72 114.6 Q(-domain\) internets.)-.22 E
(This protocol is called Protocol Independent Multicast - Sparse)5.5 E(\
Mode \(PIM-SM\) because, although it may use the underlying unicast rou\
ting to pro)72 127.6 Q(vide re)-.165 E -.165(ve)-.275 G(rse-).165 E
(path information for multicast tree b)72 140.6 Q
(uilding, it is not dependent on an)-.22 E 2.75(yp)-.165 G
(articular unicast routing)-2.75 E(protocol.)72 153.6 Q(PIM-SM v)72
170.2 Q(ersion 2 w)-.165 E
(as originally speci\214ed in RFC 2117, and re)-.11 E
(vised in RFC 2362.)-.275 E(This)5.5 E(document is intended to obsolete\
 RFC 2362, and to correct a number of de\214ciencies that ha)72 183.2 Q
-.165(ve)-.22 G(been identi\214ed with the w)72 196.2 Q(ay PIM-SM w)-.11
E(as pre)-.11 E(viously speci\214ed.)-.275 E(As f)5.5 E
(ar as possible, this document)-.11 E
(speci\214es the same protocol as RFC 2362, and only di)72 209.2 Q -.165
(ve)-.275 G -.198(rg).165 G(es from the beha).198 E
(vior intended by RFC)-.22 E(2362 when the pre)72 222.2 Q
(viously speci\214ed beha)-.275 E(vior w)-.22 E(as clearly incorrect.)
-.11 E(Routers implemented)5.5 E(according to the speci\214cation in th\
is document will be able to successfully interoperate with)72 235.2 Q
(routers implemented according to RFC 2362.)72 248.2 Q F1(2.)72 274.2 Q
F2 -1.288(Te)5.5 G(rminology)1.288 E F0(In this document, the k)72 290.8
Q .33 -.165(ey w)-.11 H(ords "MUST", "MUST NO).055 E(T", "REQ)-.44 E
(UIRED", "SHALL", "SHALL)-.11 E(NO)72 303.8 Q(T", "SHOULD", "SHOULD NO)
-.44 E(T", "RECOMMENDED", "MA)-.44 E(Y", and "OPTION)-1.155 E
(AL" are to)-.385 E
(be interpreted as described in RFC 2119 and indicate requirement le)72
316.8 Q -.165(ve)-.275 G(ls for compliant PIM-SM).165 E
(implementations.)72 329.8 Q F1(2.1.)72 355.8 Q/F3 13/Times-Bold@0 SF
(De\214nitions)5.5 E F0(This speci\214cation uses a number of terms to \
refer to the roles of routers participating in PIM-SM.)72 372.4 Q
(The follo)72 385.4 Q(wing terms ha)-.275 E .33 -.165(ve s)-.22 H
(pecial signi\214cance for PIM-SM:).165 E(Rendezv)72 402 Q
(ous Point \(RP\):)-.22 E(An RP is a router that has been con\214gured \
to be used as the root of the non-source-)105 415 Q(speci\214c distrib)
105 428 Q(ution tree for a multicast group.)-.22 E
(Join messages from recei)5.5 E -.165(ve)-.275 G(rs for a group).165 E
(are sent to)105 441 Q -.11(wa)-.275 G(rds the RP).11 E 2.75(,a)-1.221 G
(nd data from senders is sent to the RP so that recei)-2.75 E -.165(ve)
-.275 G(rs can).165 E(disco)105 454 Q -.165(ve)-.165 G 2.75(rw).165 G
(ho the senders are, and start to recei)-2.75 E .33 -.165(ve t)-.275 H
(raf).165 E(\214c destined for the group.)-.275 E
(Designated Router \(DR\):)72 470.6 Q 2.75(As)105 483.6 S
(hared-media LAN lik)-2.75 E 2.75(eE)-.11 G(thernet may ha)-2.75 E .33
-.165(ve m)-.22 H(ultiple PIM-SM routers connected to it. A).165 E(sing\
le one of these routers, the DR, will act on behalf of directly connect\
ed hosts with)105 496.6 Q(respect to the PIM-SM protocol.)105 509.6 Q
2.75(As)5.5 G(ingle DR is elected per interf)-2.75 E
(ace \(LAN or otherwise\))-.11 E(using a simple election process.)105
522.6 Q(MRIB)72 539.2 Q(Multicast Routing Information Base.)105 552.2 Q
(This is the multicast topology table, which is)5.5 E(typically deri)105
565.2 Q -.165(ve)-.275 G 2.75(df).165 G
(rom the unicast routing table, or routing protocols such as MBGP that)
-2.75 E(carry multicast-speci\214c topology information.)105 578.2 Q
(In PIM-SM, the MRIB is used to decide)5.5 E
(where to send Join/Prune messages.)105 591.2 Q 2.75(As)5.5 G
(econdary function of the MRIB is to pro)-2.75 E(vide)-.165 E(routing m\
etrics for destination addresses, these metrics are used when sending a\
nd)105 604.2 Q(processing Assert messages.)105 617.2 Q(RPF Neighbor)72
633.8 Q(RPF stands for "Re)105 646.8 Q -.165(ve)-.275 G(rse P).165 E
(ath F)-.165 E(orw)-.165 E 2.75(arding". The)-.11 F
(RPF Neighbor of a router with respect to)2.75 E(an address is the neig\
hbor that the MRIB indicates should be used to forw)105 659.8 Q
(ard pack)-.11 E(ets to)-.11 E(that address.)105 672.8 Q(In the case of\
 a PIM-SM multicast group, the RPF neighbor is the router that)5.5 E
2.75(aJ)105 685.8 S(oin message for that group w)-2.75 E
(ould be directed to, in the absence of modifying Assert)-.11 E(state.)
105 698.8 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E
174.721(elas Section)-.165 F 2.75(2.1. [P)2.75 F(age 5])-.165 E 0 Cg EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 12.529(TIB T)72 85 R
(ree Information Base.)-.385 E
(This is the collection of state at a PIM router that has been created)
5.5 E(by recei)105 98 Q
(ving PIM Join/Prune messages, PIM Assert messages, and IGMP or MLD)
-.275 E(information from local hosts.)105 111 Q
(It essentially stores the state of all multicast distrib)5.5 E(ution)
-.22 E(trees at that router)105 124 Q(.)-.605 E 3.355(MFIB Multicast)72
140.6 R -.165(Fo)2.75 G(rw).165 E(arding Information Base.)-.11 E
(The TIB holds all the state that is necessary to)5.5 E(forw)105 153.6 Q
(ard multicast pack)-.11 E(ets at a router)-.11 E 5.5(.H)-.605 G -.275
(ow)-5.5 G -2.365 -.275(ev e).275 H .88 -.44(r, a).275 H
(lthough this speci\214cation de\214nes).44 E(forw)105 166.6 Q
(arding in terms of the TIB, to actually forw)-.11 E(ard pack)-.11 E
(ets using the TIB is v)-.11 E(ery)-.165 E(inef)105 179.6 Q 2.75
(\214cient. Instead)-.275 F 2.75(ar)2.75 G
(eal router implementation will normally b)-2.75 E(uild an ef)-.22 E
(\214cient MFIB)-.275 E(from the TIB state to perform forw)105 192.6 Q
2.75(arding. Ho)-.11 F 2.75(wt)-.275 G
(his is done is implementation-speci\214c,)-2.75 E
(and is not discussed in this document.)105 205.6 Q(Upstream)72 222.2 Q
-1.265 -.88(To w)105 235.2 T(ards the root of the tree.).77 E
(The root of tree may either be the source or the RP)5.5 E
(depending on the conte)105 248.2 Q(xt.)-.165 E(Do)72 264.8 Q(wnstream)
-.275 E -.836 -1.012(Aw a)105 277.8 T 2.75(yf)1.012 G
(rom the root of the tree.)-2.75 E/F1 11/Times-Bold@0 SF(2.2.)72 303.8 Q
/F2 13/Times-Bold@0 SF(Pseudocode Notation)5.5 E F0 1.76 -.88(We u)72
320.4 T(se set notation in se).88 E -.165(ve)-.275 G
(ral places in this speci\214cation.).165 E/F3 11/Courier@0 SF(A)72 337
Q/F4 11/Symbol SF(+)6.88 E 88.5 334.25 2.75 DC .44 LW ST F3(B)98.4 337 Q
F0(is the union of tw)94 350 Q 2.75(os)-.11 G(ets A and B.)-2.75 E F3(A)
72 366.6 Q F4(-)6.88 E 88.5 363.85 2.75 DC ST F3(B)98.4 366.6 Q F0
(is the elements of set A that are not in set B.)94 379.6 Q F3(NULL)72
396.2 Q F0(is the empty set or list.)94 409.2 Q
(In addition, we use C-lik)72 425.8 Q 2.75(es)-.11 G(yntax:)-2.75 E
15.796(=d)72 442.4 S(enotes assignment of a v)-15.796 E(ariable.)-.275 E
6.842(== denotes)72 459 R 2.75(ac)2.75 G(omparison for equality)-2.75 E
(.)-.715 E F4<b9>72 475.6 Q F0(denotes a comparison for inequality)
15.961 E(.)-.715 E(Braces { and } are used for grouping.)72 492.2 Q F1
(3.)72 521.8 Q/F5 14/Times-Bold@0 SF(PIM-SM Pr)5.5 E(otocol Ov)-.252 E
(er)-.14 E(view)-.14 E F0(This section pro)72 538.4 Q(vides an o)-.165 E
-.165(ve)-.165 G(rvie).165 E 2.75(wo)-.275 G 2.75(fP)-2.75 G(IM-SM beha)
-2.75 E(vior)-.22 E 5.5(.I)-.605 G 2.75(ti)-5.5 G 2.75(si)-2.75 G
(ntended as an introduction to ho)-2.75 E(w)-.275 E(PIM-SM w)72 551.4 Q
(orks, and is)-.11 E F1(NO)2.75 E(T)-.44 E F0(de\214niti)2.75 E -.165
(ve)-.275 G 5.5(.F).165 G(or the de\214niti)-5.665 E .33 -.165(ve s)
-.275 H(peci\214cation, see Section 4.).165 E
(PIM relies on an underlying topology-g)72 568 Q
(athering protocol to populate a routing table with routes.)-.055 E(Thi\
s routing table is called the MRIB or Multicast Routing Information Bas\
e.)72 581 Q(The routes in this)5.5 E(table may be tak)72 594 Q
(en directly from the unicast routing table, or it may be dif)-.11 E
(ferent and pro)-.275 E(vided by)-.165 E 2.75(as)72 607 S
(eparate routing protocol such as MBGP [9]. Re)-2.75 E -.055(ga)-.165 G
(rdless of ho).055 E 2.75(wi)-.275 G 2.75(ti)-2.75 G 2.75(sc)-2.75 G
(reated, the primary role of)-2.75 E
(the MRIB in the PIM protocol is to pro)72 620 Q(vide the ne)-.165 E
(xt hop router along a multicast-capable path to)-.165 E
(each destination subnet.)72 633 Q(The MRIB is used to determine the ne)
5.5 E(xt hop neighbor to which an)-.165 E 2.75(yP)-.165 G(IM)-2.75 E
(Join/Prune message is sent.)72 646 Q(Data \215o)5.5 E(ws along the re)
-.275 E -.165(ve)-.275 G(rse path of the Join messages.).165 E(Thus, in)
5.5 E(contrast to the unicast RIB which speci\214es the ne)72 659 Q
(xt hop that a data pack)-.165 E(et w)-.11 E(ould tak)-.11 E 2.75(et)
-.11 G 2.75(og)-2.75 G(et)-2.75 E/F6 11/Times-Italic@0 SF(to)2.75 E F0
(some subnet, the MRIB gi)72 672 Q -.165(ve)-.275 G 2.75(sr).165 G
-2.365 -.275(ev e)-2.75 H
(rse-path information, and indicates the path that a multicast).275 E
(data pack)72 685 Q(et w)-.11 E(ould tak)-.11 E(e)-.11 E F6(fr)2.75 E
(om)-.495 E F0(its origin subnet to the router that has the MRIB.)2.75 E
(Lik)72 701.6 Q 2.75(ea)-.11 G(ll multicast routing protocols that impl\
ement the service model from RFC 1112 [2], PIM-)-2.75 E
(SM must be able to route data pack)72 714.6 Q
(ets from sources to recei)-.11 E -.165(ve)-.275 G
(rs without either the sources or).165 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 182.971(elas Section)-.165 F 2.75
(3. [P)2.75 F(age 6])-.165 E 0 Cg EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(recei)72 85 Q -.165(ve)-.275 G
(rs kno).165 E(wing a-priori of the e)-.275 E(xistence of the others.)
-.165 E(This is essentially done in three phases,)5.5 E
(although as senders and recei)72 98 Q -.165(ve)-.275 G
(rs may come and go at an).165 E 2.75(yt)-.165 G
(ime, all three phases may be occur)-2.75 E(simultaneously)72 111 Q(.)
-.715 E/F1 11/Times-Bold@0 SF(Phase One: RP T)72 137 Q -.198(re)-.814 G
(e).198 E F0(In phase one, a multicast recei)72 153.6 Q -.165(ve)-.275 G
2.75(re).165 G(xpresses its interest in recei)-2.915 E(ving traf)-.275 E
(\214c destined for a multicast)-.275 E 2.75(group. T)72 166.6 R
(ypically it does this using IGMP [1] or MLD [3], b)-.88 E
(ut other mechanisms might also serv)-.22 E(e)-.165 E(this purpose.)72
179.6 Q(One of the recei)5.5 E -.165(ve)-.275 G(r').165 E 2.75(sl)-.605
G(ocal routers is elected as the Designated Router \(DR\) for that)-2.75
E 2.75(subnet. On)72 192.6 R(recei)2.75 E(ving the recei)-.275 E -.165
(ve)-.275 G(r').165 E 2.75(se)-.605 G
(xpression of interest, the DR then sends a PIM Join message)-2.915 E
(to)72 205.6 Q -.11(wa)-.275 G(rds the RP for that multicast group.).11
E(This Join message is kno)5.5 E(wn as a \(*,G\) Join because it)-.275 E
(joins group G for all sources to that group.)72 218.6 Q
(The \(*,G\) Join tra)5.5 E -.165(ve)-.22 G(ls hop-by-hop to).165 E -.11
(wa)-.275 G(rds the RP for).11 E(the group, and in each router it passe\
s through, multicast tree state for group G is instantiated.)72 231.6 Q
(Ev)72 244.6 Q(entually the \(*,G\) Join either reaches the RP)-.165 E
2.75(,o)-1.221 G 2.75(rr)-2.75 G
(eaches a router that already has \(*,G\) Join)-2.75 E
(state for that group.)72 257.6 Q(When man)5.5 E 2.75(yr)-.165 G(ecei)
-2.75 E -.165(ve)-.275 G(rs join the group, their Join messages con).165
E -.165(ve)-.44 G -.198(rg).165 G 2.75(eo).198 G 2.75(nt)-2.75 G(he)
-2.75 E(RP)72 270.6 Q 2.75(,a)-1.221 G(nd form a distrib)-2.75 E
(ution tree for group G that is rooted at the RP)-.22 E 5.5(.T)-1.221 G
(his is kno)-5.5 E(wn as the RP T)-.275 E(ree)-.385 E
(\(RPT\), and is also kno)72 283.6 Q(wn as the shared tree because it i\
s shared by all sources sending to that)-.275 E 2.75(group. Join)72
296.6 R(messages are resent periodically so long as the recei)2.75 E
-.165(ve)-.275 G 2.75(rr).165 G(emains in the group.)-2.75 E(When)5.5 E
(all recei)72 309.6 Q -.165(ve)-.275 G(rs on a leaf-netw).165 E(ork lea)
-.11 E .33 -.165(ve t)-.22 H
(he group, the DR will send a PIM \(*,G\) Prune message).165 E(to)72
322.6 Q -.11(wa)-.275 G(rds the RP for that multicast group. Ho).11 E
(we)-.275 E -.165(ve)-.275 G 2.75(ri).165 G 2.75(ft)-2.75 G
(he Prune message is not sent for an)-2.75 E 2.75(yr)-.165 G(eason,)
-2.75 E(the state will e)72 335.6 Q -.165(ve)-.275 G(ntually time out.)
.165 E 2.75(Am)72 352.2 S(ulticast data sender just starts sending data\
 destined for a multicast group.)-2.75 E(The sender')5.5 E 2.75(sl)-.605
G(ocal)-2.75 E(router \(DR\) tak)72 365.2 Q(es those data pack)-.11 E
(ets, unicast-encapsulates them, and sends them directly to the)-.11 E
(RP)72 378.2 Q 5.5(.T)-1.221 G(he RP recei)-5.5 E -.165(ve)-.275 G 2.75
(st).165 G(hese encapsulated data pack)-2.75 E
(ets, decapsulates them, and forw)-.11 E(ards them onto)-.11 E
(the shared tree.)72 391.2 Q(The pack)5.5 E(ets then follo)-.11 E 2.75
(wt)-.275 G(he \(*,G\) multicast tree state in the routers on the RP)
-2.75 E -.385(Tr)72 404.2 S(ee, being replicated where).385 E -.165(ve)
-.275 G 2.75(rt).165 G(he RP T)-2.75 E(ree branches, and e)-.385 E -.165
(ve)-.275 G(ntually reaching all the recei).165 E -.165(ve)-.275 G(rs)
.165 E(for that multicast group.)72 417.2 Q
(The process of encapsulating data pack)5.5 E
(ets to the RP is called re)-.11 E(gistering,)-.165 E
(and the encapsulation pack)72 430.2 Q(ets are kno)-.11 E(wn as PIM Re)
-.275 E(gister pack)-.165 E(ets.)-.11 E
(At the end of phase one, multicast traf)72 446.8 Q(\214c is \215o)-.275
E(wing encapsulated to the RP)-.275 E 2.75(,a)-1.221 G(nd then nati)
-2.75 E -.165(ve)-.275 G(ly o).165 E -.165(ve)-.165 G(r).165 E
(the RP tree to the multicast recei)72 459.8 Q -.165(ve)-.275 G(rs.).165
E F1(Phase T)72 498.8 Q -.11(wo)-.814 G 2.75(:R).11 G(egister)-2.75 E
(-Stop)-.407 E F0(Re)72 515.4 Q(gister)-.165 E
(-encapsulation of data pack)-.22 E(ets is inef)-.11 E(\214cient for tw)
-.275 E 2.75(or)-.11 G(easons:)-2.75 E 7.15<8345>72 532 S
(ncapsulation and decapsulation may be relati)-7.15 E -.165(ve)-.275 G
(ly e).165 E(xpensi)-.165 E .33 -.165(ve o)-.275 H
(perations for a router to).165 E
(perform, depending on whether or not the router has appropriate hardw)
83 545 Q(are for these tasks.)-.11 E 7.15<8354>72 561.6 S(ra)-7.535 E
-.165(ve)-.22 G(ling all the w).165 E(ay to the RP)-.11 E 2.75(,a)-1.221
G(nd then back do)-2.75 E(wn the shared tree may entail the pack)-.275 E
(ets)-.11 E(tra)83 574.6 Q -.165(ve)-.22 G(ling a relati).165 E -.165
(ve)-.275 G(ly long distance to reach recei).165 E -.165(ve)-.275 G
(rs that are close to the sender).165 E 5.5(.F)-.605 G(or some)-5.665 E
(applications, this increased latenc)83 587.6 Q 2.75(yo)-.165 G 2.75(rb)
-2.75 G(andwidth consumption is undesirable.)-2.75 E(Although Re)72
604.2 Q(gister)-.165 E(-encapsulation may continue inde\214nitely)-.22 E
2.75(,f)-.715 G(or these reasons, the RP will)-2.75 E
(normally choose to switch to nati)72 617.2 Q .33 -.165(ve f)-.275 H
(orw).165 E 2.75(arding. T)-.11 F 2.75(od)-.88 G 2.75(ot)-2.75 G
(his, when the RP recei)-2.75 E -.165(ve)-.275 G 2.75(sar).165 G -.165
(eg)-2.75 G(ister).165 E(-)-.22 E(encapsulated data pack)72 630.2 Q(et \
from source S on group G, it will normally initiate an \(S,G\) source-)
-.11 E(speci\214c Join to)72 643.2 Q -.11(wa)-.275 G(rds S.).11 E
(This Join message tra)5.5 E -.165(ve)-.22 G(ls hop-by-hop to).165 E
-.11(wa)-.275 G(rds S, instantiating \(S,G\)).11 E
(multicast tree state in the routers along the path.)72 656.2 Q
(\(S,G\) multicast tree state is used only to forw)5.5 E(ard)-.11 E
(pack)72 669.2 Q(ets for group G if those pack)-.11 E
(ets come from source S.)-.11 E(Ev)5.5 E
(entually the Join message reaches)-.165 E(S')72 682.2 Q 2.75(ss)-.605 G
(ubnet or a router that already has \(S,G\) multicast tree state, and t\
hen pack)-2.75 E(ets from S start to)-.11 E<8d6f>72 695.2 Q 2.75(wf)
-.275 G(ollo)-2.75 E(wing the \(S,G\) tree state to)-.275 E -.11(wa)
-.275 G(rds the RP).11 E 5.5(.T)-1.221 G(hese data pack)-5.5 E
(ets may also reach routers)-.11 E(with \(*,G\) state along the path to)
72 708.2 Q -.11(wa)-.275 G(rds the RP - if so, the).11 E 2.75(yc)-.165 G
(an short-cut onto the RP tree at this)-2.75 E(point.)72 721.2 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 182.971
(elas Section)-.165 F 2.75(3. [P)2.75 F(age 7])-.165 E 0 Cg EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(While the RP is in the proces\
s of joining the source-speci\214c tree for S, the data pack)72 85 Q
(ets will)-.11 E(continue being encapsulated to the RP)72 98 Q 5.5(.W)
-1.221 G(hen pack)-5.5 E(ets from S also start to arri)-.11 E .33 -.165
(ve n)-.275 H(ati).165 E -.165(ve)-.275 G(ly at the).165 E(the RP)72 111
Q 2.75(,t)-1.221 G(he RP will be recei)-2.75 E(ving tw)-.275 E 2.75(oc)
-.11 G(opies of each of these pack)-2.75 E 2.75(ets. At)-.11 F
(this point, the RP starts)2.75 E(to discard the encapsulated cop)72 124
Q 2.75(yo)-.11 G 2.75(ft)-2.75 G(hese pack)-2.75 E
(ets, and it sends a Re)-.11 E(gister)-.165 E(-Stop message back to)-.22
E(S')72 137 Q 2.75(sD)-.605 G 2.75(Rt)-2.75 G 2.75(op)-2.75 G(re)-2.75 E
-.165(ve)-.275 G(nt the DR unnecessarily encapsulating the pack).165 E
(ets.)-.11 E(At the end of phase 2, traf)72 153.6 Q(\214c will be \215o)
-.275 E(wing nati)-.275 E -.165(ve)-.275 G
(ly from S along a source-speci\214c tree to the).165 E(RP)72 166.6 Q
2.75(,a)-1.221 G(nd from there along the shared tree to the recei)-2.75
E -.165(ve)-.275 G 2.75(rs. Where).165 F(the tw)2.75 E 2.75(ot)-.11 G
(rees intersect, traf)-2.75 E<8c63>-.275 E
(may transfer from the source-speci\214c tree to the RP tree, and so a)
72 179.6 Q -.22(vo)-.22 G(id taking a long detour via the).22 E(RP)72
192.6 Q(.)-1.221 E(It should be noted that a sender may start sending b\
efore or after a recei)72 209.2 Q -.165(ve)-.275 G 2.75(rj).165 G
(oins the group, and)-2.75 E(thus phase tw)72 222.2 Q 2.75(om)-.11 G
(ay happen before the shared tree to the recei)-2.75 E -.165(ve)-.275 G
2.75(ri).165 G 2.75(sb)-2.75 G(uilt.)-2.97 E/F1 11/Times-Bold@0 SF
(Phase 3: Shortest-P)72 261.2 Q(ath T)-.11 E -.198(re)-.814 G(e).198 E
F0(Although ha)72 277.8 Q(ving the RP join back to)-.22 E -.11(wa)-.275
G(rds the source remo).11 E -.165(ve)-.165 G 2.75(st).165 G
(he encapsulation o)-2.75 E -.165(ve)-.165 G(rhead, it does).165 E
(not completely optimize the forw)72 290.8 Q(arding paths.)-.11 E -.165
(Fo)5.5 G 2.75(rm).165 G(an)-2.75 E 2.75(yr)-.165 G(ecei)-2.75 E -.165
(ve)-.275 G(rs the route via the RP may).165 E(in)72 303.8 Q -.22(vo)
-.44 G(lv).22 E 2.75(eas)-.165 G(igni\214cant detour when compared with\
 the shortest path from the source to the recei)-2.75 E -.165(ve)-.275 G
-.605(r.).165 G/F2 10/Symbol SF<ef>555 319.4 Q F0 1.76 -.88(To o)72
320.4 T(btain lo).88 E(wer latencies or more ef)-.275 E
(\214cient bandwidth utilization, a router on the recei)-.275 E -.165
(ve)-.275 G(r').165 E 2.75(sL)-.605 G(AN,)-2.75 E(typically the DR, may\
 optionally initiate a transfer from the shared tree to a source-speci\
\214c)72 333.4 Q(shortest-path tree \(SPT\).)72 346.4 Q 1.76 -.88(To d)
5.5 H 2.75(ot).88 G(his, it issues an \(S,G\) Join to)-2.75 E -.11(wa)
-.275 G(rds S. This instantiates state in).11 E
(the routers along the path to S.)72 359.4 Q(Ev)5.5 E
(entually this join either reaches S')-.165 E 2.75(ss)-.605 G
(ubnet, or reaches a router)-2.75 E(that already has \(S,G\) state.)72
372.4 Q(When this happens, data pack)5.5 E(ets from S start to \215o)
-.11 E 2.75(wf)-.275 G(ollo)-2.75 E(wing the)-.275 E
(\(S,G\) state until the)72 385.4 Q 2.75(yr)-.165 G(each the recei)-2.75
E -.165(ve)-.275 G -.605(r.).165 G(At this point the recei)72 402 Q
-.165(ve)-.275 G 2.75(r\().165 G(or a router upstream of the recei)-2.75
E -.165(ve)-.275 G(r\) will be recei).165 E(ving tw)-.275 E 2.75(oc)-.11
G(opies of the)-2.75 E(data - one from the SPT and one from the RPT)72
415 Q 5.5(.W)-.814 G(hen the \214rst traf)-5.5 E(\214c starts to arri)
-.275 E .33 -.165(ve f)-.275 H(rom the).165 E(SPT)72 428 Q 2.75(,t)-.814
G(he DR or upstream router starts to drop the pack)-2.75 E
(ets for G from S that arri)-.11 E .33 -.165(ve v)-.275 H
(ia the RP tree.).165 E
(In addition, it sends an \(S,G\) Prune message to)72 441 Q -.11(wa)
-.275 G(rds the RP).11 E 5.5(.T)-1.221 G(his is kno)-5.5 E
(wn as an \(S,G,rpt\) Prune.)-.275 E(The Prune message tra)72 454 Q
-.165(ve)-.22 G(ls hop-by-hop, instantiating state along the path to)
.165 E -.11(wa)-.275 G(rds the RP).11 E(indicating that traf)72 467 Q
(\214c from S for G should NO)-.275 E 2.75(Tb)-.44 G 2.75(ef)-2.75 G
(orw)-2.75 E(arded in this direction.)-.11 E(The prune is)5.5 E(propag)
72 480 Q
(ated until it reaches the RP or a router that still needs the traf)
-.055 E(\214c from S for other recei)-.275 E -.165(ve)-.275 G(rs.).165 E
(By no)72 496.6 Q 1.43 -.715(w, t)-.275 H(he recei).715 E -.165(ve)-.275
G 2.75(rw).165 G(ill be recei)-2.75 E(ving traf)-.275 E
(\214c from S along the shortest-path tree between the)-.275 E(recei)72
509.6 Q -.165(ve)-.275 G 2.75(ra).165 G(nd S.)-2.75 E
(In addition, the RP is recei)5.5 E(ving the traf)-.275 E
(\214c from S, b)-.275 E(ut this traf)-.22 E(\214c is no longer)-.275 E
(reaching the recei)72 522.6 Q -.165(ve)-.275 G 2.75(ra).165 G
(long the RP tree.)-2.75 E(As f)5.5 E(ar as the recei)-.11 E -.165(ve)
-.275 G 2.75(ri).165 G 2.75(sc)-2.75 G(oncerned, this is the \214nal)
-2.75 E(distrib)72 535.6 Q(ution tree.)-.22 E F1(Sour)72 574.6 Q
(ce-speci\214c J)-.198 E(oins)-.165 E F0(IGMPv3 permits a recei)72 591.2
Q -.165(ve)-.275 G 2.75(rt).165 G 2.75(oj)-2.75 G
(oin a group and specify that it only w)-2.75 E(ants to recei)-.11 E .33
-.165(ve t)-.275 H(raf).165 E(\214c for a)-.275 E(group if that traf)72
604.2 Q(\214c comes from a particular source.)-.275 E(If a recei)5.5 E
-.165(ve)-.275 G 2.75(rd).165 G(oes this, and no other recei)-2.75 E
-.165(ve)-.275 G(r).165 E(on the LAN requires all the traf)72 617.2 Q
(\214c for the group, then the DR may omit performing a \(*,G\) join to)
-.275 E(set up the shared tree, and instead issue a source-speci\214c \
\(S,G\) join only)72 630.2 Q(.)-.715 E(The range of multicast addresses\
 from 232.0.0.0 to 232.255.255.255 is currently set aside for)72 646.8 Q
(source-speci\214c multicast in IPv4.)72 659.8 Q -.165(Fo)5.5 G 2.75(rg)
.165 G(roups in this range, recei)-2.75 E -.165(ve)-.275 G
(rs should only issue source-).165 E(speci\214c IGMPv3 joins.)72 672.8 Q
(If a PIM router recei)5.5 E -.165(ve)-.275 G 2.75(san).165 G
(on-source-speci\214c join for a group in this)-2.75 E
(range, it should ignore it, as described in Section 4.8.)72 685.8 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 182.971
(elas Section)-.165 F 2.75(3. [P)2.75 F(age 8])-.165 E 0 Cg EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(Sour)72
85 Q(ce-speci\214c Prunes)-.198 E F0(IGMPv3 also permits a recei)72
101.6 Q -.165(ve)-.275 G 2.75(rt).165 G 2.75(oj)-2.75 G
(oin a group and specify that it only w)-2.75 E(ants to recei)-.11 E .33
-.165(ve t)-.275 H(raf).165 E(\214c for)-.275 E 2.75(ag)72 114.6 S
(roup if that traf)-2.75 E<8c63>-.275 E/F2 11/Times-Italic@0 SF
(does not)2.75 E F0(come from a speci\214c source or sources.)2.75 E
(In this case, the DR will)5.5 E(perform a \(*,G\) join as normal, b)72
127.6 Q(ut may combine this with an \(S,G,rpt\) prune for each of the)
-.22 E(sources the recei)72 140.6 Q -.165(ve)-.275 G 2.75(rd).165 G
(oes not wish to recei)-2.75 E -.165(ve)-.275 G(.).165 E F1
(Multi-access T)72 179.6 Q(ransit LANs)-.814 E F0(The o)72 196.2 Q -.165
(ve)-.165 G(rvie).165 E 2.75(ws)-.275 G 2.75(of)-2.75 G
(ar has concerned itself with point-to-point transit links.)-2.86 E(Ho)
5.5 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, u).165 H(sing multi-).44 E
(access LANs such as Ethernet for transit is not uncommon.)72 209.2 Q
(This can cause complications for)5.5 E(three reasons:)72 222.2 Q 7.15
<8354>72 238.8 S .22 -.11(wo o)-8.03 H 2.75(rm).11 G
(ore routers on the LAN may issue \(*,G\) Joins to dif)-2.75 E
(ferent upstream routers on the)-.275 E(LAN because the)83 251.8 Q 2.75
(yh)-.165 G -2.475 -.22(av e)-2.75 H(inconsistent MRIB entries re)2.97 E
-.055(ga)-.165 G(rding ho).055 E 2.75(wt)-.275 G 2.75(or)-2.75 G
(each the RP)-2.75 E 5.5(.B)-1.221 G(oth paths)-5.5 E
(on the RP tree will be set up, causing tw)83 264.8 Q 2.75(oc)-.11 G
(opies of all the shared tree traf)-2.75 E(\214c to appear on the)-.275
E(LAN.)83 277.8 Q 7.15<8354>72 294.4 S .22 -.11(wo o)-8.03 H 2.75(rm).11
G(ore routers on the LAN may issue \(S,G\) Joins to dif)-2.75 E
(ferent upstream routers on the)-.275 E(LAN because the)83 307.4 Q 2.75
(yh)-.165 G -2.475 -.22(av e)-2.75 H(inconsistent MRIB entries re)2.97 E
-.055(ga)-.165 G(rding ho).055 E 2.75(wt)-.275 G 2.75(or)-2.75 G
(each source S.)-2.75 E(Both)5.5 E
(paths on the source-speci\214c tree will be set up, causing tw)83 320.4
Q 2.75(oc)-.11 G(opies of all the traf)-2.75 E(\214c from S to)-.275 E
(appear on the LAN.)83 333.4 Q 7.15<8341>72 350 S(router on the LAN may\
 issue a \(*,G\) Join to one upstream router on the LAN, and another)
-4.4 E(router on the LAN may issue an \(S,G\) Join to a dif)83 363 Q
(ferent upstream router on the same LAN.)-.275 E -.385(Tr)83 376 S(af)
.385 E(\214c from S may reach the LAN o)-.275 E -.165(ve)-.165 G 2.75
(rb).165 G(oth the RPT and the SPT)-2.75 E 5.5(.I)-.814 G 2.75(ft)-5.5 G
(he recei)-2.75 E -.165(ve)-.275 G 2.75(rb).165 G(ehind the)-2.75 E(do)
83 389 Q(wnstream \(*,G\) router doesn')-.275 E 2.75(ti)-.198 G
(ssue an \(S,G,rpt\) prune, then this condition w)-2.75 E(ould persist.)
-.11 E(All of these problems are caused by there being more than one up\
stream router with join state for)72 405.6 Q
(the group or source-group pair)72 418.6 Q 5.5(.P)-.605 G
(IM does not pre)-5.5 E -.165(ve)-.275 G
(nt such duplicate joins from occurring -).165 E
(instead when duplicate data pack)72 431.6 Q
(ets appear on the LAN from dif)-.11 E(ferent routers, these routers)
-.275 E(notice this, and then elect a single forw)72 444.6 Q(arder)-.11
E 5.5(.T)-.605 G(his election is performed using PIM Assert)-5.5 E
(messages, which resolv)72 457.6 Q 2.75(et)-.165 G(he problem in f)-2.75
E -.22(avo)-.11 G 2.75(ro).22 G 2.75(ft)-2.75 G
(he upstream router which has \(S,G\) state, or if)-2.75 E
(neither or both router has \(S,G\) state, then in f)72 470.6 Q -.22
(avo)-.11 G 2.75(ro).22 G 2.75(ft)-2.75 G
(he router with the best metric to the RP for)-2.75 E
(RP trees, or the best metric to the source to source-speci\214c trees.)
72 483.6 Q(These Assert messages are also recei)72 500.2 Q -.165(ve)
-.275 G 2.75(db).165 G 2.75(yt)-2.75 G(he do)-2.75 E
(wnstream routers on the LAN, and these cause)-.275 E
(subsequent Join messages to be sent to the upstream router that w)72
513.2 Q(on the Assert.)-.11 E F1(RP Disco)72 539.2 Q -.11(ve)-.11 G(ry)
.11 E F0(PIM-SM routers need to kno)72 555.8 Q 2.75(wt)-.275 G
(he address of the RP for each group for which the)-2.75 E 2.75(yh)-.165
G -2.475 -.22(av e)-2.75 H(\(*,G\))2.97 E 2.75(state. This)72 568.8 R(a\
ddress is obtained either automatically \(e.g., embedded-RP\), through \
a bootstrap)2.75 E(mechanism or through static con\214guration.)72 581.8
Q(One dynamic w)72 598.4 Q(ay to do this is to use the Bootstrap Router\
 \(BSR\) mechanism [11]. One router in)-.11 E(each PIM domain is electe\
d the Bootstrap Router through a simple election process.)72 611.4 Q
(All the)5.5 E(routers in the domain that are con\214gured to be candid\
ates to be RPs periodically unicast their)72 624.4 Q(candidac)72 637.4 Q
2.75(yt)-.165 G 2.75(ot)-2.75 G(he BSR.)-2.75 E
(From the candidates, the BSR picks an RP-set, and periodically)5.5 E
(announces this set in a Bootstrap message.)72 650.4 Q
(Bootstrap messages are \215ooded hop-by-hop)5.5 E
(throughout the domain until all routers in the domain kno)72 663.4 Q
2.75(wt)-.275 G(he RP-Set.)-2.75 E 1.76 -.88(To m)72 680 T
(ap a group to an RP).88 E 2.75(,ar)-1.221 G
(outer hashes the group address into the RP-set using an order)-2.75 E
(-)-.22 E(preserving hash function \(one that minimizes changes if the \
RP-Set changes\).)72 693 Q(The resulting RP is)5.5 E
(the one that it uses as the RP for that group.)72 706 Q(Fenner/Handle)
72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 182.971(elas Section)-.165 F
2.75(3. [P)2.75 F(age 9])-.165 E 0 Cg EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(4.)72 85
Q/F2 14/Times-Bold@0 SF(Pr)5.5 E(otocol Speci\214cation)-.252 E F0
(The speci\214cation of PIM-SM is brok)72 101.6 Q(en into se)-.11 E
-.165(ve)-.275 G(ral parts:).165 E 7.15<8353>72 118.2 S
(ection 4.1 details the protocol state stored.)-7.15 E 7.15<8353>72
134.8 S(ection 4.2 speci\214es the data pack)-7.15 E(et forw)-.11 E
(arding rules.)-.11 E 7.15<8353>72 151.4 S(ection 4.3. speci\214es Desi\
gnated Router \(DR\) election and the rules for sending and processing)
-7.15 E(Hello messages.)83 164.4 Q 7.15<8353>72 181 S
(ection 4.4 speci\214es the PIM Re)-7.15 E
(gister generation and processing rules.)-.165 E 7.15<8353>72 197.6 S(e\
ction 4.5 speci\214es the PIM Join/Prune generation and processing rule\
s.)-7.15 E 7.15<8353>72 214.2 S
(ection 4.6 speci\214es the PIM Assert generation and processing rules.)
-7.15 E 7.15<8353>72 230.8 S(ection 4.7 speci\214es the RP disco)-7.15 E
-.165(ve)-.165 G(ry mechanisms.).165 E 7.15<8354>72 247.4 S(he subset o\
f PIM required to support Source-Speci\214c Multicast, PIM-SSM, is desc\
ribed in)-7.15 E(Section 4.8.)83 260.4 Q 7.15<8350>72 277 S(IM pack)
-7.15 E(et formats are speci\214ed in Section 4.9.)-.11 E 7.15<8341>72
293.6 S(summary of PIM-SM timers and their def)-4.4 E(ault v)-.11 E
(alues is gi)-.275 E -.165(ve)-.275 G 2.75(ni).165 G 2.75(nS)-2.75 G
(ection 4.10.)-2.75 E 7.15<8341>72 310.2 S(ppendix A in Section 11 spec\
i\214es the PIM Multicast Border Router beha)-7.15 E(vior)-.22 E(.)-.605
E F1(4.1.)72 349.2 Q/F3 13/Times-Bold@0 SF(PIM Pr)5.5 E(otocol State)
-.234 E F0(This section speci\214es all the protocol state that a PIM i\
mplementation should maintain in order to)72 365.8 Q(function correctly)
72 378.8 Q 5.5(.W)-.715 G 2.75(et)-6.38 G(erm this state the)-2.75 E/F4
11/Times-Italic@0 SF -1.947 -.605(Tr e)2.75 H 2.75(eI).605 G
(nformation Base)-2.75 E F0(or TIB, as it holds the state of all)2.75 E
(the multicast distrib)72 391.8 Q(ution trees at this router)-.22 E 5.5
(.I)-.605 G 2.75(nt)-5.5 G
(his speci\214cation we de\214ne PIM mechanisms in)-2.75 E
(terms of the TIB.)72 404.8 Q(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G .88
-.44(r, o).165 H(nly a v).44 E(ery simple implementation w)-.165 E
(ould actually implement pack)-.11 E(et)-.11 E(forw)72 417.8 Q
(arding operations in terms of this state.)-.11 E
(Most implementations will use this state to b)5.5 E(uild a)-.22 E
(multicast forw)72 430.8 Q(arding table, which w)-.11 E
(ould then be updated when the rele)-.11 E -.275(va)-.275 G
(nt state in the TIB).275 E(changes.)72 443.8 Q
(Although we specify precisely the state to be k)72 460.4 Q
(ept, this does not mean that an implementation of)-.11 E
(PIM-SM needs to hold the state in this form.)72 473.4 Q
(This is actually an abstract state de\214nition, which is)5.5 E
(needed in order to specify the router')72 486.4 Q 2.75(sb)-.605 G(eha)
-2.75 E(vior)-.22 E 5.5(.A)-.605 G
(PIM-SM implementation is free to hold)-2.75 E(whate)72 499.4 Q -.165
(ve)-.275 G 2.75(ri).165 G(nternal state it requires, and will still be\
 conformant with this speci\214cation so long as it)-2.75 E
(results in the same e)72 512.4 Q(xternally visible protocol beha)-.165
E(vior as an abstract router that holds the)-.22 E(follo)72 525.4 Q
(wing state.)-.275 E 1.76 -.88(We d)72 542 T -.275(iv).88 G
(ide TIB state into four sections:).275 E(\(*,*,RP\) state)72 558.6 Q
(State that maintains per)97 571.6 Q(-RP trees, for all groups serv)-.22
E(ed by a gi)-.165 E -.165(ve)-.275 G 2.75(nR).165 G -1.221(P.)-2.75 G
(\(*,G\) state)72 588.2 Q(State that maintains the RP tree for G.)97
601.2 Q(\(S,G\) state)72 617.8 Q(State that maintains a source-speci\
\214c tree for source S and group G.)97 630.8 Q(\(S,G,rpt\) state)72
647.4 Q(State that maintains source-speci\214c information about source\
 S on the RP tree for G.)97 660.4 Q -.165(Fo)5.5 G(r).165 E -.165(ex)97
673.4 S(ample, if a source is being recei).165 E -.165(ve)-.275 G 2.75
(do).165 G 2.75(nt)-2.75 G
(he source-speci\214c tree, it will normally ha)-2.75 E .33 -.165(ve b)
-.22 H(een).165 E(pruned of)97 686.4 Q 2.75(ft)-.275 G(he RP tree.)-2.75
E(This prune state is \(S,G,rpt\) state.)5.5 E
(The state that should be k)72 703 Q(ept is described belo)-.11 E 4.18
-.715(w. O)-.275 H 2.75(fc).715 G
(ourse, implementations will only maintain)-2.75 E
(state when it is rele)72 716 Q -.275(va)-.275 G(nt to forw).275 E
(arding operations - for e)-.11 E(xample, the "NoInfo" state might be)
-.165 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 169.221
(elas Section)-.165 F 2.75(4.1. [P)2.75 F(age 10])-.165 E 0 Cg EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(assumed from the lack of othe\
r state information, rather than being held e)72 85 Q(xplicitly)-.165 E
(.)-.715 E/F1 11/Times-Bold@0 SF 2.75(4.1.1. General)72 111 R(Pur)2.75 E
(pose State)-.11 E F0 2.75(Ar)72 127.6 S(outer holds the follo)-2.75 E
(wing non-group-speci\214c state:)-.275 E -.165(Fo)97 144.2 S 2.75(re)
.165 G(ach interf)-2.75 E(ace:)-.11 E 7.15<834f>122 160.8 S -.165(ve)
-7.15 G(rride Interv).165 E(al)-.275 E 7.15<8350>122 177.4 S(ropag)-7.15
E(ation Delay)-.055 E 7.15<8353>122 194 S
(uppression state: One of {"Enable", "Disable"})-7.15 E F1
(Neighbor State:)122 210.6 Q F0 -.165(Fo)133 227.2 S 2.75(re).165 G
(ach neighbor:)-2.75 E 7.15<8349>158 243.8 S(nformation from neighbor')
-7.15 E 2.75(sH)-.605 G(ello)-2.75 E 7.15<834e>158 260.4 S(eighbor')
-7.15 E 2.75(sG)-.605 G(enID.)-2.75 E 7.15<834e>158 277 S(eighbor Li)
-7.15 E -.165(ve)-.275 G(ness T).165 E(imer \(NL)-.385 E(T\))-1.012 E F1
(Designated Router \(DR\) State:)122 293.6 Q F0 7.15<8344>133 310.2 S
(esignated Router')-7.15 E 2.75(sI)-.605 G 2.75(PA)-2.75 G(ddress)-2.75
E 7.15<8344>133 326.8 S(R')-7.15 E 2.75(sD)-.605 G 2.75(RP)-2.75 G
(riority)-2.75 E(The Ov)72 343.4 Q(erride Interv)-.165 E(al, the Propag)
-.275 E(ation Delay and the Interf)-.055 E
(ace suppression state are described in)-.11 E
(Section 4.3.3. Designated Router state is described in Section 4.3.)72
356.4 Q F1 2.75(4.1.2. \(*,*,RP\))72 382.4 R(State)2.75 E F0 -.165(Fo)72
399 S 2.75(re).165 G -.165(ve)-3.025 G(ry RP a router k).165 E
(eeps the follo)-.11 E(wing state:)-.275 E F1(\(*,*,RP\) state:)97 415.6
Q F0 -.165(Fo)122 428.6 S 2.75(re).165 G(ach interf)-2.75 E(ace:)-.11 E
F1(PIM \(*,*,RP\) J)147 445.2 Q(oin/Prune State:)-.165 E F0 7.15<8353>
172 461.8 S
(tate: One of {"NoInfo" \(NI\), "Join" \(J\), "Prune-Pending" \(PP\)})
-7.15 E 7.15<8350>172 478.4 S(rune-Pending T)-7.15 E(imer \(PPT\))-.385
E 7.15<834a>172 495 S(oin/Prune Expiry T)-7.15 E(imer \(ET\))-.385 E
(Not interf)122 511.6 Q(ace speci\214c:)-.11 E F1(Upstr)147 528.2 Q
(eam \(*,*,RP\) J)-.198 E(oin/Prune State:)-.165 E F0 7.15<8353>172
544.8 S(tate: One of {"NotJoined\(*,*,RP\)", "Joined\(*,*,RP\)"})-7.15 E
7.15<8355>147 561.4 S(pstream Join/Prune T)-7.15 E(imer \(JT\))-.385 E
7.15<834c>147 578 S(ast RPF Neighbor to)-7.15 E -.11(wa)-.275 G
(rds RP that w).11 E(as used)-.11 E
(PIM \(*,*,RP\) Join/Prune state is the result of recei)72 594.6 Q
(ving PIM \(*,*,RP\) Join/Prune messages on this)-.275 E(interf)72 607.6
Q(ace, and is speci\214ed in Section 4.5.1.)-.11 E(The upstream \(*,*,R\
P\) Join/Prune State re\215ects the state of the upstream \(*,*,RP\) st\
ate machine)72 624.2 Q(described in Section 4.5.5.)72 637.2 Q
(The upstream \(*,*,RP\) Join/Prune T)72 653.8 Q
(imer is used to send out periodic Join\(*,*,RP\) messages, and)-.385 E
(to o)72 666.8 Q -.165(ve)-.165 G
(rride Prune\(*,*,RP\) messages from peers on an upstream LAN interf)
.165 E(ace.)-.11 E(The last RPF neighbor to)72 683.4 Q -.11(wa)-.275 G
(rds the RP is stored because if the MRIB changes then the RPF).11 E
(neighbor to)72 696.4 Q -.11(wa)-.275 G(rds the RP may change.).11 E
(If it does so, then we need to trigger a ne)5.5 E 2.75(wJ)-.275 G
(oin\(*,*,RP\) to)-2.75 E(the ne)72 709.4 Q 2.75(wu)-.275 G
(pstream neighbor and a Prune\(*,*,RP\) to the old upstream neighbor)
-2.75 E 5.5(.S)-.605 G(imilarly)-5.5 E 2.75(,i)-.715 G 2.75(fa)-2.75 G(\
router detects through a changed GenID in a Hello message that the upst\
ream neighbor to)72 722.4 Q -.11(wa)-.275 G(rds).11 E(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.1.2. [P)2.75 F(age 11])-.165 E 0 Cg EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(the RP has rebooted, then it \
should re-instantiate state by sending a Join\(*,*,RP\).)72 85 Q(These)
5.5 E(mechanisms are speci\214ed in Section 4.5.5.)72 98 Q/F1 11
/Times-Bold@0 SF 2.75(4.1.3. \(*,G\))72 124 R(State)2.75 E F0 -.165(Fo)
72 140.6 S 2.75(re).165 G -.165(ve)-3.025 G(ry group G a router k).165 E
(eeps the follo)-.11 E(wing state:)-.275 E F1(\(*,G\) state:)97 157.2 Q
F0 -.165(Fo)122 170.2 S 2.75(re).165 G(ach interf)-2.75 E(ace:)-.11 E F1
(Local Membership:)147 186.8 Q F0(State: One of {"NoInfo", "Include"})
172 199.8 Q F1(PIM \(*,G\) J)147 216.4 Q(oin/Prune State:)-.165 E F0
7.15<8353>172 233 S
(tate: One of {"NoInfo" \(NI\), "Join" \(J\), "Prune-Pending" \(PP\)})
-7.15 E 7.15<8350>172 249.6 S(rune-Pending T)-7.15 E(imer \(PPT\))-.385
E 7.15<834a>172 266.2 S(oin/Prune Expiry T)-7.15 E(imer \(ET\))-.385 E
F1(\(*,G\) Assert W)147 282.8 Q(inner State)-.198 E F0 7.15<8353>172
299.4 S(tate: One of {"NoInfo" \(NI\), "I lost Assert" \(L\), "I w)-7.15
E(on Assert" \(W\)})-.11 E 7.15<8341>172 316 S(ssert T)-7.15 E(imer \(A)
-.385 E(T\))-1.221 E 7.15<8341>172 332.6 S(ssert winner')-7.15 E 2.75
(sI)-.605 G 2.75(PA)-2.75 G(ddress \(AssertW)-2.75 E(inner\))-.44 E 7.15
<8341>172 349.2 S(ssert winner')-7.15 E 2.75(sA)-.605 G
(ssert Metric \(AssertW)-2.75 E(innerMetric\))-.44 E(Not interf)122
365.8 Q(ace speci\214c:)-.11 E F1(Upstr)147 382.4 Q(eam \(*,G\) J)-.198
E(oin/Prune State:)-.165 E F0 7.15<8353>172 399 S
(tate: One of {"NotJoined\(*,G\)", "Joined\(*,G\)"})-7.15 E 7.15<8355>
147 415.6 S(pstream Join/Prune T)-7.15 E(imer \(JT\))-.385 E 7.15<834c>
147 432.2 S(ast RP Used)-7.15 E 7.15<834c>147 448.8 S
(ast RPF Neighbor to)-7.15 E -.11(wa)-.275 G(rds RP that w).11 E
(as used)-.11 E(Local membership is the result of the local membership \
mechanism \(such as IGMP or MLD\))72 465.4 Q(running on that interf)72
478.4 Q 2.75(ace. It)-.11 F(need not be k)2.75 E
(ept if this router is not the DR on that interf)-.11 E(ace unless)-.11
E(this router w)72 491.4 Q(on a \(*,G\) assert on this interf)-.11 E
(ace for this group, although implementations may)-.11 E(optionally k)72
504.4 Q(eep this state in case the)-.11 E 2.75(yb)-.165 G
(ecome the DR or assert winner)-2.75 E 5.5(.W)-.605 G 2.75(er)-6.38 G
(ecommend storing)-2.75 E
(this information if possible, as it reduces latenc)72 517.4 Q 2.75(yc)
-.165 G(on)-2.75 E -.165(ve)-.44 G -.198(rg).165 G
(ing to stable operating conditions after a).198 E -.11(fa)72 530.4 S
(ilure causing a change of DR.).11 E(This information is used by the)5.5
E/F2 11/Courier@0 SF(pim_include\(*,G\))2.75 E F0(macro)2.75 E
(described in Section 4.1.6.)72 543.4 Q
(PIM \(*,G\) Join/Prune state is the result of recei)72 560 Q
(ving PIM \(*,G\) Join/Prune messages on this)-.275 E(interf)72 573 Q(a\
ce, and is speci\214ed in Section 4.5.2. The state is used by the macro\
s that calculate the)-.11 E(outgoing interf)72 586 Q
(ace list in Section 4.1.6, and in the)-.11 E F2(JoinDesired\(*,G\))2.75
E F0(macro \(de\214ned in)2.75 E(Section 4.5.6\) that is used in decidi\
ng whether a Join\(*,G\) should be sent upstream.)72 599 Q
(\(*,G\) Assert W)72 615.6 Q
(inner state is the result of sending or recei)-.44 E
(ving \(*,G\) Assert messages on this)-.275 E(interf)72 628.6 Q 2.75
(ace. It)-.11 F(is speci\214ed in Section 4.6.2.)2.75 E(The upstream \(\
*,G\) Join/Prune State re\215ects the state of the upstream \(*,G\) sta\
te machine)72 645.2 Q(described in Section 4.5.6.)72 658.2 Q
(The upstream \(*,G\) Join/Prune T)72 674.8 Q
(imer is used to send out periodic Join\(*,G\) messages, and to)-.385 E
-.165(ove)72 687.8 S
(rride Prune\(*,G\) messages from peers on an upstream LAN interf).165 E
(ace.)-.11 E(The last RP used must be stored because if the RP-Set chan\
ges \(Section 4.7\) then state must be)72 704.4 Q(torn do)72 717.4 Q
(wn and reb)-.275 E(uilt for groups whose RP changes.)-.22 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.1.3. [P)2.75 F(age 12])-.165 E 0 Cg EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(The last RPF neighbor to)72 85
Q -.11(wa)-.275 G
(rds the RP is stored because if the MRIB changes then the RPF).11 E
(neighbor to)72 98 Q -.11(wa)-.275 G(rds the RP may change.).11 E
(If it does so, then we need to trigger a ne)5.5 E 2.75(wJ)-.275 G
(oin\(*,G\) to the)-2.75 E(ne)72 111 Q 2.75(wu)-.275 G
(pstream neighbor and a Prune\(*,G\) to the old upstream neighbor)-2.75
E 5.5(.S)-.605 G(imilarly)-5.5 E 2.75(,i)-.715 G 2.75(far)-2.75 G(outer)
-2.75 E(detects through a changed GenID in a Hello message that the ups\
tream neighbor to)72 124 Q -.11(wa)-.275 G(rds the RP).11 E(has reboote\
d, then it should re-instantiate state by sending a Join\(*,G\).)72 137
Q(These mechanisms are)5.5 E(speci\214ed in Section 4.5.6.)72 150 Q/F1
11/Times-Bold@0 SF 2.75(4.1.4. \(S,G\))72 176 R(State)2.75 E F0 -.165
(Fo)72 192.6 S 2.75(re).165 G -.165(ve)-3.025 G
(ry source/group pair \(S,G\) a router k).165 E(eeps the follo)-.11 E
(wing state:)-.275 E F1(\(S,G\) state:)97 209.2 Q F0 -.165(Fo)122 225.8
S 2.75(re).165 G(ach interf)-2.75 E(ace:)-.11 E F1(Local Membership:)147
242.4 Q F0(State: One of {"NoInfo", "Include"})172 255.4 Q F1
(PIM \(S,G\) J)147 272 Q(oin/Prune State:)-.165 E F0 7.15<8353>172 288.6
S(tate: One of {"NoInfo" \(NI\), "Join" \(J\), "Prune-Pending" \(PP\)})
-7.15 E 7.15<8350>172 305.2 S(rune-Pending T)-7.15 E(imer \(PPT\))-.385
E 7.15<834a>172 321.8 S(oin/Prune Expiry T)-7.15 E(imer \(ET\))-.385 E
F1(\(S,G\) Assert W)147 338.4 Q(inner State)-.198 E F0 7.15<8353>172 355
S(tate: One of {"NoInfo" \(NI\), "I lost Assert" \(L\), "I w)-7.15 E
(on Assert" \(W\)})-.11 E 7.15<8341>172 371.6 S(ssert T)-7.15 E
(imer \(A)-.385 E(T\))-1.221 E 7.15<8341>172 388.2 S(ssert winner')-7.15
E 2.75(sI)-.605 G 2.75(PA)-2.75 G(ddress \(AssertW)-2.75 E(inner\))-.44
E 7.15<8341>172 404.8 S(ssert winner')-7.15 E 2.75(sA)-.605 G
(ssert Metric \(AssertW)-2.75 E(innerMetric\))-.44 E(Not interf)122
421.4 Q(ace speci\214c:)-.11 E F1(Upstr)147 438 Q(eam \(S,G\) J)-.198 E
(oin/Prune State:)-.165 E F0 7.15<8353>172 454.6 S
(tate: One of {"NotJoined\(S,G\)", "Joined\(S,G\)"})-7.15 E 7.15<8355>
147 471.2 S(pstream \(S,G\) Join/Prune T)-7.15 E(imer \(JT\))-.385 E
7.15<834c>147 487.8 S(ast RPF Neighbor to)-7.15 E -.11(wa)-.275 G
(rds S that w).11 E(as used)-.11 E 7.15<8353>147 504.4 S
(PTbit \(indicates \(S,G\) state is acti)-7.15 E -.165(ve)-.275 G(\))
.165 E 7.15<8328>147 521 S(S,G\) K)-7.15 E(eepali)-.275 E .33 -.165
(ve T)-.275 H(imer \(KA)-.22 E(T\))-1.221 E F1
(Additional \(S,G\) state at the DR:)147 541.2 Q F0 7.15<8352>172 557.8
S -.165(eg)-7.15 G(ister state: One of {"Join" \(J\), "Prune" \(P\), "J\
oin-Pending" \(JP\),).165 E("NoInfo" \(NI\)})183 570.8 Q 7.15<8352>172
587.4 S -.165(eg)-7.15 G(ister).165 E(-Stop timer)-.22 E F1
(Additional \(S,G\) state at the RP:)147 604 Q F0 7.15<8350>172 620.6 S
(MBR: the \214rst PMBR to send a Re)-7.15 E
(gister for this source with the)-.165 E(Border bit set.)183 633.6 Q(Lo\
cal membership is the result of the local source-speci\214c membership \
mechanism \(such as)72 650.2 Q(IGMP v)72 663.2 Q
(ersion 3\) running on that interf)-.165 E
(ace and specifying that this particular source should be)-.11 E 2.75
(included. As)72 676.2 R
(stored here, this state is the resulting state after an)2.75 E 2.75(yI)
-.165 G(GMPv3 inconsistencies ha)-2.75 E -.165(ve)-.22 G(been resolv)72
689.2 Q 2.75(ed. It)-.165 F(need not be k)2.75 E
(ept if this router is not the DR on that interf)-.11 E
(ace unless this router)-.11 E -.11(wo)72 702.2 S 2.75(na\().11 G
(S,G\) assert on this interf)-2.75 E(ace for this group.)-.11 E(Ho)5.5 E
(we)-.275 E -.165(ve)-.275 G .88 -.44(r, w).165 H 2.75(er).44 G
(ecommend storing this)-2.75 E
(information if possible, as it reduces latenc)72 715.2 Q 2.75(yc)-.165
G(on)-2.75 E -.165(ve)-.44 G -.198(rg).165 G
(ing to stable operating conditions after a).198 E(Fenner/Handle)72 769
Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.1.4. [P)2.75 F(age 13])-.165 E 0 Cg EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E -.11(fa)72 85 S
(ilure causing a change of DR.).11 E(This information is used by the)5.5
E/F1 11/Courier@0 SF(pim_include\(S,G\))2.75 E F0(macro)2.75 E
(described in Section 4.1.6.)72 98 Q
(PIM \(S,G\) Join/Prune state is the result of recei)72 114.6 Q
(ving PIM \(S,G\) Join/Prune messages on this)-.275 E(interf)72 127.6 Q
(ace, and is speci\214ed in Section 4.5.2. The state is used by the mac\
ros that calculate the)-.11 E(outgoing interf)72 140.6 Q
(ace list in Section 4.1.6, and in the)-.11 E F1(JoinDesired\(S,G\))2.75
E F0(macro \(de\214ned in)2.75 E(Section 4.5.7\) that is used in decidi\
ng whether a Join\(S,G\) should be sent upstream.)72 153.6 Q
(\(S,G\) Assert W)72 170.2 Q
(inner state is the result of sending or recei)-.44 E
(ving \(S,G\) Assert messages on this)-.275 E(interf)72 183.2 Q 2.75
(ace. It)-.11 F(is speci\214ed in Section 4.6.1.)2.75 E(The upstream \(\
S,G\) Join/Prune State re\215ects the state of the upstream \(S,G\) sta\
te machine)72 199.8 Q(described in Section 4.5.7.)72 212.8 Q
(The upstream \(S,G\) Join/Prune T)72 229.4 Q
(imer is used to send out periodic Join\(S,G\) messages, and to)-.385 E
-.165(ove)72 242.4 S
(rride Prune\(S,G\) messages from peers on an upstream LAN interf).165 E
(ace.)-.11 E(The last RPF neighbor to)72 259 Q -.11(wa)-.275 G
(rds S is stored because if the MRIB changes then the RPF neighbor).11 E
(to)72 272 Q -.11(wa)-.275 G(rds S may change.).11 E
(If it does so, then we need to trigger a ne)5.5 E 2.75(wJ)-.275 G
(oin\(S,G\) to the ne)-2.75 E 2.75(wu)-.275 G(pstream)-2.75 E
(neighbor and a Prune\(S,G\) to the old upstream neighbor)72 285 Q 5.5
(.S)-.605 G(imilarly)-5.5 E 2.75(,i)-.715 G 2.75(ft)-2.75 G
(he router detects through a)-2.75 E
(changed GenID in a Hello message that the upstream neighbor to)72 298 Q
-.11(wa)-.275 G(rds S has rebooted, then it).11 E
(should re-instantiate state by sending a Join\(S,G\).)72 311 Q
(These mechanisms are speci\214ed in Section)5.5 E(4.5.7.)72 324 Q
(The SPTbit is used to indicate whether forw)72 340.6 Q
(arding is taking place on the \(S,G\) Shortest P)-.11 E(ath T)-.165 E
(ree)-.385 E(\(SPT\) or on the \(*,G\) tree.)72 353.6 Q 2.75(Ar)5.5 G
(outer can ha)-2.75 E .33 -.165(ve \()-.22 H
(S,G\) state and still be forw).165 E(arding on \(*,G\) state)-.11 E
(during the interv)72 366.6 Q
(al when the source-speci\214c tree is being constructed.)-.275 E
(When SPTbit is F)5.5 E(ALSE,)-.814 E(only \(*,G\) forw)72 379.6 Q
(arding state is used to forw)-.11 E(ard pack)-.11 E(ets from S to G.)
-.11 E(When SPTbit is TR)5.5 E(UE, both)-.44 E(\(*,G\) and \(S,G\) forw)
72 392.6 Q(arding state are used.)-.11 E(The \(S,G\) K)72 409.2 Q
(eepali)-.275 E .33 -.165(ve T)-.275 H
(imer is updated by data being forw)-.22 E
(arded using this \(S,G\) forw)-.11 E(arding state.)-.11 E
(It is used to k)72 422.2 Q(eep \(S,G\) state ali)-.11 E .33 -.165(ve i)
-.275 H 2.75(nt).165 G(he absence of e)-2.75 E(xplicit \(S,G\) Joins.)
-.165 E(Amongst other things,)5.5 E(this is necessary for the so-called\
 "turnaround rules" - when the RP uses \(S,G\) joins to stop)72 435.2 Q
(encapsulation, and then \(S,G\) prunes to pre)72 448.2 Q -.165(ve)-.275
G(nt traf).165 E(\214c from unnecessarily reaching the RP)-.275 E(.)
-1.221 E(On a DR, the \(S,G\) Re)72 464.8 Q(gister State is used to k)
-.165 E(eep track of whether to encapsulate data to the RP)-.11 E
(on the Re)72 477.8 Q(gister T)-.165 E(unnel; the \(S,G\) Re)-.495 E
(gister)-.165 E(-Stop timer tracks ho)-.22 E 2.75(wl)-.275 G
(ong before encapsulation)-2.75 E(be)72 490.8 Q(gins ag)-.165 E
(ain for a gi)-.055 E -.165(ve)-.275 G 2.75(n\().165 G(S,G\).)-2.75 E
(On an RP)72 507.4 Q 2.75(,t)-1.221 G(he PMBR v)-2.75 E
(alue must be cleared when the K)-.275 E(eepali)-.275 E .33 -.165(ve T)
-.275 H(imer e)-.22 E(xpires.)-.165 E/F2 11/Times-Bold@0 SF 2.75
(4.1.5. \(S,G,r)72 533.4 R(pt\) State)-.11 E F0 -.165(Fo)72 550 S 2.75
(re).165 G -.165(ve)-3.025 G(ry source/group pair \(S,G\) for which a r\
outer also has \(*,G\) state, it also k).165 E(eeps the)-.11 E(follo)72
563 Q(wing state:)-.275 E F2(\(S,G,r)97 579.6 Q(pt\) state:)-.11 E F0
-.165(Fo)122 596.2 S 2.75(re).165 G(ach interf)-2.75 E(ace:)-.11 E F2
(Local Membership:)147 612.8 Q F0(State: One of {"NoInfo", "Exclude"})
172 625.8 Q F2(PIM \(S,G,r)147 642.4 Q(pt\) J)-.11 E(oin/Prune State:)
-.165 E F0 7.15<8353>172 659 S
(tate: One of {"NoInfo", "Pruned", "Prune-Pending"})-7.15 E 7.15<8350>
172 675.6 S(rune-Pending T)-7.15 E(imer \(PPT\))-.385 E 7.15<834a>172
692.2 S(oin/Prune Expiry T)-7.15 E(imer \(ET\))-.385 E(Not interf)122
708.8 Q(ace speci\214c:)-.11 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165
E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.1.5. [P)2.75 F
(age 14])-.165 E 0 Cg EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(Upstr)
147 85 Q(eam \(S,G,r)-.198 E(pt\) J)-.11 E(oin/Prune State:)-.165 E F0
7.15<8353>172 101.6 S
(tate: One of {"RPTNotJoined\(G\)", "NotPruned\(S,G,rpt\)",)-7.15 E
("Pruned\(S,G,rpt\)"})183 114.6 Q 7.15<834f>172 131.2 S -.165(ve)-7.15 G
(rride T).165 E(imer \(O)-.385 E(T\))-.44 E(Local membership is the res\
ult of the local source-speci\214c membership mechanism \(such as)72
147.8 Q(IGMPv3\) running on that interf)72 160.8 Q
(ace and specifying that although there is \(*,G\) Include state, this)
-.11 E(particular source should be e)72 173.8 Q 2.75(xcluded. As)-.165 F
(stored here, this state is the resulting state after an)2.75 E(y)-.165
E(IGMPv3 inconsistencies between LAN members ha)72 186.8 Q .33 -.165
(ve b)-.22 H(een resolv).165 E 2.75(ed. It)-.165 F(need not be k)2.75 E
(ept if this)-.11 E(router is not the DR on that interf)72 199.8 Q
(ace unless this router w)-.11 E(on a \(*,G\) assert on this interf)-.11
E(ace for this)-.11 E 2.75(group. Ho)72 212.8 R(we)-.275 E -.165(ve)
-.275 G .88 -.44(r, w).165 H 2.75(er).44 G
(ecommend storing this information if possible, as it reduces latenc)
-2.75 E(y)-.165 E(con)72 225.8 Q -.165(ve)-.44 G -.198(rg).165 G
(ing to stable operating conditions after a f).198 E
(ailure causing a change of DR.)-.11 E(This)5.5 E
(information is used by the)72 238.8 Q/F2 11/Courier@0 SF
(pim_exclude\(S,G\))2.75 E F0(macro described in Section 4.1.6.)2.75 E
(PIM \(S,G,rpt\) Join/Prune state is the result of recei)72 255.4 Q
(ving PIM \(S,G,rpt\) Join/Prune messages on)-.275 E(this interf)72
268.4 Q(ace, and is speci\214ed in Section 4.5.4. The state is used by \
the macros that calculate the)-.11 E(outgoing interf)72 281.4 Q(ace lis\
t in Section 4.1.6, and in the rules for adding Prune\(S,G,rpt\) messag\
es to)-.11 E(Join\(*,G\) messages speci\214ed in Section 4.5.8.)72 294.4
Q(The upstream \(S,G,rpt\) Join/Prune state is used along with the Ov)72
311 Q(erride T)-.165 E(imer to send the correct)-.385 E -.165(ove)72 324
S(rride messages in response to Join/Prune messages sent by upstream pe\
ers on a LAN.).165 E(This)5.5 E(state and beha)72 337 Q
(vior are speci\214ed in Section 4.5.9.)-.22 E F1 2.75(4.1.6. State)72
363 R(Summarization Macr)2.75 E(os)-.198 E F0
(Using this state, we de\214ne the follo)72 379.6 Q
(wing "macro" de\214nitions which we will use in the descriptions)-.275
E(of the state machines and pseudocode in the follo)72 392.6 Q
(wing sections.)-.275 E
(The most important macros are those that de\214ne the outgoing interf)
72 409.2 Q(ace list \(or "olist"\) for the)-.11 E(rele)72 422.2 Q -.275
(va)-.275 G(nt state.).275 E(An olist can be "immediate" if it is b)5.5
E(uilt directly from the state of the rele)-.22 E -.275(va)-.275 G
(nt type.).275 E -.165(Fo)72 435.2 S 2.75(re).165 G
(xample, the immediate_olist\(S,G\) is the olist that w)-2.915 E
(ould be b)-.11 E(uilt if the router only had \(S,G\))-.22 E
(state and no \(*,G\) or \(S,G,rpt\) state.)72 448.2 Q
(In contrast, the "inherited" olist inherits state from other)5.5 E 2.75
(types. F)72 461.2 R(or e)-.165 E
(xample, the inherited_olist\(S,G\) is the olist that is rele)-.165 E
-.275(va)-.275 G(nt for forw).275 E(arding a pack)-.11 E(et)-.11 E
(from S to G using both source-speci\214c and group-speci\214c state.)72
474.2 Q
(There is no immediate_olist\(S,G,rpt\) as \(S,G,rpt\) state is ne)72
490.8 Q -.055(ga)-.165 G(ti).055 E .33 -.165(ve s)-.275 H
(tate - it remo).165 E -.165(ve)-.165 G 2.75(si).165 G(nterf)-2.75 E
(aces in)-.11 E
(the \(*,G\) olist from the olist that is actually used to forw)72 503.8
Q(ard traf)-.11 E 2.75(\214c. The)-.275 F(inherited_olist\(S,G,rpt\) is)
2.75 E(therefore the olist that w)72 516.8 Q(ould be used for a pack)
-.11 E(et from S to G forw)-.11 E(arding on the RP tree.)-.11 E(It is a)
5.5 E(strict subset of \(immediate_olist\(*,*,RP\))72 529.8 Q/F3 11
/Symbol SF(+)3.03 E 256.8 527.05 2.75 DC .44 LW ST F0
(immediate_olist\(*,G\)\).)262.85 529.8 Q
(Generally speaking, the inherited olists are used for forw)72 546.4 Q
(arding, and the immediate_olists are)-.11 E(used to mak)72 559.4 Q 2.75
(ed)-.11 G(ecisions about state maintenance.)-2.75 E F2
(immediate_olist\(*,*,RP\) =)72 585.4 Q(joins\(*,*,RP\))98.4 598.4 Q
(immediate_olist\(*,G\) =)72 624.4 Q(joins\(*,G\))98.4 637.4 Q F3(+)6.88
E 174.3 634.65 2.75 DC ST F2(pim_include\(*,G\))184.2 637.4 Q F3(-)6.88
E 299.7 634.65 2.75 DC ST F2(lost_assert\(*,G\))309.6 637.4 Q
(immediate_olist\(S,G\) =)72 663.4 Q(joins\(S,G\))98.4 676.4 Q F3(+)6.88
E 174.3 673.65 2.75 DC ST F2(pim_include\(S,G\))184.2 676.4 Q F3(-)6.88
E 299.7 673.65 2.75 DC ST F2(lost_assert\(S,G\))309.6 676.4 Q
(inherited_olist\(S,G,rpt\) =)72 702.4 Q 6.6(\(j)124.8 715.4 S
(oins\(*,*,RP\(G\)\))-6.6 E F3(+)6.88 E 253.5 712.65 2.75 DC ST F2
(joins\(*,G\))263.4 715.4 Q F3(-)6.88 E 339.3 712.65 2.75 DC ST F2
(prunes\(S,G,rpt\) \))349.2 715.4 Q F0(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.1.6. [P)2.75 F(age 15])-.165 E 0 Cg EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Symbol SF(+)98.68 85 Q
101.7 82.25 2.75 DC .44 LW ST/F2 11/Courier@0 SF 6.6(\(p)111.6 85 S
(im_include\(*,G\))-6.6 E F1(-)6.88 E 240.3 82.25 2.75 DC ST F2
(pim_exclude\(S,G\)\))250.2 85 Q F1(-)98.68 98 Q 101.7 95.25 2.75 DC ST
F2 6.6(\(l)111.6 98 S(ost_assert\(*,G\))-6.6 E F1(+)6.88 E 240.3 95.25
2.75 DC ST F2(lost_assert\(S,G,rpt\) \))250.2 98 Q
(inherited_olist\(S,G\) =)72 124 Q(inherited_olist\(S,G,rpt\))98.4 137 Q
F1(+)6.88 E 266.7 134.25 2.75 DC ST/F3 10/Symbol SF<ef>555 149 Q<ef>
-4.94 -10 M<ef>-4.94 -10 M F2(joins\(S,G\))98.4 150 Q F1(+)6.88 E 174.3
147.25 2.75 DC ST F2(pim_include\(S,G\))184.2 150 Q F1(-)6.88 E 299.7
147.25 2.75 DC ST F2(lost_assert\(S,G\))309.6 150 Q F0(The macros pim_i\
nclude\(*,G\) and pim_include\(S,G\) indicate the interf)72 166.6 Q
(aces to which traf)-.11 E(\214c might)-.275 E(be forw)72 179.6 Q
(arded because of hosts that are local members on that interf)-.11 E
2.75(ace. Note)-.11 F(that normally only)2.75 E
(the DR cares about local membership, b)72 192.6 Q
(ut when an assert happens, the assert winner tak)-.22 E(es o)-.11 E
-.165(ve)-.165 G(r).165 E(responsibility for forw)72 205.6 Q
(arding traf)-.11 E(\214c to local members that ha)-.275 E .33 -.165
(ve r)-.22 H(equested traf).165 E(\214c on a group or)-.275 E
(source/group pair)72 218.6 Q(.)-.605 E F2(pim_include\(*,G\) =)72 248.2
Q 6.6({a)91.8 261.2 S(ll interfaces I such that:)-6.6 E 6.6(\(\(I)105
274.2 S(_am_DR\( I \) AND lost_assert\(*,G,I\) == FALSE \))-6.6 E
(OR AssertWinner\(*,G,I\) == me \))118.2 287.2 Q 6.6
(AND local_receiver_include\(*,G,I\))105 300.2 R(})6.6 E
(pim_include\(S,G\) =)72 326.2 Q 6.6({a)98.4 339.2 S
(ll interfaces I such that:)-6.6 E 6.6(\(\()111.6 352.2 S
(I_am_DR\( I \) AND lost_assert\(S,G,I\) == FALSE \))-6.6 E
(OR AssertWinner\(S,G,I\) == me \))124.8 365.2 Q 6.6
(AND local_receiver_include\(S,G,I\))118.2 378.2 R(})6.6 E
(pim_exclude\(S,G\) =)72 404.2 Q 6.6({a)98.4 417.2 S
(ll interfaces I such that:)-6.6 E 6.6(\(\()111.6 430.2 S
(I_am_DR\( I \) AND lost_assert\(*,G,I\) == FALSE \))-6.6 E
(OR AssertWinner\(*,G,I\) == me \))124.8 443.2 Q F3<ef>555 468.2 Q<ef>
-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M
F2 6.6(AND local_receiver_exclude\(S,G,I\))118.2 469.2 R(})6.6 E F0
(The clause "local_recei)72 498.8 Q -.165(ve)-.275 G
(r_include\(S,G,I\)" is true if the IGMP/MLD module or other local).165
E(membership mechanism has determined that local members on interf)72
511.8 Q(ace I desire to recei)-.11 E .33 -.165(ve t)-.275 H(raf).165 E
<8c63>-.275 E F3<ef>555 523.8 Q<ef>-4.94 -10 M<ef>-4.94 -10 M F0
(sent speci\214cally by S to G.)72 524.8 Q("local_recei)5.5 E -.165(ve)
-.275 G(r_include\(*,G,I\)" is true if the IGMP/MLD module or).165 E(ot\
her local membership mechanism has determined that local members on int\
erf)72 537.8 Q(ace I desire to)-.11 E(recei)72 550.8 Q .33 -.165(ve a)
-.275 H(ll traf).165 E(\214c sent to G \(possibly e)-.275 E
(xcluding traf)-.165 E(\214c from a speci\214c set of sources\).)-.275 E
F3<ef>555 562.8 Q<ef>-4.94 -10 M<ef>-4.94 -10 M F0("local_recei)72 563.8
Q -.165(ve)-.275 G(r_e).165 E(xclude\(S,G,I\) is true if "local_recei)
-.165 E -.165(ve)-.275 G(r_include\(*,G,I\)" is true b).165 E
(ut none of the)-.22 E(local members desire to recei)72 576.8 Q .33
-.165(ve t)-.275 H(raf).165 E(\214c from S.)-.275 E
(The set "joins\(*,*,RP\)" is the set of all interf)72 593.4 Q
(aces on which the router has recei)-.11 E -.165(ve)-.275 G 2.75(d\()
.165 G(*,*,RP\) Joins:)-2.75 E F2(joins\(*,*,RP\) =)72 610 Q 6.6({a)98.4
623 S(ll interfaces I such that)-6.6 E
(DownstreamJPState\(*,*,RP,I\) is either Join or)111.6 636 Q
(Prune-Pending })138 649 Q F0(Do)72 665.6 Q(wnstreamJPState\(*,*,RP)
-.275 E
(,I\) is the state of the \214nite state machine in Section 4.5.1.)
-1.221 E(The set "joins\(*,G\)" is the set of all interf)72 682.2 Q
(aces on which the router has recei)-.11 E -.165(ve)-.275 G 2.75(d\()
.165 G(*,G\) Joins:)-2.75 E F2(joins\(*,G\) =)72 698.8 Q 6.6({a)98.4
711.8 S(ll interfaces I such that)-6.6 E
(DownstreamJPState\(*,G,I\) is either Join or Prune-Pending })111.6
724.8 Q F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E
160.971(elas Section)-.165 F 2.75(4.1.6. [P)2.75 F(age 16])-.165 E 0 Cg
EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Do)72 85 Q(wnstreamJPState\(*\
,G,I\) is the state of the \214nite state machine in Section 4.5.2.)
-.275 E(The set "joins\(S,G\)" is the set of all interf)72 101.6 Q
(aces on which the router has recei)-.11 E -.165(ve)-.275 G 2.75(d\()
.165 G(S,G\) Joins:)-2.75 E/F1 11/Courier@0 SF(joins\(S,G\) =)72 118.2 Q
6.6({a)98.4 131.2 S(ll interfaces I such that)-6.6 E
(DownstreamJPState\(S,G,I\) is either Join or Prune-Pending })111.6
144.2 Q F0(Do)72 160.8 Q(wnstreamJPState\(S,G,I\) is the state of the \
\214nite state machine in Section 4.5.3.)-.275 E
(The set "prunes\(S,G,rpt\)" is the set of all interf)72 177.4 Q
(aces on which the router has recei)-.11 E -.165(ve)-.275 G 2.75(d\()
.165 G(*,G\) joins)-2.75 E(and \(S,G,rpt\) prunes.)72 190.4 Q F1
(prunes\(S,G,rpt\) =)72 207 Q 6.6({a)98.4 220 S
(ll interfaces I such that)-6.6 E
(DownstreamJPState\(S,G,rpt,I\) is Prune or PruneTmp })111.6 233 Q F0
(Do)72 249.6 Q(wnstreamJPState\(S,G,rpt,I\) is the state of the \214nit\
e state machine in Section 4.5.4.)-.275 E
(The set "lost_assert\(*,G\)" is the set of all interf)72 266.2 Q
(aces on which the router has recei)-.11 E -.165(ve)-.275 G 2.75(d\()
.165 G(*,G\) joins)-2.75 E -.22(bu)72 279.2 S 2.75(th).22 G
(as lost a \(*,G\) assert.)-2.75 E
(The macro lost_assert\(*,G,I\) is de\214ned in Section 4.6.5.)5.5 E F1
(lost_assert\(*,G\) =)72 295.8 Q 6.6({a)98.4 308.8 S
(ll interfaces I such that)-6.6 E(lost_assert\(*,G,I\) == TRUE })111.6
321.8 Q F0(The set "lost_assert\(S,G,rpt\)" is the set of all interf)72
338.4 Q(aces on which the router has recei)-.11 E -.165(ve)-.275 G 2.75
(d\().165 G(*,G\))-2.75 E(joins b)72 351.4 Q
(ut has lost an \(S,G\) assert.)-.22 E
(The macro lost_assert\(S,G,rpt,I\) is de\214ned in Section 4.6.5.)5.5 E
F1(lost_assert\(S,G,rpt\) =)72 368 Q 6.6({a)98.4 381 S
(ll interfaces I such that)-6.6 E(lost_assert\(S,G,rpt,I\) == TRUE })
111.6 394 Q F0(The set "lost_assert\(S,G\)" is the set of all interf)72
410.6 Q(aces on which the router has recei)-.11 E -.165(ve)-.275 G 2.75
(d\().165 G(S,G\) joins)-2.75 E -.22(bu)72 423.6 S 2.75(th).22 G
(as lost an \(S,G\) assert.)-2.75 E
(The macro lost_assert\(S,G,I\) is de\214ned in Section 4.6.5.)5.5 E F1
(lost_assert\(S,G\) =)72 440.2 Q 6.6({a)98.4 453.2 S
(ll interfaces I such that)-6.6 E(lost_assert\(S,G,I\) == TRUE })111.6
466.2 Q F0(The follo)72 508.8 Q
(wing pseudocode macro de\214nitions are also used in man)-.275 E 2.75
(yp)-.165 G(laces in the speci\214cation.)-2.75 E
(Basically RPF' is the RPF neighbor to)72 521.8 Q -.11(wa)-.275 G
(rds an RP or source unless a PIM-Assert has o).11 E -.165(ve)-.165 G
(rridden).165 E(the normal choice of neighbor)72 534.8 Q(.)-.605 E F1
(neighbor RPF'\(*,G\) {)85.2 553.8 Q
(if \( I_Am_Assert_Loser\(*, G, RPF_interface\(RP\(G\)\)\) \) {)111.6
566.8 Q(return AssertWinner\(*, G, RPF_interface\(RP\(G\)\) \))144.6
579.8 Q 6.6(}e)111.6 592.8 S(lse {)-6.6 E
(return NBR\( RPF_interface\(RP\(G\)\), MRIB.next_hop\( RP\(G\) \) \))
144.6 605.8 Q(})111.6 618.8 Q(})85.2 631.8 Q F0(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.1.6. [P)2.75 F(age 17])-.165 E 0 Cg EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF
(neighbor RPF'\(S,G,rpt\) {)85.2 85 Q
(if\( I_Am_Assert_Loser\(S, G, RPF_interface\(RP\(G\)\) \) \) {)111.6 98
Q(return AssertWinner\(S, G, RPF_interface\(RP\(G\)\) \))144.6 111 Q 6.6
(}e)111.6 124 S(lse {)-6.6 E(return RPF'\(*,G\))144.6 137 Q(})111.6 150
Q(})85.2 163 Q(neighbor RPF'\(S,G\) {)85.2 188 Q
(if \( I_Am_Assert_Loser\(S, G, RPF_interface\(S\) \)\) {)111.6 201 Q
(return AssertWinner\(S, G, RPF_interface\(S\) \))144.6 214 Q 6.6(}e)
111.6 227 S(lse {)-6.6 E
(return NBR\( RPF_interface\(S\), MRIB.next_hop\( S \) \))144.6 240 Q(})
111.6 253 Q(})85.2 266 Q F0
(RPF'\(*,G\) and RPF'\(S,G\) indicate the neighbor from which data pack)
72 288.6 Q(ets should be coming and)-.11 E
(to which joins should be sent on the RP tree and SPT respecti)72 301.6
Q -.165(ve)-.275 G(ly).165 E(.)-.715 E(RPF'\(S,G,rpt\) is basically RPF\
'\(*,G\) modi\214ed by the result of an Assert\(S,G\) on)72 318.2 Q
(RPF_interf)72 331.2 Q 2.75(ace\(RP\(G\)\). In)-.11 F(such a case, pack)
2.75 E(ets from S will be originating from a dif)-.11 E(ferent router)
-.275 E(than RPF'\(*,G\).)72 344.2 Q(If we only ha)5.5 E .33 -.165(ve a)
-.22 H(cti).165 E .33 -.165(ve \()-.275 H
(*,G\) Join state, we need to accept pack).165 E(ets from)-.11 E(RPF'\(\
S,G,rpt\), and add a Prune\(S,G,rpt\) to the periodic Join\(*,G\) messa\
ges that we send to)72 357.2 Q(RPF'\(*,G\) \(See Section 4.5.8\).)72
370.2 Q(The function)72 386.8 Q F1(MRIB.next_hop\( S \))2.75 E F0
(returns an address of the ne)2.75 E(xt-hop PIM neighbor to)-.165 E -.11
(wa)-.275 G(rd).11 E(the host S, as indicated by the current MRIB.)72
399.8 Q(If S is directly adjacent, then)5.5 E F1(MRIB.next_hop\()2.75 E
6.6(S\))72 412.8 S F0(returns NULL.)-3.85 E(At the RP for G,)5.5 E F1
(MRIB.next_hop\( RP\(G\)\))2.75 E F0(returns NULL.)2.75 E(The function)
72 429.4 Q F1(NBR\( I, A \))2.75 E F0(uses information g)2.75 E
(athered through PIM Hello messages to map the)-.055 E
(IP address A of a directly connected PIM neighbor router on interf)72
442.4 Q(ace I to the primary IP address)-.11 E(of the same router \(Sec\
tion 4.3.4\). The primary IP address of a neighbor is the address that \
it uses)72 455.4 Q
(as the source of its PIM Hello messages. Note that a neighbor')72 468.4
Q 2.75(sI)-.605 G 2.75(Pa)-2.75 G(ddress may be non-unique)-2.75 E(with\
in the PIM neighbor database due to scope issues. The address must ho)72
481.4 Q(we)-.275 E -.165(ve)-.275 G 2.75(rb).165 G 2.75(eu)-2.75 G
(nique)-2.75 E
(amongst the addresses of all the PIM neighbors on a speci\214c interf)
72 494.4 Q(ace.)-.11 E(I_Am_Assert_Loser\(S, G, I\) is true if the Asse\
rt state machine \(in Section 4.6.1\) for \(S,G\) on)72 511 Q(Interf)72
524 Q(ace I is in "I am Assert Loser" state.)-.11 E(I_Am_Assert_Loser\(\
*, G, I\) is true if the Assert state machine \(in Section 4.6.2\) for \
\(*,G\) on)72 540.6 Q(Interf)72 553.6 Q
(ace I is in "I am Assert Loser" state.)-.11 E/F2 11/Times-Bold@0 SF
(4.2.)72 579.6 Q/F3 13/Times-Bold@0 SF(Data P)5.5 E(ack)-.13 E(et F)-.13
E(orwarding Rules)-.325 E F0(The PIM-SM pack)72 596.2 Q(et forw)-.11 E
(arding rules are de\214ned belo)-.11 E 2.75(wi)-.275 G 2.75(np)-2.75 G
(seudocode.)-2.75 E F1(iif)97 612.8 Q F0(is the incoming interf)2.75 E
(ace of the pack)-.11 E(et.)-.11 E F1(S)97 625.8 Q F0
(is the source address of the pack)2.75 E(et.)-.11 E F1(G)97 638.8 Q F0
(is the destination address of the pack)2.75 E(et \(group address\).)
-.11 E F1(RP)97 651.8 Q F0(is the address of the Rendezv)2.75 E
(ous Point for this group.)-.22 E F1(RPF_interface\(S\))97 664.8 Q F0
(is the interf)2.75 E(ace the MRIB indicates w)-.11 E
(ould be used to route pack)-.11 E(ets)-.11 E(to S.)97 677.8 Q F1
(RPF_interface\(RP\))97 690.8 Q F0(is the interf)2.75 E
(ace the MRIB indicates w)-.11 E(ould be used to route pack)-.11 E(ets)
-.11 E(to RP)97 703.8 Q 2.75(,e)-1.221 G
(xcept at the RP when it is the decapsulation interf)-2.915 E
(ace \(the "virtual" interf)-.11 E(ace on)-.11 E(which re)97 716.8 Q
(gister pack)-.165 E(ets are recei)-.11 E -.165(ve)-.275 G(d\).).165 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 169.221
(elas Section)-.165 F 2.75(4.2. [P)2.75 F(age 18])-.165 E 0 Cg EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(First, we restart \(or start\) the K)72 85 Q(eepali)-.275 E .33 -.165
(ve T)-.275 H(imer if the source is on a directly connected subnet.)-.22
E(Second, we check to see if the SPTbit should be set because we')72
101.6 Q .33 -.165(ve n)-.55 H .55 -.275(ow s).165 H
(witched from the RP tree).275 E(to the SPT)72 114.6 Q(.)-.814 E(Ne)72
131.2 Q(xt we check to see whether the pack)-.165 E
(et should be accepted based on TIB state and the interf)-.11 E(ace)-.11
E(that the pack)72 144.2 Q(et arri)-.11 E -.165(ve)-.275 G 2.75(do).165
G(n.)-2.75 E(If the pack)72 160.8 Q(et should be forw)-.11 E
(arded using \(S,G\) state, we then b)-.11 E(uild an outgoing interf)
-.22 E(ace list for)-.11 E(the pack)72 173.8 Q 2.75(et. If)-.11 F
(this list is not empty)2.75 E 2.75(,t)-.715 G
(hen we restart the \(S,G\) state K)-2.75 E(eepali)-.275 E .33 -.165
(ve T)-.275 H(imer)-.22 E(.)-.605 E(If the pack)72 190.4 Q
(et should be forw)-.11 E
(arded using \(*,*,RP\) or \(*,G\) state, then we just b)-.11 E
(uild an outgoing)-.22 E(interf)72 203.4 Q(ace list for the pack)-.11 E
(et. W)-.11 E 2.75(ea)-.88 G
(lso check if we should initiate a switch to start recei)-2.75 E
(ving this)-.275 E(source on a shortest path tree.)72 216.4 Q
(Finally we remo)72 233 Q .33 -.165(ve t)-.165 H(he incoming interf).165
E(ace from the outgoing interf)-.11 E(ace list we')-.11 E .33 -.165
(ve c)-.55 H(reated, and if).165 E(the resulting outgoing interf)72 246
Q(ace list is not empty)-.11 E 2.75(,w)-.715 G 2.75(ef)-2.75 G(orw)-2.75
E(ard the pack)-.11 E(et out of those interf)-.11 E(aces.)-.11 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 169.221
(elas Section)-.165 F 2.75(4.2. [P)2.75 F(age 19])-.165 E 0 Cg EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(On receipt of data from S to G on interf)72 85 Q(ace iif:)-.11 E/F1 11
/Courier@0 SF
(if\( DirectlyConnected\(S\) == TRUE AND iif == RPF_interface\(S\) \) {)
78.6 98 Q(set KeepaliveTimer\(S,G\) to Keepalive_Period)111.6 111 Q(#)
111.6 124 Q F0(Note: a re)6.6 E
(gister state transition or UpstreamJPState\(S,G\))-.165 E F1(#)111.6
137 Q F0(transition may happen as a result of restarting)6.6 E F1(#)
111.6 150 Q F0 -.275(Ke)6.6 G(epali).275 E -.165(ve)-.275 G -.385(Ti)
.165 G(mer).385 E 2.75(,a)-.44 G(nd must be dealt with here.)-2.75 E F1
(})78.6 163 Q(if\( iif == RPF_interface\(S\) AND UpstreamJPState\(S,G\)\
 == Joined AND)78.6 202 Q(inherited_olist\(S,G\))98.4 215 Q/F2 11/Symbol
SF<b9>6.6 E F1(NULL \) {)6.6 E
(set KeepaliveTimer\(S,G\) to Keepalive_Period)124.8 228 Q(})78.6 241 Q
/F3 10/Symbol SF<ef>555 266 Q<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10
M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94
-10 M F1(Update_SPTbit\(S,G,iif\))78.6 267 Q(oiflist = NULL)78.6 280 Q
(if\( iif == RPF_interface\(S\) AND SPTbit\(S,G\) == TRUE \) {)78.6 306
Q F3<ef>555 318 Q<ef>-4.94 -10 M F1(oiflist = inherited_olist\(S,G\))
98.4 319 Q 6.6(}e)78.6 332 S(lse if\( iif == RPF_interface\(RP\(G\)\) A\
ND SPTbit\(S,G\) == FALSE\) {)-6.6 E
(oiflist = inherited_olist\(S,G,rpt\))91.8 345 Q
(CheckSwitchToSpt\(S,G\))91.8 358 Q 6.6(}e)78.6 371 S(lse {)-6.6 E(#)
98.4 384 Q F0(Note: RPF check f)6.6 E(ailed)-.11 E F1(#)98.4 397 Q F0
2.75(At)6.6 G(ransition in an Assert FSM, may cause an Assert\(S,G\))
-2.75 E F1(#)98.4 410 Q F0
(or Assert\(*,G\) message to be sent out interf)6.6 E(ace iif.)-.11 E F1
(#)98.4 423 Q F0(See section 4.6 for details.)6.6 E F3<ef>555 435 Q<ef>
-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M F1
(if \( SPTbit\(S,G\) == TRUE AND iif is in inherited_olist\(S,G\) \) {)
98.4 436 Q(send Assert\(S,G\) on iif)118.2 449 Q 6.6(}e)98.4 462 S
(lse if \( SPTbit\(S,G\) == FALSE AND)-6.6 E
(iif is in inherited_olist\(S,G,rpt\) {)177.6 475 Q
(send Assert\(*,G\) on iif)118.2 488 Q(})98.4 501 Q(})78.6 514 Q
(oiflist = oiflist)78.6 540 Q F2(-)6.88 E 200.7 537.25 2.75 DC .44 LW ST
F1(iif)210.6 540 Q(forward packet on all interfaces in oiflist)78.6 553
Q F0(This pseudocode emplo)72 572 Q(ys se)-.11 E -.165(ve)-.275 G
(ral "macro" de\214nitions:).165 E F1(DirectlyConnected\(S\))72 588.6 Q
F0(is TR)2.75 E(UE if the source S is on an)-.44 E 2.75(ys)-.165 G
(ubnet that is directly connected)-2.75 E(to this router \(or for pack)
72 601.6 Q(ets originating on this router\).)-.11 E F1
(inherited_olist\(S,G\))72 618.2 Q F0(and)2.75 E F1
(inherited_olist\(S,G,rpt\))2.75 E F0(are de\214ned in Section 4.1.)2.75
E(Basically)72 647.8 Q F1(inherited_olist\(S,G\))2.75 E F0
(is the outgoing interf)2.75 E(ace list for pack)-.11 E(ets forw)-.11 E
(arded on)-.11 E(\(S,G\) state taking into account \(*,*,RP\) state, \(\
*,G\) state, asserts, etc.)72 660.8 Q F1(inherited_olist\(S,G,rpt\))72
677.4 Q F0(is the outgoing interf)2.75 E(ace for pack)-.11 E(ets forw)
-.11 E(arded on \(*,*,RP\))-.11 E(or \(*,G\) state taking into account \
\(S,G,rpt\) prune state, and asserts, etc.)72 690.4 Q
(Update_SPTbit\(S,G,iif\) is de\214ned in Section 4.2.2.)72 707 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 169.221
(elas Section)-.165 F 2.75(4.2. [P)2.75 F(age 20])-.165 E 0 Cg EP
%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(CheckSwitchT)72 85 Q
(oSpt\(S,G\) is de\214ned in Section 4.2.1.)-.88 E(UpstreamJPState\(S,G\
\) is the state of the \214nite state machine in Section 4.5.7.)72 101.6
Q -.275(Ke)72 118.2 S(epali).275 E -.165(ve)-.275 G
(_Period is de\214ned in Section 4.10.).165 E
(Data triggered PIM-Assert messages sent from the abo)72 134.8 Q .33
-.165(ve f)-.165 H(orw).165 E(arding code should be rate-limited)-.11 E
(in a implementation-dependent manner)72 147.8 Q(.)-.605 E/F1 11
/Times-Bold@0 SF 2.75(4.2.1. Last-hop)72 186.8 R(Switcho)2.75 E -.11(ve)
-.11 G 2.75(rt).11 G 2.75(ot)-2.75 G(he SPT)-2.75 E F0
(In Sparse-Mode PIM, last-hop routers join the shared tree to)72 203.4 Q
-.11(wa)-.275 G(rds the RP).11 E 2.75(.O)-1.221 G(nce traf)-2.75 E
(\214c from)-.275 E(sources to joined groups arri)72 216.4 Q -.165(ve)
-.275 G 2.75(sa).165 G 2.75(tal)-2.75 G
(ast-hop router it has the option of switching to recei)-2.75 E .33
-.165(ve t)-.275 H(he).165 E(traf)72 229.4 Q
(\214c on a shortest path tree \(SPT\).)-.275 E
(The decision for a router to switch to the SPT is controlled as follo)
72 246 Q(ws:)-.275 E/F2 11/Courier@0 SF(void)108 278 Q
(CheckSwitchToSpt\(S,G\) {)108 291 Q(if \( \( pim_include\(*,G\))121.2
304 Q/F3 11/Symbol SF(-)6.88 E 282.9 301.25 2.75 DC .44 LW ST F2
(pim_exclude\(S,G\))292.8 304 Q F3(+)167.68 317 Q 170.7 314.25 2.75 DC
ST F2(pim_include\(S,G\))180.6 317 Q F3<b9>6.6 E F2(NULL \))6.6 E
(AND SwitchToSptDesired\(S,G\) \) {)154.2 330 Q(#)167.4 343 Q F0
(Note: Restarting the KA)6.6 E 2.75(Tw)-1.221 G
(ill result in the SPT switch)-2.75 E F2(restart KeepaliveTimer\(S,G\);)
167.4 356 Q(})121.2 369 Q(})108 382 Q F0(SwitchT)72 414 Q
(oSptDesired\(S,G\) is a polic)-.88 E 2.75(yf)-.165 G
(unction that is implementation de\214ned. An "in\214nite)-2.75 E
(threshold" polic)72 427 Q 2.75(yc)-.165 G
(an be implemented making SwitchT)-2.75 E(oSptDesired\(S,G\) return f)
-.88 E(alse all the time.)-.11 E 2.75(A")72 440 S
(switch on \214rst pack)-2.75 E(et" polic)-.11 E 2.75(yc)-.165 G
(an be implemented by making SwitchT)-2.75 E(oSptDesired\(S,G\) return)
-.88 E(true once a single pack)72 453 Q(et has been recei)-.11 E -.165
(ve)-.275 G 2.75(df).165 G(or the source and group.)-2.75 E F1 2.75
(4.2.2. Setting)72 492 R(and Clearing the \(S,G\) SPTbit)2.75 E F0
(The \(S,G\) SPTbit is used to distinguish whether to forw)72 508.6 Q
(ard on \(*,*,RP\)/\(*,G\) or on \(S,G\) state.)-.11 E(When switching f\
rom the RP tree to the source tree, there is a transition period when d\
ata is)72 521.6 Q(arri)72 534.6 Q(ving due to upstream \(*,*,RP\)/\(*,G\
\) state while upstream \(S,G\) state is being established)-.275 E
(during which time a router should continue to forw)72 547.6 Q
(ard only on \(*,*,RP\)/\(*,G\) state.)-.11 E(This pre)5.5 E -.165(ve)
-.275 G(nts).165 E(temporary black-holes that w)72 560.6 Q
(ould be caused by sending a Prune\(S,G,rpt\) before the upstream)-.11 E
(\(S,G\) state has \214nished being established.)72 573.6 Q
(Thus, when a pack)72 590.2 Q(et arri)-.11 E -.165(ve)-.275 G
(s, the \(S,G\) SPTbit is updated as follo).165 E(ws:)-.275 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.2.2. [P)2.75 F(age 21])-.165 E 0 Cg EP
%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF(void)108 85
Q(Update_SPTbit\(S,G,iif\) {)108 98 Q(if \( iif == RPF_interface\(S\))
121.2 111 Q(AND JoinDesired\(S,G\) == TRUE)160.8 124 Q
(AND \( DirectlyConnected\(S\) == TRUE)160.8 137 Q
(OR RPF_interface\(S\))200.4 150 Q/F2 11/Symbol SF<b9>6.6 E F1
(RPF_interface\(RP\(G\)\))6.6 E(OR inherited_olist\(S,G,rpt\) == NULL)
200.4 163 Q(OR \( \( RPF'\(S,G\) == RPF'\(*,G\) \) AND)200.4 176 Q 6.6
(\(R)233.4 189 S(PF'\(S,G\))-6.6 E F2<b9>6.6 E F1(NULL \) \))6.6 E
(OR \( I_Am_Assert_Loser\(S,G,iif\) \) {)200.4 202 Q
(Set SPTbit\(S,G\) to TRUE)141 215 Q(})121.2 228 Q(})108 241 Q F0
(Additionally a router can set SPTbit\(S,G\) to TR)72 260 Q
(UE in other cases, such as when it recei)-.44 E -.165(ve)-.275 G 2.75
(sa).165 G(n)-2.75 E(Assert\(S,G\) on RPF_interf)72 273 Q
(ace\(S\) \(see Section 4.6.1\).)-.11 E F1(JoinDesired\(S,G\))72 289.6 Q
F0(is de\214ned in Section 4.5.7, and indicates whether we ha)2.75 E .33
-.165(ve t)-.22 H(he appropriate).165 E
(\(S,G\) Join state to wish to send a Join\(S,G\) upstream.)72 302.6 Q
(Basically Update_SPTbit will set the SPTbit if we ha)72 319.2 Q .33
-.165(ve t)-.22 H(he appropriate \(S,G\) join state and the).165 E(pack)
72 332.2 Q(et arri)-.11 E -.165(ve)-.275 G 2.75(do).165 G 2.75(nt)-2.75
G(he correct upstream interf)-2.75 E
(ace for S, and one or more of the follo)-.11 E(wing)-.275 E
(conditions applies:)72 345.2 Q 14(1. The)72 361.8 R(source is directly\
 connected, in which case the switch to the SPT is a no-op.)2.75 E 14
(2. The)72 378.4 R(RPF interf)2.75 E(ace to S is dif)-.11 E
(ferent from the RPF interf)-.275 E(ace to the RP)-.11 E 5.5(.T)-1.221 G
(he pack)-5.5 E(et arri)-.11 E -.165(ve)-.275 G 2.75(do).165 G(n)-2.75 E
(RPF_interf)97 391.4 Q(ace\(S\), and so the SPT must ha)-.11 E .33 -.165
(ve b)-.22 H(een completed.).165 E 14(3. No-one)72 408 R -.11(wa)2.75 G
(nts the pack).11 E(et on the RP tree.)-.11 E 14(4. RPF'\(S,G\))72 424.6
R(== RPF'\(*,G\).)2.75 E(In this case the router will ne)5.5 E -.165(ve)
-.275 G 2.75(rb).165 G 2.75(ea)-2.75 G(ble to tell if the SPT has)-2.75
E(been completed, so it should just switch immediately)97 437.6 Q(.)
-.715 E(In the case where the RPF interf)72 454.2 Q
(ace is the same for the RP and for S, b)-.11 E(ut RPF'\(S,G\) and)-.22
E(RPF'\(*,G\) dif)72 467.2 Q(fer)-.275 E 2.75(,t)-.44 G(hen we w)-2.75 E
(ait for an Assert\(S,G\) which indicates that the upstream router with)
-.11 E(\(S,G\) state belie)72 480.2 Q -.165(ve)-.275 G 2.75(st).165 G
(he SPT has been completed.)-2.75 E(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G
2.75(ri).165 G(tem \(3\) abo)-2.75 E .33 -.165(ve i)-.165 H 2.75(sn).165
G(eeded because)-2.75 E(there may not be an)72 493.2 Q 2.75(y\()-.165 G
(*,G\) state to trigger an Assert\(S,G\) to happen.)-2.75 E(The SPTbit \
is cleared in the \(S,G\) upstream state machine \(see Section 4.5.7\) \
when)72 509.8 Q(JoinDesired\(S,G\) becomes F)72 522.8 Q(ALSE.)-.814 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.3.1. [P)2.75 F(age 22])-.165 E 0 Cg EP
%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(4.3.)72
85 Q/F2 13/Times-Bold@0 SF(Designated Routers \(DR\) and Hello Messages)
5.5 E F0 2.75(As)72 101.6 S(hared-media LAN lik)-2.75 E 2.75(eE)-.11 G
(thernet may ha)-2.75 E .33 -.165(ve m)-.22 H
(ultiple PIM-SM routers connected to it. A single).165 E(one of these r\
outers, the DR, will act on behalf of directly connected hosts with res\
pect to the)72 114.6 Q(PIM-SM protocol.)72 127.6 Q
(Because the distinction between LANs and point-to-point interf)5.5 E
(aces can)-.11 E(sometimes be blurred, and because routers may also ha)
72 140.6 Q .33 -.165(ve m)-.22 H(ulticast host functionality).165 E 2.75
(,t)-.715 G(he PIM-)-2.75 E(SM speci\214cation mak)72 153.6 Q
(es no distinction between the tw)-.11 E 2.75(o. Thus)-.11 F
(DR election will happen on all)2.75 E(interf)72 166.6 Q
(aces, LAN or otherwise.)-.11 E
(DR election is performed using Hello messages.)72 183.2 Q
(Hello messages are also the w)5.5 E(ay that option)-.11 E(ne)72 196.2 Q
(gotiation tak)-.165 E(es place in PIM, so that additional functionalit\
y can be enabled, or parameters)-.11 E(tuned.)72 209.2 Q F1 2.75
(4.3.1. Sending)72 248.2 R(Hello Messages)2.75 E F0
(PIM Hello messages are sent periodically on each PIM-enabled interf)72
264.8 Q 2.75(ace. The)-.11 F 2.75(ya)-.165 G(llo)-2.75 E 2.75(war)-.275
G(outer to)-2.75 E
(learn about the neighboring PIM routers on each interf)72 277.8 Q 2.75
(ace. Hello)-.11 F(messages are also the)2.75 E
(mechanism used to elect a Designated Router \(DR\), and to ne)72 290.8
Q(gotiate additional capabilities.)-.165 E(A)5.5 E
(router must record the Hello information recei)72 303.8 Q -.165(ve)
-.275 G 2.75(df).165 G(rom each PIM neighbor)-2.75 E(.)-.605 E
(Hello messages MUST be sent on all acti)72 320.4 Q .33 -.165(ve i)-.275
H(nterf).165 E(aces, including ph)-.11 E(ysical point-to-point links,)
-.055 E(and are multicast to the `)72 333.4 Q(ALL-PIM-R)-.88 E
(OUTERS' group address \(`224.0.0.13' for IPv4 and `f)-.44 E(f02::d')
-.275 E(for IPv6\).)72 346.4 Q/F3 11/Times-Italic@0 SF 2.024 -1.012
(We n)97 363 T(ote that some implementations do not send Hello messa)
1.012 E -.11(ge)-.11 G 2.75(so).11 G 2.75(np)-2.75 G(oint-to-point)-2.75
E 2.75(interfaces. This)97 376 R(is non-compliant behavior)2.75 E 5.5
(.A)-1.221 G(compliant PIM r)-2.75 E(outer MUST send)-.495 E
(Hello messa)97 389 Q -.11(ge)-.11 G(s, e).11 E
(ven on point-to-point interfaces.)-.165 E F0 2.75(Ap)72 405.6 S
(er interf)-2.75 E(ace Hello T)-.11 E(imer \(HT\(I\)\) is used to trigg\
er sending Hello messages on each acti)-.385 E -.165(ve)-.275 G(interf)
72 418.6 Q 2.75(ace. When)-.11 F(PIM is enabled on an interf)2.75 E
(ace or a router \214rst starts, the Hello T)-.11 E(imer of that)-.385 E
(interf)72 431.6 Q(ace is set to a random v)-.11 E(alue between 0 and)
-.275 E/F4 11/Courier@0 SF(Triggered_Hello_Delay)2.75 E F0 5.5(.T)C
(his pre)-5.5 E -.165(ve)-.275 G(nts).165 E
(synchronization of Hello messages if multiple routers are po)72 444.6 Q
(wered on simultaneously)-.275 E 5.5(.A)-.715 G(fter the)-5.5 E
(initial randomized interv)72 457.6 Q(al, Hello messages must be sent e)
-.275 E -.165(ve)-.275 G(ry).165 E F4(Hello_Period)2.75 E F0 2.75
(seconds. The)2.75 F(Hello T)72 470.6 Q(imer should not be reset e)-.385
E(xcept when it e)-.165 E(xpires.)-.165 E(Note that neighbors will not \
accept Join/Prune or Assert messages from a router unless the)72 487.2 Q
2.75(yh)-.165 G -2.475 -.22(av e)-2.75 H
(\214rst heard a Hello message from that router)72 500.2 Q 5.5(.T)-.605
G(hus if a router needs to send a Join/Prune or Assert)-5.5 E
(message on an interf)72 513.2 Q
(ace on which it has not yet sent a Hello message with the currently)
-.11 E(con\214gured IP address, then it MUST immediately send the rele)
72 526.2 Q -.275(va)-.275 G(nt Hello message without).275 E -.11(wa)72
539.2 S(iting for the Hello T).11 E(imer to e)-.385 E(xpire, follo)-.165
E(wed by the Join/Prune or Assert message.)-.275 E
(The DR_Priority Option allo)72 555.8 Q(ws a netw)-.275 E
(ork administrator to gi)-.11 E .33 -.165(ve p)-.275 H
(reference to a particular router).165 E
(in the DR election process by gi)72 568.8 Q(ving it a numerically lar)
-.275 E(ger DR Priority)-.198 E 5.5(.T)-.715 G(he DR_Priority Option)
-5.5 E(SHOULD be included in e)72 581.8 Q -.165(ve)-.275 G
(ry Hello message, e).165 E -.165(ve)-.275 G 2.75(ni).165 G 2.75(fn)
-2.75 G 2.75(oD)-2.75 G 2.75(RP)-2.75 G(riority is e)-2.75 E
(xplicitly con\214gured on)-.165 E(that interf)72 594.8 Q 2.75
(ace. This)-.11 F(is necessary because priority-based DR election is on\
ly enabled when all)2.75 E(neighbors on an interf)72 607.8 Q(ace adv)
-.11 E(ertise that the)-.165 E 2.75(ya)-.165 G
(re capable of using the DR_Priority Option.)-2.75 E(The)5.5 E(def)72
620.8 Q(ault priority is 1.)-.11 E(The Generation_Identi\214er \(GenID\
\) Option SHOULD be included in all Hello messages.)72 637.4 Q(The)5.5 E
(GenID option contains a randomly generated 32-bit v)72 650.4 Q
(alue that is re)-.275 E(generated each time PIM)-.165 E(forw)72 663.4 Q
(arding is started or restarted on the interf)-.11 E
(ace, including when the router itself restarts.)-.11 E(When)5.5 E 2.75
(aH)72 676.4 S(ello message with a ne)-2.75 E 2.75(wG)-.275 G
(enID is recei)-2.75 E -.165(ve)-.275 G 2.75(df).165 G(rom a neighbor)
-2.75 E 2.75(,a)-.44 G .33 -.165(ny o)-2.75 H
(ld Hello information about).165 E(that neighbor SHOULD be discarded an\
d superseded by the information from the ne)72 689.4 Q 2.75(wH)-.275 G
(ello)-2.75 E 2.75(message. This)72 702.4 R(may cause a ne)2.75 E 2.75
(wD)-.275 G 2.75(Rt)-2.75 G 2.75(ob)-2.75 G 2.75(ec)-2.75 G
(hosen on that interf)-2.75 E(ace.)-.11 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.3.1. [P)2.75 F(age 23])-.165 E 0 Cg EP
%%Page: 24 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(The LAN Prune Delay Option SH\
OULD be included in all Hello messages sent on multi-access)72 85 Q
(LANs. This option adv)72 98 Q(ertises a router')-.165 E 2.75(sc)-.605 G
(apability to use v)-2.75 E(alues other than the def)-.275 E
(ault for the)-.11 E(Propag)72 111 Q(ation_Delay and Ov)-.055 E
(erride_Interv)-.165 E(al which af)-.275 E
(fect the setting of the Prune-Pending,)-.275 E(Upstream Join and Ov)72
124 Q(erride T)-.165 E(imers \(de\214ned in Section 4.10\).)-.385 E
(The Interf)72 140.6 Q(ace_Address_List Option adv)-.11 E
(ertises all the secondary addresses associated with the)-.165 E
(source interf)72 153.6 Q(ace of the router originating the message. Th\
e option MUST be included in all Hello)-.11 E(messages if there are sec\
ondary addresses associated with the source interf)72 166.6 Q
(ace and MA)-.11 E 2.75(Yb)-1.155 G(e)-2.75 E
(omitted if no secondary addresses e)72 179.6 Q(xist.)-.165 E 1.76 -.88
(To a)72 196.2 T(llo).88 E 2.75(wn)-.275 G .55 -.275(ew o)-2.75 H 2.75
(rr).275 G(ebooting routers to learn of PIM neighbors quickly)-2.75 E
2.75(,w)-.715 G(hen a Hello message is)-2.75 E(recei)72 209.2 Q -.165
(ve)-.275 G 2.75(df).165 G(rom a ne)-2.75 E 2.75(wn)-.275 G(eighbor)
-2.75 E 2.75(,o)-.44 G 2.75(raH)-2.75 G(ello message with a ne)-2.75 E
2.75(wG)-.275 G(enID is recei)-2.75 E -.165(ve)-.275 G 2.75(df).165 G
(rom an e)-2.75 E(xisting)-.165 E(neighbor)72 222.2 Q 2.75(,an)-.44 G
.55 -.275(ew H)-2.75 H(ello message should be sent on this interf).275 E
(ace after a randomized delay between)-.11 E 2.75(0a)72 235.2 S(nd)-2.75
E/F1 11/Courier@0 SF(Triggered_Hello_Delay)2.75 E F0 5.5(.T)C
(his triggered message need not change the timing of the)-5.5 E
(scheduled periodic message.)72 248.2 Q
(If a router needs to send a Join/Prune to the ne)5.5 E 2.75(wn)-.275 G
(eighbor or send)-2.75 E
(an Assert message in response to an Assert message from the ne)72 261.2
Q 2.75(wn)-.275 G(eighbor before this)-2.75 E(randomized delay has e)72
274.2 Q(xpired, then it MUST immediately send the rele)-.165 E -.275(va)
-.275 G(nt Hello message).275 E(without w)72 287.2 Q
(aiting for the Hello T)-.11 E(imer to e)-.385 E(xpire, follo)-.165 E
(wed by the Join/Prune or Assert message.)-.275 E(If it)5.5 E
(does not do this, then the ne)72 300.2 Q 2.75(wn)-.275 G
(eighbor will discard the Join/Prune or Assert message.)-2.75 E
(Before an interf)72 316.8 Q(ace goes do)-.11 E
(wn or changes primary IP address, a Hello message with a zero)-.275 E
(HoldT)72 329.8 Q(ime should be sent immediately \(with the old IP addr\
ess if the IP address changed\).)-.385 E(This)5.5 E
(will cause PIM neighbors to remo)72 342.8 Q .33 -.165(ve t)-.165 H
(his neighbor \(or its old IP address\) immediately).165 E 5.5(.A)-.715
G(fter an)-5.5 E(interf)72 355.8 Q(ace has changed its IP address, it M\
UST send a Hello message with its ne)-.11 E 2.75(wI)-.275 G 2.75(Pa)
-2.75 G 2.75(ddress. If)-2.75 F(an interf)72 368.8 Q(ace changes one of\
 its secondary IP addresses, a Hello message with an updated)-.11 E
(Address_List option and a non-zero HoldT)72 381.8 Q
(ime should be sent immediately)-.385 E 5.5(.T)-.715 G
(his will cause PIM)-5.5 E(neighbors to update this neighbor')72 394.8 Q
2.75(sl)-.605 G(ist of secondary addresses immediately)-2.75 E(.)-.715 E
/F2 11/Times-Bold@0 SF 2.75(4.3.2. DR)72 420.8 R(Election)2.75 E F0
(When a PIM Hello message is recei)72 437.4 Q -.165(ve)-.275 G 2.75(do)
.165 G 2.75(ni)-2.75 G(nterf)-2.75 E(ace I the follo)-.11 E
(wing information about the sending)-.275 E(neighbor is recorded:)72
450.4 Q F1(neighbor.interface)97 467 Q F0(The interf)122 480 Q
(ace on which the Hello message arri)-.11 E -.165(ve)-.275 G(d.).165 E
F1(neighbor.primary_ip_address)97 496.6 Q F0(The IP address that the PI\
M neighbor used as the source address of the Hello message.)122 509.6 Q
F1(neighbor.genid)97 526.2 Q F0(The Generation ID of the PIM neighbor)
122 539.2 Q(.)-.605 E F1(neighbor.dr_priority)97 555.8 Q F0(The DR Prio\
rity \214eld of the PIM neighbor if it is present in the Hello message.)
122 568.8 Q F1(neighbor.dr_priority_present)97 585.4 Q F0 2.75<418d>122
598.4 S(ag indicating if the DR Priority \214eld w)-2.75 E
(as present in the Hello message.)-.11 E F1(neighbor.timeout)97 615 Q F0
2.75(At)122 628 S(imer v)-2.75 E
(alue to time out the neighbor state when it becomes stale.)-.275 E
(The Neighbor Li)122 641 Q -.165(ve)-.275 G(ness T).165 E(imer \(NL)
-.385 E(T\(N,I\)\) is reset to)-1.012 E F1(Hello_Holdtime)2.75 E F0
(\(from the)2.75 E(Hello Holdtime option\) whene)122 654 Q -.165(ve)
-.275 G 2.75(raH).165 G(ello message is recei)-2.75 E -.165(ve)-.275 G
2.75(dc).165 G(ontaining a Holdtime)-2.75 E(option, or to)122 667 Q F1
(Default_Hello_Holdtime)2.75 E F0(if the Hello message does not contain)
2.75 E(the Holdtime option.)122 680 Q
(Neighbor state is deleted when the neighbor timeout e)72 696.6 Q
(xpires.)-.165 E(The function for computing the DR on interf)72 722.6 Q
(ace I is:)-.11 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385
E 160.971(elas Section)-.165 F 2.75(4.3.2. [P)2.75 F(age 24])-.165 E 0
Cg EP
%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF(host)85.2
85 Q(DR\(I\) {)85.2 98 Q(dr = me)111.6 111 Q
(for each neighbor on interface I {)111.6 124 Q
(if \( dr_is_better\( neighbor, dr, I \) == TRUE \) {)138 137 Q
(dr = neighbor)164.4 150 Q(})138 163 Q(})111.6 176 Q(return dr)111.6 189
Q(})85.2 202 Q F0
(The function used for comparing DR "metrics" on interf)72 224.6 Q
(ace I is:)-.11 E F1(bool)85.2 243.6 Q(dr_is_better\(a,b,I\) {)85.2
256.6 Q(if\( there is a neighbor n on I for which n.dr_priority_present)
111.6 269.6 Q(is false \) {)164.4 282.6 Q
(return a.primary_ip_address > b.primary_ip_address)138 295.6 Q 6.6(}e)
111.6 308.6 S(lse {)-6.6 E
(return \( a.dr_priority > b.dr_priority \) OR)138 321.6 Q 6.6(\(a)158.9
334.6 S(.dr_priority == b.dr_priority AND)-6.6 E
(a.primary_ip_address > b.primary_ip_address \))197.4 347.6 Q(})111.6
360.6 Q(})85.2 373.6 Q F0(The tri)72 392.6 Q(vial function)-.275 E F1
(I_am_DR\(I\))2.75 E F0(is de\214ned to aid readability:)2.75 E F1(bool)
85.2 411.6 Q(I_am_DR\(I\) {)85.2 424.6 Q(return DR\(I\) == me)99.5 437.6
Q(})85.2 450.6 Q F0
(The DR Priority is a 32-bit unsigned number and the numerically lar)72
473.2 Q(ger priority is al)-.198 E -.11(wa)-.11 G(ys).11 E 2.75
(preferred. A)72 486.2 R(router')2.75 E 2.75(si)-.605 G
(dea of the current DR on an interf)-2.75 E
(ace can change when a PIM Hello)-.11 E(message is recei)72 499.2 Q
-.165(ve)-.275 G(d, when a neighbor times out, or when a router').165 E
2.75(so)-.605 G(wn DR Priority changes.)-3.025 E(If)5.5 E(the router be\
comes the DR or ceases to be the DR, this will normally cause the DR Re)
72 512.2 Q(gister state)-.165 E(machine to change state.)72 525.2 Q
(Subsequent actions are determined by that state machine.)5.5 E/F2 11
/Times-Italic@0 SF 2.024 -1.012(We n)97 541.8 T
(ote that some PIM implementations do not send Hello messa)1.012 E -.11
(ge)-.11 G 2.75(so).11 G 2.75(np)-2.75 G(oint-to-point)-2.75 E
(interfaces, and so cannot perform DR election on suc)97 554.8 Q 2.75
(hi)-.165 G 2.75(nterfaces. This)-2.75 F(in non-)2.75 E
(compliant behavior)97 567.8 Q 5.5(.D)-1.221 G 2.75(Re)-5.5 G
(lection MUST be performed on ALL active PIM-SM)-2.75 E(interfaces.)97
580.8 Q/F3 11/Times-Bold@0 SF 2.75(4.3.3. Reducing)72 619.8 R(Prune Pr)
2.75 E(opagation Delay on LANs)-.198 E F0
(In addition to the information recorded for the DR Election, the follo)
72 636.4 Q(wing per neighbor)-.275 E
(information is obtained from the LAN Prune Delay Hello option:)72 649.4
Q F1(neighbor.lan_prune_delay_present)97 666 Q F0 2.75<418d>122 679 S
(ag indicating if the LAN Prune Delay option w)-2.75 E
(as present in the Hello message.)-.11 E F1(neighbor.tracking_support)97
695.6 Q F0 2.75<418d>122 708.6 S(ag storing the v)-2.75 E
(alue of the T bit in the LAN Prune Delay option if it is present in)
-.275 E(the Hello message. This indicates the neighbor')122 721.6 Q 2.75
(sc)-.605 G(apability to disable Join message)-2.75 E(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.3.3. [P)2.75 F(age 25])-.165 E 0 Cg EP
%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(suppression.)122 85 Q/F1 11
/Courier@0 SF(neighbor.propagation_delay)97 101.6 Q F0(The Propag)122
114.6 Q(ation Delay \214eld of the LAN Prune Delay option \(if present\
\) in the Hello)-.055 E(message.)122 127.6 Q F1
(neighbor.override_interval)97 144.2 Q F0(The Ov)122 157.2 Q
(erride_Interv)-.165 E
(al \214eld of the LAN Prune Delay option \(if present\) in the Hello)
-.275 E(message.)122 170.2 Q(The additional state described abo)72 186.8
Q .33 -.165(ve i)-.165 H 2.75(sd).165 G
(eleted along with the DR neighbor state when the)-2.75 E
(neighbor timeout e)72 199.8 Q(xpires.)-.165 E(Just lik)72 216.4 Q 2.75
(et)-.11 G(he DR_Priority option, the information pro)-2.75 E
(vided in the LAN Prune Delay option is not)-.165 E
(used unless all neighbors on a link adv)72 229.4 Q
(ertise the option. The function belo)-.165 E 2.75(wc)-.275 G
(omputes this state:)-2.75 E F1(bool)85.2 248.4 Q
(lan_delay_enabled\(I\) {)85.2 261.4 Q
(for each neighbor on interface I {)111.6 274.4 Q
(if \( neighbor.lan_prune_delay_present == false \) {)138 287.4 Q
(return false)164.4 300.4 Q(})138 313.4 Q(})111.6 326.4 Q(return true)
111.6 339.4 Q(})85.2 352.4 Q/F2 10/Symbol SF<ef>555 374 Q F0(The Propag)
72 375 Q
(ation Delay inserted by a router in the LAN Prune Delay option e)-.055
E(xpresses the)-.165 E -.165(ex)72 388 S(pected message propag).165 E
(ation delay on the link and should be con\214gurable by the system)
-.055 E(administrator)72 401 Q 2.75(.I)-.605 G 2.75(ti)-2.75 G 2.75(su)
-2.75 G(sed by upstream routers to \214gure out ho)-2.75 E 2.75(wl)-.275
G(ong the)-2.75 E 2.75(ys)-.165 G(hould w)-2.75 E(ait for a Join)-.11 E
-.165(ove)72 414 S(rride message before pruning an interf).165 E(ace.)
-.11 E(PIM implementors should enforce a lo)72 430.6 Q
(wer bound on the permitted v)-.275 E(alues for this delay to allo)-.275
E(w)-.275 E(for scheduling and processing delays within their router)72
443.6 Q 5.5(.S)-.605 G(uch delays may cause recei)-5.5 E -.165(ve)-.275
G(d).165 E(messages to be processed later as well as triggered messages\
 to be sent later than intended.)72 456.6 Q(Setting this Propag)72 469.6
Q(ation Delay to too lo)-.055 E 2.75(wav)-.275 G
(alue may result in temporary forw)-3.025 E(arding outages)-.11 E
(because a do)72 482.6 Q(wnstream router will not be able to o)-.275 E
-.165(ve)-.165 G(rride a neighbor').165 E 2.75(sP)-.605 G
(rune message before the)-2.75 E(upstream neighbor stops forw)72 495.6 Q
(arding.)-.11 E(When all routers on a link are in a position to ne)72
512.2 Q(gotiate a dif)-.165 E(ferent than def)-.275 E(ault Propag)-.11 E
(ation Delay)-.055 E(,)-.715 E(the lar)72 525.2 Q(gest v)-.198 E
(alue from those adv)-.275 E
(ertised by each neighbor is chosen. The function for computing)-.165 E
(the Ef)72 538.2 Q(fecti)-.275 E -.165(ve)-.275 G(_Propag).165 E
(ation_Delay of interf)-.055 E(ace I is:)-.11 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.3.3. [P)2.75 F(age 26])-.165 E 0 Cg EP
%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF
(time_interval)85.2 85 Q(Effective_Propagation_Delay\(I\) {)85.2 98 Q
(if \( lan_delay_enabled\(I\) == false \) {)111.6 111 Q
(return Propagation_delay_default)138 124 Q(})111.6 137 Q
(delay = Propagation_Delay\(I\))111.6 150 Q
(for each neighbor on interface I {)111.6 163 Q
(if \( neighbor.propagation_delay > delay \) {)138 176 Q
(delay = neighbor.propagation_delay)164.4 189 Q(})138 202 Q(})111.6 215
Q(return delay)111.6 228 Q(})85.2 241 Q F0 1.76 -.88(To a)72 263.6 T
-.22(vo).66 G(id synchronization of o).22 E -.165(ve)-.165 G
(rride messages when multiple do).165 E(wnstream routers share a multi-)
-.275 E(access link, sending of such messages is delayed by a small ran\
dom amount of time. The period)72 276.6 Q(of randomization should repre\
sent the size of the PIM router population on the link.)72 289.6 Q
(Each router)5.5 E -.165(ex)72 302.6 S(presses its vie).165 E 2.75(wo)
-.275 G 2.75(ft)-2.75 G(he amount of randomization necessary in the Ov)
-2.75 E(erride Interv)-.165 E(al \214eld of the)-.275 E
(LAN Prune Delay option.)72 315.6 Q
(When all routers on a link are in a position to ne)72 332.2 Q
(gotiate a dif)-.165 E(ferent than def)-.275 E(ault Ov)-.11 E
(erride Interv)-.165 E(al,)-.275 E(the lar)72 345.2 Q(gest v)-.198 E
(alue from those adv)-.275 E
(ertised by each neighbor is chosen. The function for computing)-.165 E
(the Ef)72 358.2 Q(fecti)-.275 E .33 -.165(ve O)-.275 H -.165(ve).165 G
(rride Interv).165 E(al of interf)-.275 E(ace I is:)-.11 E F1
(time_interval)85.2 377.2 Q(Effective_Override_Interval\(I\) {)85.2
390.2 Q(if \( lan_delay_enabled\(I\) == false \) {)111.6 403.2 Q
(return t_override_default)138 416.2 Q(})111.6 429.2 Q
(delay = Override_Interval\(I\))111.6 442.2 Q
(for each neighbor on interface I {)111.6 455.2 Q
(if \( neighbor.override_interval > delay \) {)138 468.2 Q
(delay = neighbor.override_interval)164.4 481.2 Q(})138 494.2 Q(})111.6
507.2 Q(return delay)111.6 520.2 Q(})85.2 533.2 Q F0(Although the mecha\
nisms are not speci\214ed in this document, it is possible for upstream\
 routers to)72 555.8 Q -.165(ex)72 568.8 S
(plicitly track the join membership of indi).165 E(vidual do)-.275 E
(wnstream routers if Join suppression is)-.275 E 2.75(disabled. A)72
581.8 R(router can adv)2.75 E(ertise its willingness to disable Join su\
ppression by using the T bit in)-.165 E
(the LAN Prune Delay Hello option. Unless all PIM routers on a link ne)
72 594.8 Q(gotiate this capability)-.165 E(,)-.715 E -.165(ex)72 607.8 S
(plicit tracking and the disabling of the Join suppression mechanism ar\
e not possible. The).165 E
(function for computing the state of Suppression on interf)72 620.8 Q
(ace I is:)-.11 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385
E 160.971(elas Section)-.165 F 2.75(4.3.3. [P)2.75 F(age 27])-.165 E 0
Cg EP
%%Page: 28 28
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF(bool)85.2
85 Q(Suppression_Enabled\(I\) {)85.2 98 Q
(if \( lan_delay_enabled\(I\) == false \) {)111.6 111 Q(return true)138
124 Q(})111.6 137 Q(for each neighbor on interface I {)111.6 150 Q
(if \( neighbor.tracking_support == false \) {)138 163 Q(return true)
164.4 176 Q(})138 189 Q(})111.6 202 Q(return false)111.6 215 Q(})85.2
228 Q F0(Note that the setting of Suppression_Enabled\(I\) af)72 247 Q
(fects the v)-.275 E(alue of t_suppressed \(see Section)-.275 E(4.10\).)
72 260 Q/F2 11/Times-Bold@0 SF 2.75(4.3.4. Maintaining)72 286 R
(Secondary Addr)2.75 E(ess Lists)-.198 E F0(Communication of a router')
72 302.6 Q 2.75(si)-.605 G(nterf)-2.75 E
(ace secondary addresses to its PIM neighbors is necessary to)-.11 E
(pro)72 315.6 Q(vide the neighbors with a mechanism for mapping ne)-.165
E(xt_hop information obtained through)-.165 E(their MRIB to a primary a\
ddress that can be used as a destination for Join/Prune messages.)72
328.6 Q(The)5.5 E(mapping is performed through the NBR macro.)72 341.6 Q
(The primary address of a PIM neighbor is)5.5 E(obtained from the sourc\
e IP address used in its PIM Hello messages. Secondary addresses are)72
354.6 Q(carried within the Hello message in an Address List Hello optio\
n. The primary address of the)72 367.6 Q(source interf)72 380.6 Q
(ace of the router MUST NO)-.11 E 2.75(Tb)-.44 G 2.75(el)-2.75 G
(isted within the Address List Hello option.)-2.75 E
(In addition to the information recorded for the DR Election, the follo)
72 397.2 Q(wing per neighbor)-.275 E
(information is obtained from the Address List Hello option:)72 410.2 Q
F1(neighbor.secondary_address_list)97 426.8 Q F0
(The list of secondary addresses used by the PIM neighbor on the interf)
122 439.8 Q(ace through)-.11 E(which the Hello message w)122 452.8 Q
(as transmitted.)-.11 E(When processing a recei)72 469.4 Q -.165(ve)
-.275 G 2.75(dP).165 G
(IM Hello message containing an Address List Hello option, the list)
-2.75 E(of secondary addresses in the message completely replaces an)72
482.4 Q 2.75(yp)-.165 G(re)-2.75 E(viously associated secondary)-.275 E
(addresses for that neighbor)72 495.4 Q 2.75(.I)-.605 G 2.75(far)-2.75 G
(ecei)-2.75 E -.165(ve)-.275 G 2.75(dP).165 G
(IM Hello message does not contain an Address List)-2.75 E(Hello option\
 then all secondary addresses associated with the neighbor must be dele\
ted. If a)72 508.4 Q(recei)72 521.4 Q -.165(ve)-.275 G 2.75(dP).165 G(I\
M Hello message contains an Address List Hello option that includes the\
 primary)-2.75 E(address of the sending router in the list of secondary\
 addresses \(although this is not e)72 534.4 Q(xpected\))-.165 E
(then the addresses listed in the message e)72 547.4 Q
(xcluding the primary address are used to update the)-.165 E
(associated secondary addresses for that neighbor)72 560.4 Q(.)-.605 E
(All the adv)72 577 Q(ertised secondary addresses in recei)-.165 E -.165
(ve)-.275 G 2.75(dH).165 G(ello messages must be check)-2.75 E(ed ag)
-.11 E(ainst those)-.055 E(pre)72 590 Q(viously adv)-.275 E
(ertised by all other PIM neighbors on that interf)-.165 E
(ace. If there is a con\215ict and the)-.11 E(same secondary address w)
72 603 Q(as pre)-.11 E(viously adv)-.275 E
(ertised by another neighbor then only the most)-.165 E(recently recei)
72 616 Q -.165(ve)-.275 G 2.75(dm).165 G
(apping MUST be maintained and an error message SHOULD be logged to the)
-2.75 E(administrator in a rate limited manner)72 629 Q(.)-.605 E -.44
(Wi)72 645.6 S(thin one Address List Hello option, all the addresses MU\
ST be of the same address f).44 E(amily)-.11 E 5.5(.I)-.715 G(t)-5.5 E(\
is not permitted to mix IPv4 and IPv6 addresses within the same message\
.)72 658.6 Q(In addition, the)5.5 E(address f)72 671.6 Q(amily of the \
\214elds in the message SHOULD be the same as the IP source and destina\
tion)-.11 E(addresses of the pack)72 684.6 Q(et header)-.11 E(.)-.605 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.3.4. [P)2.75 F(age 28])-.165 E 0 Cg EP
%%Page: 29 29
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(4.4.)72
85 Q/F2 13/Times-Bold@0 SF(PIM Register Messages)5.5 E F1(Ov)72 111 Q
(er)-.11 E(view)-.11 E F0(The Designated Router \(DR\) on a LAN or poin\
t-to-point link encapsulates multicast pack)72 127.6 Q(ets from)-.11 E
(local sources to the RP for the rele)72 140.6 Q -.275(va)-.275 G
(nt group unless it recently recei).275 E -.165(ve)-.275 G 2.75(daR).165
G -.165(eg)-2.75 G(ister).165 E(-Stop message)-.22 E
(for that \(S,G\) or \(*,G\) from the RP)72 153.6 Q 5.5(.W)-1.221 G
(hen the DR recei)-5.5 E -.165(ve)-.275 G 2.75(saR).165 G -.165(eg)-2.75
G(ister).165 E(-Stop message from the RP)-.22 E(,)-1.221 E
(it starts a Re)72 166.6 Q(gister)-.165 E(-Stop T)-.22 E
(imer to maintain this state.)-.385 E(Just before the Re)5.5 E(gister)
-.165 E(-Stop T)-.22 E(imer e)-.385 E(xpires,)-.165 E
(the DR sends a Null-Re)72 179.6 Q(gister Message to the RP to allo)
-.165 E 2.75(wt)-.275 G(he RP to refresh the Re)-2.75 E(gister)-.165 E
(-Stop)-.22 E(information at the DR.)72 192.6 Q(If the Re)5.5 E(gister)
-.165 E(-Stop T)-.22 E(imer actually e)-.385 E
(xpires, the DR will resume)-.165 E(encapsulating pack)72 205.6 Q
(ets from the source to the RP)-.11 E(.)-1.221 E F1 2.75(4.4.1. Sending)
72 244.6 R(Register Messages fr)2.75 E(om the DR)-.198 E F0(Ev)72 261.2
Q(ery PIM-SM router has the capability to be a DR.)-.165 E
(The state machine belo)5.5 E 2.75(wi)-.275 G 2.75(su)-2.75 G(sed to)
-2.75 E(implement Re)72 274.2 Q(gister functionality)-.165 E 5.5(.F)
-.715 G(or the purposes of speci\214cation, we represent the mechanism)
-5.665 E(to encapsulate pack)72 287.2 Q(ets to the RP as a Re)-.11 E
(gister)-.165 E(-T)-.22 E(unnel interf)-.495 E
(ace, which is added to or remo)-.11 E -.165(ve)-.165 G(d).165 E
(from the \(S,G\) olist.)72 300.2 Q(The tunnel interf)5.5 E
(ace then tak)-.11 E(es part in the normal pack)-.11 E(et forw)-.11 E
(arding rules as)-.11 E(speci\214ed in Section 4.2.)72 313.2 Q(If re)72
329.8 Q(gister state is maintained, it is maintained only for directly \
connected sources, and is)-.165 E(per)72 342.8 Q 2.75(-\(S,G\). There)
-.22 F(are four states in the DR')2.75 E 2.75(sp)-.605 G(er)-2.75 E
(-\(S,G\) Re)-.22 E(gister state machine:)-.165 E F1 -.165(Jo)72 359.4 S
(in \(J\)).165 E F0(The re)97 372.4 Q
(gister tunnel is "joined" \(the join is actually implicit, b)-.165 E
(ut the DR acts as if the RP has)-.22 E
(joined the DR on the tunnel interf)97 385.4 Q(ace\).)-.11 E F1
(Prune \(P\))72 402 Q F0(The re)97 415 Q
(gister tunnel is "pruned" \(this occurs when a Re)-.165 E(gister)-.165
E(-Stop is recei)-.22 E -.165(ve)-.275 G(d\).).165 E F1 -.165(Jo)72
431.6 S(in-P).165 E(ending \(JP\))-.22 E F0(The re)97 444.6 Q
(gister tunnel is pruned b)-.165 E
(ut the DR is contemplating adding it back.)-.22 E F1(NoInf)72 461.2 Q
2.75(o\()-.275 G(NI\))-2.75 E F0(No information.)97 474.2 Q(This is the\
 initial state, and the state when the router is not the DR.)5.5 E
(In addition, a Re)72 490.8 Q(gister)-.165 E(-Stop T)-.22 E
(imer \(RST\) is k)-.385 E
(ept if the state machine is not in the NoInfo state.)-.11 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.4.1. [P)2.75 F(age 29])-.165 E 0 Cg EP
%%Page: 30 30
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 27 237 396 517 -248.936 325
108 333.936 PBEGIN
%%BeginDocument: register-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica Times-Italic
%%Pages: 1
%%BoundingBox: 27 237 544 562
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 52 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def
/Times-Italic reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 10 Grid 8 8 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 9
895 699
1080 656
1099 489
1095 292
1019 185
900 139
620 141
441 142
336 230
9 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 5
301 697
180 733
220 806
292 814
295 745
5 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
894 696
604 633
350 694
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
894 696
607 806
343 725
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
892 695
815 496
879 311
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
889 261
1002 482
922 659
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
302 698
644 564
864 307
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
891 265
575 417
336 661
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 2
891 264
350 264
2 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
301 698
382 483
319 308
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I 3
299 263
205 474
273 657
3 BSpl
%I 2
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 179.5 ] concat
%I
301 697 48 48 Elli
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 273.5 -36.5 ] concat
%I
301 697 48 48 Elli
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22.5 -36.5 ] concat
%I
301 697 48 48 Elli
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 273.5 179.5 ] concat
%I
301 697 48 48 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 116.5 533 ] concat
%I
[
(Join)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 118 322.5 ] concat
%I
[
(No)
(Info)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 409 315.5 ] concat
%I
[
(Prune)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 417 531.5 ] concat
%I
[
(JP)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-times-medium-r-normal--8-80-75-75-p-44-iso8859-1
Times-Italic 8 SetF
%I t
[ 1 0 0 1 49.5 326.5 ] concat
%I
[
(Note: RegStop)
(Timer doesn't)
(run in NoInfo)
(state)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 36 473 ] concat
%I
[
(CouldRegister\(S,G\))
(->TRUE)
([Add reg tunnel])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 126.5 422.5 ] concat
%I
[
(CouldRegister\(S,G\))
(-> FALSE)
([Remove reg tunnel])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 246 307.5 ] concat
%I
[
(CouldRegister\(S,G\))
(-> FALSE)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 209 381 ] concat
%I
[
(RP Changed)
([Add reg tunnel])
([Cancel RegStop Timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 200.5 580.5 ] concat
%I
[
(RegStop Timer expires)
([Add reg tunnel] )
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 477 505 ] concat
%I
[
(CouldRegister\(S,G\))
(-> FALSE)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 30 582.5 ] concat
%I
[
(RP Changed)
([Update reg tunnel])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 260 539 ] concat
%I
[
(RP Changed)
([Add reg tunnel])
([Cancel RegStop Timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 422 405.5 ] concat
%I
[
(RegStop Timer)
(expired)
([Set RegStop Timer)
(to probetime])
([Send Null-Register])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 212 498 ] concat
%I
[
(RegStop received from RP)
([Remove reg tunnel])
([Set RegStop Timer to)
(randomized RST - probetime])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 356 466 ] concat
%I
[
(RegStop received )
(from RP)
([Set RegStop Timer)
(to randomized RST)
(-probetime])
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND/F1 11/Times-Bold@0 SF(Figur)188.751 372.936 Q 2.75(e1)-.198 G
2.75(:P)-2.75 G(er)-2.97 E(-\(S,G\) r)-.407 E
(egister state machine at a DR)-.198 E F0(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.4.1. [P)2.75 F(age 30])-.165 E 0 Cg EP
%%Page: 31 31
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Per)72 85 Q(-\(S,G\) re)-.22 E
(gister state machine at a DR in tab)-.165 E(ular form:)-.22 E .44 LW
503.997 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(Ev)313.852 106 Q(ent)
-.11 E 503.997 110.75 147.013 110.75 DL(Pr)78.17 126.5 Q .33 -.165(ev S)
-.198 H(tate).165 E(Register)157.268 121 Q(-)-.407 E(Stop T)157.268 134
Q(imer)-.198 E(expir)157.268 147 Q(es)-.198 E(Could)230.69 121 Q
(Register)230.69 134 Q/F2 11/Symbol SF<ae>230.69 147 Q F1 -.814(Tr)C(ue)
.814 E(Could)289.999 121 Q(Register)289.999 134 Q F2<ae>289.999 147 Q F1
-.275(Fa)C(lse).275 E(Register)357.8 121 Q(-)-.407 E(Stop)357.8 134 Q
-.198(re)357.8 147 S(cei).198 E -.11(ve)-.11 G(d).11 E(RP changed)
436.425 121 Q 503.997 151.75 72 151.75 DL 503.997 153.75 72 153.75 DL F0
129.068(--)157.268 164 S 74.962(--)-64.93 G F2<ae>230.69 164 Q F0 2.75
(Js)2.75 G(tate)-2.75 E F1(NoInf)78.17 177 Q 2.75(o\()-.275 G(NI\))-2.75
E F0(add re)230.69 177 Q(g)-.165 E(tunnel)230.69 190 Q 503.997 194.75 72
194.75 DL 69.759(--)157.268 205 S F2<ae>289.999 205 Q F0(NI state)2.75 E
F2<ae>357.8 205 Q F0 2.75(Ps)2.75 G(tate)-2.75 E F2<ae>436.425 205 Q F0
2.75(Js)2.75 G(tate)-2.75 E F1 -.165(Jo)78.17 231 S(in \(J\)).165 E F0
(remo)289.999 218 Q .33 -.165(ve r)-.165 H -.165(eg).165 G(tunnel)
289.999 231 Q(remo)357.8 218 Q .33 -.165(ve r)-.165 H -.165(eg).165 G
(tunnel; set)357.8 231 Q(Re)357.8 244 Q(gister)-.165 E(-Stop)-.22 E
-.385(Ti)357.8 257 S(mer\(*\)).385 E(update re)436.425 218 Q(g)-.165 E
(tunnel)436.425 231 Q 503.997 261.75 72 261.75 DL(-)230.69 272 Q F2<ae>
157.268 272 Q F0 2.75(Js)2.75 G(tate)-2.75 E F2<ae>289.999 272 Q F0
(NI state)2.75 E F2<ae>357.8 272 Q F0 2.75(Ps)2.75 G(tate)-2.75 E F2<ae>
436.425 272 Q F0 2.75(Js)2.75 G(tate)-2.75 E F1 -.165(Jo)78.17 291.5 S
(in-).165 E -.22(Pe)78.17 304.5 S(nding \(JP\)).22 E F0(add re)157.268
285 Q(g)-.165 E(tunnel)157.268 298 Q(set Re)357.8 285 Q(gister)-.165 E
(-)-.22 E(Stop)357.8 298 Q -.385(Ti)357.8 311 S(mer\(*\)).385 E(add re)
436.425 285 Q(g)-.165 E(tunnel; cancel)436.425 298 Q(Re)436.425 311 Q
(gister)-.165 E(-Stop)-.22 E -.385(Ti)436.425 324 S(mer).385 E 503.997
328.75 72 328.75 DL 123.447(--)230.69 339 S F2<ae>157.268 339 Q F0
(JP state)2.75 E F2<ae>289.999 339 Q F0(NI state)2.75 E F2<ae>436.425
339 Q F0 2.75(Js)2.75 G(tate)-2.75 E F1(Prune \(P\))78.17 371.5 Q F0
(set Re)157.268 352 Q(gister)-.165 E(-)-.22 E(Stop)157.268 365 Q -.385
(Ti)157.268 378 S(mer\(**\);).385 E(send Null-)157.268 391 Q(Re)157.268
404 Q(gister)-.165 E(add re)436.425 352 Q(g)-.165 E(tunnel; cancel)
436.425 365 Q(Re)436.425 378 Q(gister)-.165 E(-Stop)-.22 E -.385(Ti)
436.425 391 S(mer).385 E 503.997 408.75 72 408.75 DL 427.17 110.75
427.17 408.75 DL 348.545 110.75 348.545 408.75 DL 280.744 110.75 280.744
408.75 DL 221.435 110.75 221.435 408.75 DL 147.013 95.75 147.013 408.75
DL 149.013 95.75 149.013 408.75 DL 503.997 95.75 503.997 408.75 DL 72
95.75 72 408.75 DL(Notes:)72 426.6 Q/F3 11/Courier@0 SF(\(*\))72 443.2 Q
F0(The Re)2.75 E(gister)-.165 E(-Stop T)-.22 E
(imer is set to a random v)-.385 E
(alue chosen uniformly from the interv)-.275 E(al \( 0.5 *)-.275 E(Re)97
456.2 Q(gister_Suppression_T)-.165 E(ime, 1.5 * Re)-.385 E
(gister_Suppression_T)-.165 E(ime\) minus)-.385 E(Re)97 469.2 Q
(gister_Probe_T)-.165 E(ime;)-.385 E(Subtracting of)97 485.8 Q 2.75(fR)
-.275 G -.165(eg)-2.75 G(ister_Probe_T).165 E
(ime is a bit unnecessary because it is really small)-.385 E
(compared to Re)97 498.8 Q(gister_Suppression_T)-.165 E(ime, b)-.385 E
(ut w)-.22 E(as in the old spec and is k)-.11 E(ept for)-.11 E
(compatibility)97 511.8 Q(.)-.715 E(\(**\) The Re)72 528.4 Q(gister)
-.165 E(-Stop T)-.22 E(imer is set to Re)-.385 E(gister_Probe_T)-.165 E
(ime.)-.385 E(The follo)72 545 Q(wing actions are de\214ned:)-.275 E F1
(Add Register T)72 571 Q(unnel)-1.012 E F0 2.75(AR)72 587.6 S -.165(eg)
-2.75 G(ister).165 E(-T)-.22 E(unnel virtual interf)-.495 E
(ace, VI, is created \(if it doesn')-.11 E 2.75(ta)-.198 G(lready e)
-2.75 E(xist\) with its)-.165 E(encapsulation tar)72 600.6 Q
(get being RP\(G\).)-.198 E(Do)5.5 E
(wnstreamJPState\(S,G,VI\) is set to Join state, causing the)-.275 E
(tunnel interf)72 613.6 Q(ace to be added to)-.11 E F3
(immediate_olist\(S,G\))2.75 E F0(.)A F1(Remo)72 639.6 Q .22 -.11(ve R)
-.11 H(egister T).11 E(unnel)-1.012 E F0(VI is the Re)72 656.2 Q(gister)
-.165 E(-T)-.22 E(unnel virtual interf)-.495 E
(ace with encapsulation tar)-.11 E(get of RP\(G\).)-.198 E(Do)72 669.2 Q
(wnstreamJPState\(S,G,VI\) is set to NoInfo state, causing the tunnel i\
nterf)-.275 E(ace to be remo)-.11 E -.165(ve)-.165 G(d).165 E(from)72
682.2 Q F3(immediate_olist\(S,G\))2.75 E F0 5.5(.I)C 2.75(fD)-5.5 G
-.275(ow)-2.75 G
(nstreamJPState\(S,G,VI\) is NoInfo for all \(S,G\), then).275 E
(VI can be deleted.)72 695.2 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165
E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.4.1. [P)2.75 F
(age 31])-.165 E 0 Cg EP
%%Page: 32 32
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF
(Update Register T)72 85 Q(unnel)-1.012 E F0
(This action occurs when RP\(G\) changes.)72 101.6 Q(VI_old is the Re)72
118.2 Q(gister)-.165 E(-T)-.22 E(unnel virtual interf)-.495 E
(ace with encapsulation tar)-.11 E(get old_RP\(G\).)-.198 E 2.75(AR)5.5
G -.165(eg)-2.75 G(ister).165 E(-)-.22 E -.495(Tu)72 131.2 S
(nnel virtual interf).495 E(ace, VI_ne)-.11 E 1.43 -.715(w, i)-.275 H
2.75(sc).715 G(reated \(if it doesn')-2.75 E 2.75(ta)-.198 G(lready e)
-2.75 E(xist\) with its encapsulation)-.165 E(tar)72 144.2 Q
(get being ne)-.198 E 2.75(w_RP\(G\). Do)-.275 F
(wnstreamJPState\(S,G,VI_old\) is set to NoInfo state and)-.275 E(Do)72
157.2 Q(wnstreamJPState\(S,G,VI_ne)-.275 E(w\) is set to Join state.)
-.275 E(If Do)5.5 E(wnstreamJPState\(S,G,VI_old\) is)-.275 E
(NoInfo for all \(S,G\), then VI_old can be deleted.)72 170.2 Q
(Note that we can not simply change the encapsulation tar)72 186.8 Q
(get of VI_old because not all groups)-.198 E
(using that encapsulation tunnel will ha)72 199.8 Q .33 -.165(ve m)-.22
H -.165(ove).165 G 2.75(dt).165 G 2.75(ot)-2.75 G(he same ne)-2.75 E
2.75(wR)-.275 G -1.221(P.)-2.75 G F1(CouldRegister\(S,G\))72 225.8 Q F0
(The macro "CouldRe)72 242.4 Q
(gister" in the state machine is de\214ned as:)-.165 E/F2 11/Courier@0
SF(bool CouldRegister\(S,G\) {)85.2 261.4 Q
(return \( I_am_DR\( RPF_interface\(S\) \) AND)105 274.4 Q
(KeepaliveTimer\(S,G\) is running AND)164.4 287.4 Q
(DirectlyConnected\(S\) == TRUE \))164.4 300.4 Q(})85.2 313.4 Q F0
(Note that on reception of a pack)72 336 Q
(et at the DR from a directly connected source,)-.11 E F2
(KeepaliveTimer\(S,G\))72 349 Q F0(needs to be set by the pack)2.75 E
(et forw)-.11 E(arding rules)-.11 E/F3 11/Times-Italic@0 SF(befor)2.75 E
(e)-.407 E F0(computing)2.75 E F2(CouldRegister\(S,G\))72 362 Q F0
(in the re)2.75 E(gister state machine, or the \214rst pack)-.165 E
(et from a source w)-.11 E(on')-.11 E 2.75(tb)-.198 G(e)-2.75 E(re)72
375 Q(gistered.)-.165 E F1(Encapsulating data pack)72 414 Q
(ets in the Register T)-.11 E(unnel)-1.012 E F0(Conceptually)72 430.6 Q
2.75(,t)-.715 G(he Re)-2.75 E(gister T)-.165 E(unnel is an interf)-.495
E(ace with a smaller MTU than the underlying IP)-.11 E(interf)72 443.6 Q
(ace to)-.11 E -.11(wa)-.275 G(rds the RP).11 E 5.5(.I)-1.221 G 2.75(Pf)
-5.5 G(ragmentation on pack)-2.75 E(ets forw)-.11 E(arded on the Re)-.11
E(gister T)-.165 E(unnel is)-.495 E
(performed based upon this smaller MTU.)72 456.6 Q
(The encapsulating DR may perform P)5.5 E(ath MTU)-.165 E(Disco)72 469.6
Q -.165(ve)-.165 G(ry to the RP to determine the ef).165 E(fecti)-.275 E
.33 -.165(ve M)-.275 H(TU of the tunnel.).165 E
(Fragmentation for the smaller)5.5 E(MTU should tak)72 482.6 Q 2.75(eb)
-.11 G(oth the outer IP header and the PIM re)-2.75 E(gister header o)
-.165 E -.165(ve)-.165 G(rhead into account.).165 E(If)5.5 E 2.75(am)72
495.6 S(ulticast pack)-2.75 E(et is fragmented on the w)-.11 E
(ay into the Re)-.11 E(gister T)-.165 E(unnel, each fragment is)-.495 E
(encapsulated indi)72 508.6 Q(vidually so it contains IP)-.275 E 2.75
(,P)-1.221 G(IM, and inner IP headers.)-2.75 E
(In IPv6, the DR MUST perform P)72 525.2 Q(ath MTU disco)-.165 E -.165
(ve)-.165 G(ry).165 E 2.75(,a)-.715 G(nd an ICMP P)-2.75 E(ack)-.165 E
(et T)-.11 E(oo Big message)-.88 E
(MUST be sent by the encapsulating DR if it recei)72 538.2 Q -.165(ve)
-.275 G 2.75(sap).165 G(ack)-2.75 E(et that will not \214t in the ef)
-.11 E(fecti)-.275 E -.165(ve)-.275 G(MTU of the tunnel.)72 551.2 Q
(If the MTU between the DR and the RP results in the ef)5.5 E(fecti)
-.275 E .33 -.165(ve t)-.275 H(unnel MTU).165 E(being smaller than 1280\
 \(the IPv6 minimum MTU\), the DR MUST send Fragmentation Required)72
564.2 Q(messages with an MTU v)72 577.2 Q
(alue of 1280 and MUST fragment its PIM re)-.275 E
(gister messages as required,)-.165 E(using an IPv6 fragmentation heade\
r between the outer IPv6 header and the PIM Re)72 590.2 Q(gister header)
-.165 E(.)-.605 E(The TTL of a forw)72 606.8 Q(arded data pack)-.11 E
(et is decremented before it is encapsulated in the Re)-.11 E(gister)
-.165 E -.495(Tu)72 619.8 S 2.75(nnel. The).495 F(encapsulating pack)
2.75 E(et uses the normal TTL that the router w)-.11 E(ould use for an)
-.11 E 2.75(yl)-.165 G(ocally-)-2.75 E(generated IP pack)72 632.8 Q(et.)
-.11 E(The IP ECN bits should be copied from the original pack)72 649.4
Q(et to the IP header of the encapsulating)-.11 E(pack)72 662.4 Q 2.75
(et. The)-.11 F 2.75(yS)-.165 G(HOULD NO)-2.75 E 2.75(Tb)-.44 G 2.75(es)
-2.75 G(et independently by the encapsulating router)-2.75 E(.)-.605 E
(The Dif)72 679 Q
(fserv Code Point \(DSCP\) should be copied from the original pack)-.275
E(et to the IP header of the)-.11 E(encapsulating pack)72 692 Q 2.75
(et. It)-.11 F(MA)2.75 E 2.75(Yb)-1.155 G 2.75(es)-2.75 G
(et independently by the encapsulating router)-2.75 E 2.75(,b)-.44 G
(ased upon static)-2.75 E(con\214guration or traf)72 705 Q
(\214c classi\214cation.)-.275 E
(See [10] for more discussion on setting the DSCP on)5.5 E(tunnels.)72
718 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.4.1. [P)2.75 F(age 32])-.165 E 0 Cg EP
%%Page: 33 33
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF
(Handling Register)72 85 Q(-Stop\(*,G\) Messages at the DR)-.407 E F0
(An old RP might send a Re)72 101.6 Q(gister)-.165 E
(-Stop message with the source address set to all-zeros.)-.22 E(This w)
5.5 E(as)-.11 E(the normal course of action in RFC 2326 when the Re)72
114.6 Q(gister message matched ag)-.165 E(ainst \(*,G\) state)-.055 E
(at the RP)72 127.6 Q 2.75(,a)-1.221 G(nd w)-2.75 E(as de\214ned as mea\
ning "stop encapsulating all sources for this group".)-.11 E(Ho)5.5 E
(we)-.275 E -.165(ve)-.275 G -.44(r,).165 G(the beha)72 140.6 Q
(vior of such a Re)-.22 E(gister)-.165 E
(-Stop\(*,G\) is ambiguous or incorrect in some circumstances.)-.22 E
1.76 -.88(We s)72 157.2 T(pecify that an RP should not send Re).88 E
(gister)-.165 E(-Stop\(*,G\) messages, b)-.22 E(ut for compatibility)
-.22 E 2.75(,aD)-.715 G(R)-2.75 E
(should be able to accept one if it is recei)72 170.2 Q -.165(ve)-.275 G
(d.).165 E 2.75(AR)72 186.8 S -.165(eg)-2.75 G(ister).165 E
(-Stop\(*,G\) should be treated as a Re)-.22 E(gister)-.165 E
(-Stop\(S,G\) for all \(S,G\) Re)-.22 E(gister state)-.165 E
(machines that are not in the NoInfo state.)72 199.8 Q 2.75(Ar)5.5 G
(outer should not apply a Re)-2.75 E(gister)-.165 E(-Stop\(*,G\) to)-.22
E(sources that become acti)72 212.8 Q .33 -.165(ve a)-.275 H
(fter the Re).165 E(gister)-.165 E(-Stop\(*,G\) w)-.22 E(as recei)-.11 E
-.165(ve)-.275 G(d.).165 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.4.2. [P)2.75 F(age 33])
-.165 E 0 Cg EP
%%Page: 34 34
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF 2.75
(4.4.2. Recei)72 85 R(ving Register Messages at the RP)-.11 E F0
(When an RP recei)72 101.6 Q -.165(ve)-.275 G 2.75(saR).165 G -.165(eg)
-2.75 G(ister message, the course of action is decided according to the)
.165 E(follo)72 114.6 Q(wing pseudocode:)-.275 E/F2 11/Courier@0 SF
(packet_arrives_on_rp_tunnel\( pkt \) {)72 133.6 Q
(if\( outer.dst is not one of my addresses \) {)98.4 146.6 Q
(drop the packet silently.)124.8 159.6 Q(#)124.8 172.6 Q F0
(Note: this may be a spoo\214ng attempt)6.6 E F2(})98.4 185.6 Q
(if\( I_am_RP\(G\) AND outer.dst == RP\(G\) \) {)98.4 198.6 Q
(sentRegisterStop = FALSE;)127 211.6 Q
(if \( register.borderbit == TRUE \) {)127 224.6 Q
(if \( PMBR\(S,G\) == unknown \) {)154.5 237.6 Q
(PMBR\(S,G\) = outer.src)182 250.6 Q 6.6(}e)154.5 263.6 S
(lse if \( outer.src != PMBR\(S,G\) \) {)-6.6 E
(send Register-Stop\(S,G\) to outer.src)182 276.6 Q
(drop the packet silently.)182 289.6 Q(})154.5 302.6 Q(})127 315.6 Q
(if \( SPTbit\(S,G\) OR)127 328.6 Q 6.6(\(S)133.6 341.6 S(witchToSptDes\
ired\(S,G\) AND \( inherited_olist\(S,G\) == NULL \)\)\) {)-6.6 E
(send Register-Stop\(S,G\) to outer.src)151.2 354.6 Q
(sentRegisterStop = TRUE;)151.2 367.6 Q(})127 380.6 Q
(if \( SPTbit\(S,G\) OR SwitchToSptDesired\(S,G\) \) {)127 393.6 Q
(if \( sentRegisterStop == TRUE \) {)154.5 406.6 Q
(restart KeepaliveTimer\(S,G\) to RP_Keepalive_Period;)182 419.6 Q 6.6
(}e)154.5 432.6 S(lse {)-6.6 E
(restart KeepaliveTimer\(S,G\) to Keepalive_Period;)182 445.6 Q(})154.5
458.6 Q(})127 471.6 Q
(if\( !SPTbit\(S,G\) AND ! pkt.NullRegisterBit \) {)127 484.6 Q
(decapsulate and forward the inner packet to)154.5 497.6 Q
(inherited_olist\(S,G,rpt\) #)154.5 510.6 Q F0(Note \(\207\))6.6 E F2(})
127 523.6 Q 6.6(}e)98.4 536.6 S(lse {)-6.6 E
(send Register-Stop\(S,G\) to outer.src)124.8 549.6 Q(#)124.8 562.6 Q F0
(Note \(*\))6.6 E F2(})98.4 575.6 Q(})72 588.6 Q(outer.dst)72 611.2 Q F0
(is the IP destination address of the encapsulating header)2.75 E(.)
-.605 E F2(outer.src)72 637.2 Q F0
(is the IP source address of the encapsulating header)2.75 E 2.75(,i)
-.44 G(.e., the DR')-2.75 E 2.75(sa)-.605 G(ddress.)-2.75 E F2
(I_am_RP\(G\))72 663.2 Q F0(is true if the group-to-RP mapping indicate\
s that this router is the RP for the)2.75 E(group.)72 676.2 Q
(Note \(*\): This may block traf)72 692.8 Q(\214c from S for Re)-.275 E
(gister_Suppression_T)-.165 E(ime if the DR learned about a)-.385 E(ne)
97 705.8 Q 2.75(wg)-.275 G(roup-to-RP mapping before the RP did.)-2.75 E
(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t).165 H(his doesn')
.44 E 2.75(tm)-.198 G(atter unless we \214gure)-2.75 E(out some w)97
718.8 Q(ay for the RP to also accept \(*,G\) joins when it doesn')-.11 E
2.75(ty)-.198 G(et realize that it is about)-2.75 E(Fenner/Handle)72 769
Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.4.2. [P)2.75 F(age 34])-.165 E 0 Cg EP
%%Page: 35 35
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(to become the RP for G.)97 85
Q(This will all get sorted out once the RP learns the ne)5.5 E 2.75(wg)
-.275 G(roup-to-rp)-2.75 E 2.75(mapping. W)97 98 R 2.75(ed)-.88 G
(ecided to do nothing about this and just accept the f)-2.75 E
(act that PIM may suf)-.11 E(fer)-.275 E(interrupted \(*,G\) connecti)97
111 Q(vity follo)-.275 E(wing an RP change.)-.275 E
(Note \(\207\): Implementations are advised to not mak)72 127.6 Q 2.75
(et)-.11 G(his a special case, b)-2.75 E(ut to arrange that this path)
-.22 E(rejoin the normal pack)97 140.6 Q(et forw)-.11 E(arding path.)
-.11 E(All of the appropriate actions from the "On)5.5 E
(receipt of data from S to G on interf)97 153.6 Q
(ace iif" pseudocode in Section 4.2 should be performed.)-.11 E -.275
(Ke)72 170.2 S(epali).275 E -.165(ve)-.275 G -.385(Ti).165 G
(mer\(S,G\) is restarted at the RP when pack).385 E(ets arri)-.11 E .33
-.165(ve o)-.275 H 2.75(nt).165 G(he proper tunnel interf)-2.75 E
(ace and)-.11 E
(the RP desires to switch to the SPT or the SPTbit is already set.)72
183.2 Q(This may cause the upstream)5.5 E(\(S,G\) state machine to trig\
ger a join if the inherited_olist\(S,G\) is not NULL;)72 196.2 Q
(An RP should preserv)72 212.8 Q 2.75(e\()-.165 G(S,G\) state that w)
-2.75 E(as created in response to a Re)-.11 E
(gister message for at least)-.165 E 2.75(\(3*R)72 225.8 S -.165(eg)
-2.75 G(ister_Suppression_T).165 E
(ime \), otherwise the RP may stop joining \(S,G\) before the DR for S)
-.385 E(has restarted sending re)72 238.8 Q 2.75(gisters. T)-.165 F(raf)
-.385 E(\214c w)-.275 E(ould then be interrupted until the Re)-.11 E
(gister)-.165 E(-Stop T)-.22 E(imer)-.385 E -.165(ex)72 251.8 S
(pires at the DR.).165 E(Thus, at the RP)72 268.4 Q 2.75(,K)-1.221 G
(eepali)-3.025 E -.165(ve)-.275 G -.385(Ti).165 G
(mer\(S,G\) should be restarted to \( 3 * Re).385 E
(gister_Suppression_T)-.165 E(ime +)-.385 E(Re)72 281.4 Q
(gister_Probe_T)-.165 E(ime \).)-.385 E(When forw)72 298 Q
(arding a pack)-.11 E(et from the Re)-.11 E(gister T)-.165 E
(unnel, the TTL of the original data pack)-.495 E(et is)-.11 E
(decremented after it is decapsulated.)72 311 Q
(The IP ECN bits should be copied from the IP header of the Re)72 327.6
Q(gister pack)-.165 E(et to the decapsulated)-.11 E(pack)72 340.6 Q(et.)
-.11 E(The Dif)72 357.2 Q(fserv Code Point \(DSCP\) should be copied fr\
om the IP header of the Re)-.275 E(gister pack)-.165 E(et to)-.11 E
(the decapsulated pack)72 370.2 Q 2.75(et. The)-.11 F(RP MA)2.75 E 2.75
(Yr)-1.155 G(etain the DSCP of the inner pack)-2.75 E
(et, or re-classify the)-.11 E(pack)72 383.2 Q(et and apply a dif)-.11 E
(ferent DSCP)-.275 E 5.5(.S)-1.221 G
(cenarios where each of these might be useful are discussed)-5.5 E
(in [10].)72 396.2 Q/F1 11/Times-Bold@0 SF(4.5.)72 422.2 Q/F2 13
/Times-Bold@0 SF(PIM J)5.5 E(oin/Prune Messages)-.195 E F0 2.75(AP)72
438.8 S(IM Join/Prune message consists of a list of groups and a list o\
f Joined and Pruned sources for)-2.75 E(each group.)72 451.8 Q
(When processing a recei)5.5 E -.165(ve)-.275 G 2.75(dJ).165 G
(oin/Prune message, each Joined or Pruned source for a)-2.75 E
(Group is ef)72 464.8 Q(fecti)-.275 E -.165(ve)-.275 G
(ly considered indi).165 E(vidually)-.275 E 2.75(,a)-.715 G
(nd applies to one or more of the follo)-2.75 E(wing state)-.275 E 2.75
(machines. When)72 477.8 R(considering a Join/Prune message whose Upstr\
eam Neighbor Address \214eld)2.75 E(addresses this router)72 490.8 Q
2.75(,\()-.44 G(*,G\) Joins and Prunes can af)-2.75 E
(fect both the \(*,G\) and \(S,G,rpt\) do)-.275 E(wnstream)-.275 E(stat\
e machines, while \(*,*,RP\), \(S,G\) and \(S,G,rpt\) Joins and Prunes \
can only af)72 503.8 Q(fect their)-.275 E(respecti)72 516.8 Q .33 -.165
(ve d)-.275 H -.275(ow).165 G(nstream state machines.).275 E
(When considering a Join/Prune message whose Upstream)5.5 E
(Neighbor Address \214eld addresses another router)72 529.8 Q 2.75(,m)
-.44 G(ost Join or Prune messages could af)-2.75 E(fect each)-.275 E
(upstream state machine.)72 542.8 Q(In general, a PIM Join/Prune messag\
e should only be accepted for processing if it comes from a)72 559.4 Q
(kno)72 572.4 Q(wn PIM neighbor)-.275 E 5.5(.A)-.605 G
(PIM router hears about PIM neighbors through PIM Hello messages.)-2.75
E(If)5.5 E 2.75(ar)72 585.4 S(outer recei)-2.75 E -.165(ve)-.275 G 2.75
(saJ).165 G(oin/Prune message from a particular IP source address and i\
t has not seen a)-2.75 E(PIM Hello message from that source address, th\
en the Join/Prune message SHOULD be)72 598.4 Q
(discarded without further processing.)72 611.4 Q
(In addition, if the Hello message from a neighbor w)5.5 E(as)-.11 E(au\
thenticated using IPsec AH \(see Section 6.3\) then all Join/Prune mess\
ages from that neighbor)72 624.4 Q
(MUST also be authenticated using IPsec AH.)72 637.4 Q 1.76 -.88(We n)72
654 T(ote that some older PIM implementations incorrectly f).88 E
(ail to send Hello messages on point-)-.11 E(to-point interf)72 667 Q
(aces, so we also RECOMMEND that a con\214guration option be pro)-.11 E
(vided to allo)-.165 E(w)-.275 E
(interoperation with such older routers, b)72 680 Q
(ut that this con\214guration option SHOULD NO)-.22 E 2.75(Tb)-.44 G(e)
-2.75 E(enabled by def)72 693 Q(ault.)-.11 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 169.221(elas Section)-.165 F 2.75
(4.5. [P)2.75 F(age 35])-.165 E 0 Cg EP
%%Page: 36 36
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF 2.75
(4.5.1. Recei)72 85 R(ving \(*,*,RP\) J)-.11 E(oin/Prune Messages)-.165
E F0(The per)72 101.6 Q(-interf)-.22 E(ace state machine for recei)-.11
E(ving \(*,*,RP\) Join/Prune Messages is gi)-.275 E -.165(ve)-.275 G
2.75(nb).165 G(elo)-2.75 E -.715(w.)-.275 G(There are three states:)72
114.6 Q F1(NoInf)97 131.2 Q 2.75(o\()-.275 G(NI\))-2.75 E F0(The interf)
122 144.2 Q(ace has no \(*,*,RP\) Join state and no timers running.)-.11
E F1 -.165(Jo)97 160.8 S(in \(J\)).165 E F0(The interf)122 173.8 Q
(ace has \(*,*,RP\) Join state which will cause the router to forw)-.11
E(ard pack)-.11 E(ets)-.11 E(destined for an)122 186.8 Q 2.75(yg)-.165 G
(roup handled by RP from this interf)-2.75 E(ace e)-.11 E
(xcept if there is also)-.165 E(\(S,G,rpt\) prune information \(see Sec\
tion 4.5.4\) or the router lost an assert on this)122 199.8 Q(interf)122
212.8 Q(ace.)-.11 E F1(Prune-P)97 229.4 Q(ending \(PP\))-.22 E F0
(The router has recei)122 242.4 Q -.165(ve)-.275 G 2.75(daP).165 G
(rune\(*,*,RP\) on this interf)-2.75 E(ace from a do)-.11 E
(wnstream neighbor)-.275 E(and is w)122 255.4 Q
(aiting to see whether the prune will be o)-.11 E -.165(ve)-.165 G
(rridden by another do).165 E(wnstream)-.275 E(router)122 268.4 Q 5.5
(.F)-.605 G(or forw)-5.665 E
(arding purposes, the Prune-Pending state functions e)-.11 E(xactly lik)
-.165 E 2.75(et)-.11 G(he)-2.75 E(Join state.)122 281.4 Q
(In addition, the state machine uses tw)72 298 Q 2.75(ot)-.11 G(imers:)
-2.75 E F1(ExpiryT)97 314.6 Q(imer \(ET\))-.198 E F0
(This timer is restarted when a v)122 327.6 Q
(alid Join\(*,*,RP\) is recei)-.275 E -.165(ve)-.275 G 2.75(d. Expiry)
.165 F(of the)2.75 E(ExpiryT)122 340.6 Q(imer causes the interf)-.385 E
(ace state to re)-.11 E -.165(ve)-.275 G(rt to NoInfo for this RP).165 E
(.)-1.221 E F1(Prune-P)97 357.2 Q(ending T)-.22 E(imer \(PPT\))-.198 E
F0(This timer is set when a v)122 370.2 Q(alid Prune\(*,*,RP\) is recei)
-.275 E -.165(ve)-.275 G 2.75(d. Expiry).165 F(of the Prune-Pending)2.75
E -.385(Ti)122 383.2 S(mer causes the interf).385 E(ace state to re)-.11
E -.165(ve)-.275 G(rt to NoInfo for this RP).165 E(.)-1.221 E 309 365
225 225 -208 208 193.5 610.2 PBEGIN
%%BeginDocument: starstarrp-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 309 365 534 573
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 10 Grid 7.56686e-15 7.25873e-43 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 39.5 192 ] concat
%I 3
897 575
917 407
701 461
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 39.5 192 ] concat
%I 4
897 576
977 608
977 544
929 560
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 4
621 701
589 781
653 781
637 733
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 5
621 509
653 445
621 429
589 445
605 477
5 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
749 525
653 525
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
717 621
653 685
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
781 701
829 637
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 509
669 605
637 669
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
573 605
605 541
3 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 129.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 369.5 437.5 ] concat
%I
[
(NI)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 225.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 372 533 ] concat
%I
[
(J)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 401.5 177.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 480 484.5 ] concat
%I
[
(PP)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 346 595 ] concat
%I
[
(\(*,*,RP\) Join)
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 506 500 ] concat
%I
[
(\(*,*,RP\) Prune)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 491 429 ] concat
%I
[
(ET Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 401 511 ] concat
%I
[
(\(*,*,RP\) Join)
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 324.5 492.5 ] concat
%I
[
(ET )
(Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 377.5 473 ] concat
%I
[
(\(*,*,RP\) Join)
([Start ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 350.5 392 ] concat
%I
[
(\(*,*,RP\) Prune)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 419 546.5 ] concat
%I
[
(\(*,*,RP\) Prune)
([Start PPT])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 402.495 447.502 ] concat
%I
[
(PPT Expires)
([Send PruneEcho])
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND F1(Figur)167.466 649.2 Q 2.75(e2)-.198 G 2.75(:D)-2.75 G -.11
(ow)-2.75 G(nstr).11 E(eam per)-.198 E
(-interface \(*,*,RP\) state machine)-.407 E F0(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.1. [P)2.75 F(age 36])-.165 E 0 Cg EP
%%Page: 37 37
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Do)72 85 Q(wnstream per)-.275
E(-interf)-.22 E(ace \(*,*,RP\) state machine in tab)-.11 E(ular form:)
-.22 E .44 LW 503.987 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(Ev)320.232
106 Q(ent)-.11 E 503.987 110.75 159.335 110.75 DL(Pr)79.064 120 Q .33
-.165(ev S)-.198 H(tate).165 E(Recei)170.931 121 Q -.11(ve)-.11 G -.165
(Jo)170.931 134 S(in\(*,*,RP\)).165 E(Recei)252.304 121 Q .22 -.11(ve P)
-.11 H(rune).11 E(\(*,*,RP\))252.304 134 Q(Prune-P)340.783 121 Q(ending)
-.22 E -.198(Ti)340.783 134 S(mer Expir).198 E(es)-.198 E(Expiry T)
432.65 121 Q(imer)-.198 E(Expir)432.65 134 Q(es)-.198 E 503.987 138.75
72 138.75 DL 503.987 140.75 72 140.75 DL/F2 11/Symbol SF<ae>170.931 151
Q F0 2.75(Js)2.75 G(tate)-2.75 E F2<ae>40.574 E F0(NI state)2.75 E
88.204(--)40.354 G F1(NoInf)79.064 164 Q 2.75(o\()-.275 G(NI\))-2.75 E
F0(start Expiry)170.931 164 Q -.385(Ti)170.931 177 S(mer).385 E 503.987
181.75 72 181.75 DL F2<ae>170.931 192 Q F0 2.75(Js)2.75 G(tate)-2.75 E
F2<ae>40.574 E F0(PP state)2.75 E(-)39.727 E F2<ae>88.204 E F0(NI state)
2.75 E F1 -.165(Jo)79.064 205 S(in \(J\)).165 E F0(restart Expiry)
170.931 205 Q -.385(Ti)170.931 218 S(mer).385 E(start Prune-)252.304 205
Q(Pending T)252.304 218 Q(imer)-.385 E 503.987 222.75 72 222.75 DL F2
<ae>170.931 233 Q F0 2.75(Js)2.75 G(tate)-2.75 E F2<ae>40.574 E F0
(PP state)2.75 E F2<ae>39.727 E F0(NI state)2.75 E F2<ae>43.742 E F0
(NI state)2.75 E F1(Prune-P)79.064 239.5 Q(ending)-.22 E(\(PP\))79.064
252.5 Q F0(restart Expiry)170.931 246 Q -.385(Ti)170.931 259 S(mer).385
E(Send Prune-)340.783 246 Q(Echo\(*,*,RP\))340.783 259 Q 503.987 263.75
72 263.75 DL 422.054 110.75 422.054 263.75 DL 330.187 110.75 330.187
263.75 DL 241.708 110.75 241.708 263.75 DL 159.335 95.75 159.335 263.75
DL 161.335 95.75 161.335 263.75 DL 503.987 95.75 503.987 263.75 DL 72
95.75 72 263.75 DL(The transition e)72 281.6 Q -.165(ve)-.275 G
(nts "Recei).165 E .33 -.165(ve J)-.275 H(oin\(*,*,RP\)" and "Recei).165
E .33 -.165(ve P)-.275 H(rune\(*,*,RP\)" imply recei).165 E(ving a Join)
-.275 E/F3 10/Symbol SF<ef>555 293.6 Q<ef>-4.94 -10 M F0(or Prune tar)72
294.6 Q(geted to this router')-.198 E 2.75(sp)-.605 G
(rimary IP address on the recei)-2.75 E -.165(ve)-.275 G 2.75(di).165 G
(nterf)-2.75 E 2.75(ace. If)-.11 F(the destination)2.75 E(address is no\
t correct, these state transitions in this state machine must not occur)
72 307.6 Q 2.75(,a)-.44 G(lthough seeing)-2.75 E(such a pack)72 320.6 Q
(et may cause state transitions in other state machines.)-.11 E
(On unnumbered interf)72 337.2 Q
(aces on point-to-point links, the router')-.11 E 2.75(sa)-.605 G
(ddress should be the same as the)-2.75 E
(source address it chose for the Hello message it sent o)72 350.2 Q
-.165(ve)-.165 G 2.75(rt).165 G(hat interf)-2.75 E 2.75(ace. Ho)-.11 F
(we)-.275 E -.165(ve)-.275 G 2.75(ro).165 G 2.75(np)-2.75 G(oint-to-)
-2.75 E(point links we also recommend that for backw)72 363.2 Q
(ards compatibility PIM Join/Prune messages with a)-.11 E
(destination address of all zeros are also accepted.)72 376.2 Q F1 -.814
(Tr)72 402.2 S(ansitions fr).814 E(om NoInf)-.198 E 2.75(oS)-.275 G
(tate)-2.75 E F0(When in NoInfo state, the follo)72 418.8 Q(wing e)-.275
E -.165(ve)-.275 G(nt may trigger a transition:).165 E F1(Recei)97 435.4
Q .22 -.11(ve J)-.11 H(oin\(*,*,RP\))-.055 E F0 2.75(AJ)122 448.4 S
(oin\(*,*,RP\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E(ace I with its Upstream Neighbor Address set to)
-.11 E F3<ef>555 460.4 Q<ef>-4.94 -10 M F0(the router')122 461.4 Q 2.75
(sp)-.605 G(rimary IP address on I.)-2.75 E(The \(*,*,RP\) do)122 478 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Join state.)-.11 E(The Expiry T)122 491 Q
(imer \(ET\) is started, and set to the HoldT)-.385 E
(ime from the triggering)-.385 E(Join/Prune message.)122 504 Q
(Note that it is possible to recei)122 520.6 Q .33 -.165(ve a J)-.275 H
(oin\(*,*,RP\) message for an RP that we do not).165 E(ha)122 533.6 Q
.33 -.165(ve i)-.22 H(nformation telling us that it is an RP).165 E 5.5
(.I)-1.221 G 2.75(nt)-5.5 G(he case of \(*,*,RP\) state, so long as we)
-2.75 E(ha)122 546.6 Q .33 -.165(ve a r)-.22 H(oute to the RP).165 E
2.75(,t)-1.221 G
(his will not cause a problem, and the transition should still)-2.75 E
(tak)122 559.6 Q 2.75(ep)-.11 G(lace.)-2.75 E F1 -.814(Tr)72 585.6 S
(ansitions fr).814 E(om J)-.198 E(oin State)-.165 E F0
(When in Join state, the follo)72 602.2 Q(wing e)-.275 E -.165(ve)-.275
G(nts may trigger a transition:).165 E F1(Recei)97 618.8 Q .22 -.11
(ve J)-.11 H(oin\(*,*,RP\))-.055 E F0 2.75(AJ)122 631.8 S
(oin\(*,*,RP\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E(ace I with its Upstream Neighbor Address set to)
-.11 E F3<ef>555 643.8 Q<ef>-4.94 -10 M F0(the router')122 644.8 Q 2.75
(sp)-.605 G(rimary IP address on I.)-2.75 E(The \(*,*,RP\) do)122 661.4
Q(wnstream state machine on interf)-.275 E
(ace I remains in Join state, and the)-.11 E(Expiry T)122 674.4 Q
(imer \(ET\) is restarted, set to maximum of its current v)-.385 E
(alue and the HoldT)-.275 E(ime)-.385 E
(from the triggering Join/Prune message.)122 687.4 Q F1(Recei)97 704 Q
.22 -.11(ve P)-.11 H(rune\(*,*,RP\)).11 E F0 2.75(AP)122 717 S
(rune\(*,*,RP\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75
(ni)-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to)-.11 E .4 LW 555 721.5
555 731.5 DL 555 711.5 555 721.5 DL 555 706.5 555 716.5 DL
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.5.1. [P)2.75 F(age 37])-.165 E 0 Cg EP
%%Page: 38 38
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 10/Symbol SF<ef>555 84 Q F0
(the router')122 85 Q 2.75(sp)-.605 G(rimary IP address on I.)-2.75 E
(The \(*,*,RP\) do)122 101.6 Q(wnstream state machine on interf)-.275 E
(ace I transitions to the Prune-Pending)-.11 E 2.75(state. The)122 114.6
R(Prune-Pending T)2.75 E(imer is started; it is set to the J/P_Ov)-.385
E(erride_Interv)-.165 E(al\(I\) if)-.275 E
(the router has more than one neighbor on that interf)122 127.6 Q
(ace; otherwise it is set to zero)-.11 E(causing it to e)122 140.6 Q
(xpire immediately)-.165 E(.)-.715 E/F2 11/Times-Bold@0 SF(Expiry T)97
157.2 Q(imer Expir)-.198 E(es)-.198 E F0(The Expiry T)122 170.2 Q
(imer for the \(*,*,RP\) do)-.385 E(wnstream state machine on interf)
-.275 E(ace I e)-.11 E(xpires.)-.165 E(The \(*,*,RP\) do)122 186.8 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E F2 -.814(Tr)72 212.8 S
(ansitions fr).814 E(om Prune-P)-.198 E(ending State)-.22 E F0
(When in Prune-Pending state, the follo)72 229.4 Q(wing e)-.275 E -.165
(ve)-.275 G(nts may trigger a transition:).165 E F2(Recei)97 246 Q .22
-.11(ve J)-.11 H(oin\(*,*,RP\))-.055 E F0 2.75(AJ)122 259 S
(oin\(*,*,RP\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E(ace I with its Upstream Neighbor Address set to)
-.11 E F1<ef>555 271 Q<ef>-4.94 -10 M F0(the router')122 272 Q 2.75(sp)
-.605 G(rimary IP address on I.)-2.75 E(The \(*,*,RP\) do)122 288.6 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Join state.)-.11 E(The Prune-Pending T)122
301.6 Q(imer is canceled \(without triggering an e)-.385 E(xpiry e)-.165
E -.165(ve)-.275 G 2.75(nt\). The).165 F(Expiry T)122 314.6 Q
(imer is restarted, set to maximum of its current v)-.385 E
(alue and the HoldT)-.275 E(ime from)-.385 E
(the triggering Join/Prune message.)122 327.6 Q F2(Expiry T)97 344.2 Q
(imer Expir)-.198 E(es)-.198 E F0(The Expiry T)122 357.2 Q
(imer for the \(*,*,RP\) do)-.385 E(wnstream state machine on interf)
-.275 E(ace I e)-.11 E(xpires.)-.165 E(The \(*,*,RP\) do)122 373.8 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E F2(Prune-P)97 390.4 Q
(ending T)-.22 E(imer Expir)-.198 E(es)-.198 E F0(The Prune-Pending T)
122 403.4 Q(imer for the \(*,*,RP\) do)-.385 E
(wnstream state machine on interf)-.275 E(ace I)-.11 E -.165(ex)122
416.4 S(pires.).165 E(The \(*,*,RP\) do)122 433 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E 2.75(AP)122 446 S
(runeEcho\(*,*,RP\) is sent onto the subnet connected to interf)-2.75 E
(ace I.)-.11 E(The action "Send PruneEcho\(*,*,RP\)" is triggered when \
the router stops forw)122 462.6 Q(arding)-.11 E(on an interf)122 475.6 Q
(ace as a result of a prune.)-.11 E 2.75(AP)5.5 G
(runeEcho\(*,*,RP\) is simply a Prune\(*,*,RP\))-2.75 E
(message sent by the upstream router on a LAN with its o)122 488.6 Q
(wn address in the Upstream)-.275 E(Neighbor Address \214eld.)122 501.6
Q(Its purpose is to add additional reliability so that if a Prune)5.5 E
(that should ha)122 514.6 Q .33 -.165(ve b)-.22 H(een o).165 E -.165(ve)
-.165 G(rridden by another router is lost locally on the LAN, then the)
.165 E(PruneEcho may be recei)122 527.6 Q -.165(ve)-.275 G 2.75(da).165
G(nd cause the o)-2.75 E -.165(ve)-.165 G(rride to happen.).165 E 2.75
(AP)5.5 G(runeEcho\(*,*,RP\))-2.75 E(need not be sent on an interf)122
540.6 Q(ace that contains only a single PIM neighbor during the)-.11 E
(time this state machine w)122 553.6 Q(as in Prune-Pending state.)-.11 E
F2 2.75(4.5.2. Recei)72 592.6 R(ving \(*,G\) J)-.11 E
(oin/Prune Messages)-.165 E F0(When a router recei)72 609.2 Q -.165(ve)
-.275 G 2.75(saJ).165 G(oin\(*,G\) or Prune\(*,G\) it must \214rst chec\
k to see whether the RP in the)-2.75 E
(message matches RP\(G\) \(the router')72 622.2 Q 2.75(si)-.605 G
(dea of who the RP is\).)-2.75 E(If the RP in the message does not)5.5 E
(match RP\(G\) the Join\(*,G\) or Prune\(*,G\) should be silently dropp\
ed.)72 635.2 Q(\(Note that other source list)5.5 E(entries such as \(S,\
G,rpt\) or \(S,G\) in the same Group Speci\214c Set should still be pro\
cessed.\))72 648.2 Q(If a)5.5 E
(router has no RP information \(e.g. has not recently recei)72 661.2 Q
-.165(ve)-.275 G 2.75(daB).165 G(SR message\) then it may choose)-2.75 E
(to accept Join\(*,G\) or Prune\(*,G\) and treat the RP in the message \
as RP\(G\).)72 674.2 Q(The per)72 690.8 Q(-interf)-.22 E
(ace state machine for recei)-.11 E
(ving \(*,G\) Join/Prune Messages is gi)-.275 E -.165(ve)-.275 G 2.75
(nb).165 G(elo)-2.75 E 4.18 -.715(w. T)-.275 H(here).715 E
(are three states:)72 703.8 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165
E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.5.2. [P)2.75 F
(age 38])-.165 E 0 Cg EP
%%Page: 39 39
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(NoInf)97
85 Q 2.75(o\()-.275 G(NI\))-2.75 E F0(The interf)122 98 Q
(ace has no \(*,G\) Join state and no timers running.)-.11 E F1 -.165
(Jo)97 114.6 S(in \(J\)).165 E F0(The interf)122 127.6 Q
(ace has \(*,G\) Join state which will cause the router to forw)-.11 E
(ard pack)-.11 E(ets)-.11 E(destined for G from this interf)122 140.6 Q
(ace e)-.11 E(xcept if there is also \(S,G,rpt\) prune information)-.165
E(\(see Section 4.5.4\) or the router lost an assert on this interf)122
153.6 Q(ace.)-.11 E F1(Prune-P)97 170.2 Q(ending \(PP\))-.22 E F0
(The router has recei)122 183.2 Q -.165(ve)-.275 G 2.75(daP).165 G
(rune\(*,G\) on this interf)-2.75 E(ace from a do)-.11 E
(wnstream neighbor)-.275 E(and is w)122 196.2 Q
(aiting to see whether the prune will be o)-.11 E -.165(ve)-.165 G
(rridden by another do).165 E(wnstream)-.275 E(router)122 209.2 Q 5.5
(.F)-.605 G(or forw)-5.665 E
(arding purposes, the Prune-Pending state functions e)-.11 E(xactly lik)
-.165 E 2.75(et)-.11 G(he)-2.75 E(Join state.)122 222.2 Q
(In addition, the state machine uses tw)72 238.8 Q 2.75(ot)-.11 G
(imers:)-2.75 E F1(Expiry T)97 255.4 Q(imer \(ET\))-.198 E F0
(This timer is restarted when a v)122 268.4 Q(alid Join\(*,G\) is recei)
-.275 E -.165(ve)-.275 G 2.75(d. Expiry).165 F(of the Expiry T)2.75 E
(imer)-.385 E(causes the interf)122 281.4 Q(ace state to re)-.11 E -.165
(ve)-.275 G(rt to NoInfo for this group.).165 E F1(Prune-P)97 298 Q
(ending T)-.22 E(imer \(PPT\))-.198 E F0(This timer is set when a v)122
311 Q(alid Prune\(*,G\) is recei)-.275 E -.165(ve)-.275 G 2.75
(d. Expiry).165 F(of the Prune-Pending)2.75 E -.385(Ti)122 324 S
(mer causes the interf).385 E(ace state to re)-.11 E -.165(ve)-.275 G
(rt to NoInfo for this group.).165 E 309 365 222 222 -208 208 195 551
PBEGIN
%%BeginDocument: starg-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 309 365 531 573
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 10 Grid 7.56686e-15 7.25873e-43 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 39.5 192 ] concat
%I 3
897 575
917 407
701 461
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 39.5 192 ] concat
%I 4
897 576
977 608
977 544
929 560
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 4
621 701
589 781
653 781
637 733
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 5
621 509
653 445
621 429
589 445
605 477
5 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
749 525
653 525
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
717 621
653 685
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
781 701
829 637
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 509
669 605
637 669
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
573 605
605 541
3 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 129.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 369.5 437.5 ] concat
%I
[
(NI)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 225.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 372 533 ] concat
%I
[
(J)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 401.5 177.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 480 484.5 ] concat
%I
[
(PP)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 491 429 ] concat
%I
[
(ET Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 324.5 492.5 ] concat
%I
[
(ET )
(Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 402.495 447.502 ] concat
%I
[
(PPT Expires)
([Send PruneEcho])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 346 595 ] concat
%I
[
(Join\(*,G\))
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 419 546.5 ] concat
%I
[
(Prune\(*,G\))
([Start PPT])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 506 500 ] concat
%I
[
(Prune\(*,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 401 511 ] concat
%I
[
(Join\(*,G\))
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 377.5 473 ] concat
%I
[
(Join\(*,G\))
([Start ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 350.5 392 ] concat
%I
[
(Prune\(*,G\))
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND F1(Figur)174.643 590 Q 2.75(e3)-.198 G 2.75(:D)-2.75 G -.11(ow)
-2.75 G(nstr).11 E(eam per)-.198 E(-interface \(*,G\) state machine)
-.407 E F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E
160.971(elas Section)-.165 F 2.75(4.5.2. [P)2.75 F(age 39])-.165 E 0 Cg
EP
%%Page: 40 40
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Do)72 85 Q(wnstream per)-.275
E(-interf)-.22 E(ace \(*,G\) state machine in tab)-.11 E(ular form:)-.22
E .44 LW 503.995 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(Ev)320.449 106
Q(ent)-.11 E 503.995 110.75 159.69 110.75 DL(Pr)79.206 120 Q .33 -.165
(ev S)-.198 H(tate).165 E(Recei)171.499 121 Q -.11(ve)-.11 G -.165(Jo)
171.499 134 S(in\(*,G\)).165 E(Recei)253.298 121 Q -.11(ve)-.11 G
(Prune\(*,G\))253.298 134 Q(Prune-P)340.223 121 Q(ending)-.22 E -.198
(Ti)340.223 134 S(mer Expir).198 E(es)-.198 E(Expiry T)432.516 121 Q
(imer)-.198 E(Expir)432.516 134 Q(es)-.198 E 503.995 138.75 72 138.75 DL
503.995 140.75 72 140.75 DL/F2 11/Symbol SF<ae>171.499 151 Q F0 2.75(Js)
2.75 G(tate)-2.75 E F2<ae>41 E F0(NI state)2.75 E 88.63(--)38.8 G F1
(NoInf)79.206 164 Q 2.75(o\()-.275 G(NI\))-2.75 E F0(start Expiry)
171.499 164 Q -.385(Ti)171.499 177 S(mer).385 E 503.995 181.75 72 181.75
DL F2<ae>171.499 192 Q F0 2.75(Js)2.75 G(tate)-2.75 E F2<ae>41 E F0
(PP state)2.75 E(-)38.173 E F2<ae>88.63 E F0(NI state)2.75 E F1 -.165
(Jo)79.206 205 S(in \(J\)).165 E F0(restart Expiry)171.499 205 Q -.385
(Ti)171.499 218 S(mer).385 E(start Prune-)253.298 205 Q(Pending T)
253.298 218 Q(imer)-.385 E 503.995 222.75 72 222.75 DL F2<ae>171.499 233
Q F0 2.75(Js)2.75 G(tate)-2.75 E F2<ae>41 E F0(PP state)2.75 E F2<ae>
38.173 E F0(NI state)2.75 E F2<ae>44.168 E F0(NI state)2.75 E F1
(Prune-P)79.206 239.5 Q(ending)-.22 E(\(PP\))79.206 252.5 Q F0
(restart Expiry)171.499 246 Q -.385(Ti)171.499 259 S(mer).385 E
(Send Prune-)340.223 246 Q(Echo\(*,G\))340.223 259 Q 503.995 263.75 72
263.75 DL 421.707 110.75 421.707 263.75 DL 329.414 110.75 329.414 263.75
DL 242.489 110.75 242.489 263.75 DL 159.69 95.75 159.69 263.75 DL 161.69
95.75 161.69 263.75 DL 503.995 95.75 503.995 263.75 DL 72 95.75 72
263.75 DL(The transition e)72 281.6 Q -.165(ve)-.275 G(nts "Recei).165 E
.33 -.165(ve J)-.275 H(oin\(*,G\)" and "Recei).165 E .33 -.165(ve P)
-.275 H(rune\(*,G\)" imply recei).165 E(ving a Join or)-.275 E/F3 10
/Symbol SF<ef>555 293.6 Q<ef>-4.94 -10 M F0(Prune tar)72 294.6 Q
(geted to this router')-.198 E 2.75(sp)-.605 G
(rimary IP address on the recei)-2.75 E -.165(ve)-.275 G 2.75(di).165 G
(nterf)-2.75 E 2.75(ace. If)-.11 F(the destination)2.75 E(address is no\
t correct, these state transitions in this state machine must not occur)
72 307.6 Q 2.75(,a)-.44 G(lthough seeing)-2.75 E(such a pack)72 320.6 Q
(et may cause state transitions in other state machines.)-.11 E
(On unnumbered interf)72 337.2 Q
(aces on point-to-point links, the router')-.11 E 2.75(sa)-.605 G
(ddress should be the same as the)-2.75 E
(source address it chose for the Hello message it sent o)72 350.2 Q
-.165(ve)-.165 G 2.75(rt).165 G(hat interf)-2.75 E 2.75(ace. Ho)-.11 F
(we)-.275 E -.165(ve)-.275 G 2.75(ro).165 G 2.75(np)-2.75 G(oint-to-)
-2.75 E(point links we also recommend that for backw)72 363.2 Q
(ards compatibility PIM Join/Prune messages with a)-.11 E
(destination address of all zeros are also accepted.)72 376.2 Q F1 -.814
(Tr)72 402.2 S(ansitions fr).814 E(om NoInf)-.198 E 2.75(oS)-.275 G
(tate)-2.75 E F0(When in NoInfo state, the follo)72 418.8 Q(wing e)-.275
E -.165(ve)-.275 G(nt may trigger a transition:).165 E F1(Recei)97 435.4
Q .22 -.11(ve J)-.11 H(oin\(*,G\))-.055 E F0 2.75(AJ)122 448.4 S
(oin\(*,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E F3<ef>555
460.4 Q<ef>-4.94 -10 M F0(router')122 461.4 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(*,G\) do)122 478 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Join state.)-.11 E(The)5.5 E(Expiry T)122 491
Q(imer \(ET\) is started, and set to the HoldT)-.385 E
(ime from the triggering Join/Prune)-.385 E(message.)122 504 Q F1 -.814
(Tr)72 530 S(ansitions fr).814 E(om J)-.198 E(oin State)-.165 E F0
(When in Join state, the follo)72 546.6 Q(wing e)-.275 E -.165(ve)-.275
G(nts may trigger a transition:).165 E F1(Recei)97 563.2 Q .22 -.11
(ve J)-.11 H(oin\(*,G\))-.055 E F0 2.75(AJ)122 576.2 S
(oin\(*,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E F3<ef>555
588.2 Q<ef>-4.94 -10 M F0(router')122 589.2 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(*,G\) do)122 605.8 Q
(wnstream state machine on interf)-.275 E
(ace I remains in Join state, and the)-.11 E(Expiry T)122 618.8 Q
(imer \(ET\) is restarted, set to maximum of its current v)-.385 E
(alue and the HoldT)-.275 E(ime)-.385 E
(from the triggering Join/Prune message.)122 631.8 Q F1(Recei)97 648.4 Q
.22 -.11(ve P)-.11 H(rune\(*,G\)).11 E F0 2.75(AP)122 661.4 S
(rune\(*,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E F3<ef>555
673.4 Q<ef>-4.94 -10 M F0(router')122 674.4 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(*,G\) do)122 691 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Prune-Pending)-.11 E 2.75(state. The)122 704 R
(Prune-Pending T)2.75 E(imer is started; it is set to the J/P_Ov)-.385 E
(erride_Interv)-.165 E(al\(I\) if)-.275 E
(the router has more than one neighbor on that interf)122 717 Q
(ace; otherwise it is set to zero)-.11 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.2. [P)2.75 F(age 40])-.165 E 0 Cg EP
%%Page: 41 41
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(causing it to e)122 85 Q
(xpire immediately)-.165 E(.)-.715 E/F1 11/Times-Bold@0 SF(Expiry T)97
101.6 Q(imer Expir)-.198 E(es)-.198 E F0(The Expiry T)122 114.6 Q
(imer for the \(*,G\) do)-.385 E(wnstream state machine on interf)-.275
E(ace I e)-.11 E(xpires.)-.165 E(The \(*,G\) do)122 131.2 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E F1 -.814(Tr)72 157.2 S
(ansitions fr).814 E(om Prune-P)-.198 E(ending State)-.22 E F0
(When in Prune-Pending state, the follo)72 173.8 Q(wing e)-.275 E -.165
(ve)-.275 G(nts may trigger a transition:).165 E F1(Recei)97 190.4 Q .22
-.11(ve J)-.11 H(oin\(*,G\))-.055 E F0 2.75(AJ)122 203.4 S
(oin\(*,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E/F2 10/Symbol
SF<ef>555 215.4 Q<ef>-4.94 -10 M F0(router')122 216.4 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(*,G\) do)122 233 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Join state.)-.11 E(The)5.5 E(Prune-Pending T)
122 246 Q(imer is canceled \(without triggering an e)-.385 E(xpiry e)
-.165 E -.165(ve)-.275 G 2.75(nt\). The).165 F(Expiry)2.75 E -.385(Ti)
122 259 S(mer is restarted, set to maximum of its current v).385 E
(alue and the HoldT)-.275 E(ime from the)-.385 E
(triggering Join/Prune message.)122 272 Q F1(Expiry T)97 288.6 Q
(imer Expir)-.198 E(es)-.198 E F0(The Expiry T)122 301.6 Q
(imer for the \(*,G\) do)-.385 E(wnstream state machine on interf)-.275
E(ace I e)-.11 E(xpires.)-.165 E(The \(*,G\) do)122 318.2 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E F1(Prune-P)97 334.8 Q
(ending T)-.22 E(imer Expir)-.198 E(es)-.198 E F0(The Prune-Pending T)
122 347.8 Q(imer for the \(*,G\) do)-.385 E
(wnstream state machine on interf)-.275 E(ace I)-.11 E -.165(ex)122
360.8 S(pires.).165 E(The \(*,G\) do)122 377.4 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E(A)5.5 E
(PruneEcho\(*,G\) is sent onto the subnet connected to interf)122 390.4
Q(ace I.)-.11 E(The action "Send PruneEcho\(*,G\)" is triggered when th\
e router stops forw)122 407 Q(arding on)-.11 E(an interf)122 420 Q
(ace as a result of a prune.)-.11 E 2.75(AP)5.5 G
(runeEcho\(*,G\) is simply a Prune\(*,G\) message)-2.75 E
(sent by the upstream router on a LAN with its o)122 433 Q
(wn address in the Upstream Neighbor)-.275 E(Address \214eld.)122 446 Q
(Its purpose is to add additional reliability so that if a Prune that s\
hould)5.5 E(ha)122 459 Q .33 -.165(ve b)-.22 H(een o).165 E -.165(ve)
-.165 G(rridden by another router is lost locally on the LAN, then the \
PruneEcho).165 E(may be recei)122 472 Q -.165(ve)-.275 G 2.75(da).165 G
(nd cause the o)-2.75 E -.165(ve)-.165 G(rride to happen.).165 E 2.75
(AP)5.5 G(runeEcho\(*,G\) need not be)-2.75 E(sent on an interf)122 485
Q(ace that contains only a single PIM neighbor during the time this sta\
te)-.11 E(machine w)122 498 Q(as in Prune-Pending state.)-.11 E F1 2.75
(4.5.3. Recei)72 524 R(ving \(S,G\) J)-.11 E(oin/Prune Messages)-.165 E
F0(The per)72 540.6 Q(-interf)-.22 E(ace state machine for recei)-.11 E
(ving \(S,G\) Join/Prune messages is gi)-.275 E -.165(ve)-.275 G 2.75
(nb).165 G(elo)-2.75 E 1.43 -.715(w, a)-.275 H(nd is).715 E
(almost identical to that for \(*,G\) messages.)72 553.6 Q
(There are three states:)5.5 E F1(NoInf)97 570.2 Q 2.75(o\()-.275 G
(NI\))-2.75 E F0(The interf)122 583.2 Q
(ace has no \(S,G\) Join state and no \(S,G\) timers running.)-.11 E F1
-.165(Jo)97 599.8 S(in \(J\)).165 E F0(The interf)122 612.8 Q
(ace has \(S,G\) Join state which will cause the router to forw)-.11 E
(ard pack)-.11 E(ets from)-.11 E 2.75(Sd)122 625.8 S
(estined for G from this interf)-2.75 E
(ace if the \(S,G\) state is acti)-.11 E .33 -.165(ve \()-.275 H
(the SPTbit is set\)).165 E -.165(ex)122 638.8 S
(cept if the router lost an assert on this interf).165 E(ace.)-.11 E F1
(Prune-P)97 655.4 Q(ending \(PP\))-.22 E F0(The router has recei)122
668.4 Q -.165(ve)-.275 G 2.75(daP).165 G(rune\(S,G\) on this interf)
-2.75 E(ace from a do)-.11 E(wnstream neighbor)-.275 E(and is w)122
681.4 Q(aiting to see whether the prune will be o)-.11 E -.165(ve)-.165
G(rridden by another do).165 E(wnstream)-.275 E(router)122 694.4 Q 5.5
(.F)-.605 G(or forw)-5.665 E
(arding purposes, the Prune-Pending state functions e)-.11 E(xactly lik)
-.165 E 2.75(et)-.11 G(he)-2.75 E(Join state.)122 707.4 Q(Fenner/Handle)
72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F
2.75(4.5.3. [P)2.75 F(age 41])-.165 E 0 Cg EP
%%Page: 42 42
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(In addition, there are tw)72
85 Q 2.75(ot)-.11 G(imers:)-2.75 E/F1 11/Times-Bold@0 SF(Expiry T)97
101.6 Q(imer \(ET\))-.198 E F0(This timer is set when a v)122 114.6 Q
(alid Join\(S,G\) is recei)-.275 E -.165(ve)-.275 G 2.75(d. Expiry).165
F(of the Expiry T)2.75 E(imer)-.385 E(causes this state machine to re)
122 127.6 Q -.165(ve)-.275 G(rt to NoInfo state.).165 E F1(Prune-P)97
144.2 Q(ending T)-.22 E(imer \(PPT\))-.198 E F0
(This timer is set when a v)122 157.2 Q(alid Prune\(S,G\) is recei)-.275
E -.165(ve)-.275 G 2.75(d. Expiry).165 F(of the Prune-Pending)2.75 E
-.385(Ti)122 170.2 S(mer causes this state machine to re).385 E -.165
(ve)-.275 G(rt to NoInfo state.).165 E 309 365 225 225 -202 202 193.5
391.2 PBEGIN
%%BeginDocument: sg-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 309 365 534 567
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 10 Grid 7.56686e-15 7.25873e-43 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 39.5 192 ] concat
%I 3
897 575
917 407
701 461
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 39.5 192 ] concat
%I 4
897 576
977 608
977 544
929 560
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 4
621 701
589 781
653 781
637 733
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 5
621 509
653 445
621 429
589 445
605 477
5 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
749 525
653 525
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
717 621
653 685
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
781 701
829 637
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 509
669 605
637 669
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
573 605
605 541
3 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 129.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 369.5 437.5 ] concat
%I
[
(NI)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 225.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 372 533 ] concat
%I
[
(J)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 401.5 177.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 480 484.5 ] concat
%I
[
(PP)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 491 429 ] concat
%I
[
(ET Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 324.5 492.5 ] concat
%I
[
(ET )
(Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 405.996 446.001 ] concat
%I
[
(PPT Expires)
([Send PruneEcho])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 348.5 589 ] concat
%I
[
(Join\(S,G\))
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 419 546.5 ] concat
%I
[
(Prune\(S,G\))
([Start PPT])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 506 500 ] concat
%I
[
(Prune\(S,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 401 511 ] concat
%I
[
(Join\(S,G\))
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 377.5 473 ] concat
%I
[
(Join\(S,G\))
([Start ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 350.5 392 ] concat
%I
[
(Prune\(S,G\))
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND F1(Figur)174.335 430.2 Q 2.75(e4)-.198 G 2.75(:D)-2.75 G -.11
(ow)-2.75 G(nstr).11 E(eam per)-.198 E(-interface \(S,G\) state machine)
-.407 E F0(Do)72 452.8 Q(wnstream per)-.275 E(-interf)-.22 E
(ace \(S,G\) state machine in tab)-.11 E(ular form:)-.22 E .44 LW
503.995 463.55 72 463.55 DL F1(Ev)320.449 473.8 Q(ent)-.11 E 503.995
478.55 159.69 478.55 DL(Pr)79.206 487.8 Q .33 -.165(ev S)-.198 H(tate)
.165 E(Recei)171.499 488.8 Q -.11(ve)-.11 G -.165(Jo)171.499 501.8 S
(in\(S,G\)).165 E(Recei)253.298 488.8 Q -.11(ve)-.11 G(Prune\(S,G\))
253.298 501.8 Q(Prune-P)340.223 488.8 Q(ending)-.22 E -.198(Ti)340.223
501.8 S(mer Expir).198 E(es)-.198 E(Expiry T)432.516 488.8 Q(imer)-.198
E(Expir)432.516 501.8 Q(es)-.198 E 503.995 506.55 72 506.55 DL 503.995
508.55 72 508.55 DL/F2 11/Symbol SF<ae>171.499 518.8 Q F0 2.75(Js)2.75 G
(tate)-2.75 E F2<ae>41 E F0(NI state)2.75 E 88.63(--)38.8 G F1(NoInf)
79.206 531.8 Q 2.75(o\()-.275 G(NI\))-2.75 E F0(start Expiry)171.499
531.8 Q -.385(Ti)171.499 544.8 S(mer).385 E 503.995 549.55 72 549.55 DL
F2<ae>171.499 559.8 Q F0 2.75(Js)2.75 G(tate)-2.75 E F2<ae>41 E F0
(PP state)2.75 E(-)38.173 E F2<ae>88.63 E F0(NI state)2.75 E F1 -.165
(Jo)79.206 572.8 S(in \(J\)).165 E F0(restart Expiry)171.499 572.8 Q
-.385(Ti)171.499 585.8 S(mer).385 E(start Prune-)253.298 572.8 Q
(Pending T)253.298 585.8 Q(imer)-.385 E 503.995 590.55 72 590.55 DL F2
<ae>171.499 600.8 Q F0 2.75(Js)2.75 G(tate)-2.75 E F2<ae>41 E F0
(PP state)2.75 E F2<ae>38.173 E F0(NI state)2.75 E F2<ae>44.168 E F0
(NI state)2.75 E F1(Prune-P)79.206 607.3 Q(ending)-.22 E(\(PP\))79.206
620.3 Q F0(restart Expiry)171.499 613.8 Q -.385(Ti)171.499 626.8 S(mer)
.385 E(Send Prune-)340.223 613.8 Q(Echo\(S,G\))340.223 626.8 Q 503.995
631.55 72 631.55 DL 421.707 478.55 421.707 631.55 DL 329.414 478.55
329.414 631.55 DL 242.489 478.55 242.489 631.55 DL 159.69 463.55 159.69
631.55 DL 161.69 463.55 161.69 631.55 DL 503.995 463.55 503.995 631.55
DL 72 463.55 72 631.55 DL(The transition e)72 649.4 Q -.165(ve)-.275 G
(nts "Recei).165 E .33 -.165(ve J)-.275 H(oin\(S,G\)" and "Recei).165 E
.33 -.165(ve P)-.275 H(rune\(S,G\)" imply recei).165 E(ving a Join or)
-.275 E/F3 10/Symbol SF<ef>555 661.4 Q<ef>-4.94 -10 M F0(Prune tar)72
662.4 Q(geted to this router')-.198 E 2.75(sp)-.605 G
(rimary IP address on the recei)-2.75 E -.165(ve)-.275 G 2.75(di).165 G
(nterf)-2.75 E 2.75(ace. If)-.11 F(the destination)2.75 E(address is no\
t correct, these state transitions in this state machine must not occur)
72 675.4 Q 2.75(,a)-.44 G(lthough seeing)-2.75 E(such a pack)72 688.4 Q
(et may cause state transitions in other state machines.)-.11 E
(On unnumbered interf)72 705 Q
(aces on point-to-point links, the router')-.11 E 2.75(sa)-.605 G
(ddress should be the same as the)-2.75 E
(source address it chose for the Hello message it sent o)72 718 Q -.165
(ve)-.165 G 2.75(rt).165 G(hat interf)-2.75 E 2.75(ace. Ho)-.11 F(we)
-.275 E -.165(ve)-.275 G 2.75(ro).165 G 2.75(np)-2.75 G(oint-to-)-2.75 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.5.3. [P)2.75 F(age 42])-.165 E 0 Cg EP
%%Page: 43 43
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(point links we also recommend that for backw)72 85 Q
(ards compatibility PIM Join/Prune messages with a)-.11 E
(destination address of all zeros are also accepted.)72 98 Q/F1 11
/Times-Bold@0 SF -.814(Tr)72 124 S(ansitions fr).814 E(om NoInf)-.198 E
2.75(oS)-.275 G(tate)-2.75 E F0(When in NoInfo state, the follo)72 140.6
Q(wing e)-.275 E -.165(ve)-.275 G(nt may trigger a transition:).165 E F1
(Recei)97 157.2 Q .22 -.11(ve J)-.11 H(oin\(S,G\))-.055 E F0 2.75(AJ)122
170.2 S(oin\(S,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75
(ni)-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E/F2 10/Symbol
SF<ef>555 182.2 Q<ef>-4.94 -10 M F0(router')122 183.2 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G\) do)122 199.8 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Join state.)-.11 E(The)5.5 E(Expiry T)122
212.8 Q(imer \(ET\) is started, and set to the HoldT)-.385 E
(ime from the triggering Join/Prune)-.385 E(message.)122 225.8 Q F1
-.814(Tr)72 251.8 S(ansitions fr).814 E(om J)-.198 E(oin State)-.165 E
F0(When in Join state, the follo)72 268.4 Q(wing e)-.275 E -.165(ve)
-.275 G(nts may trigger a transition:).165 E F1(Recei)97 285 Q .22 -.11
(ve J)-.11 H(oin\(S,G\))-.055 E F0 2.75(AJ)122 298 S
(oin\(S,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E F2<ef>555
310 Q<ef>-4.94 -10 M F0(router')122 311 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G\) do)122 327.6 Q
(wnstream state machine on interf)-.275 E
(ace I remains in Join state, and the)-.11 E(Expiry T)122 340.6 Q
(imer \(ET\) is restarted, set to maximum of its current v)-.385 E
(alue and the HoldT)-.275 E(ime)-.385 E
(from the triggering Join/Prune message.)122 353.6 Q F1(Recei)97 370.2 Q
.22 -.11(ve P)-.11 H(rune\(S,G\)).11 E F0 2.75(AP)122 383.2 S
(rune\(S,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E F2<ef>555
395.2 Q<ef>-4.94 -10 M F0(router')122 396.2 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G\) do)122 412.8 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Prune-Pending)-.11 E 2.75(state. The)122 425.8
R(Prune-Pending T)2.75 E(imer is started; it is set to the J/P_Ov)-.385
E(erride_Interv)-.165 E(al\(I\) if)-.275 E
(the router has more than one neighbor on that interf)122 438.8 Q
(ace; otherwise it is set to zero)-.11 E(causing it to e)122 451.8 Q
(xpire immediately)-.165 E(.)-.715 E F1(Expiry T)97 468.4 Q(imer Expir)
-.198 E(es)-.198 E F0(The Expiry T)122 481.4 Q(imer for the \(S,G\) do)
-.385 E(wnstream state machine on interf)-.275 E(ace I e)-.11 E(xpires.)
-.165 E(The \(S,G\) do)122 498 Q(wnstream state machine on interf)-.275
E(ace I transitions to the NoInfo state.)-.11 E F1 -.814(Tr)72 524 S
(ansitions fr).814 E(om Prune-P)-.198 E(ending State)-.22 E F0
(When in Prune-Pending state, the follo)72 540.6 Q(wing e)-.275 E -.165
(ve)-.275 G(nts may trigger a transition:).165 E F1(Recei)97 557.2 Q .22
-.11(ve J)-.11 H(oin\(S,G\))-.055 E F0 2.75(AJ)122 570.2 S
(oin\(S,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E F2<ef>555
582.2 Q<ef>-4.94 -10 M F0(router')122 583.2 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G\) do)122 599.8 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Join state.)-.11 E(The)5.5 E(Prune-Pending T)
122 612.8 Q(imer is canceled \(without triggering an e)-.385 E(xpiry e)
-.165 E -.165(ve)-.275 G 2.75(nt\). The).165 F(Expiry)2.75 E -.385(Ti)
122 625.8 S(mer is restarted, set to maximum of its current v).385 E
(alue and the HoldT)-.275 E(ime from the)-.385 E
(triggering Join/Prune message.)122 638.8 Q F1(Expiry T)97 655.4 Q
(imer Expir)-.198 E(es)-.198 E F0(The Expiry T)122 668.4 Q
(imer for the \(S,G\) do)-.385 E(wnstream state machine on interf)-.275
E(ace I e)-.11 E(xpires.)-.165 E(The \(S,G\) do)122 685 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E F1(Prune-P)97 701.6 Q
(ending T)-.22 E(imer Expir)-.198 E(es)-.198 E F0(The Prune-Pending T)
122 714.6 Q(imer for the \(S,G\) do)-.385 E
(wnstream state machine on interf)-.275 E(ace I)-.11 E(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.3. [P)2.75 F(age 43])-.165 E 0 Cg EP
%%Page: 44 44
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E -.165(ex)122 85 S(pires.).165
E(The \(S,G\) do)122 101.6 Q(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E(A)5.5 E
(PruneEcho\(S,G\) is sent onto the subnet connected to interf)122 114.6
Q(ace I.)-.11 E(The action "Send PruneEcho\(S,G\)" is triggered when th\
e router stops forw)122 131.2 Q(arding on)-.11 E(an interf)122 144.2 Q
(ace as a result of a prune.)-.11 E 2.75(AP)5.5 G
(runeEcho\(S,G\) is simply a Prune\(S,G\) message)-2.75 E
(sent by the upstream router on a LAN with its o)122 157.2 Q
(wn address in the Upstream Neighbor)-.275 E(Address \214eld.)122 170.2
Q(Its purpose is to add additional reliability so that if a Prune that \
should)5.5 E(ha)122 183.2 Q .33 -.165(ve b)-.22 H(een o).165 E -.165(ve)
-.165 G(rridden by another router is lost locally on the LAN, then the \
PruneEcho).165 E(may be recei)122 196.2 Q -.165(ve)-.275 G 2.75(da).165
G(nd cause the o)-2.75 E -.165(ve)-.165 G(rride to happen.).165 E 2.75
(AP)5.5 G(runeEcho\(S,G\) need not be)-2.75 E(sent on an interf)122
209.2 Q(ace that contains only a single PIM neighbor during the time th\
is state)-.11 E(machine w)122 222.2 Q(as in Prune-Pending state.)-.11 E
/F1 11/Times-Bold@0 SF 2.75(4.5.4. Recei)72 248.2 R(ving \(S,G,r)-.11 E
(pt\) J)-.11 E(oin/Prune Messages)-.165 E F0(The per)72 264.8 Q(-interf)
-.22 E(ace state machine for recei)-.11 E
(ving \(S,G,rpt\) Join/Prune messages is gi)-.275 E -.165(ve)-.275 G
2.75(nb).165 G(elo)-2.75 E -.715(w.)-.275 G(There are \214v)72 277.8 Q
2.75(es)-.165 G(tates:)-2.75 E F1(NoInf)97 294.4 Q 2.75(o\()-.275 G
(NI\))-2.75 E F0(The interf)122 307.4 Q
(ace has no \(S,G,rpt\) Prune state and no \(S,G,rpt\) timers running.)
-.11 E F1(Prune \(P\))97 324 Q F0(The interf)122 337 Q(ace has \(S,G,rp\
t\) Prune state which will cause the router not to forw)-.11 E(ard)-.11
E(pack)122 350 Q(ets from S destined for G from this interf)-.11 E
(ace e)-.11 E -.165(ve)-.275 G 2.75(nt).165 G(hough the interf)-2.75 E
(ace has acti)-.11 E -.165(ve)-.275 G(\(*,G\) Join state.)122 363 Q F1
(Prune-P)97 379.6 Q(ending \(PP\))-.22 E F0(The router has recei)122
392.6 Q -.165(ve)-.275 G 2.75(daP).165 G(rune\(S,G,rpt\) on this interf)
-2.75 E(ace from a do)-.11 E(wnstream neighbor)-.275 E(and is w)122
405.6 Q(aiting to see whether the prune will be o)-.11 E -.165(ve)-.165
G(rridden by another do).165 E(wnstream)-.275 E(router)122 418.6 Q 5.5
(.F)-.605 G(or forw)-5.665 E
(arding purposes, the Prune-Pending state functions e)-.11 E(xactly lik)
-.165 E 2.75(et)-.11 G(he)-2.75 E(NoInfo state.)122 431.6 Q F1
(PruneTmp \(P'\))97 448.2 Q F0
(This state is a transient state which for forw)122 461.2 Q
(arding purposes beha)-.11 E -.165(ve)-.22 G 2.75(se).165 G(xactly lik)
-2.915 E 2.75(et)-.11 G(he)-2.75 E(Prune state.)122 474.2 Q 2.75(A\()5.5
G(*,G\) Join has been recei)-2.75 E -.165(ve)-.275 G 2.75(d\().165 G
(which may cancel the \(S,G,rpt\) Prune\).)-2.75 E(As we parse the Join\
/Prune message from top to bottom, we \214rst enter this state if the)
122 487.2 Q(message contains a \(*,G\) Join.)122 500.2 Q
(Later in the message we will normally encounter an)5.5 E
(\(S,G,rpt\) prune to re-instate the Prune state.)122 513.2 Q(Ho)5.5 E
(we)-.275 E -.165(ve)-.275 G 2.75(ri).165 G 2.75(fw)-2.75 G 2.75(er)
-2.75 G(each the end of the)-2.75 E
(message without encountering such a \(S,G,rpt\) prune, then we will re)
122 526.2 Q -.165(ve)-.275 G(rt to NoInfo).165 E
(state in this state machine.)122 539.2 Q
(As no time is spent in this state, no timers can e)122 555.8 Q(xpire.)
-.165 E F1(Prune-P)97 572.4 Q(ending-Tmp \(PP'\))-.22 E F0
(This state is a transient state which is identical to P' e)122 585.4 Q
(xcept that it is associated with)-.165 E
(the PP state rather than the P state.)122 598.4 Q -.165(Fo)5.5 G 2.75
(rf).165 G(orw)-2.75 E(arding purposes, PP' beha)-.11 E -.165(ve)-.22 G
2.75(se).165 G(xactly lik)-2.915 E(e)-.11 E(PP state.)122 611.4 Q
(In addition, there are tw)72 628 Q 2.75(ot)-.11 G(imers:)-2.75 E F1
(Expiry T)97 644.6 Q(imer \(ET\))-.198 E F0(This timer is set when a v)
122 657.6 Q(alid Prune\(S,G,rpt\) is recei)-.275 E -.165(ve)-.275 G 2.75
(d. Expiry).165 F(of the Expiry T)2.75 E(imer)-.385 E
(causes this state machine to re)122 670.6 Q -.165(ve)-.275 G
(rt to NoInfo state.).165 E F1(Prune-P)97 687.2 Q(ending T)-.22 E
(imer \(PPT\))-.198 E F0(This timer is set when a v)122 700.2 Q
(alid Prune\(S,G,rpt\) is recei)-.275 E -.165(ve)-.275 G 2.75(d. Expiry)
.165 F(of the Prune-Pending)2.75 E -.385(Ti)122 713.2 S
(mer causes this state machine to mo).385 E .33 -.165(ve o)-.165 H 2.75
(nt).165 G 2.75(oP)-2.75 G(rune state.)-2.75 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.4. [P)2.75 F(age 44])-.165 E 0 Cg EP
%%Page: 45 45
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 129 366 354 354 -205 205 129
290 PBEGIN
%%BeginDocument: sgrpt-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 129 366 483 571
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 10 Grid 8 8 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -42.3394 131.575 ] concat
%I 4
621 701
589 781
653 781
637 733
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 59 212.5 ] concat
%I 3
636 630
678 541
647 471
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 4
621 701
589 781
653 781
637 733
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 4
173 605
301 461
493 461
589 493
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
413 605
525 589
589 525
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 509
493 509
429 573
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 5
621 509
653 445
621 429
589 445
605 477
5 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
749 525
653 525
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
845 605
717 621
653 685
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
781 701
829 637
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
621 701
573 605
605 541
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
413 605
493 701
589 701
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
173 605
285 557
381 589
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I 3
413 605
285 653
205 621
3 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 65.5 177.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 143.5 484.5 ] concat
%I
[
(PP')
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 185.5 177.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 264.5 485 ] concat
%I
[
(PP)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 225.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 372 533 ] concat
%I
[
(P)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 289.5 129.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 369.5 437.5 ] concat
%I
[
(NI)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 401.5 177.5 ] concat
%I
173 605 32 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 483 485.5 ] concat
%I
[
(P')
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 168 433 ] concat
%I
[
(End of message)
(for G)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 416 449 ] concat
%I
[
(End of message)
(for G)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 174.515 509.999 ] concat
%I
[
(Join\(*,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 176 473 ] concat
%I
[
(Prune\(S,G,rpt\))
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 304 481 ] concat
%I
[
(Join)
(\(S,G,rpt\) )
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 328 505 ] concat
%I
[
(Join)
(\(S,G,rpt\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 400 497 ] concat
%I
[
(Prune\(S,G,rpt\))
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 424 529 ] concat
%I
[
(Join\(*,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 352 593 ] concat
%I
[
(Prune\(S,G,rpt\))
([Restart ET])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 352 393 ] concat
%I
[
(Join\(S,G,rpt\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 256 449 ] concat
%I
[
(Prune\(S,G,rpt\))
([Start ET])
([Start PPT])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 376 481 ] concat
%I
[
(ET)
(Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 300.982 545.988 ] concat
%I
[
(PP Timer)
(Expires)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 215.201 533.094 ] concat
%I
[
(Prune\(S,G,rpt\))
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND/F1 11/Times-Bold@0 SF(Figur)165.684 329 Q 2.75(e5)-.198 G 2.75
(:D)-2.75 G -.11(ow)-2.75 G(nstr).11 E(eam per)-.198 E
(-interface \(S,G,r)-.407 E(pt\) state machine)-.11 E F0(Fenner/Handle)
72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F
2.75(4.5.4. [P)2.75 F(age 45])-.165 E 0 Cg EP
%%Page: 46 46
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Do)72 85 Q(wnstream per)-.275
E(-interf)-.22 E(ace \(S,G,rpt\) state machine in tab)-.11 E(ular form:)
-.22 E .44 LW 503.994 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(Ev)305.881
106 Q(ent)-.11 E 503.994 110.75 131.932 110.75 DL(Pr)76.454 133 Q .33
-.165(ev S)-.198 H(tate).165 E(Recei)139.613 121 Q -.11(ve)-.11 G -.165
(Jo)139.613 134 S(in\(*,G\)).165 E(Recei)205.39 121 Q -.11(ve)-.11 G
-.165(Jo)205.39 134 S(in).165 E(\(S,G,r)205.39 147 Q(pt\))-.11 E(Recei)
266.877 121 Q -.11(ve)-.11 G(Prune)266.877 134 Q(\(S,G,r)266.877 147 Q
(pt\))-.11 E(End of)331.488 121 Q(Message)331.488 134 Q(Prune-)392.975
121 Q -.22(Pe)392.975 134 S(nding).22 E -.198(Ti)392.975 147 S(mer).198
E(Expir)392.975 160 Q(es)-.198 E(Expiry)448.973 121 Q -.198(Ti)448.973
134 S(mer).198 E(Expir)448.973 147 Q(es)-.198 E 503.994 164.75 72 164.75
DL 503.994 166.75 72 166.75 DL F0 -4.543 62.114(-- -)139.613 177 T
52.335(--)-4.29 G/F2 11/Symbol SF<ae>266.877 177 Q F0(PP state)2.75 E F1
(NoInf)76.454 203 Q(o)-.275 E(\(NI\))76.454 216 Q F0(start Prune-)
266.877 190 Q(Pending)266.877 203 Q -.385(Ti)266.877 216 S(mer; start)
.385 E(Expiry)266.877 229 Q -.385(Ti)266.877 242 S(mer).385 E 503.994
246.75 72 246.75 DL 57.824(--)331.488 257 S F2<ae>139.613 257 Q F0
(P' state)2.75 E F2<ae>205.39 257 Q F0(NI state)2.75 E F2<ae>266.877 257
Q F0 2.75(Ps)2.75 G(tate)-2.75 E F2<ae>448.973 257 Q F1(NI state)2.75 E
(Prune \(P\))76.454 276.5 Q F0(restart)266.877 270 Q(Expiry)266.877 283
Q -.385(Ti)266.877 296 S(mer).385 E 503.994 300.75 72 300.75 DL -10.824
60.948(-- -)266.877 311 T F1(Prune-)76.454 311 Q -.22(Pe)76.454 324 S
(nding).22 E(\(PP\))76.454 337 Q F2<ae>139.613 311 Q F0(PP' state)2.75 E
F2<ae>205.39 311 Q F0(NI state)2.75 E F2<ae>392.975 311 Q F0 2.75(Ps)
2.75 G(tate)-2.75 E 503.994 341.75 72 341.75 DL 56.944 62.114(-- -)
139.613 352 T(-)-9.779 E F2<ae>266.877 352 Q F0 2.75(Ps)2.75 G(tate)
-2.75 E F2<ae>331.488 352 Q F0(NI state)2.75 E F1(Prune-)76.454 365 Q
(Tmp \(P'\))76.454 378 Q F0(restart)266.877 365 Q(Expiry)266.877 378 Q
-.385(Ti)266.877 391 S(mer).385 E 503.994 395.75 72 395.75 DL 56.944
62.114(-- -)139.613 406 T(-)-9.779 E F2<ae>266.877 406 Q F0(PP state)
2.75 E F2<ae>331.488 406 Q F0(NI state)2.75 E F1(Prune-)76.454 412.5 Q
-.22(Pe)76.454 425.5 S(nding-).22 E(Tmp \(PP'\))76.454 438.5 Q F0
(restart)266.877 419 Q(Expiry)266.877 432 Q -.385(Ti)266.877 445 S(mer)
.385 E 503.994 449.75 72 449.75 DL 442.292 110.75 442.292 449.75 DL
386.294 110.75 386.294 449.75 DL 324.807 110.75 324.807 449.75 DL
260.196 110.75 260.196 449.75 DL 198.709 110.75 198.709 449.75 DL
131.932 95.75 131.932 449.75 DL 133.932 95.75 133.932 449.75 DL 503.994
95.75 503.994 449.75 DL 72 95.75 72 449.75 DL(The transition e)72 467.6
Q -.165(ve)-.275 G(nts "Recei).165 E .33 -.165(ve J)-.275 H
(oin\(S,G,rpt\)", "Recei).165 E .33 -.165(ve P)-.275 H
(rune\(S,G,rpt\)", and "Recei).165 E .33 -.165(ve J)-.275 H(oin\(*,G\)")
.165 E(imply recei)72 480.6 Q(ving a Join or Prune tar)-.275 E
(geted to this router')-.198 E 2.75(sp)-.605 G
(rimary IP address on the recei)-2.75 E -.165(ve)-.275 G(d).165 E/F3 10
/Symbol SF<ef>555 492.6 Q<ef>-4.94 -10 M F0(interf)72 493.6 Q 2.75
(ace. If)-.11 F(the destination address is not correct, these state tra\
nsitions in this state machine)2.75 E(must not occur)72 506.6 Q 2.75(,a)
-.44 G(lthough seeing such a pack)-2.75 E
(et may cause state transitions in other state machines.)-.11 E
(On unnumbered interf)72 523.2 Q
(aces on point-to-point links, the router')-.11 E 2.75(sa)-.605 G
(ddress should be the same as the)-2.75 E
(source address it chose for the Hello message it sent o)72 536.2 Q
-.165(ve)-.165 G 2.75(rt).165 G(hat interf)-2.75 E 2.75(ace. Ho)-.11 F
(we)-.275 E -.165(ve)-.275 G 2.75(ro).165 G 2.75(np)-2.75 G(oint-to-)
-2.75 E(point links we also recommend that PIM Join/Prune messages with\
 a destination address of all)72 549.2 Q(zeros are also accepted.)72
562.2 Q F1 -.814(Tr)72 588.2 S(ansitions fr).814 E(om NoInf)-.198 E 2.75
(oS)-.275 G(tate)-2.75 E F0(When in NoInfo \(NI\) state, the follo)72
604.8 Q(wing e)-.275 E -.165(ve)-.275 G(nt may trigger a transition:)
.165 E F1(Recei)97 621.4 Q .22 -.11(ve P)-.11 H(rune\(S,G,r).11 E(pt\))
-.11 E F0 2.75(AP)122 634.4 S(rune\(S,G,rpt\) is recei)-2.75 E -.165(ve)
-.275 G 2.75(do).165 G 2.75(ni)-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to)-.11 E F3<ef>555 646.4
Q<ef>-4.94 -10 M F0(the router')122 647.4 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G,rpt\) do)122 664 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the Prune-)-.11 E(Pending state.)122 677 Q
(The Expiry T)5.5 E(imer \(ET\) is started, and set to the HoldT)-.385 E
(ime from the)-.385 E(triggering Join/Prune message.)122 690 Q
(The Prune-Pending T)5.5 E(imer is started; it is set to the)-.385 E
(J/P_Ov)122 703 Q(erride_Interv)-.165 E
(al\(I\) if the router has more than one neighbor on that interf)-.275 E
(ace;)-.11 E(otherwise it is set to zero causing it to e)122 716 Q
(xpire immediately)-.165 E(.)-.715 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.4. [P)2.75 F(age 46])-.165 E 0 Cg EP
%%Page: 47 47
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF -.814
(Tr)72 85 S(ansitions fr).814 E(om Prune-P)-.198 E(ending State)-.22 E
F0(When in Prune-Pending \(PP\) state, the follo)72 101.6 Q(wing e)-.275
E -.165(ve)-.275 G(nts may trigger a transition:).165 E F1(Recei)97
118.2 Q .22 -.11(ve J)-.11 H(oin\(*,G\))-.055 E F0 2.75(AJ)122 131.2 S
(oin\(*,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E/F2 10/Symbol
SF<ef>555 143.2 Q<ef>-4.94 -10 M F0(router')122 144.2 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G,rpt\) do)122 160.8 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to Prune-Pending-)-.11 E(Tmp state whilst the remain\
der of the compound Join/Prune message containing the)122 173.8 Q
(Join\(*,G\) is processed.)122 186.8 Q F1(Recei)97 203.4 Q .22 -.11
(ve J)-.11 H(oin\(S,G,r)-.055 E(pt\))-.11 E F0 2.75(AJ)122 216.4 S
(oin\(S,G,rpt\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75
(ni)-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to)-.11 E F2<ef>555 228.4
Q<ef>-4.94 -10 M F0(the router')122 229.4 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G,rpt\) do)122 246 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to NoInfo state.)-.11 E(ET)5.5 E
(and PPT are canceled.)122 259 Q F1(Prune-P)97 275.6 Q(ending T)-.22 E
(imer Expir)-.198 E(es)-.198 E F0(The Prune-Pending T)122 288.6 Q
(imer for the \(S,G,rpt\) do)-.385 E(wnstream state machine on interf)
-.275 E(ace I)-.11 E -.165(ex)122 301.6 S(pires.).165 E
(The \(S,G,rpt\) do)122 318.2 Q(wnstream state machine on interf)-.275 E
(ace I transitions to the Prune state.)-.11 E F1 -.814(Tr)72 344.2 S
(ansitions fr).814 E(om Prune State)-.198 E F0
(When in Prune \(P\) state, the follo)72 360.8 Q(wing e)-.275 E -.165
(ve)-.275 G(nts may trigger a transition:).165 E F1(Recei)97 377.4 Q .22
-.11(ve J)-.11 H(oin\(*,G\))-.055 E F0 2.75(AJ)122 390.4 S
(oin\(*,G\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75(ni)
-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to the)-.11 E F2<ef>555
402.4 Q<ef>-4.94 -10 M F0(router')122 403.4 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G,rpt\) do)122 420 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to PruneTmp state)-.11 E(whilst the remainder of the\
 compound Join/Prune message containing the Join\(*,G\) is)122 433 Q
(processed.)122 446 Q F1(Recei)97 462.6 Q .22 -.11(ve J)-.11 H
(oin\(S,G,r)-.055 E(pt\))-.11 E F0 2.75(AJ)122 475.6 S
(oin\(S,G,rpt\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75
(ni)-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to)-.11 E F2<ef>555 487.6
Q<ef>-4.94 -10 M F0(the router')122 488.6 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G,rpt\) do)122 505.2 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to NoInfo state.)-.11 E(ET)5.5 E
(and PPT are canceled.)122 518.2 Q F1(Recei)97 534.8 Q .22 -.11(ve P)
-.11 H(rune\(S,G,r).11 E(pt\))-.11 E F0 2.75(AP)122 547.8 S
(rune\(S,G,rpt\) is recei)-2.75 E -.165(ve)-.275 G 2.75(do).165 G 2.75
(ni)-2.75 G(nterf)-2.75 E
(ace I with its Upstream Neighbor Address set to)-.11 E F2<ef>555 559.8
Q<ef>-4.94 -10 M F0(the router')122 560.8 Q 2.75(sp)-.605 G
(rimary IP address on I.)-2.75 E(The \(S,G,rpt\) do)122 577.4 Q
(wnstream state machine on interf)-.275 E(ace I remains in Prune state.)
-.11 E(The)5.5 E(Expiry T)122 590.4 Q
(imer \(ET\) is restarted, set to maximum of its current v)-.385 E
(alue and the HoldT)-.275 E(ime)-.385 E
(from the triggering Join/Prune message.)122 603.4 Q F1(Expiry T)97 620
Q(imer Expir)-.198 E(es)-.198 E F0(The Expiry T)122 633 Q
(imer for the \(S,G,rpt\) do)-.385 E(wnstream state machine on interf)
-.275 E(ace I e)-.11 E(xpires.)-.165 E(The \(S,G,rpt\) do)122 649.6 Q
(wnstream state machine on interf)-.275 E
(ace I transitions to the NoInfo state.)-.11 E F1 -.814(Tr)72 675.6 S
(ansitions fr).814 E(om Prune-P)-.198 E(ending-Tmp State)-.22 E F0(When\
 in Prune-Pending-Tmp \(PP'\) state and processing a compound Join/Prun\
e message, the)72 692.2 Q(follo)72 705.2 Q(wing e)-.275 E -.165(ve)-.275
G(nts may trigger a transition:).165 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.4. [P)2.75 F(age 47])-.165 E 0 Cg EP
%%Page: 48 48
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(Recei)97
85 Q .22 -.11(ve P)-.11 H(rune\(S,G,r).11 E(pt\))-.11 E F0
(The compound Join/Prune message contains a Prune\(S,G,rpt\).)122 98 Q
(The \(S,G,rpt\) do)122 114.6 Q(wnstream state machine on interf)-.275 E
(ace I transitions back to the Prune-)-.11 E(Pending state.)122 127.6 Q
(The Expiry T)5.5 E
(imer \(ET\) is restarted, set to maximum of its current)-.385 E -.275
(va)122 140.6 S(lue and the HoldT).275 E
(ime from the triggering Join/Prune message.)-.385 E F1(End of Message)
97 157.2 Q F0(The end of the compound Join/Prune message is reached.)122
170.2 Q(The \(S,G,rpt\) do)122 186.8 Q(wnstream state machine on interf)
-.275 E(ace I transitions to the NoInfo state.)-.11 E
(ET and PPT are canceled.)122 199.8 Q F1 -.814(Tr)72 225.8 S
(ansitions fr).814 E(om PruneTmp State)-.198 E F0(When in PruneTmp \(P'\
\) state and processing a compound Join/Prune message, the follo)72
242.4 Q(wing)-.275 E -2.365 -.275(ev e)72 255.4 T
(nts may trigger a transition:).275 E F1(Recei)97 272 Q .22 -.11(ve P)
-.11 H(rune\(S,G,r).11 E(pt\))-.11 E F0
(The compound Join/Prune message contains a Prune\(S,G,rpt\).)122 285 Q
(The \(S,G,rpt\) do)122 301.6 Q(wnstream state machine on interf)-.275 E
(ace I transitions back to the Prune)-.11 E 2.75(state. The)122 314.6 R
(Expiry T)2.75 E
(imer \(ET\) is restarted, set to maximum of its current v)-.385 E
(alue and the)-.275 E(HoldT)122 327.6 Q
(ime from the triggering Join/Prune message.)-.385 E F1(End of Message)
97 344.2 Q F0(The end of the compound Join/Prune message is reached.)122
357.2 Q(The \(S,G,rpt\) do)122 373.8 Q(wnstream state machine on interf)
-.275 E(ace I transitions to the NoInfo state.)-.11 E(ET is canceled.)
122 386.8 Q F1(Notes:)72 412.8 Q F0(Recei)72 429.4 Q
(ving a Prune\(*,G\) does not af)-.275 E(fect the \(S,G,rpt\) do)-.275 E
(wnstream state machine.)-.275 E(Recei)72 446 Q
(ving a Join\(*,*,RP\) does not af)-.275 E(fect the \(S,G,rpt\) do)-.275
E(wnstream state machine.)-.275 E(If a router has)5.5 E
(originated Join\(*,*,RP\) and pruned a source of)72 459 Q 2.75(fi)-.275
G 2.75(tu)-2.75 G(sing Prune\(S,G,rpt\), then to recei)-2.75 E .33 -.165
(ve t)-.275 H(hat).165 E(source ag)72 472 Q(ain it should e)-.055 E
(xplicitly re-join using Join\(S,G,rpt\) or Join\(*,G\).)-.165 E
(In some LAN)5.5 E(topologies it is possible for a router sending a ne)
72 485 Q 2.75(wJ)-.275 G(oin\(*,*,RP\) to ha)-2.75 E .33 -.165(ve t)-.22
H 2.75(ow).165 G(ait as much as a)-2.86 E(Join/Prune Interv)72 498 Q
(al before noticing that it needs to o)-.275 E -.165(ve)-.165 G
(rride a neighbor').165 E 2.75(sp)-.605 G(re-e)-2.75 E(xisting)-.165 E
2.75(Prune\(S,G,rpt\). This)72 511 R(is considered acceptable, as \(*,*\
,RP\) state is intended to be used only in)2.75 E(long-li)72 524 Q -.165
(ve)-.275 G 2.75(da).165 G(nd persistent scenarios.)-2.75 E F1 2.75
(4.5.5. Sending)72 563 R(\(*,*,RP\) J)2.75 E(oin/Prune Messages)-.165 E
F0(The per)72 579.6 Q(-interf)-.22 E
(ace state machines for \(*,*,RP\) hold join state from do)-.11 E
(wnstream PIM routers.)-.275 E(This)5.5 E
(state then determines whether a router needs to propag)72 592.6 Q
(ate a Join\(*,*,RP\) upstream to)-.055 E -.11(wa)-.275 G(rds the).11 E
(RP)72 605.6 Q(.)-1.221 E(If a router wishes to propag)72 622.2 Q
(ate a Join\(*,*,RP\) upstream, it must also w)-.055 E
(atch for messages on its)-.11 E(upstream interf)72 635.2 Q
(ace from other routers on that subnet, and these may modify its beha)
-.11 E(vior)-.22 E 5.5(.I)-.605 G 2.75(fi)-5.5 G 2.75(ts)-2.75 G(ees)
-2.75 E 2.75(aJ)72 648.2 S
(oin\(*,*,RP\) to the correct upstream neighbor)-2.75 E 2.75(,i)-.44 G
2.75(ts)-2.75 G(hould suppress its o)-2.75 E(wn Join\(*,*,RP\).)-.275 E
(If it sees)5.5 E 2.75(aP)72 661.2 S
(rune\(*,*,RP\) to the correct upstream neighbor)-2.75 E 2.75(,i)-.44 G
2.75(ts)-2.75 G(hould be prepared to o)-2.75 E -.165(ve)-.165 G
(rride that prune by).165 E(sending a Join\(*,*,RP\) almost immediately)
72 674.2 Q 5.5(.F)-.715 G(inally)-5.5 E 2.75(,i)-.715 G 2.75(fi)-2.75 G
2.75(ts)-2.75 G(ees the Generation ID \(see Section 4.3\))-2.75 E
(of the correct upstream neighbor change, it kno)72 687.2 Q
(ws that the upstream neighbor has lost state, and it)-.275 E(should be\
 prepared to refresh the state by sending a Join\(*,*,RP\) almost immed\
iately)72 700.2 Q(.)-.715 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.5.5. [P)2.75 F(age 48])
-.165 E 0 Cg EP
%%Page: 49 49
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(In addition, if the MRIB changes to indicate that the ne)72 85 Q
(xt hop to)-.165 E -.11(wa)-.275 G(rds the RP has changed, the).11 E
(router should prune of)72 98 Q 2.75(ff)-.275 G(rom the old ne)-2.75 E
(xt hop, and join to)-.165 E -.11(wa)-.275 G(rds the ne).11 E 2.75(wn)
-.275 G -.165(ex)-2.75 G 2.75(th).165 G(op.)-2.75 E
(The upstream \(*,*,RP\) state machine contains only tw)72 114.6 Q 2.75
(os)-.11 G(tates:)-2.75 E/F1 11/Times-Bold@0 SF(Not J)72 131.2 Q(oined)
-.165 E F0(The do)97 144.2 Q(wnstream state machines and local membersh\
ip information do not indicate that the)-.275 E
(router needs to join the \(*,*,RP\) tree for this RP)97 157.2 Q(.)
-1.221 E F1 -.165(Jo)72 173.8 S(ined).165 E F0(The do)97 186.8 Q(wnstre\
am state machines and local membership information indicate that the ro\
uter)-.275 E(should join the \(*,*,RP\) tree for this RP)97 199.8 Q(.)
-1.221 E(In addition, one timer JT\(*,*,RP\) is k)72 216.4 Q
(ept which is used to trigger the sending of a Join\(*,*,RP\) to)-.11 E
(the upstream ne)72 229.4 Q(xt hop to)-.165 E -.11(wa)-.275 G
(rds the RP).11 E 2.75(,N)-1.221 G(BR\(RPF_interf)-2.75 E
(ace\(RP\), MRIB.ne)-.11 E(xt_hop\(RP\)\).)-.165 E 74 361 396 527
-151.036 201 108 399.436 PBEGIN
%%BeginDocument: sending-starstarrp-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 74 361 601 562
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 13 Grid 7.56686e-15 7.25873e-43 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -45.4543 270.5 ] concat
%I 4
697 435
699 577
777 547
724 466
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -45.4543 270.5 ] concat
%I 4
697 435
583 528
670 588
681 467
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -45.4543 270.5 ] concat
%I 4
697 435
769 298
626 305
672 405
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -45.4543 270.5 ] concat
%I 4
697 435
857 563
871 451
750 454
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -45.4543 270.5 ] concat
%I 4
697 435
873 446
857 323
749 413
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 6.54568 192 ] concat
%I 3
593 592
385 528
273 576
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 6.54568 192 ] concat
%I 3
209 592
401 656
529 608
3 BSpl
%I 2
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 6.54568 192 ] concat
%I
209 592 64 32 Elli
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 198.546 192 ] concat
%I
209 592 64 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 101.546 497.5 ] concat
%I
[
(not)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 95.0457 487.5 ] concat
%I
[
(joined)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 291.046 491.5 ] concat
%I
[
(joined)
] Text
End

Begin %I BSpl
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
none SetP %I p n
%I t
[ 0.142361 0 0 0.0953237 401.226 424.701 ] concat
%I 8
677 1262
733 1262
733 802
815 704
813 705
733 618
733 158
677 158
8 BSpl
%I 8
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 389.046 465.5 ] concat
%I
[
(MRIB.next_hop\(RP\))
(GenID changes)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 388.546 538 ] concat
%I
[
(See Prune\(*,*,RP\))
(to MRIB.next_hop\(RP\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 142.046 466 ] concat
%I
[
(JoinDesired\(*,*,RP\)->FALSE)
([Send Prune\(*,*,RP\)])
([Cancel Join Timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 305.547 579.511 ] concat
%I
[
(See Join\(*,*,RP\) to MRIB.next_hop\(RP\))
([Raise Join Timer to t_joinsuppress])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 138.046 531 ] concat
%I
[
(JoinDesired\(*,*,RP\)->TRUE)
([Send Join\(*,*,RP\)])
([Set Join Timer to t_periodic])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 218.546 418 ] concat
%I
[
(NBR\(RPF_interface\(RP\), MRIB.next_hop\(RP\)\) changes)
([Send Join\(*,*,RP\) to new next hop])
([Send Prune\(*,*,RP\) to old next hop])
([Set Join Timer to t_periodic])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 520.625 510.012 ] concat
%I
[
([Lower Join Timer to)
(randomized)
(prune-override interval])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 149.07 583.517 ] concat
%I
[
(Join Timer Expires)
([Send Join\(*,*,RP\)])
([Set Join Timer to t_periodic])
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND F1(Figur)205.845 438.436 Q 2.75(e6)-.198 G 2.75(:U)-2.75 G
(pstr)-2.75 E(eam \(*,*,RP\) state machine)-.198 E F0(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.5. [P)2.75 F(age 49])-.165 E 0 Cg EP
%%Page: 50 50
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(Upstream \(*,*,RP\) state machine in tab)72 85 Q(ular form:)-.22 E .44
LW 503.996 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(Ev)340.075 106 Q(ent)
-.11 E 503.996 110.75 192.559 110.75 DL(Pr)91.971 120 Q .33 -.165(ev S)
-.198 H(tate).165 E -.165(Jo)223.516 121 S(inDesir).165 E(ed\(*,*,RP\))
-.198 E/F2 11/Symbol SF<ae>223.516 134 Q F1 -.814(Tr)C(ue).814 E -.165
(Jo)389.678 121 S(inDesir).165 E(ed\(*,*,RP\))-.198 E F2<ae>389.678 134
Q F1 -.275(Fa)C(lse).275 E 503.996 138.75 72 138.75 DL 503.996 140.75 72
140.75 DL F0(-)389.678 151 Q F2<ae>223.516 151 Q F0 2.75(Js)2.75 G(tate)
-2.75 E F1(NotJ)91.971 164 Q(oined \(NJ\))-.165 E F0
(Send Join\(*,*,RP\); Set)223.516 164 Q(Join T)223.516 177 Q
(imer to t_periodic)-.385 E 503.996 181.75 72 181.75 DL(-)223.516 192 Q
F1 -.165(Jo)91.971 192 S(ined \(J\)).165 E F2<ae>389.678 192 Q F0
(NJ state)2.75 E(Send Prune\(*,*,RP\);)389.678 205 Q(Cancel Join T)
389.678 218 Q(imer)-.385 E 503.996 222.75 72 222.75 DL 359.721 110.75
359.721 222.75 DL 192.559 95.75 192.559 222.75 DL 194.559 95.75 194.559
222.75 DL 503.996 95.75 503.996 222.75 DL 72 95.75 72 222.75 DL
(In addition, we ha)72 240.6 Q .33 -.165(ve t)-.22 H(he follo).165 E
(wing transitions which occur within the Joined state:)-.275 E 503.997
251.35 72 251.35 DL F1(In J)244.845 261.6 Q(oined \(J\) State)-.165 E
503.997 266.35 72 266.35 DL 503.997 268.35 72 268.35 DL -.198(Ti)86.911
278.6 S(mer Expir).198 E(es)-.198 E(See J)215.068 278.6 Q(oin\(*,*,RP\))
-.165 E(to MRIB.)215.068 291.6 Q(next_hop\(RP\))215.068 304.6 Q
(See Prune\(*,*,RP\))336.933 278.6 Q(to MRIB.)336.933 291.6 Q
(next_hop\(RP\))336.933 304.6 Q 503.997 309.35 72 309.35 DL 503.997
311.35 72 311.35 DL F0(Send Join\(*,*,RP\);)86.911 321.6 Q(Set Join T)
86.911 334.6 Q(imer to)-.385 E(t_periodic)86.911 347.6 Q(Increase Join)
215.068 321.6 Q -.385(Ti)215.068 334.6 S(mer to).385 E(t_joinsuppress)
215.068 347.6 Q(Decrease Join)336.933 321.6 Q -.385(Ti)336.933 334.6 S
(mer to t_o).385 E -.165(ve)-.165 G(rride).165 E 503.997 352.35 72
352.35 DL 314.566 268.35 314.566 352.35 DL 192.701 268.35 192.701 352.35
DL 503.997 251.35 503.997 352.35 DL 72 251.35 72 352.35 DL 503.998
364.35 72 364.35 DL F1(In J)244.846 374.6 Q(oined \(J\) State)-.165 E
503.998 379.35 72 379.35 DL 503.998 381.35 72 381.35 DL
(NBR\(RPF_interface\(RP\),)103.525 391.6 Q
(MRIB.next_hop\(RP\)\) changes)103.525 404.6 Q
(MRIB.next_hop\(RP\) GenID)339.868 391.6 Q(changes)339.868 404.6 Q
503.998 409.35 72 409.35 DL 503.998 411.35 72 411.35 DL F0
(Send Join\(*,*,RP\) to ne)103.525 421.6 Q 2.75(wn)-.275 G -.165(ex)
-2.75 G(t).165 E(hop; Send Prune\(*,*,RP\) to old)103.525 434.6 Q(ne)
103.525 447.6 Q(xt hop; set Join T)-.165 E(imer to)-.385 E(t_periodic)
103.525 460.6 Q(Decrease Join T)339.868 421.6 Q(imer to)-.385 E(t_o)
339.868 434.6 Q -.165(ve)-.165 G(rride).165 E 503.998 465.35 72 465.35
DL 292.58 381.35 292.58 465.35 DL 503.998 364.35 503.998 465.35 DL 72
364.35 72 465.35 DL(This state machine uses the follo)72 483.2 Q
(wing macro:)-.275 E/F3 11/Courier@0 SF(bool JoinDesired\(*,*,RP\) {)
85.2 502.2 Q(if immediate_olist\(*,*,RP\))105 515.2 Q F2<b9>6.6 E F3
(NULL)6.6 E(return TRUE)131.4 528.2 Q(else)105 541.2 Q(return FALSE)
131.4 554.2 Q(})85.2 567.2 Q F0
(JoinDesired\(*,*,RP\) is true when the router has recei)72 586.2 Q
-.165(ve)-.275 G 2.75(d\().165 G(*,*,RP\) Joins from an)-2.75 E 2.75(yd)
-.165 G -.275(ow)-2.75 G(nstream).275 E(interf)72 599.2 Q 2.75
(ace. Note)-.11 F(that although JoinDesired is true, the router')2.75 E
2.75(ss)-.605 G(ending of a Join\(*,*,RP\) message)-2.75 E(may be suppr\
essed by another router sending a Join\(*,*,RP\) onto the upstream inte\
rf)72 612.2 Q(ace.)-.11 E F1 -.814(Tr)72 638.2 S(ansitions fr).814 E
(om NotJ)-.198 E(oined State)-.165 E F0(When the upstream \(*,*,RP\) st\
ate machine is in NotJoined state, the follo)72 654.8 Q(wing e)-.275 E
-.165(ve)-.275 G(nt may trigger).165 E 2.75(as)72 667.8 S
(tate transition:)-2.75 E F1 -.165(Jo)97 684.4 S(inDesir).165 E
(ed\(*,*,RP\) becomes T)-.198 E(rue)-.814 E F0(The do)122 697.4 Q
(wnstream state for \(*,*,RP\) has changed so that at least one interf)
-.275 E(ace is in)-.11 E
(immediate_olist\(*,*,RP\), making JoinDesired\(*,*,RP\) become T)122
710.4 Q(rue.)-.385 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)
-.385 E 160.971(elas Section)-.165 F 2.75(4.5.5. [P)2.75 F(age 50])-.165
E 0 Cg EP
%%Page: 51 51
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(The upstream \(*,*,RP\) state machine transitions to Joined state.)122
85 Q(Send Join\(*,*,RP\) to)5.5 E(the appropriate upstream neighbor)122
98 Q 2.75(,w)-.44 G(hich is NBR\(RPF_interf)-2.75 E(ace\(RP\),)-.11 E
(MRIB.ne)122 111 Q 2.75(xt_hop\(RP\)\). Set)-.165 F(the Join T)2.75 E
(imer \(JT\) to e)-.385 E(xpire after t_periodic seconds.)-.165 E/F1 11
/Times-Bold@0 SF -.814(Tr)72 137 S(ansitions fr).814 E(om J)-.198 E
(oined State)-.165 E F0(When the upstream \(*,*,RP\) state machine is i\
n Joined state, the follo)72 153.6 Q(wing e)-.275 E -.165(ve)-.275 G
(nts may trigger).165 E(state transitions:)72 166.6 Q F1 -.165(Jo)97
183.2 S(inDesir).165 E(ed\(*,*,RP\) becomes F)-.198 E(alse)-.275 E F0
(The do)122 196.2 Q
(wnstream state for \(*,*,RP\) has changed so no interf)-.275 E
(ace is in)-.11 E
(immediate_olist\(*,*,RP\), making JoinDesired\(*,*,RP\) become F)122
209.2 Q(alse.)-.165 E
(The upstream \(*,*,RP\) state machine transitions to NotJoined state.)
122 225.8 Q(Send)5.5 E
(Prune\(*,*,RP\) to the appropriate upstream neighbor)122 238.8 Q 2.75
(,w)-.44 G(hich is)-2.75 E(NBR\(RPF_interf)122 251.8 Q
(ace\(RP\), MRIB.ne)-.11 E 2.75(xt_hop\(RP\)\). Cancel)-.165 F
(the Join T)2.75 E(imer \(JT\).)-.385 E F1 -.165(Jo)97 268.4 S(in T).165
E(imer Expir)-.198 E(es)-.198 E F0(The Join T)122 281.4 Q(imer \(JT\) e)
-.385 E(xpires, indicating time to send a Join\(*,*,RP\))-.165 E
(Send Join\(*,*,RP\) to the appropriate upstream neighbor)122 298 Q 2.75
(,w)-.44 G(hich is)-2.75 E(NBR\(RPF_interf)122 311 Q(ace\(RP\), MRIB.ne)
-.11 E 2.75(xt_hop\(RP\)\). Restart)-.165 F(the Join T)2.75 E
(imer \(JT\) to e)-.385 E(xpire)-.165 E(after t_periodic seconds.)122
324 Q F1(See J)97 340.6 Q(oin\(*,*,RP\) to MRIB.next_hop\(RP\))-.165 E
F0(This e)122 353.6 Q -.165(ve)-.275 G(nt is only rele).165 E -.275(va)
-.275 G(nt if RPF_interf).275 E(ace\(RP\) is a shared medium.)-.11 E
(This router sees)5.5 E/F2 10/Symbol SF<ef>555 365.6 Q F0
(another router on RPF_interf)122 366.6 Q
(ace\(RP\) send a Join\(*,*,RP\) to NBR\(RPF_interf)-.11 E(ace\(RP\),)
-.11 E(MRIB.ne)122 379.6 Q 2.75(xt_hop\(RP\)\). This)-.165 F
(causes this router to suppress its o)2.75 E(wn Join.)-.275 E
(The upstream \(*,*,RP\) state machine remains in Joined state.)122
396.2 Q(Let t_joinsuppress be the minimum of t_suppressed and the HoldT)
122 412.8 Q(ime from the)-.385 E(Join/Prune message triggering this e)
122 425.8 Q -.165(ve)-.275 G 2.75(nt. If).165 F(the Join T)2.75 E
(imer is set to e)-.385 E(xpire in less than)-.165 E
(t_joinsuppress seconds, reset it so that it e)122 438.8 Q
(xpires after t_joinsuppress seconds.)-.165 E(If the)5.5 E(Join T)122
451.8 Q(imer is set to e)-.385 E
(xpire in more than t_joinsuppress seconds, lea)-.165 E .33 -.165(ve i)
-.22 H 2.75(tu).165 G(nchanged.)-2.75 E F1
(See Prune\(*,*,RP\) to MRIB.next_hop\(RP\))97 468.4 Q F0(This e)122
481.4 Q -.165(ve)-.275 G(nt is only rele).165 E -.275(va)-.275 G
(nt if RPF_interf).275 E(ace\(RP\) is a shared medium.)-.11 E
(This router sees)5.5 E F2<ef>555 493.4 Q F0
(another router on RPF_interf)122 494.4 Q
(ace\(RP\) send a Prune\(*,*,RP\) to)-.11 E(NBR\(RPF_interf)122 507.4 Q
(ace\(RP\), MRIB.ne)-.11 E 2.75(xt_hop\(RP\)\). As)-.165 F
(this router is in Joined state, it)2.75 E(must o)122 520.4 Q -.165(ve)
-.165 G(rride the Prune after a short random interv).165 E(al.)-.275 E
(The upstream \(*,*,RP\) state machine remains in Joined state.)122 537
Q(If the Join T)5.5 E(imer is set)-.385 E(to e)122 550 Q
(xpire in more than t_o)-.165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E 2.75(seconds. If)122 563 R(the Join T)2.75
E(imer is set to e)-.385 E(xpire in less than t_o)-.165 E -.165(ve)-.165
G(rride seconds, lea).165 E .33 -.165(ve i)-.22 H(t).165 E(unchanged.)
122 576 Q F1(NBR\(RPF_interface\(RP\), MRIB.next_hop\(RP\)\) changes)97
592.6 Q F0 2.75(Ac)122 605.6 S
(hange in the MRIB routing base causes the ne)-2.75 E(xt hop to)-.165 E
-.11(wa)-.275 G(rds the RP to change.).11 E
(The upstream \(*,*,RP\) state machine remains in Joined state.)122
622.2 Q(Send Join\(*,*,RP\) to)5.5 E(the ne)122 635.2 Q 2.75(wu)-.275 G
(pstream neighbor which is the ne)-2.75 E 2.75(wv)-.275 G
(alue of NBR\(RPF_interf)-3.025 E(ace\(RP\),)-.11 E(MRIB.ne)122 648.2 Q
2.75(xt_hop\(RP\)\). Send)-.165 F
(Prune\(*,*,RP\) to the old upstream neighbor)2.75 E 2.75(,w)-.44 G
(hich is the)-2.75 E(old v)122 661.2 Q(alue of NBR\(RPF_interf)-.275 E
(ace\(RP\), MRIB.ne)-.11 E 2.75(xt_hop\(RP\)\). Set)-.165 F(the Join T)
2.75 E(imer \(JT\))-.385 E(to e)122 674.2 Q
(xpire after t_periodic seconds.)-.165 E F1
(MRIB.next_hop\(RP\) GenID changes)97 690.8 Q F0
(The Generation ID of the router that is MRIB.ne)122 703.8 Q
(xt_hop\(RP\) changes.)-.165 E(This normally)5.5 E(means that this neig\
hbor has lost state, and so the state must be refreshed.)122 716.8 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.5.5. [P)2.75 F(age 51])-.165 E 0 Cg EP
%%Page: 52 52
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(The upstream \(*,*,RP\) state\
 machine remains in Joined state. If the Join T)122 85 Q(imer is set)
-.385 E(to e)122 98 Q(xpire in more than t_o)-.165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E(seconds.)122 111 Q/F1 11/Times-Bold@0 SF
2.75(4.5.6. Sending)72 137 R(\(*,G\) J)2.75 E(oin/Prune Messages)-.165 E
F0(The per)72 153.6 Q(-interf)-.22 E
(ace state machines for \(*,G\) hold join state from do)-.11 E
(wnstream PIM routers.)-.275 E(This)5.5 E
(state then determines whether a router needs to propag)72 166.6 Q
(ate a Join\(*,G\) upstream to)-.055 E -.11(wa)-.275 G(rds the RP).11 E
(.)-1.221 E(If a router wishes to propag)72 183.2 Q
(ate a Join\(*,G\) upstream, it must also w)-.055 E
(atch for messages on its)-.11 E(upstream interf)72 196.2 Q
(ace from other routers on that subnet, and these may modify its beha)
-.11 E(vior)-.22 E 5.5(.I)-.605 G 2.75(fi)-5.5 G 2.75(ts)-2.75 G(ees)
-2.75 E 2.75(aJ)72 209.2 S(oin\(*,G\) to the correct upstream neighbor)
-2.75 E 2.75(,i)-.44 G 2.75(ts)-2.75 G(hould suppress its o)-2.75 E
(wn Join\(*,G\).)-.275 E(If it sees a)5.5 E
(Prune\(*,G\) to the correct upstream neighbor)72 222.2 Q 2.75(,i)-.44 G
2.75(ts)-2.75 G(hould be prepared to o)-2.75 E -.165(ve)-.165 G
(rride that prune by).165 E(sending a Join\(*,G\) almost immediately)72
235.2 Q 5.5(.F)-.715 G(inally)-5.5 E 2.75(,i)-.715 G 2.75(fi)-2.75 G
2.75(ts)-2.75 G(ees the Generation ID \(see Section 4.3\) of)-2.75 E
(the correct upstream neighbor change, it kno)72 248.2 Q
(ws that the upstream neighbor has lost state, and it)-.275 E(should be\
 prepared to refresh the state by sending a Join\(*,G\) almost immediat\
ely)72 261.2 Q(.)-.715 E
(If a \(*,G\) Assert occurs on the upstream interf)72 277.8 Q
(ace, and this changes this router')-.11 E 2.75(si)-.605 G(dea of the)
-2.75 E(upstream neighbor)72 290.8 Q 2.75(,i)-.44 G 2.75(ts)-2.75 G
(hould be prepared to ensure that the Assert winner is a)-2.75 E -.11
(wa)-.165 G(re of do).11 E(wnstream)-.275 E
(routers by sending a Join\(*,G\) almost immediately)72 303.8 Q(.)-.715
E(In addition, if the MRIB changes to indicate that the ne)72 320.4 Q
(xt hop to)-.165 E -.11(wa)-.275 G(rds the RP has changed, and).11 E
(either the upstream interf)72 333.4 Q
(ace changes or there is no Assert winner on the upstream interf)-.11 E
(ace, the)-.11 E(router should prune of)72 346.4 Q 2.75(ff)-.275 G
(rom the old ne)-2.75 E(xt hop, and join to)-.165 E -.11(wa)-.275 G
(rds the ne).11 E 2.75(wn)-.275 G -.165(ex)-2.75 G 2.75(th).165 G(op.)
-2.75 E(The upstream \(*,G\) state machine only contains tw)72 363 Q
2.75(os)-.11 G(tates:)-2.75 E F1(Not J)72 379.6 Q(oined)-.165 E F0
(The do)97 392.6 Q(wnstream state machines indicate that the router doe\
s not need to join the RP tree for)-.275 E(this group.)97 405.6 Q F1
-.165(Jo)72 422.2 S(ined).165 E F0(The do)97 435.2 Q(wnstream state mac\
hines indicate that the router should join the RP tree for this)-.275 E
(group.)97 448.2 Q(In addition, one timer JT\(*,G\) is k)72 464.8 Q
(ept which is used to trigger the sending of a Join\(*,G\) to the)-.11 E
(upstream ne)72 477.8 Q(xt hop to)-.165 E -.11(wa)-.275 G(rds the RP).11
E 2.75(,R)-1.221 G(PF'\(*,G\).)-2.75 E 106 361 396 499 -161.892 204 108
658.692 PBEGIN
%%BeginDocument: sending-starg-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 106 361 605 565
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 13 Grid 2.73551e-39 1.33263e-40 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
0 SetP
%I t
[ 0.500173 0 0 0.500173 107.037 342.618 ] concat
%I 4
475 280
660 223
591 151
486 263
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.500173 0 0 0.500173 107.037 342.618 ] concat
%I 4
473 289
637 344
627 254
513 275
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.500173 0 0 0.500173 107.037 342.618 ] concat
%I 4
472 290
595 456
631 365
511 310
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -12.5 270.5 ] concat
%I 4
697 435
699 577
777 547
724 466
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -12.5 270.5 ] concat
%I 4
697 435
583 528
670 588
681 467
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 -12.5 270.5 ] concat
%I 4
697 435
769 298
626 305
672 405
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I 3
593 592
385 528
273 576
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I 3
209 592
401 656
529 608
3 BSpl
%I 2
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I
209 592 64 32 Elli
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 231.5 192 ] concat
%I
209 592 64 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 134.5 497.5 ] concat
%I
[
(not)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 128 487.5 ] concat
%I
[
(joined)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 421 546.503 ] concat
%I
[
(See Prune\(*,G\))
(to RPF'\(*,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 423 500.012 ] concat
%I
[
(RPF'\(*,G\) GenID)
(changes)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 324 491.5 ] concat
%I
[
(joined)
] Text
End

Begin %I Line
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
none SetP %I p n
%I t
[ 1.00035 0 0 1.00035 117.04 149.052 ] concat
%I
248 418 244 408 Line
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 175 462.006 ] concat
%I
[
(JoinDesired\(*,G\)->FALSE)
([Send Prune\(*,G\)])
([Cancel Join Timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 190.512 582.518 ] concat
%I
[
(Join Timer Expires)
([Send Join\(*,G\)])
([Set Join Timer to t_periodic])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 339 587.5 ] concat
%I
[
(See Join\(*,G\) to RPF'\(*,G\))
([Raise Join Timer to t_joinsuppress])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 525.118 501.778 ] concat
%I
[
([Lower Join Timer to)
(randomized)
(prune-override interval])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 251.5 418 ] concat
%I
[
(RPF'\(*,G\) changes not due to assert)
([Send Join\(*,G\) to new RPF'\(*,G\)])
([Send Prune\(*,G\) to old RPF'\(*,G\)])
([Set Join Timer to t_periodic])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 150.528 538.989 ] concat
%I
[
(JoinDesired\(*,G\)->TRUE)
([Send Join\(*,G\)])
([Set Join Timer to t_ periodic])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 423.499 453.997 ] concat
%I
[
(RPF'\(*,G\) changes)
(due to an Assert)
] Text
End

Begin %I BSpl
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
none SetP %I p n
%I t
[ 0.249654 0 0 0.249654 455.619 417.172 ] concat
%I 8
205 536
231 536
232 315
263 287
268 287
232 258
233 56
204 56
8 BSpl
%I 4
End

End %I eop

showpage


end
%%EndDocument
end PEND F1(Figur)213.022 697.692 Q 2.75(e7)-.198 G 2.75(:U)-2.75 G
(pstr)-2.75 E(eam \(*,G\) state machine)-.198 E F0(Fenner/Handle)72 769
Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.6. [P)2.75 F(age 52])-.165 E 0 Cg EP
%%Page: 53 53
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(Upstream \(*,G\) state machine in tab)72 85 Q(ular form:)-.22 E .44 LW
503.993 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(Ev)342.352 106 Q(ent)
-.11 E 503.993 110.75 196.357 110.75 DL(Pr)93.49 120 Q .33 -.165(ev S)
-.198 H(tate).165 E -.165(Jo)229.592 121 S(inDesir).165 E(ed\(*,G\))
-.198 E/F2 11/Symbol SF<ae>229.592 134 Q F1 -.814(Tr)C(ue).814 E -.165
(Jo)401.62 121 S(inDesir).165 E(ed\(*,G\))-.198 E F2<ae>401.62 134 Q F1
-.275(Fa)C(lse).275 E 503.993 138.75 72 138.75 DL 503.993 140.75 72
140.75 DL F0(-)401.62 151 Q F2<ae>229.592 151 Q F0 2.75(Js)2.75 G(tate)
-2.75 E F1(NotJ)93.49 164 Q(oined \(NJ\))-.165 E F0
(Send Join\(*,G\); Set Join)229.592 164 Q -.385(Ti)229.592 177 S
(mer to t_periodic).385 E 503.993 181.75 72 181.75 DL(-)229.592 192 Q F1
-.165(Jo)93.49 192 S(ined \(J\)).165 E F2<ae>401.62 192 Q F0(NJ state)
2.75 E(Send Prune\(*,G\);)401.62 205 Q(Cancel Join T)401.62 218 Q(imer)
-.385 E 503.993 222.75 72 222.75 DL 369.385 110.75 369.385 222.75 DL
196.357 95.75 196.357 222.75 DL 198.357 95.75 198.357 222.75 DL 503.993
95.75 503.993 222.75 DL 72 95.75 72 222.75 DL(In addition, we ha)72
240.6 Q .33 -.165(ve t)-.22 H(he follo).165 E
(wing transitions which occur within the Joined state:)-.275 E 503.992
251.35 72 251.35 DL F1(In J)244.843 261.6 Q(oined \(J\) State)-.165 E
503.992 266.35 72 266.35 DL 503.992 268.35 72 268.35 DL -.198(Ti)82.066
278.6 S(mer Expir).198 E(es)-.198 E(See J)187.966 278.6 Q(oin\(*,G\) to)
-.165 E(RPF'\(*,G\))187.966 291.6 Q(See Prune\(*,G\) to)292.854 278.6 Q
(RPF'\(*,G\))292.854 291.6 Q(RPF'\(*,G\))408.489 278.6 Q
(changes due to an)408.489 291.6 Q(Assert)408.489 304.6 Q 503.992 309.35
72 309.35 DL 503.992 311.35 72 311.35 DL F0(Send Join\(*,G\);)82.066
321.6 Q(Set Join T)82.066 334.6 Q(imer to)-.385 E(t_periodic)82.066
347.6 Q(Increase Join)187.966 321.6 Q -.385(Ti)187.966 334.6 S(mer to)
.385 E(t_joinsuppress)187.966 347.6 Q(Decrease Join)292.854 321.6 Q
-.385(Ti)292.854 334.6 S(mer to t_o).385 E -.165(ve)-.165 G(rride).165 E
(Decrease Join)408.489 321.6 Q -.385(Ti)408.489 334.6 S(mer to t_o).385
E -.165(ve)-.165 G(rride).165 E 503.992 352.35 72 352.35 DL 393.39
268.35 393.39 352.35 DL 277.755 268.35 277.755 352.35 DL 172.867 268.35
172.867 352.35 DL 503.992 251.35 503.992 352.35 DL 72 251.35 72 352.35
DL 503.998 364.35 72 364.35 DL F1(In J)244.846 374.6 Q
(oined \(J\) State)-.165 E 503.998 379.35 72 379.35 DL 503.998 381.35 72
381.35 DL(RPF'\(*,G\) changes not due to)105.142 391.6 Q(an Assert)
105.142 404.6 Q(RPF'\(*,G\) GenID changes)347.117 391.6 Q 503.998 409.35
72 409.35 DL 503.998 411.35 72 411.35 DL F0(Send Join\(*,G\) to ne)
105.142 421.6 Q 2.75(wn)-.275 G -.165(ex)-2.75 G 2.75(th).165 G(op;)
-2.75 E(Send Prune\(*,G\) to old ne)105.142 434.6 Q(xt)-.165 E
(hop; Set Join T)105.142 447.6 Q(imer to)-.385 E(t_periodic)105.142
460.6 Q(Decrease Join T)347.117 421.6 Q(imer to)-.385 E(t_o)347.117
434.6 Q -.165(ve)-.165 G(rride).165 E 503.998 465.35 72 465.35 DL
297.404 381.35 297.404 465.35 DL 503.998 364.35 503.998 465.35 DL 72
364.35 72 465.35 DL(This state machine uses the follo)72 483.2 Q
(wing macro:)-.275 E/F3 11/Courier@0 SF(bool JoinDesired\(*,G\) {)85.2
502.2 Q(if \(immediate_olist\(*,G\))105 515.2 Q F2<b9>6.6 E F3(NULL OR)
6.6 E(\(JoinDesired\(*,*,RP\(G\)\) AND)131.4 528.2 Q
(AssertWinner\(*, G, RPF_interface\(RP\(G\)\)\))138 541.2 Q F2<b9>6.6 E
F3(NULL\)\))6.6 E(return TRUE)131.4 554.2 Q(else)105 567.2 Q
(return FALSE)131.4 580.2 Q(})85.2 593.2 Q F0
(JoinDesired\(*,G\) is true when the router has forw)72 612.2 Q
(arding state that w)-.11 E(ould cause it to forw)-.11 E(ard)-.11 E
(traf)72 625.2 Q(\214c for G using shared tree state.)-.275 E
(Note that although JoinDesired is true, the router')5.5 E 2.75(ss)-.605
G(ending)-2.75 E(of a Join\(*,G\) message may be suppressed by another \
router sending a Join\(*,G\) onto the)72 638.2 Q(upstream interf)72
651.2 Q(ace.)-.11 E F1 -.814(Tr)72 677.2 S(ansitions fr).814 E(om NotJ)
-.198 E(oined State)-.165 E F0(When the upstream \(*,G\) state machine \
is in NotJoined state, the follo)72 693.8 Q(wing e)-.275 E -.165(ve)
-.275 G(nt may trigger a).165 E(state transition:)72 706.8 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.5.6. [P)2.75 F(age 53])-.165 E 0 Cg EP
%%Page: 54 54
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF -.165
(Jo)97 85 S(inDesir).165 E(ed\(*,G\) becomes T)-.198 E(rue)-.814 E F0
(The macro JoinDesired\(*,G\) becomes T)122 98 Q
(rue, e.g., because the do)-.385 E(wnstream state for)-.275 E
(\(*,G\) has changed so that at least one interf)122 111 Q
(ace is in immediate_olist\(*,G\).)-.11 E
(The upstream \(*,G\) state machine transitions to Joined state.)122
127.6 Q(Send Join\(*,G\) to the)5.5 E(appropriate upstream neighbor)122
140.6 Q 2.75(,w)-.44 G(hich is RPF'\(*,G\).)-2.75 E(Set the Join T)5.5 E
(imer \(JT\) to e)-.385 E(xpire)-.165 E(after t_periodic seconds.)122
153.6 Q F1 -.814(Tr)72 179.6 S(ansitions fr).814 E(om J)-.198 E
(oined State)-.165 E F0
(When the upstream \(*,G\) state machine is in Joined state, the follo)
72 196.2 Q(wing e)-.275 E -.165(ve)-.275 G(nts may trigger state).165 E
(transitions:)72 209.2 Q F1 -.165(Jo)97 225.8 S(inDesir).165 E
(ed\(*,G\) becomes F)-.198 E(alse)-.275 E F0
(The macro JoinDesired\(*,G\) becomes F)122 238.8 Q
(alse, e.g., because the do)-.165 E(wnstream state for)-.275 E
(\(*,G\) has changed so no interf)122 251.8 Q
(ace is in immediate_olist\(*,G\).)-.11 E
(The upstream \(*,G\) state machine transitions to NotJoined state.)122
268.4 Q(Send Prune\(*,G\) to)5.5 E(the appropriate upstream neighbor)122
281.4 Q 2.75(,w)-.44 G(hich is RPF'\(*,G\).)-2.75 E(Cancel the Join T)
5.5 E(imer \(JT\).)-.385 E F1 -.165(Jo)97 298 S(in T).165 E(imer Expir)
-.198 E(es)-.198 E F0(The Join T)122 311 Q(imer \(JT\) e)-.385 E
(xpires, indicating time to send a Join\(*,G\))-.165 E
(Send Join\(*,G\) to the appropriate upstream neighbor)122 327.6 Q 2.75
(,w)-.44 G(hich is RPF'\(*,G\).)-2.75 E(Restart the)5.5 E(Join T)122
340.6 Q(imer \(JT\) to e)-.385 E(xpire after t_periodic seconds.)-.165 E
F1(See J)97 357.2 Q(oin\(*,G\) to RPF'\(*,G\))-.165 E F0(This e)122
370.2 Q -.165(ve)-.275 G(nt is only rele).165 E -.275(va)-.275 G
(nt if RPF_interf).275 E(ace\(RP\(G\)\) is a shared medium.)-.11 E
(This router)5.5 E(sees another router on RPF_interf)122 383.2 Q
(ace\(RP\(G\)\) send a Join\(*,G\) to RPF'\(*,G\).)-.11 E(This)5.5 E
(causes this router to suppress its o)122 396.2 Q(wn Join.)-.275 E
(The upstream \(*,G\) state machine remains in Joined state.)122 412.8 Q
(Let t_joinsuppress be the minimum of t_suppressed and the HoldT)122
429.4 Q(ime from the)-.385 E(Join/Prune message triggering this e)122
442.4 Q -.165(ve)-.275 G 2.75(nt. If).165 F(the Join T)2.75 E
(imer is set to e)-.385 E(xpire in less than)-.165 E
(t_joinsuppress seconds, reset it so that it e)122 455.4 Q
(xpires after t_joinsuppress seconds.)-.165 E(If the)5.5 E(Join T)122
468.4 Q(imer is set to e)-.385 E
(xpire in more than t_joinsuppress seconds, lea)-.165 E .33 -.165(ve i)
-.22 H 2.75(tu).165 G(nchanged.)-2.75 E F1
(See Prune\(*,G\) to RPF'\(*,G\))97 485 Q F0(This e)122 498 Q -.165(ve)
-.275 G(nt is only rele).165 E -.275(va)-.275 G(nt if RPF_interf).275 E
(ace\(RP\(G\)\) is a shared medium.)-.11 E(This router)5.5 E
(sees another router on RPF_interf)122 511 Q
(ace\(RP\(G\)\) send a Prune\(*,G\) to RPF'\(*,G\).)-.11 E(As this)5.5 E
(router is in Joined state, it must o)122 524 Q -.165(ve)-.165 G
(rride the Prune after a short random interv).165 E(al.)-.275 E
(The upstream \(*,G\) state machine remains in Joined state.)122 540.6 Q
(If the Join T)5.5 E(imer is set to)-.385 E -.165(ex)122 553.6 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E 2.75(seconds. If)122 566.6 R(the Join T)
2.75 E(imer is set to e)-.385 E(xpire in less than t_o)-.165 E -.165(ve)
-.165 G(rride seconds, lea).165 E .33 -.165(ve i)-.22 H(t).165 E
(unchanged.)122 579.6 Q F1(RPF'\(*,G\) changes due to an Assert)97 596.2
Q F0(The current ne)122 609.2 Q(xt hop to)-.165 E -.11(wa)-.275 G
(rds the RP changes due to an Assert\(*,G\) on the).11 E(RPF_interf)122
622.2 Q(ace\(RP\(G\)\).)-.11 E
(The upstream \(*,G\) state machine remains in Joined state.)122 638.8 Q
(If the Join T)5.5 E(imer is set to)-.385 E -.165(ex)122 651.8 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E 2.75(seconds. If)122 664.8 R(the Join T)
2.75 E(imer is set to e)-.385 E(xpire in less than t_o)-.165 E -.165(ve)
-.165 G(rride seconds, lea).165 E .33 -.165(ve i)-.22 H(t).165 E
(unchanged.)122 677.8 Q F1(RPF'\(*,G\) changes not due to an Assert)97
694.4 Q F0(An e)122 707.4 Q -.165(ve)-.275 G
(nt occurred which caused the ne).165 E(xt hop to)-.165 E -.11(wa)-.275
G(rds the RP for G to change.).11 E(This)5.5 E(may be caused by a chang\
e in the MRIB routing database or the group-to-RP)122 720.4 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.5.6. [P)2.75 F(age 54])-.165 E 0 Cg EP
%%Page: 55 55
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 2.75(mapping. Note)122 85 R
(that this transition does not occur if an Assert is acti)2.75 E .33
-.165(ve a)-.275 H(nd the).165 E(upstream interf)122 98 Q
(ace does not change.)-.11 E
(The upstream \(*,G\) state machine remains in Joined state.)122 114.6 Q
(Send Join\(*,G\) to the ne)5.5 E(w)-.275 E
(upstream neighbor which is the ne)122 127.6 Q 2.75(wv)-.275 G
(alue of RPF'\(*,G\).)-3.025 E(Send Prune\(*,G\) to the old)5.5 E
(upstream neighbor)122 140.6 Q 2.75(,w)-.44 G(hich is the old v)-2.75 E
(alue of RPF'\(*,G\).)-.275 E(Set the Join T)5.5 E(imer \(JT\) to)-.385
E -.165(ex)122 153.6 S(pire after t_periodic seconds.).165 E/F1 11
/Times-Bold@0 SF(RPF'\(*,G\) GenID changes)97 170.2 Q F0
(The Generation ID of the router that is RPF'\(*,G\) changes.)122 183.2
Q(This normally means that)5.5 E
(this neighbor has lost state, and so the state must be refreshed.)122
196.2 Q(The upstream \(*,G\) state machine remains in Joined state. If \
the Join T)122 212.8 Q(imer is set to)-.385 E -.165(ex)122 225.8 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E(seconds.)122 238.8 Q F1 2.75
(4.5.7. Sending)72 264.8 R(\(S,G\) J)2.75 E(oin/Prune Messages)-.165 E
F0(The per)72 281.4 Q(-interf)-.22 E
(ace state machines for \(S,G\) hold join state from do)-.11 E
(wnstream PIM routers.)-.275 E(This)5.5 E
(state then determines whether a router needs to propag)72 294.4 Q
(ate a Join\(S,G\) upstream to)-.055 E -.11(wa)-.275 G(rds the).11 E
(source.)72 307.4 Q(If a router wishes to propag)72 324 Q
(ate a Join\(S,G\) upstream, it must also w)-.055 E
(atch for messages on its)-.11 E(upstream interf)72 337 Q
(ace from other routers on that subnet, and these may modify its beha)
-.11 E(vior)-.22 E 5.5(.I)-.605 G 2.75(fi)-5.5 G 2.75(ts)-2.75 G(ees)
-2.75 E 2.75(aJ)72 350 S(oin\(S,G\) to the correct upstream neighbor)
-2.75 E 2.75(,i)-.44 G 2.75(ts)-2.75 G(hould suppress its o)-2.75 E
(wn Join\(S,G\).)-.275 E(If it sees a)5.5 E(Prune\(S,G\), Prune\(S,G,rp\
t\), or Prune\(*,G\) to the correct upstream neighbor to)72 363 Q -.11
(wa)-.275 G(rds S, it should).11 E(be prepared to o)72 376 Q -.165(ve)
-.165 G(rride that prune by scheduling a Join\(S,G\) to be sent almost \
immediately).165 E(.)-.715 E(Finally)72 389 Q 2.75(,i)-.715 G 2.75(fi)
-2.75 G 2.75(ts)-2.75 G
(ees the Generation ID of its upstream neighbor change, it kno)-2.75 E
(ws that the upstream)-.275 E(neighbor has lost state, and it should re\
fresh the state by scheduling a Join\(S,G\) to be sent almost)72 402 Q
(immediately)72 415 Q(.)-.715 E
(If a \(S,G\) Assert occurs on the upstream interf)72 431.6 Q
(ace, and this changes the this router')-.11 E 2.75(si)-.605 G
(dea of the)-2.75 E(upstream neighbor)72 444.6 Q 2.75(,i)-.44 G 2.75(ts)
-2.75 G(hould be prepared to ensure that the Assert winner is a)-2.75 E
-.11(wa)-.165 G(re of do).11 E(wnstream)-.275 E
(routers by scheduling a Join\(S,G\) to be sent almost immediately)72
457.6 Q(.)-.715 E(In addition, if MRIB changes cause the ne)72 474.2 Q
(xt hop to)-.165 E -.11(wa)-.275 G
(rds the source to change, and either the).11 E(upstream interf)72 487.2
Q(ace changes or there is no Assert winner on the upstream interf)-.11 E
(ace, the router)-.11 E(should send a prune to the old ne)72 500.2 Q
(xt hop, and a join to the ne)-.165 E 2.75(wn)-.275 G -.165(ex)-2.75 G
2.75(th).165 G(op.)-2.75 E
(The upstream \(S,G\) state machine only contains tw)72 516.8 Q 2.75(os)
-.11 G(tates:)-2.75 E F1(Not J)72 533.4 Q(oined)-.165 E F0(The do)97
546.4 Q(wnstream state machines and local membership information do not\
 indicate that the)-.275 E
(router needs to join the shortest-path tree for this \(S,G\).)97 559.4
Q F1 -.165(Jo)72 576 S(ined).165 E F0(The do)97 589 Q(wnstream state ma\
chines and local membership information indicate that the router)-.275 E
(should join the shortest-path tree for this \(S,G\).)97 602 Q
(In addition, one timer JT\(S,G\) is k)72 618.6 Q
(ept which is used to trigger the sending of a Join\(S,G\) to the)-.11 E
(upstream ne)72 631.6 Q(xt hop to)-.165 E -.11(wa)-.275 G
(rds S, RPF'\(S,G\).).11 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.5.7. [P)2.75 F(age 55])
-.165 E 0 Cg EP
%%Page: 56 56
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 106 352 396 506 -181.565 232
108 266.565 PBEGIN
%%BeginDocument: sending-sg-std.ps
%%Creator: idraw
%%DocumentFonts: Helvetica Times-Italic
%%Pages: 1
%%BoundingBox: 106 352 612 584
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 52 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def
/Times-Italic reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 13 Grid 7.56686e-15 7.25873e-43 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 51 114 ] concat
%I 4
285 374
293 430
325 430
296 390
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 51 114 ] concat
%I 4
290 372
372 419
372 393
316 381
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 51 114 ] concat
%I 4
284 374
362 448
368 422
305 386
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I 4
593 592
497 672
561 720
577 624
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 -39 79 ] concat
%I 4
390 408
459 421
461 396
407 406
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 1 0 0 1 -39 79 ] concat
%I 4
375 409
458 391
455 353
401 398
4 BSpl
%I 1
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 178.5 192 ] concat
%I 5
320 591
474 480
475 416
401 463
334 558
5 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I 3
593 592
385 528
273 576
3 BSpl
%I 2
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 231.5 192 ] concat
%I
209 592 64 32 Elli
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I 3
209 592
401 656
529 608
3 BSpl
%I 2
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I
209 592 64 32 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 134.5 497.5 ] concat
%I
[
(not)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 128 487.5 ] concat
%I
[
(joined)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 324 491.5 ] concat
%I
[
(joined)
] Text
End

Begin %I Line
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 39.5 192 ] concat
%I
480 751 527 703 Line
%I 2
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 426.5 559 ] concat
%I
[
(See Prune\(S,G\))
(to RPF'\(S,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-times-medium-r-normal--8-80-75-75-p-44-iso8859-1
Times-Italic 8 SetF
%I t
[ 1 0 0 1 425.5 471 ] concat
%I
[
(\(note 1\) )
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 425 456 ] concat
%I
[
(RPF'\(S,G\) GenID)
(changes)
] Text
End

Begin %I BSpl
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
none SetP %I p n
%I t
[ 0.105263 0 0 0.1375 444.961 387.275 ] concat
%I 8
677 1262
733 1262
733 802
815 704
813 705
733 618
733 158
677 158
8 BSpl
%I 8
End

Begin %I Line
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 0 0 0.5 179 387 ] concat
%I
456 383 372 320 Line
%I 2
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-times-medium-r-normal--8-80-75-75-p-44-iso8859-1
Times-Italic 8 SetF
%I t
[ 1 0 0 1 413 384.5 ] concat
%I
[
(Note 1: For interoperability with)
(implemtations of RFC 2362)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 424.5 532 ] concat
%I
[
(See Prune\(S,G,rpt\))
(to RPF'\(S,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 424.5 493 ] concat
%I
[
(See Prune\(*,G\))
(to RPF'\(S,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 187 600.512 ] concat
%I
[
(Join Timer Expires)
([Send Join\(S,G\)])
([Set Join Timer to t_ periodic])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 352 607.007 ] concat
%I
[
(See Join\(S,G\) to RPF'\(S,G\))
([Raise Join Timer to t_joinsuppress])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 532.625 498 ] concat
%I
[
([Lower Join Timer to)
(randomized)
(prune-override interval])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 159.022 464.502 ] concat
%I
[
(JoinDesired\(S,G\)->FALSE)
([Send Prune\(S,G\)])
([Set SPTbit\(S,G\) to FALSE])
([Cancel Join Timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 151.527 541.985 ] concat
%I
[
(JoinDesired\(S,G\)->TRUE)
([Send Join\(S,G\)])
([Set Join Timer to t_periodic])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 424 428 ] concat
%I
[
(RPF'\(S,G\) changes)
(due to an Assert)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-times-medium-r-normal--8-80-75-75-p-44-iso8859-1
Times-Italic 8 SetF
%I t
[ 1 0 0 1 425 510.5 ] concat
%I
[
(\(note 1\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 200.964 414.499 ] concat
%I
[
(RPF'\(S,G\) changes not due to assert)
([Send Join\(S,G\) to new RPF'\(S,G\)])
([Send Prune\(S,G\) to old RPF'\(S,G\)])
([Set Join Timer to t_periodic])
] Text
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.249654 0 0 0.249654 229.182 339.529 ] concat
%I 4
432 530
434 316
206 292
362 540
4 BSpl
%I 4
End

End %I eop

showpage


end
%%EndDocument
end PEND/F1 11/Times-Bold@0 SF(Figur)212.714 305.565 Q 2.75(e8)-.198 G
2.75(:U)-2.75 G(pstr)-2.75 E(eam \(S,G\) state machine)-.198 E F0
(Upstream \(S,G\) state machine in tab)72 328.165 Q(ular form:)-.22 E
.44 LW 503.998 338.915 72 338.915 DL F1(Ev)338.15 349.165 Q(ent)-.11 E
503.998 353.915 189.349 353.915 DL(Pr)90.687 363.165 Q .33 -.165(ev S)
-.198 H(tate).165 E -.165(Jo)218.38 364.165 S(inDesir).165 E(ed\(S,G\))
-.198 E/F2 11/Symbol SF<ae>218.38 377.165 Q F1 -.814(Tr)C(ue).814 E
-.165(Jo)380.69 364.165 S(inDesir).165 E(ed\(S,G\))-.198 E F2<ae>380.69
377.165 Q F1 -.275(Fa)C(lse).275 E 503.998 381.915 72 381.915 DL 503.998
383.915 72 383.915 DL F2<ae>218.38 394.165 Q F0 2.75(Js)2.75 G 118.761
(tate -)-2.75 F F1(NotJ)90.687 394.165 Q(oined \(NJ\))-.165 E F0
(Send Join\(S,G\); Set)218.38 407.165 Q(Join T)218.38 420.165 Q
(imer to t_periodic)-.385 E 503.998 424.915 72 424.915 DL(-)218.38
435.165 Q F2<ae>158.647 E F0(NJ state)2.75 E F1 -.165(Jo)90.687 435.165
S(ined \(J\)).165 E F0(Send Prune\(S,G\); Set)380.69 448.165 Q
(SPTbit\(S,G\) to F)380.69 461.165 Q(ALSE;)-.814 E(Cancel Join T)380.69
474.165 Q(imer)-.385 E 503.998 478.915 72 478.915 DL 352.659 353.915
352.659 478.915 DL 189.349 338.915 189.349 478.915 DL 191.349 338.915
191.349 478.915 DL 503.998 338.915 503.998 478.915 DL 72 338.915 72
478.915 DL(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E
160.971(elas Section)-.165 F 2.75(4.5.7. [P)2.75 F(age 56])-.165 E 0 Cg
EP
%%Page: 57 57
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(In addition, we ha)72 85 Q .33
-.165(ve t)-.22 H(he follo).165 E
(wing transitions which occur within the Joined state:)-.275 E .44 LW
503.992 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(In J)244.843 106 Q
(oined \(J\) State)-.165 E 503.992 110.75 72 110.75 DL 503.992 112.75 72
112.75 DL -.198(Ti)82.01 123 S(mer Expir).198 E(es)-.198 E(See J)187.742
123 Q(oin\(S,G\) to)-.165 E(RPF'\(S,G\))187.742 136 Q
(See Prune\(S,G\) to)293.078 123 Q(RPF'\(S,G\))293.078 136 Q(See Prune)
408.545 123 Q(\(S,G,r)408.545 136 Q(pt\) to)-.11 E(RPF'\(S,G\))408.545
149 Q 503.992 153.75 72 153.75 DL 503.992 155.75 72 155.75 DL F0
(Send Join\(S,G\);)82.01 166 Q(Set Join T)82.01 179 Q(imer to)-.385 E
(t_periodic)82.01 192 Q(Increase Join)187.742 166 Q -.385(Ti)187.742 179
S(mer to).385 E(t_joinsuppress)187.742 192 Q(Decrease Join)293.078 166 Q
-.385(Ti)293.078 179 S(mer to t_o).385 E -.165(ve)-.165 G(rride).165 E
(Decrease Join)408.545 166 Q -.385(Ti)408.545 179 S(mer to t_o).385 E
-.165(ve)-.165 G(rride).165 E 503.992 196.75 72 196.75 DL 393.53 112.75
393.53 196.75 DL 278.063 112.75 278.063 196.75 DL 172.727 112.75 172.727
196.75 DL 503.992 95.75 503.992 196.75 DL 72 95.75 72 196.75 DL 503.992
208.75 72 208.75 DL F1(In J)244.843 219 Q(oined \(J\) State)-.165 E
503.992 223.75 72 223.75 DL 503.992 225.75 72 225.75 DL
(See Prune\(*,G\) to)80.166 236 Q(RPF'\(S,G\))80.166 249 Q(RPF'\(S,G\))
190.101 236 Q(changes not due)190.101 249 Q(to an Assert)190.101 262 Q
(RPF'\(S,G\) GenID)300.454 236 Q(changes)300.454 249 Q(RPF'\(S,G\))
410.389 236 Q(changes due to an)410.389 249 Q(Assert)410.389 262 Q
503.992 266.75 72 266.75 DL 503.992 268.75 72 268.75 DL F0
(Decrease Join)80.166 279 Q -.385(Ti)80.166 292 S(mer to t_o).385 E
-.165(ve)-.165 G(rride).165 E(Send Join\(S,G\) to)190.101 279 Q(ne)
190.101 292 Q 2.75(wn)-.275 G -.165(ex)-2.75 G 2.75(th).165 G(op;)-2.75
E(Send Prune\(S,G\) to)190.101 305 Q(old ne)190.101 318 Q(xt hop; Set)
-.165 E(Join T)190.101 331 Q(imer to)-.385 E(t_periodic)190.101 344 Q
(Decrease Join)300.454 279 Q -.385(Ti)300.454 292 S(mer to t_o).385 E
-.165(ve)-.165 G(rride).165 E(Decrease Join)410.389 279 Q -.385(Ti)
410.389 292 S(mer to t_o).385 E -.165(ve)-.165 G(rride).165 E 503.992
348.75 72 348.75 DL 398.14 225.75 398.14 348.75 DL 288.205 225.75
288.205 348.75 DL 177.852 225.75 177.852 348.75 DL 503.992 208.75
503.992 348.75 DL 72 208.75 72 348.75 DL
(This state machine uses the follo)72 366.6 Q(wing macro:)-.275 E/F2 11
/Courier@0 SF(bool JoinDesired\(S,G\) {)85.2 385.6 Q
(return\( immediate_olist\(S,G\))111.6 398.6 Q/F3 11/Symbol SF<b9>6.6 E
F2(NULL)6.6 E(OR \( KeepaliveTimer\(S,G\) is running)164.4 411.6 Q
(AND inherited_olist\(S,G\))197.4 424.6 Q F3<b9>6.6 E F2(NULL \) \))6.6
E(})85.2 437.6 Q F0(JoinDesired\(S,G\) is true when the router has forw)
72 456.6 Q(arding state that w)-.11 E(ould cause it to forw)-.11 E(ard)
-.11 E(traf)72 469.6 Q(\214c for G using source tree state.)-.275 E
(The source tree state can either be as a result of acti)5.5 E -.165(ve)
-.275 G(source-speci\214c join state, or the \(S,G\) K)72 482.6 Q
(eepali)-.275 E .33 -.165(ve T)-.275 H(imer and acti)-.22 E .33 -.165
(ve n)-.275 H(on-source-speci\214c state. Note).165 E
(that although JoinDesired is true, the router')72 495.6 Q 2.75(ss)-.605
G(ending of a Join\(S,G\) message may be suppressed)-2.75 E
(by another router sending a Join\(S,G\) onto the upstream interf)72
508.6 Q(ace.)-.11 E F1 -.814(Tr)72 534.6 S(ansitions fr).814 E(om NotJ)
-.198 E(oined State)-.165 E F0(When the upstream \(S,G\) state machine \
is in NotJoined state, the follo)72 551.2 Q(wing e)-.275 E -.165(ve)
-.275 G(nt may trigger a).165 E(state transition:)72 564.2 Q F1 -.165
(Jo)97 580.8 S(inDesir).165 E(ed\(S,G\) becomes T)-.198 E(rue)-.814 E F0
(The macro JoinDesired\(S,G\) becomes T)122 593.8 Q
(rue, e.g., because the do)-.385 E(wnstream state for)-.275 E
(\(S,G\) has changed so that at least one interf)122 606.8 Q
(ace is in inherited_olist\(S,G\).)-.11 E
(The upstream \(S,G\) state machine transitions to Joined state.)122
623.4 Q(Send Join\(S,G\) to the)5.5 E(appropriate upstream neighbor)122
636.4 Q 2.75(,w)-.44 G(hich is RPF'\(S,G\).)-2.75 E(Set the Join T)5.5 E
(imer \(JT\) to e)-.385 E(xpire)-.165 E(after t_periodic seconds.)122
649.4 Q F1 -.814(Tr)72 675.4 S(ansitions fr).814 E(om J)-.198 E
(oined State)-.165 E F0
(When the upstream \(S,G\) state machine is in Joined state, the follo)
72 692 Q(wing e)-.275 E -.165(ve)-.275 G(nts may trigger state).165 E
(transitions:)72 705 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)
-.385 E 160.971(elas Section)-.165 F 2.75(4.5.7. [P)2.75 F(age 57])-.165
E 0 Cg EP
%%Page: 58 58
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF -.165
(Jo)97 85 S(inDesir).165 E(ed\(S,G\) becomes F)-.198 E(alse)-.275 E F0
(The macro JoinDesired\(S,G\) becomes F)122 98 Q
(alse, e.g., because the do)-.165 E(wnstream state for)-.275 E
(\(S,G\) has changed so no interf)122 111 Q
(ace is in inherited_olist\(S,G\).)-.11 E
(The upstream \(S,G\) state machine transitions to NotJoined state.)122
127.6 Q(Send Prune\(S,G\) to)5.5 E(the appropriate upstream neighbor)122
140.6 Q 2.75(,w)-.44 G(hich is RPF'\(S,G\).)-2.75 E(Cancel the Join T)
5.5 E(imer \(JT\),)-.385 E(and set SPTbit\(S,G\) to F)122 153.6 Q(ALSE.)
-.814 E F1 -.165(Jo)97 170.2 S(in T).165 E(imer Expir)-.198 E(es)-.198 E
F0(The Join T)122 183.2 Q(imer \(JT\) e)-.385 E
(xpires, indicating time to send a Join\(S,G\))-.165 E
(Send Join\(S,G\) to the appropriate upstream neighbor)122 199.8 Q 2.75
(,w)-.44 G(hich is RPF'\(S,G\).)-2.75 E(Restart the)5.5 E(Join T)122
212.8 Q(imer \(JT\) to e)-.385 E(xpire after t_periodic seconds.)-.165 E
F1(See J)97 229.4 Q(oin\(S,G\) to RPF'\(S,G\))-.165 E F0(This e)122
242.4 Q -.165(ve)-.275 G(nt is only rele).165 E -.275(va)-.275 G
(nt if RPF_interf).275 E(ace\(S\) is a shared medium.)-.11 E
(This router sees)5.5 E(another router on RPF_interf)122 255.4 Q
(ace\(S\) send a Join\(S,G\) to RPF'\(S,G\).)-.11 E(This causes this)5.5
E(router to suppress its o)122 268.4 Q(wn Join.)-.275 E
(The upstream \(S,G\) state machine remains in Joined state.)122 285 Q
(Let t_joinsuppress be the minimum of t_suppressed and the HoldT)122
301.6 Q(ime from the)-.385 E(Join/Prune message triggering this e)122
314.6 Q -.165(ve)-.275 G 2.75(nt. If).165 F(the Join T)2.75 E
(imer is set to e)-.385 E(xpire in less than)-.165 E
(t_joinsuppress seconds, reset it so that it e)122 327.6 Q
(xpires after t_joinsuppress seconds.)-.165 E(If the)5.5 E(Join T)122
340.6 Q(imer is set to e)-.385 E
(xpire in more than t_joinsuppress seconds, lea)-.165 E .33 -.165(ve i)
-.22 H 2.75(tu).165 G(nchanged.)-2.75 E F1
(See Prune\(S,G\) to RPF'\(S,G\))97 357.2 Q F0(This e)122 370.2 Q -.165
(ve)-.275 G(nt is only rele).165 E -.275(va)-.275 G(nt if RPF_interf)
.275 E(ace\(S\) is a shared medium.)-.11 E(This router sees)5.5 E
(another router on RPF_interf)122 383.2 Q
(ace\(S\) send a Prune\(S,G\) to RPF'\(S,G\).)-.11 E(As this router is)
5.5 E(in Joined state, it must o)122 396.2 Q -.165(ve)-.165 G
(rride the Prune after a short random interv).165 E(al.)-.275 E
(The upstream \(S,G\) state machine remains in Joined state.)122 412.8 Q
(If the Join T)5.5 E(imer is set to)-.385 E -.165(ex)122 425.8 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E(seconds.)122 438.8 Q F1(See Prune\(S,G,r)
97 455.4 Q(pt\) to RPF'\(S,G\))-.11 E F0(This e)122 468.4 Q -.165(ve)
-.275 G(nt is only rele).165 E -.275(va)-.275 G(nt if RPF_interf).275 E
(ace\(S\) is a shared medium.)-.11 E(This router sees)5.5 E
(another router on RPF_interf)122 481.4 Q
(ace\(S\) send a Prune\(S,G,rpt\) to RPF'\(S,G\).)-.11 E(If the)5.5 E
(upstream router is an RFC 2362 compliant PIM router)122 494.4 Q 2.75
(,t)-.44 G(hen the Prune\(S,G,rpt\) will)-2.75 E(cause it to stop forw)
122 507.4 Q 2.75(arding. F)-.11 F(or backw)-.165 E(ards compatibility)
-.11 E 2.75(,t)-.715 G(his router should o)-2.75 E -.165(ve)-.165 G
(rride).165 E(the prune so that forw)122 520.4 Q(arding continues.)-.11
E(The upstream \(S,G\) state machine remains in Joined state.)122 537 Q
(If the Join T)5.5 E(imer is set to)-.385 E -.165(ex)122 550 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E(seconds.)122 563 Q F1
(See Prune\(*,G\) to RPF'\(S,G\))97 579.6 Q F0(This e)122 592.6 Q -.165
(ve)-.275 G(nt is only rele).165 E -.275(va)-.275 G(nt if RPF_interf)
.275 E(ace\(S\) is a shared medium.)-.11 E(This router sees)5.5 E
(another router on RPF_interf)122 605.6 Q
(ace\(S\) send a Prune\(*,G\) to RPF'\(S,G\).)-.11 E(If the upstream)5.5
E(router is an RFC 2362 compliant PIM router)122 618.6 Q 2.75(,t)-.44 G
(hen the Prune\(*,G\) will cause it to stop)-2.75 E(forw)122 631.6 Q
2.75(arding. F)-.11 F(or backw)-.165 E(ards compatibility)-.11 E 2.75
(,t)-.715 G(his router should o)-2.75 E -.165(ve)-.165 G
(rride the prune so that).165 E(forw)122 644.6 Q(arding continues.)-.11
E(The upstream \(S,G\) state machine remains in Joined state.)122 661.2
Q(If the Join T)5.5 E(imer is set to)-.385 E -.165(ex)122 674.2 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E(seconds.)122 687.2 Q F1
(RPF'\(S,G\) changes due to an Assert)97 703.8 Q F0(The current ne)122
716.8 Q(xt hop to)-.165 E -.11(wa)-.275 G
(rds S changes due to an Assert\(S,G\) on the).11 E(Fenner/Handle)72 769
Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.7. [P)2.75 F(age 58])-.165 E 0 Cg EP
%%Page: 59 59
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(RPF_interf)122 85 Q(ace\(S\).)
-.11 E(The upstream \(S,G\) state machine remains in Joined state.)122
101.6 Q(If the Join T)5.5 E(imer is set to)-.385 E -.165(ex)122 114.6 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E 2.75(seconds. If)122 127.6 R(the Join T)
2.75 E(imer is set to e)-.385 E(xpire in less than t_o)-.165 E -.165(ve)
-.165 G(rride seconds, lea).165 E .33 -.165(ve i)-.22 H(t).165 E
(unchanged.)122 140.6 Q/F1 11/Times-Bold@0 SF
(RPF'\(S,G\) changes not due to an Assert)97 157.2 Q F0(An e)122 170.2 Q
-.165(ve)-.275 G(nt occurred which caused the ne).165 E(xt hop to)-.165
E -.11(wa)-.275 G(rds S to change.).11 E(Note that this)5.5 E
(transition does not occur if an Assert is acti)122 183.2 Q .33 -.165
(ve a)-.275 H(nd the upstream interf).165 E(ace does not)-.11 E(change.)
122 196.2 Q(The upstream \(S,G\) state machine remains in Joined state.)
122 212.8 Q(Send Join\(S,G\) to the ne)5.5 E(w)-.275 E
(upstream neighbor which is the ne)122 225.8 Q 2.75(wv)-.275 G
(alue of RPF'\(S,G\).)-3.025 E(Send Prune\(S,G\) to the old)5.5 E
(upstream neighbor)122 238.8 Q 2.75(,w)-.44 G(hich is the old v)-2.75 E
(alue of RPF'\(S,G\).)-.275 E(Set the Join T)5.5 E(imer \(JT\) to)-.385
E -.165(ex)122 251.8 S(pire after t_periodic seconds.).165 E F1
(RPF'\(S,G\) GenID changes)97 268.4 Q F0
(The Generation ID of the router that is RPF'\(S,G\) changes.)122 281.4
Q(This normally means that)5.5 E
(this neighbor has lost state, and so the state must be refreshed.)122
294.4 Q(The upstream \(S,G\) state machine remains in Joined state. If \
the Join T)122 311 Q(imer is set to)-.385 E -.165(ex)122 324 S
(pire in more than t_o).165 E -.165(ve)-.165 G
(rride seconds, reset it so that it e).165 E(xpires after t_o)-.165 E
-.165(ve)-.165 G(rride).165 E(seconds.)122 337 Q F1 2.75(4.5.8. \(S,G,r)
72 363 R(pt\) P)-.11 E(eriodic Messages)-.22 E F0(\(S,G,rpt\) Joins and\
 Prunes are \(S,G\) Joins or Prunes sent on the RP tree with the RPT bi\
t set,)72 379.6 Q
(either to modify the results of \(*,G\) Joins, or to o)72 392.6 Q -.165
(ve)-.165 G(rride the beha).165 E(vior of other upstream LAN)-.22 E 2.75
(peers. The)72 405.6 R(ne)2.75 E
(xt section describes the rules for sending triggered messages.)-.165 E
(This section)5.5 E(describes the rules for including a Prune\(S,G,rpt\
\) message with a Join\(*,G\).)72 418.6 Q
(When a router is going to send a Join\(*,G\), it should use the follo)
72 435.2 Q(wing pseudocode, for each)-.275 E(\(S,G\) for which it has s\
tate, to decide whether to include a Prune\(S,G,rpt\) in the compound)72
448.2 Q(Join/Prune message:)72 461.2 Q/F2 11/Courier@0 SF
(if\( SPTbit\(S,G\) == TRUE \) {)85.2 480.2 Q(#)111.6 493.2 Q F0
(Note: If recei)6.6 E(ving \(S,G\) on the SPT)-.275 E 2.75(,w)-.814 G
2.75(eo)-2.75 G(nly prune of)-2.75 E 2.75(ft)-.275 G(he)-2.75 E F2(#)
111.6 506.2 Q F0(shared tree if the RPF neighbors dif)6.6 E(fer)-.275 E
(.)-.605 E F2(if\( RPF'\(*,G\))118.2 519.2 Q/F3 11/Symbol SF<b9>6.6 E F2
(RPF'\(S,G\) \) {)6.6 E(add Prune\(S,G,rpt\) to compound message)144.6
532.2 Q(})118.2 545.2 Q 6.6(}e)85.2 558.2 S
(lse if \( inherited_olist\(S,G,rpt\) == NULL \) {)-6.6 E(#)98.4 571.2 Q
F0(Note: all \(*,G\) olist interf)9.35 E(aces recei)-.11 E -.165(ve)
-.275 G 2.75(dR).165 G(PT prunes for \(S,G\).)-2.75 E F2
(add Prune\(S,G,rpt\) to compound message)98.4 584.2 Q 6.6(}e)85.2 597.2
S(lse if \( RPF'\(*,G\))-6.6 E F3<b9>6.6 E F2(RPF'\(S,G,rpt\) {)6.6 E(#)
98.4 610.2 Q F0(Note: we joined the shared tree, b)6.6 E(ut there w)-.22
E(as an \(S,G\) assert and)-.11 E F2(#)98.4 623.2 Q F0
(the source tree RPF neighbor is dif)6.6 E(ferent.)-.275 E F2
(add Prune\(S,G,rpt\) to compound message)98.4 636.2 Q(})85.2 649.2 Q F0
(Note that Join\(S,G,rpt\) is not normally sent as a periodic message, \
b)72 671.8 Q(ut only as a triggered)-.22 E(message.)72 684.8 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.5.8. [P)2.75 F(age 59])-.165 E 0 Cg EP
%%Page: 60 60
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF 2.75
(4.5.9. State)72 85 R(Machine f)2.75 E(or \(S,G,r)-.275 E(pt\) T)-.11 E
(rigger)-.814 E(ed Messages)-.198 E F0
(The state machine for \(S,G,rpt\) triggered messages is required per)72
101.6 Q(-\(S,G\) when there is \(*,G\) or)-.22 E
(\(*,*,RP\) join state at a router)72 114.6 Q 2.75(,a)-.44 G
(nd the router or an)-2.75 E 2.75(yo)-.165 G 2.75(fi)-2.75 G
(ts upstream LAN peers wishes to prune S)-2.75 E(of)72 127.6 Q 2.75(ft)
-.275 G(he RP tree.)-2.75 E
(There are three states in the state machine.)72 153.6 Q
(One of the states is when there is neither \(*,G\) nor)5.5 E
(\(*,*,RP\(G\)\) join state at this router)72 166.6 Q 5.5(.I)-.605 G
2.75(ft)-5.5 G
(here is \(*,G\) or \(*,*,RP\(G\)\) join state at the router)-2.75 E
2.75(,t)-.44 G(hen)-2.75 E
(the state machine must be at one of the other tw)72 179.6 Q 2.75(os)
-.11 G(tates. The three states are:)-2.75 E F1(Pruned\(S,G,r)72 209.2 Q
(pt\))-.11 E F0(\(*,G\) or \(*,*,RP\(G\)\) Joined, b)97 222.2 Q
(ut \(S,G,rpt\) pruned)-.22 E F1(NotPruned\(S,G,r)72 238.8 Q(pt\))-.11 E
F0(\(*,G\) or \(*,*,RP\(G\)\) Joined, and \(S,G,rpt\) not pruned)97
251.8 Q F1(RPTNotJ)72 268.4 Q(oined\(G\))-.165 E F0
(neither \(*,G\) nor \(*,*,RP\(G\)\) has been joined.)97 281.4 Q
(In addition, there is an \(S,G,rpt\) Ov)72 298 Q(erride T)-.165 E(imer)
-.385 E 2.75(,O)-.44 G(T\(S,G,rpt\), which is used to delay triggered)
-3.19 E(Join\(S,G,rpt\) messages to pre)72 311 Q -.165(ve)-.275 G
(nt implosions of triggered messages.).165 E 53 280 396 543 -201.282 276
108 531.282 PBEGIN
%%BeginDocument: sgrpt-override.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 53 280 596 556
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 11 def
/arrowWidth 5 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 12 Grid 8 8 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 4
763 517
694 733
825 730
772 568
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 3
730 509
525 484
387 360
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 3
344 328
580 327
731 486
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 3
349 682
596 690
730 556
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 3
344 326
256 514
318 644
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 3
350 683
431 520
374 368
3 BSpl
%I 2
End

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 73.5 190.5 ] concat
%I
157 659 48 48 Elli
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 73.5 14.5 ] concat
%I
157 659 48 48 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 136.5 347.5 ] concat
%I
[
(Pruned)
] Text
End

End %I eop

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 281.5 110.5 ] concat
%I
157 659 48 48 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 344 449 ] concat
%I
[
(Not)
(Pruned)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 4
787 479
819 311
714 312
747 477
4 BSpl
%I 2
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 133.5 464.999 ] concat
%I
[
(PruneDesired)
(\(S,G,rpt\))
(->TRUE)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 197.5 530 ] concat
%I
[
(Inherited_olist\(S,G,rpt\))
(->NON-NULL)
] Text
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.998574 0 0 1.58334 15.241 -288.704 ] concat

Begin %I BSpl
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
none SetP %I p n
%I t
[ 0.5 -0 -0 0.5 -22 179 ] concat
%I 4
1051 661
1069 661
1067 561
1083 560
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
none SetP %I p n
%I t
[ 0.5 0 -0 -0.5 -20.5 739 ] concat
%I 4
1051 661
1069 661
1067 561
1083 560
4 BSpl
%I 2
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 442.5 468.5 ] concat
%I
[
(See \(S,G\))
(Prune to)
(RPF'\(S,G,rpt\))
] Text
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 21.5 229.5 ] concat
%I 4
697 464
792 597
859 512
717 448
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 21.5 229.5 ] concat
%I 4
722 437
835 502
849 397
726 416
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
0 SetP
%I t
[ 0.5 -0 -0 0.5 21.5 229.5 ] concat
%I 4
725 404
860 389
820 293
712 384
4 BSpl
%I 2
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 442.5 421.5 ] concat
%I
[
(RPF'\(S,G,rpt\))
(changes to be)
(the same as)
(RPF'\(*,G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 130.997 530.498 ] concat
%I
[
(RPTNot)
(Joined\(G\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 56.4928 413.995 ] concat
%I
[
(RPTJoinDesired\(G\))
(-> FALSE)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 437.5 512 ] concat
%I
[
(See \(S,G,rpt\))
(Prune to )
(RPF'\(S,G,rpt\))
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 209 363 ] concat
%I
[
(PruneDesired)
(\(S,G,rpt\)->FALSE)
([Send Join\(S,G,rpt\)])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 214.996 477.501 ] concat
%I
[
(RPTJoinDesired\(G\))
(->FALSE)
([Cancel OT])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 194.5 434.5 ] concat
%I
[
(PruneDesired)
(\(S,G,rpt\)->TRUE)
([Send Prune\(S,G,rpt\)])
([Cancel Override Timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 333.5 329 ] concat
%I
[
(See Join\(S,G,rpt\))
(to RPF'\(S,G,rpt\))
([Cancel Override Timer])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 341 578 ] concat
%I
[
(\(S,G,rpt\) Overide Timer Fires)
([Send Join\(S,G,rpt\)])
([Leave Override Timer unset])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*
Helvetica 12 SetF
%I t
[ 1 0 0 1 538.5 475.5 ] concat
%I
[
(Set/lower)
(\(don't raise\))
(\(S,G,rpt\) )
(Override Timer)
(to randomized)
(prune_override)
(interval)
] Text
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.0478552 -0 -0 0.0478552 323.07 418.11 ] concat
%I 3
276 524
-1776 774
-3156 1819
3 BSpl
%I 16
End

End %I eop

showpage


end
%%EndDocument
end PEND F1(Figur)150.08 570.282 Q 2.75(e9)-.198 G 2.75(:U)-2.75 G(pstr)
-2.75 E(eam \(S,G,r)-.198 E(pt\) state machine f)-.11 E(or trigger)-.275
E(ed messages)-.198 E F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.5.9. [P)2.75 F(age 60])
-.165 E 0 Cg EP
%%Page: 61 61
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(Upstream \(S,G,rpt\) state machine for triggered messages in tab)72 85
Q(ular form:)-.22 E .44 LW 504 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF
(Ev)321.488 106 Q(ent)-.11 E 504 110.75 161.324 110.75 DL(Pr)80.084
126.5 Q .33 -.165(ev S)-.198 H(tate).165 E(PruneDesir)174.45 121 Q(ed)
-.198 E(\(S,G,r)174.45 134 Q(pt\))-.11 E/F2 11/Symbol SF<ae>174.45 147 Q
F1 -.814(Tr)C(ue).814 E(PruneDesir)263.272 121 Q(ed)-.198 E(\(S,G,r)
263.272 134 Q(pt\))-.11 E F2<ae>263.272 147 Q F1 -.275(Fa)C(lse).275 E
(RPTJ)352.094 121 Q(oin)-.165 E(Desir)352.094 134 Q(ed\(G\))-.198 E F2
<ae>352.094 147 Q F1 -.275(Fa)C(lse).275 E(inherited_olist)428.079 121 Q
(\(S,G,r)428.079 134 Q(pt\))-.11 E F2<ae>428.079 147 Q F1(non-NULL)A 504
151.75 72 151.75 DL 504 153.75 72 153.75 DL F2<ae>174.45 164 Q F0 2.75
(Ps)2.75 G 43.436(tate -)-2.75 F(-)85.159 E F2<ae>72.322 E F0(NP state)
2.75 E F1(RPTNotJ)80.084 164 Q(oined)-.165 E(\(G\) \(NJ\))80.084 177 Q
504 181.75 72 181.75 DL F0(-)174.45 192 Q F2<ae>85.159 E F0(NP state)
2.75 E F2<ae>38.244 E F0(NJ state)2.75 E(-)27.244 E F1(Pruned)80.084
198.5 Q(\(S,G,r)80.084 211.5 Q(pt\) \(P\))-.11 E F0(Send Join)263.272
205 Q(\(S,G,rpt\))263.272 218 Q 504 222.75 72 222.75 DL F2<ae>174.45 233
Q F0 2.75(Ps)2.75 G 43.436(tate -)-2.75 F F2<ae>85.159 E F0(NJ state)
2.75 E(-)27.244 E F1(NotPruned)80.084 246 Q(\(S,G,r)80.084 259 Q
(pt\) \(NP\))-.11 E F0(Send Prune)174.45 246 Q(\(S,G,rpt\);)174.45 259 Q
(Cancel O)174.45 272 Q(T)-.44 E(Cancel O)352.094 246 Q(T)-.44 E 504
276.75 72 276.75 DL 415.953 110.75 415.953 276.75 DL 339.968 110.75
339.968 276.75 DL 251.146 110.75 251.146 276.75 DL 161.324 95.75 161.324
276.75 DL 163.324 95.75 163.324 276.75 DL 504 95.75 504 276.75 DL 72
95.75 72 276.75 DL(Additionally)72 291 Q 2.75(,w)-.715 G 2.75(eh)-2.75 G
-2.475 -.22(av e)-2.75 H(the follo)2.97 E
(wing transitions within the NotPruned\(S,G,rpt\) state which are all)
-.275 E(used for prune o)72 304 Q -.165(ve)-.165 G(rride beha).165 E
(vior)-.22 E(.)-.605 E 503.987 314.75 72 314.75 DL F1
(In NotPruned\(S,G,r)221.135 325 Q(pt\) State)-.11 E 503.987 329.75 72
329.75 DL 503.987 331.75 72 331.75 DL(Ov)78.184 342 Q(erride)-.11 E
-.198(Ti)78.184 355 S(mer expir).198 E(es)-.198 E(See Prune)168.137 342
Q(\(S,G,r)168.137 355 Q(pt\) to)-.11 E(RPF' \(S,G,r)168.137 368 Q(pt\))
-.11 E(See J)256.539 342 Q(oin)-.165 E(\(S,G,r)256.539 355 Q(pt\) to)
-.11 E(RPF' \(S,G,r)256.539 368 Q(pt\))-.11 E(See Prune)344.941 342 Q
(\(S,G\) to RPF')344.941 355 Q(\(S,G,r)344.941 368 Q(pt\))-.11 E
(RPF' \(S,G,r)427.953 342 Q(pt\))-.11 E F2<ae>427.953 355 Q F1
(RPF' \(*,G\))2.75 E 503.987 372.75 72 372.75 DL 503.987 374.75 72
374.75 DL F0(Send Join)78.184 385 Q(\(S,G,rpt\); Lea)78.184 398 Q -.165
(ve)-.22 G .88 -.44(OT u)78.184 411 T(nset).44 E .88 -.44(OT = m)168.137
385 T(in\(O).44 E -.814(T,)-.44 G(t_o)168.137 398 Q -.165(ve)-.165 G
(rride\)).165 E(Cancel O)256.539 385 Q(T)-.44 E .88 -.44(OT = m)344.941
385 T(in\(O).44 E -.814(T,)-.44 G(t_o)344.941 398 Q -.165(ve)-.165 G
(rride\)).165 E .88 -.44(OT = m)427.953 385 T(in\(O).44 E -.814(T,)-.44
G(t_o)427.953 398 Q -.165(ve)-.165 G(rride\)).165 E 503.987 415.75 72
415.75 DL 418.677 331.75 418.677 415.75 DL 335.665 331.75 335.665 415.75
DL 247.263 331.75 247.263 415.75 DL 158.861 331.75 158.861 415.75 DL
503.987 314.75 503.987 415.75 DL 72 314.75 72 415.75 DL(Note that the)72
433.6 Q/F3 11/Courier@0 SF(min)2.75 E F0(function in the abo)2.75 E .33
-.165(ve s)-.165 H(tate machine considers a non-running timer to ha).165
E .33 -.165(ve a)-.22 H(n).165 E(in\214nite v)72 446.6 Q(alue \(e.g.)
-.275 E F3(min\(not-running, t_override\))2.75 E F0(=)2.75 E F3
(t_override)2.75 E F0(\).)A(This state machine uses the follo)72 463.2 Q
(wing macros:)-.275 E F3(bool RPTJoinDesired\(G\) {)77.5 482.2 Q
(return \(JoinDesired\(*,G\) OR JoinDesired\(*,*,RP\(G\)\)\))98.4 495.2
Q(})85.2 508.2 Q F0
(RPTJoinDesired\(G\) is true when the router has forw)72 530.8 Q
(arding state that w)-.11 E(ould cause it to forw)-.11 E(ard)-.11 E
(traf)72 543.8 Q
(\214c for G using either \(*,G\) or \(*,*,RP\) shared tree state.)-.275
E F3(bool PruneDesired\(S,G,rpt\) {)77.5 562.8 Q
(return \( RPTJoinDesired\(G\) AND)118.2 575.8 Q 6.6(\(i)177.6 588.8 S
(nherited_olist\(S,G,rpt\) == NULL)-6.6 E(OR \(SPTbit\(S,G\)==TRUE)190.8
601.8 Q(AND \(RPF'\(*,G\))217.2 614.8 Q F2<b9>6.6 E F3
(RPF'\(S,G\)\) \)\)\))6.6 E(})85.2 627.8 Q F0(PruneDesired\(S,G,rpt\) c\
an only be true if RPTJoinDesired\(G\) is true.)72 650.4 Q
(If RPTJoinDesired\(G\) is)5.5 E(true, then PruneDesired\(S,G,rpt\) is \
true if either there are no outgoing interf)72 663.4 Q(aces that S w)
-.11 E(ould be)-.11 E(forw)72 676.4 Q
(arded on, or if the router has acti)-.11 E .33 -.165(ve \()-.275 H
(S,G\) forw).165 E(arding state b)-.11 E(ut RPF'\(*,G\))-.22 E F2<b9>
2.75 E F0(RPF'\(S,G\).)2.75 E(The state machine contains the follo)72
693 Q(wing transition e)-.275 E -.165(ve)-.275 G(nts:).165 E F1(See J)72
709.6 Q(oin\(S,G,r)-.165 E(pt\) to RPF'\(S,G,r)-.11 E(pt\))-.11 E F0
(This e)97 722.6 Q -.165(ve)-.275 G(nt is only rele).165 E -.275(va)
-.275 G(nt in the "Not Pruned" state.).275 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.9. [P)2.75 F(age 61])-.165 E 0 Cg EP
%%Page: 62 62
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(The router sees a Join\(S,G,r\
pt\) from someone else to RPF'\(S,G,rpt\), which is the correct)97 85 Q
(upstream neighbor)97 98 Q 5.5(.I)-.605 G 2.75(fw)-5.5 G(e')-2.75 E
(re in "NotPruned" state and the \(S,G,rpt\) Ov)-.55 E(erride T)-.165 E
(imer is)-.385 E(running, then this is because we ha)97 111 Q .33 -.165
(ve b)-.22 H(een triggered to send our o).165 E(wn Join\(S,G,rpt\) to)
-.275 E 2.75(RPF'\(S,G,rpt\). Someone)97 124 R
(else beat us to it, so there')2.75 E 2.75(sn)-.605 G 2.75(on)-2.75 G
(eed to send our o)-2.75 E(wn Join.)-.275 E
(The action is to cancel the Ov)97 140.6 Q(erride T)-.165 E(imer)-.385 E
(.)-.605 E/F1 11/Times-Bold@0 SF(See Prune\(S,G,r)72 157.2 Q
(pt\) to RPF'\(S,G,r)-.11 E(pt\))-.11 E F0(This e)97 170.2 Q -.165(ve)
-.275 G(nt is only rele).165 E -.275(va)-.275 G
(nt in the "NotPruned" state.).275 E(The router sees a Prune\(S,G,rpt\)\
 from someone else to to RPF'\(S,G,rpt\), which is the)97 186.8 Q
(correct upstream neighbor)97 199.8 Q 5.5(.I)-.605 G 2.75(fw)-5.5 G(e')
-2.75 E(re in the "NotPruned" state, then we w)-.55 E
(ant to continue to)-.11 E(recei)97 212.8 Q .33 -.165(ve t)-.275 H(raf)
.165 E(\214c from S destined for G, and that traf)-.275 E
(\214c is being supplied by RPF'\(S,G,rpt\).)-.275 E(Thus we need to o)
97 225.8 Q -.165(ve)-.165 G(rride the Prune.).165 E
(The action is to set the \(S,G,rpt\) Ov)97 242.4 Q(erride T)-.165 E
(imer to the randomized prune-o)-.385 E -.165(ve)-.165 G(rride interv)
.165 E(al,)-.275 E(t_o)97 255.4 Q -.165(ve)-.165 G 2.75(rride. Ho).165 F
(we)-.275 E -.165(ve)-.275 G 2.75(ri).165 G 2.75(ft)-2.75 G(he Ov)-2.75
E(erride T)-.165 E
(imer is already running, we only set the timer if doing)-.385 E(so w)97
268.4 Q(ould set it to a lo)-.11 E(wer v)-.275 E 2.75(alue. At)-.275 F
(the end of this interv)2.75 E(al, if no-one else has sent a Join,)-.275
E(then we will do so.)97 281.4 Q F1(See Prune\(S,G\) to RPF'\(S,G,r)72
298 Q(pt\))-.11 E F0(This e)97 311 Q -.165(ve)-.275 G(nt is only rele)
.165 E -.275(va)-.275 G(nt in the "NotPruned" state.).275 E
(This transition and action are the same as the abo)97 327.6 Q .33 -.165
(ve t)-.165 H(ransition and action, e).165 E(xcept that the)-.165 E
(Prune does not ha)97 340.6 Q .33 -.165(ve t)-.22 H(he RPT bit set.).165
E(This transition is necessary to be compatible with)5.5 E
(routers implemented from RFC2362 that don')97 353.6 Q 2.75(tm)-.198 G
(aintain separate \(S,G\) and \(S,G,rpt\) state.)-2.75 E F1(The \(S,G,r)
72 370.2 Q(pt\) prune Ov)-.11 E(erride T)-.11 E(imer expir)-.198 E(es)
-.198 E F0(This e)97 383.2 Q -.165(ve)-.275 G(nt is only rele).165 E
-.275(va)-.275 G(nt in the "NotPruned" state.).275 E(When the Ov)97
399.8 Q(erride T)-.165 E(imer e)-.385 E
(xpires, we must send a Join\(S,G,rpt\) to RPF'\(S,G,rpt\) to)-.165 E
-.165(ove)97 412.8 S
(rride the Prune message that caused the timer to be running.).165 E
1.76 -.88(We o)5.5 H(nly send this if).88 E(RPF'\(S,G,rpt\) equals RPF'\
\(*,G\) - if this were not the case, then the Join might be sent to a)97
425.8 Q(router that does not ha)97 438.8 Q .33 -.165(ve \()-.22 H
(*,G\) or \(*,*,RP\(G\)\) Join state, and so the beha).165 E(vior w)-.22
E(ould not be)-.11 E(well de\214ned.)97 451.8 Q(If RPF'\(S,G,rpt\) is n\
ot the same as RPF'\(*,G\), then it may stop forw)5.5 E(arding S.)-.11 E
(Ho)97 464.8 Q(we)-.275 E -.165(ve)-.275 G .88 -.44(r, i).165 H 2.75(ft)
.44 G
(his happens, then the router will send an AssertCancel\(S,G\), which w)
-2.75 E(ould then)-.11 E
(cause RPF'\(S,G,rpt\) to become equal to RPF'\(*,G\) \(see belo)97
477.8 Q(w\).)-.275 E F1(RPF'\(S,G,r)72 494.4 Q
(pt\) changes to become equal to RPF'\(*,G\))-.11 E F0(This e)97 507.4 Q
-.165(ve)-.275 G(nt is only rele).165 E -.275(va)-.275 G
(nt in the "NotPruned" state.).275 E(RPF'\(S,G,rpt\) can only be dif)97
524 Q(ferent from RPF'\(*,G\) if an \(S,G\) Assert has happened, which)
-.275 E(means that traf)97 537 Q(\214c from S is arri)-.275 E
(ving on the SPT)-.275 E 2.75(,a)-.814 G(nd so Prune\(S,G,rpt\) will ha)
-2.75 E .33 -.165(ve b)-.22 H(een sent).165 E(to RPF'\(*,G\).)97 550 Q(\
When RPF'\(S,G,rpt\) changes to become equal to RPF'\(*,G\), we need to)
5.5 E(trigger a Join\(S,G,rpt\) to RPF'\(*,G\) to cause that router to \
start forw)97 563 Q(arding S ag)-.11 E(ain.)-.055 E
(The action is to set the \(S,G,rpt\) Ov)97 579.6 Q(erride T)-.165 E
(imer to the randomized prune-o)-.385 E -.165(ve)-.165 G(rride interv)
.165 E(al)-.275 E(t_o)97 592.6 Q -.165(ve)-.165 G 2.75(rride. Ho).165 F
(we)-.275 E -.165(ve)-.275 G 2.75(ri).165 G 2.75(ft)-2.75 G
(he timer is already running, we only set the timer if doing so w)-2.75
E(ould)-.11 E(set it to a lo)97 605.6 Q(wer v)-.275 E 2.75(alue. At)
-.275 F(the end of this interv)2.75 E
(al, if no-one else has sent a Join, then we will)-.275 E(do so.)97
618.6 Q F1(PruneDesir)72 635.2 Q(ed\(S,G,r)-.198 E(pt\))-.11 E/F2 11
/Symbol SF<ae>A F1(TR)A(UE)-.33 E F0(See macro abo)97 648.2 Q -.165(ve)
-.165 G 5.5(.T).165 G(his e)-5.5 E -.165(ve)-.275 G(nt is rele).165 E
-.275(va)-.275 G(nt in the "NotPruned" and "RPTNotJoined\(G\)" states.)
.275 E(The router wishes to recei)97 664.8 Q .33 -.165(ve t)-.275 H(raf)
.165 E(\214c for G, b)-.275 E(ut does not wish to recei)-.22 E .33 -.165
(ve t)-.275 H(raf).165 E(\214c from S)-.275 E(destined for G.)97 677.8 Q
(This causes the router to transition into the Pruned state.)5.5 E
(If the router w)97 694.4 Q(as pre)-.11 E(viously in NotPruned state, t\
hen the action is to send a Prune\(S,G,rpt\) to)-.275 E
(RPF'\(S,G,rpt\), and to cancel the Ov)97 707.4 Q(erride T)-.165 E(imer)
-.385 E 5.5(.I)-.605 G 2.75(ft)-5.5 G(he router w)-2.75 E(as pre)-.11 E
(viously in)-.275 E(RPTNotJoined\(G\) state, then there is no need to t\
rigger an action in this state machine)97 720.4 Q(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.5.9. [P)2.75 F(age 62])-.165 E 0 Cg EP
%%Page: 63 63
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(because sending a Prune\(S,G,\
rpt\) is handled by the rules for sending the Join\(*,G\) or)97 85 Q
(Join\(*,*,RP\).)97 98 Q/F1 11/Times-Bold@0 SF(PruneDesir)72 114.6 Q
(ed\(S,G,r)-.198 E(pt\))-.11 E/F2 11/Symbol SF<ae>A F1 -.99(FA)C(LSE).99
E F0(See macro abo)97 127.6 Q -.165(ve)-.165 G 5.5(.T).165 G
(his transition is only rele)-5.5 E -.275(va)-.275 G
(nt in the "Pruned" state.).275 E(If the router is in the Pruned\(S,G,r\
pt\) state, and PruneDesired\(S,G,rpt\) changes to F)97 144.2 Q(ALSE,)
-.814 E(this could be because the router no longer has RPTJoinDesired\(\
G\) true, or it no)97 157.2 Q 2.75(ww)-.275 G(ishes to)-2.75 E(recei)97
170.2 Q .33 -.165(ve t)-.275 H(raf).165 E(\214c from S ag)-.275 E 2.75
(ain. If)-.055 F(it is the former)2.75 E 2.75(,t)-.44 G
(hen this transition should not happen, b)-2.75 E(ut)-.22 E
(instead the "RPTJoinDesired\(G\))97 183.2 Q F2<ae>A F0 -.814(FA)C
(LSE" transition should happen. Thus this transition).814 E
(should be interpreted as "PruneDesired\(S,G,rpt\))97 196.2 Q F2<ae>A F0
-.814(FA)C(LSE AND).814 E(RPTJoinDesired\(G\)==TR)97 209.2 Q(UE")-.44 E
(The action is to send a Join\(S,G,rpt\) to RPF'\(S,G,rpt\).)97 225.8 Q
F1(RPTJ)72 242.4 Q(oinDesir)-.165 E(ed\(G\))-.198 E F2<ae>A F1 -.99(FA)C
(LSE).99 E F0(This e)97 255.4 Q -.165(ve)-.275 G(nt is rele).165 E -.275
(va)-.275 G(nt in the "Pruned" and "NotPruned" states.).275 E
(The router no longer wishes to recei)97 272 Q .33 -.165(ve a)-.275 H
.33 -.165(ny t).165 H(raf).165 E(\214c destined for G on the RP T)-.275
E 2.75(ree. This)-.385 F
(causes a transition to the RPTNotJoined\(G\) state, and the Ov)97 285 Q
(erride T)-.165 E(imer is canceled if it)-.385 E -.11(wa)97 298 S 2.75
(sr).11 G 2.75(unning. An)-2.75 F 2.75(yf)-.165 G(urther actions are ha\
ndled by the appropriate upstream state machine for)-2.75 E
(\(*,G\) or \(*,*,RP\).)97 311 Q F1(inherited_olist\(S,G,r)72 327.6 Q
(pt\) becomes non-NULL)-.11 E F0(This transition is only rele)97 340.6 Q
-.275(va)-.275 G(nt in the RPTNotJoined\(G\) state.).275 E(The router h\
as joined the RP tree \(handled by the \(*,G\) or \(*,*,RP\) upstream s\
tate machine)97 357.2 Q(as appropriate\), and w)97 370.2 Q
(ants to recei)-.11 E .33 -.165(ve t)-.275 H(raf).165 E(\214c from S.)
-.275 E(This does not trigger an)5.5 E 2.75(ye)-.165 G -.165(ve)-3.025 G
(nts in this).165 E(state machine, b)97 383.2 Q
(ut causes a transition to the NotPruned\(S,G,rpt\) state.)-.22 E F1
2.75(4.5.10. Backgr)72 409.2 R(ound: \(*,*,RP\) and \(S,G,r)-.198 E
(pt\) Interaction)-.11 E F0(In sections 4.5.8 and 4.5.9 the mechanisms \
for sending periodic and triggered \(S,G,rpt\) messages)72 425.8 Q
(are described.)72 438.8 Q(The astute reader will note that periodic Pr\
une\(S,G,rpt\) messages are only sent in)5.5 E(PIM Join/Prune messages \
containing a Join\(*,G\), whereas it is possible for a triggered)72
451.8 Q(Prune\(S,G,rpt\) message to be sent when the router has no \(*,\
G\) join state.)72 464.8 Q(This may seem lik)5.5 E 2.75(ea)-.11 G
(contradiction, b)72 477.8 Q(ut in f)-.22 E
(act it is intentional, and is a side ef)-.11 E
(fect of not optimizing \(*,*,RP\) beha)-.275 E(vior)-.22 E(.)-.605 E
1.76 -.88(We \214)72 494.4 T(rst note that reception of a Join\(*,*,RP\
\) by itself does not cancel \(S,G,rpt\) prune state on that).88 E
(interf)72 507.4 Q(ace, whereas recei)-.11 E(ving a Join\(*,G\) by itse\
lf does cancel \(S,G,rpt\) prune state on that)-.275 E(interf)72 520.4 Q
2.75(ace. Similarly)-.11 F 2.75(,r)-.715 G
(eception of a Prune\(*,G\) on an interf)-2.75 E
(ace with \(*,*,RP\) join state does not by)-.11 E(itself pre)72 533.4 Q
-.165(ve)-.275 G(nt forw).165 E(arding of G using the \(*,*,RP\) state \
- this is because a Prune\(*,G\) only serv)-.11 E(es)-.165 E
(to cancel \(*,G\) join state.)72 546.4 Q
(Conceptually \(*,*,RP\) state functions "abo)5.5 E -.165(ve)-.165 G
2.75("t).165 G(he normal \(*,G\) and)-2.75 E(\(S,G\) mechanisms, and so\
 neither Join\(*,*,RP\) or Prune\(*,*,RP\) messages af)72 559.4 Q
(fect an)-.275 E 2.75(yo)-.165 G(ther state.)-2.75 E
(The upshot of this is that to pre)72 576 Q -.165(ve)-.275 G(nt forw)
.165 E(arding \(S,G\) on \(*,*,RP\) state, a Prune\(S,G,rpt\) must be)
-.11 E(used.)72 589 Q 1.76 -.88(We a)72 605.6 T(lso note that for histo\
rical reasons there is no Assert\(*,*,RP\) message, so an).88 E 2.75(yf)
-.165 G(orw)-2.75 E(arding)-.11 E(contention is resolv)72 618.6 Q
(ed using Assert\(*,G\) messages.)-.165 E 1.76 -.88(We n)72 635.2 T .55
-.275(ow n).88 H(eed to consider the interaction between \(*,*,RP\) sta\
te and \(*,G\) state.).275 E(If there is a need)5.5 E
(for an assert between tw)72 648.2 Q 2.75(ou)-.11 G
(pstream routers on a LAN, we need to ensure that the correct thing)
-2.75 E(happens for all combinations of \(*,*,RP\) and \(*,G\) forw)72
661.2 Q(arding state.)-.11 E(As there is no)5.5 E(Assert\(*,*,RP\) mess\
age, no router can tell whether the assert winner has \(*,*,RP\) state \
or \(*,G\))72 674.2 Q 2.75(state. Thus)72 687.2 R 2.75(ad)2.75 G -.275
(ow)-2.75 G(nstream router has to treat the tw).275 E 2.75(ot)-.11 G
(he same and send its periodic)-2.75 E
(Prune\(S,G,rpt\) messages to RPF'\(*,G\).)72 700.2 Q(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 155.471(elas Section)-.165 F 2.75
(4.5.10. [P)2.75 F(age 63])-.165 E 0 Cg EP
%%Page: 64 64
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 1.76 -.88(To a)72 85 T -.22
(vo).66 G(id needing to specify all the comple).22 E 2.75(xo)-.165 G
-.165(ve)-2.915 G
(rride rules between \(*,*,RP\), \(*,G\) and \(S,G,rpt\),).165 E
(we simply require that to prune \(S,G\) of)72 98 Q 2.75(ft)-.275 G
(he \(*,*,RP\) tree, a Join\(*,G\) must also be sent.)-2.75 E
(If a router is recei)72 114.6 Q(ving on \(*,*,RP\) state, and has not \
yet had \(*,G\) state instantiated, it may still)-.275 E
(need to send a triggered Join\(S,G,rpt\) to o)72 127.6 Q -.165(ve)-.165
G(rride a Prune\(S,G,rpt\) that it sees directed to).165 E
(RPF'\(*,G\) on its upstream interf)72 140.6 Q 2.75(ace. Hence)-.11 F
(triggered \(S,G,rpt\) messages may be sent when)2.75 E
(JoinDesired\(*,G\) is f)72 153.6 Q(alse b)-.11 E
(ut JoinDesired\(*,*,RP\) is true.)-.22 E(Finally we note that there is\
 an unoptimized case when the upstream router on a LAN already has)72
170.2 Q(\(*,G\) join and \(S,G,rpt\) prune state caused by an e)72 183.2
Q(xisting do)-.165 E(wnstream router)-.275 E 5.5(.I)-.605 G 2.75(fa)-5.5
G 2.75(tt)-2.75 G(his time a ne)-2.75 E(w)-.275 E
(Join\(*,*,RP\) is sent to the upstream router from a dif)72 196.2 Q
(ferent do)-.275 E(wnstream router)-.275 E 2.75(,t)-.44 G(his will not)
-2.75 E -.165(ove)72 209.2 S
(rride the \(S,G,rpt\) prune state at the upstream router).165 E 5.5(.T)
-.605 G(he o)-5.5 E -.165(ve)-.165 G(rride will not occur until the).165
E(ne)72 222.2 Q(xt time the original do)-.165 E
(wnstream router resends its Prune\(S,G,rpt\).)-.275 E(This case w)5.5 E
(as considered to)-.11 E(be not w)72 235.2 Q
(orth optimizing, as \(*,*,RP\) state is generally v)-.11 E(ery long li)
-.165 E -.165(ve)-.275 G(d, and so an).165 E 2.75(ym)-.165 G
(inor delays in)-2.75 E(getting traf)72 248.2 Q(\214c to a ne)-.275 E
2.75(wP)-.275 G(MBR seem unimportant.)-2.75 E/F1 11/Times-Bold@0 SF
(4.6.)72 287.2 Q/F2 13/Times-Bold@0 SF(PIM Assert Messages)5.5 E F0
(Where multiple PIM routers peer o)72 303.8 Q -.165(ve)-.165 G 2.75(ras)
.165 G(hared LAN it is possible for more than one upstream)-2.75 E
(router to ha)72 316.8 Q .33 -.165(ve v)-.22 H(alid forw)-.11 E
(arding state for a pack)-.11 E(et, which can lead to pack)-.11 E
(et duplication \(see)-.11 E(Section 3 "Multi-access LANs"\).)72 329.8 Q
(PIM does not attempt to pre)5.5 E -.165(ve)-.275 G
(nt this from occurring.).165 E(Instead it)5.5 E
(detects when this has happened and elects a single forw)72 342.8 Q
(arder amongst the upstream routers to)-.11 E(pre)72 355.8 Q -.165(ve)
-.275 G(nt further duplication.).165 E
(This election is performed using PIM Assert messages.)5.5 E(Assert)5.5
E(messages are also recei)72 368.8 Q -.165(ve)-.275 G 2.75(db).165 G
2.75(yd)-2.75 G -.275(ow)-2.75 G
(nstream routers on the LAN, and these cause subsequent).275 E
(Join/Prune messages to be sent to the upstream router that w)72 381.8 Q
(on the Assert.)-.11 E(In general, a PIM Assert message should only be \
accepted for processing if it comes from a)72 398.4 Q(kno)72 411.4 Q
(wn PIM neighbor)-.275 E 5.5(.A)-.605 G
(PIM router hears about PIM neighbors through PIM Hello messages.)-2.75
E(If)5.5 E 2.75(ar)72 424.4 S(outer recei)-2.75 E -.165(ve)-.275 G 2.75
(sa).165 G 2.75(nA)-2.75 G(ssert message from a particular IP source ad\
dress and it has not seen a PIM)-2.75 E(Hello message from that source \
address, then the Assert message SHOULD be discarded without)72 437.4 Q
(further processing.)72 450.4 Q
(In addition, if the Hello message from a neighbor w)5.5 E
(as authenticated using the)-.11 E(IPsec Authentication Header \(AH\) \
\(see Section 6.3\) then all Assert messages from that neighbor)72 463.4
Q(MUST also be authenticated using IPsec AH.)72 476.4 Q 1.76 -.88(We n)
72 493 T(ote that some older PIM implementations incorrectly f).88 E
(ail to send Hello messages on point-)-.11 E(to-point interf)72 506 Q
(aces, so we also RECOMMEND that a con\214guration option be pro)-.11 E
(vided to allo)-.165 E(w)-.275 E
(interoperation with such older routers, b)72 519 Q
(ut that this con\214guration option SHOULD NO)-.22 E 2.75(Tb)-.44 G(e)
-2.75 E(enabled by def)72 532 Q(ault.)-.11 E F1 2.75(4.6.1. \(S,G\))72
558 R(Assert Message State Machine)2.75 E F0
(The \(S,G\) Assert state machine for interf)72 574.6 Q(ace I is sho)
-.11 E(wn in Figure 10. There are three states:)-.275 E F1(NoInf)72
591.2 Q 2.75(o\()-.275 G(NI\))-2.75 E F0
(This router has no \(S,G\) assert state on interf)97 604.2 Q(ace I.)
-.11 E F1 2.75(Ia)72 620.8 S 2.75(mA)-2.75 G(ssert W)-2.75 E
(inner \(W\))-.198 E F0(This router has w)97 633.8 Q
(on an \(S,G\) assert on interf)-.11 E(ace I.)-.11 E(It is no)5.5 E 2.75
(wr)-.275 G(esponsible for forw)-2.75 E(arding)-.11 E(traf)97 646.8 Q
(\214c from S destined for G out of interf)-.275 E(ace I.)-.11 E
(Irrespecti)5.5 E .33 -.165(ve o)-.275 H 2.75(fw).165 G
(hether it is the DR for I,)-2.75 E(while a router is the assert winner)
97 659.8 Q 2.75(,i)-.44 G 2.75(ti)-2.75 G 2.75(sa)-2.75 G
(lso responsible for forw)-2.75 E(arding traf)-.11 E(\214c onto I on)
-.275 E(behalf of local hosts on I that ha)97 672.8 Q .33 -.165(ve m)
-.22 H(ade membership requests that speci\214cally refer to S).165 E
(\(and G\).)97 685.8 Q F1 2.75(Ia)72 702.4 S 2.75(mA)-2.75 G
(ssert Loser \(L\))-2.75 E F0
(This router has lost an \(S,G\) assert on interf)97 715.4 Q(ace I.)-.11
E(It must not forw)5.5 E(ard pack)-.11 E(ets from S)-.11 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.1. [P)2.75 F(age 64])-.165 E 0 Cg EP
%%Page: 65 65
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(destined for G onto interf)97
85 Q(ace I.)-.11 E
(If it is the DR on I, it is no longer responsible for)5.5 E(forw)97 98
Q(arding traf)-.11 E(\214c onto I to satisfy local hosts with membershi\
p requests that speci\214cally)-.275 E(refer to S and G.)97 111 Q
(In addition, there is also an Assert T)72 127.6 Q(imer \(A)-.385 E
(T\) that is used to time out asserts on the assert losers)-1.221 E
(and to resend asserts on the assert winner)72 140.6 Q(.)-.605 E 62 141
396 552 -343.63 479 108 503.23 PBEGIN
%%BeginDocument: sg-assert.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 62 141 614 620
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 12 Grid 4 4 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
614 218
285 374
294 624
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
330 695
607 940
892 693
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
336 680
605 801
870 676
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 2
344 650
868 650
2 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 1 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
334 633
603 522
873 633
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
325 631
514 494
607 259
3 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 10 178.5 ] concat
%I
311 661 40 40 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 157.5 518.5 ] concat
%I
[
(No)
(Info)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
652 202
778 124
686 49
639 186
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
614 181
606 55
506 99
587 193
4 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 165.5 -43 ] concat
%I
311 661 40 40 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 308.5 301.5 ] concat
%I
[
(I am)
(Assert)
(Loser)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
912 657
1056 649
1030 536
935 624
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
906 655
1002 813
1066 708
943 671
4 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 310.5 174.5 ] concat
%I
311 661 40 40 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 451.5 519 ] concat
%I
[
(I am)
(Assert)
(Winner)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 251 623 ] concat
%I
[
(\(S,G\) data packet arrives on I)
(AND CouldAssert\(S,G,I\)==TRUE)
([A1])
] Text
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.998616 -0 -0 0.998616 -186.741 -39.9446 ] concat
%I 3
650 527
608 420
525 341
3 BSpl
%I 1
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 219.417 211.999 ] concat
%I
[
(Receive acceptable assert)
(with RPTbit clear from)
(current winner)
([A2])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 324.543 211.997 ] concat
%I
[
(Receive preferred )
(assert)
([A2])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 334.087 354.622 ] concat
%I
[
(Receive preferred )
(assert)
([A2])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 250 483.999 ] concat
%I
[
(CouldAssert\(S,G,I\)->FALSE)
([A4])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 248.5 531.001 ] concat
%I
[
(Receive inferior assert with)
(RPTbit clear)
(AND CouldAssert\(S,G,I\)==TRUE)
([A1])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 535.5 489.511 ] concat
%I
[
(Receive inferior assert)
([A3])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 66 430 ] concat
%I
[
(Any of the following events:)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 80 409 ] concat
%I
[
(Receive inferior assert from )
(current winner [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 80 319.997 ] concat
%I
[
(AssertTrackingDesired \(S,G,I\)  ->FALSE [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 80 241.998 ] concat
%I
[
(Receive Join\(S,G\) on I [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 81.0003 296.997 ] concat
%I
[
(My metric becomes better )
(than AssertWinnerMetric [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 80 377 ] concat
%I
[
(Assert Timer Expires [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 532 572 ] concat
%I
[
(Assert Timer Expires)
([A3])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 440.021 438.864 ] concat
%I
[
(Actions:)
()
(A1: [Send Assert\(S,G\)])
(       [Set Assert Timer to Assert_Time -)
(            Assert_Overide_Interval])
(       [Store self as AssertWinner\(S,G,I\)])
(       [Store own spt metric as)
(             AssertWinnerMetric\(S,G,I\)])
()
(A2: [Set Assert Timer to Assert_Time])
(        [Store winner  as )
(             AssertWinner\(S,G,I\)])
(        [Store winner's  metric as )
(             AssertWinnerMetric\(S,G,I\)] )
()
(A3: [Send Assert\(S,G\)])
(       [Set Assert Timer to Assert_Time -)
(            Assert_Override_Interval])
()
(A4: [Send AssertCancel\(S,G\)])
(       [Delete assert info])
()
(A5: [Delete assert info])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 441.266 198.303 ] concat
%I
[
(A6: [Store assert winner and metric])
(       [Set Assert Timer to Assert_Time])
(       [If I is RPF_interface\(S\))
(           AND \(UpstreamJPState\(S,G\) == true\))
(             then set SPTbit\(S,G\)])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 81.0003 263.997 ] concat
%I
[
(I stops being RPF_if\(S\)  [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 247 577.5 ] concat
%I
[
(Receive assert with)
(RPTbit set AND )
(CouldAssert\(S,G,I\)==TRUE)
([A1])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 264.5 407.002 ] concat
%I
[
(Receive acceptable assert )
(with RPTbit clear AND)
(AssertTrackingDesired\(S,G,I\))
(  ==TRUE)
([A6])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 80 353 ] concat
%I
[
(Current Winner's GenID changes)
(or Neighbor Liveness Timer expires  [A5])
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND/F1 11/Times-Bold@0 SF(Figur)185.291 542.23 Q 2.75(e1)-.198 G
(0: P)-2.75 E(er)-.22 E(-interface \(S,G\) Assert State machine)-.407 E
F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.1. [P)2.75 F(age 65])-.165 E 0 Cg EP
%%Page: 66 66
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Per)72 85 Q(-interf)-.22 E
(ace \(S,G\) Assert State machine in tab)-.11 E(ular form:)-.22 E .44 LW
503.992 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(In NoInf)240.624 106 Q
2.75(o\()-.275 G(NI\) State)-2.75 E 503.992 110.75 72 110.75 DL 503.992
112.75 72 112.75 DL(Recei)81.37 123 Q .22 -.11(ve I)-.11 H(nferior).11 E
(Assert with)81.37 136 Q(RPTbit clear and)81.37 149 Q(CouldAssert)81.37
162 Q(\(S,G,I\))81.37 175 Q(Recei)190.759 123 Q .22 -.11(ve A)-.11 H
(ssert).11 E(with RPTbit set)190.759 136 Q(and CouldAssert)190.759 149 Q
(\(S,G,I\))190.759 162 Q(Data arri)298.014 123 Q -.11(ve)-.11 G 2.75(sf)
.11 G -.198(ro)-2.75 G(m).198 E 2.75(St)298.014 136 S 2.75(oGo)-2.75 G
2.75(nIa)-2.75 G(nd)-2.75 E(CouldAssert)298.014 149 Q(\(S,G,I\))298.014
162 Q(Recei)410.01 123 Q -.11(ve)-.11 G(Acceptable Assert)410.01 136 Q
(with RPTbit clear)410.01 149 Q(and AssT)410.01 162 Q(rDes)-.814 E
(\(S,G,I\))410.01 175 Q 503.992 179.75 72 179.75 DL 503.992 181.75 72
181.75 DL/F2 11/Symbol SF<ae>81.37 192 Q F0 2.75(Ws)2.75 G(tate)-2.75 E
F2<ae>62.485 E F0 2.75(Ws)2.75 G(tate)-2.75 E F2<ae>60.351 E F0 2.75(Ws)
2.75 G(tate)-2.75 E F2<ae>65.092 E F0 2.75(Ls)2.75 G(tate)-2.75 E
([Actions A1])81.37 205 Q([Actions A1])51.65 E([Actions A1])49.516 E
([Actions A6])54.257 E 503.992 209.75 72 209.75 DL 395.955 112.75
395.955 209.75 DL 283.959 112.75 283.959 209.75 DL 176.704 112.75
176.704 209.75 DL 503.992 95.75 503.992 209.75 DL 72 95.75 72 209.75 DL
503.992 221.75 72 221.75 DL F1(In I Am Assert W)209.885 232 Q
(inner \(W\) State)-.198 E 503.992 236.75 72 236.75 DL 503.992 238.75 72
238.75 DL(Assert T)83.616 249 Q(imer)-.198 E(Expir)83.616 262 Q(es)-.198
E(Recei)180.273 249 Q .22 -.11(ve I)-.11 H(nferior).11 E(Assert)180.273
262 Q(Recei)290.955 249 Q .22 -.11(ve P)-.11 H -.198(re).11 G(ferr).198
E(ed)-.198 E(Assert)290.955 262 Q(CouldAssert)409.777 249 Q(\(S,G,I\))
409.777 262 Q F2<ae>2.75 E F1 -.99(FA)2.75 G(LSE).99 E 503.992 266.75 72
266.75 DL 503.992 268.75 72 268.75 DL F2<ae>83.616 279 Q F0 2.75(Ws)2.75
G(tate)-2.75 E F2<ae>49.753 E F0 2.75(Ws)2.75 G(tate)-2.75 E F2<ae>
63.778 E F0 2.75(Ls)2.75 G(tate)-2.75 E F2<ae>75.581 E F0(NI state)2.75
E([Actions A3])83.616 292 Q([Actions A3])38.918 E([Actions A2])52.943 E
([Actions A4])61.083 E 503.992 296.75 72 296.75 DL 392.353 238.75
392.353 296.75 DL 273.531 238.75 273.531 296.75 DL 162.849 238.75
162.849 296.75 DL 503.992 221.75 503.992 296.75 DL 72 221.75 72 296.75
DL 844.591 308.75 72 308.75 DL F1(In I Am Assert Loser \(L\) State)
356.397 319 Q 844.591 323.75 72 323.75 DL 844.591 325.75 72 325.75 DL
(Recei)72 336 Q -.11(ve)-.11 G(Pr)72 349 Q(eferr)-.198 E(ed)-.198 E
(Assert)72 362 Q(Recei)129.739 336 Q -.11(ve)-.11 G(Acceptable)129.739
349 Q(Assert with)129.739 362 Q(RPTbit clear)129.739 375 Q(fr)129.739
388 Q(om Curr)-.198 E(ent)-.198 E/F3 10/Symbol SF<ef>612.739 400 Q<ef>
-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M<ef>-4.94 -10 M
<ef>-4.94 -10 M F1 -.198(Wi)129.739 401 S(nner).198 E(Recei)652.619 336
Q -.11(ve)-.11 G(Inferior Assert)652.619 349 Q(fr)652.619 362 Q(om Curr)
-.198 E(ent)-.198 E -.198(Wi)652.619 375 S(nner).198 E(Assert T)722.568
336 Q(imer)-.198 E(Expir)722.568 349 Q(es)-.198 E(Curr)784.377 336 Q
(ent)-.198 E -.198(Wi)784.377 349 S(nner').198 E(s)-.407 E(GenID)784.377
362 Q(Changes or)784.377 375 Q(NL)784.377 388 Q 2.75(TE)-1.012 G(xpir)
-2.75 E(es)-.198 E 844.591 405.75 72 405.75 DL 844.591 407.75 72 407.75
DL F2<ae>72 418 Q F0 2.75(Ls)2.75 G(tate)-2.75 E F2<ae>14.498 E F0 2.75
(Ls)2.75 G(tate)-2.75 E F2<ae>479.639 E F0(NI state)2.75 E F2<ae>21.824
E F0(NI state)2.75 E F2<ae>13.684 E F0(NI state)2.75 E
([Actions A2][Actions A2])72 431 Q([Actions A5])465.141 E([Actions A5])
12.21 E([Actions A5])4.07 E 844.591 435.75 72 435.75 DL 784.377 325.75
784.377 435.75 DL 722.568 325.75 722.568 435.75 DL 652.619 325.75
652.619 435.75 DL 129.739 325.75 129.739 435.75 DL 844.591 308.75
844.591 435.75 DL 72 308.75 72 435.75 DL 503.992 447.75 72 447.75 DL F1
(In I Am Assert Loser \(L\) State)216.204 458 Q 503.992 462.75 72 462.75
DL 503.992 464.75 72 464.75 DL(AssT)82.063 475 Q(rDes \(S,G,I\))-.814 E
F2<ae>82.063 488 Q F1 -.99(FA)2.75 G(LSE).99 E(my_metric)191.793 475 Q
F2<ae>2.75 E F1(better than)191.793 488 Q(winner')191.793 501 Q 2.75(sm)
-.407 G(etric)-2.75 E(RPF_interface \(S\))295.803 475 Q(stops being I)
295.803 488 Q(Recei)410.604 475 Q .22 -.11(ve J)-.11 H(oin\(S,G\))-.055
E(on interface I)410.604 488 Q 503.992 505.75 72 505.75 DL 503.992
507.75 72 507.75 DL F2<ae>82.063 518 Q F0(NI state)2.75 E F2<ae>61.605 E
F0(NI state)2.75 E F2<ae>55.885 E F0(NI state)2.75 E F2<ae>66.676 E F0
(NI State)2.75 E([Actions A5])82.063 531 Q([Actions A5])51.991 E
([Actions A5])46.271 E([Actions A5])57.062 E 503.992 535.75 72 535.75 DL
395.509 464.75 395.509 535.75 DL 280.708 464.75 280.708 535.75 DL
176.698 464.75 176.698 535.75 DL 503.992 447.75 503.992 535.75 DL 72
447.75 72 535.75 DL(Note that for reasons of compactness, "AssT)72 553.6
Q(rDes\(S,G,I\)" is used in the state machine table to)-.385 E
(refer to AssertT)72 566.6 Q(rackingDesired\(S,G,I\).)-.385 E -.77(Te)72
583.2 S(rminology:).77 E 2.75(A")97 596.2 S
(preferred assert" is one with a better metric than the current winner)
-2.75 E(.)-.605 E
(An "acceptable assert" is one that has a better metric than)97 612.8 Q
/F4 11/Courier@0 SF(my_assert_metric\(S,G,I\))97 625.8 Q F0(.)A
(An "inferior assert" is one with a w)97 642.4 Q(orse metric than)-.11 E
F4(my_assert_metric\(S,G,I\))2.75 E F0(.)A(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.6.1. [P)2.75 F(age 66])-.165 E 0 Cg EP
%%Page: 67 67
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(The state machine uses the follo)97 85 Q(wing macros:)-.275 E/F1 11
/Courier@0 SF(CouldAssert\(S,G,I\) =)72 101.6 Q(SPTbit\(S,G\)==TRUE)105
114.6 Q(AND \(RPF_interface\(S\))105 127.6 Q/F2 11/Symbol SF<b9>6.6 E F1
(I\))6.6 E(AND \(I in \( \( joins\(*,*,RP\(G\)\))105 140.6 Q F2(+)6.88 E
312.9 137.85 2.75 DC .44 LW ST F1(joins\(*,G\))322.8 140.6 Q F2(-)6.88 E
398.7 137.85 2.75 DC ST F1(prunes\(S,G,rpt\) \))72 153.6 Q F2(+)184.48
166.6 Q 187.5 163.85 2.75 DC ST F1 6.6(\(p)197.4 166.6 S
(im_include\(*,G\))-6.6 E F2(-)6.88 E 326.1 163.85 2.75 DC ST F1
(pim_exclude\(S,G\) \))336 166.6 Q F2(-)184.48 179.6 Q 187.5 176.85 2.75
DC ST F1(lost_assert\(*,G\))197.4 179.6 Q F2(+)184.48 192.6 Q 187.5
189.85 2.75 DC ST F1(joins\(S,G\))197.4 192.6 Q F2(+)6.88 E 273.3 189.85
2.75 DC ST F1(pim_include\(S,G\) \) \))283.2 192.6 Q F0
(CouldAssert\(S,G,I\) is true for do)72 209.2 Q(wnstream interf)-.275 E
(aces which w)-.11 E(ould be in the inherited_olist\(S,G\))-.11 E
(if \(S,G\) assert information w)72 222.2 Q(as not tak)-.11 E
(en into account.)-.11 E F1(AssertTrackingDesired\(S,G,I\) =)72 238.8 Q
(\(I in \( \( joins\(*,*,RP\(G\)\))105 251.8 Q F2(+)6.88 E 286.5 249.05
2.75 DC ST F1(joins\(*,G\))296.4 251.8 Q F2(-)6.88 E 372.3 249.05 2.75
DC ST F1(prunes\(S,G,rpt\) \))382.2 251.8 Q F2(+)158.08 264.8 Q 161.1
262.05 2.75 DC ST F1 6.6(\(p)171 264.8 S(im_include\(*,G\))-6.6 E F2(-)
6.88 E 299.7 262.05 2.75 DC ST F1(pim_exclude\(S,G\) \))309.6 264.8 Q F2
(-)158.08 277.8 Q 161.1 275.05 2.75 DC ST F1(lost_assert\(*,G\))171
277.8 Q F2(+)158.08 290.8 Q 161.1 288.05 2.75 DC ST F1
(joins\(S,G\) \) \))171 290.8 Q
(OR \(local_receiver_include\(S,G,I\) == TRUE)105 303.8 Q
(AND \(I_am_DR\(I\) OR \(AssertWinner\(S,G,I\) == me\)\)\))131.4 316.8 Q
(OR \(\(RPF_interface\(S\) == I\) AND \(JoinDesired\(S,G\) == TRUE\)\))
105 329.8 Q
(OR \(\(RPF_interface\(RP\(G\)\) == I\) AND \(JoinDesired\(*,G\) ==)105
342.8 Q(TRUE\))72 355.8 Q(AND \(SPTbit\(S,G\) == FALSE\)\))131.4 368.8 Q
F0(AssertT)72 385.4 Q(rackingDesired\(S,G,I\) is true on an)-.385 E 2.75
(yi)-.165 G(nterf)-2.75 E(ace in which an \(S,G\) assert might af)-.11 E
(fect our)-.275 E(beha)72 398.4 Q(vior)-.22 E(.)-.605 E
(The \214rst three lines of AssertT)72 415 Q
(rackingDesired account for \(*,G\) join and local membership)-.385 E
(information recei)72 428 Q -.165(ve)-.275 G 2.75(do).165 G 2.75(nIt)
-2.75 G(hat might cause the router to be interested in asserts on I.)
-2.75 E(The 4th line accounts for \(S,G\) join information recei)72
444.6 Q -.165(ve)-.275 G 2.75(do).165 G 2.75(nIt)-2.75 G
(hat might cause the router to be)-2.75 E(interested in asserts on I.)72
457.6 Q(The 5th and 6th lines account for \(S,G\) local membership info\
rmation on I. Note that we can')72 474.2 Q(t)-.198 E(use the pim_includ\
e\(S,G\) macro since it uses lost_assert\(S,G,I\) and w)72 487.2 Q
(ould result in the router)-.11 E(for)72 500.2 Q
(getting that it lost an assert if the only reason it w)-.198 E
(as interested w)-.11 E(as local membership. The)-.11 E(AssertW)72 513.2
Q(inner\(S,G,I\) check forces an assert winner to k)-.44 E
(eep on being responsible for forw)-.11 E(arding as)-.11 E
(long as local recei)72 526.2 Q -.165(ve)-.275 G(rs are present. Remo)
.165 E(ving this check w)-.165 E(ould mak)-.11 E 2.75(et)-.11 G
(he assert winner gi)-2.75 E .33 -.165(ve u)-.275 H(p).165 E(forw)72
539.2 Q
(arding as soon as the information that originally caused it to forw)
-.11 E(ard went a)-.11 E -.11(wa)-.165 G 2.75(ya).11 G(nd the task)-2.75
E(of forw)72 552.2 Q(arding for local recei)-.11 E -.165(ve)-.275 G
(rs w).165 E(ould re)-.11 E -.165(ve)-.275 G(rt back to the DR.).165 E
(The last three lines account for the f)72 568.8 Q
(act that a router must k)-.11 E(eep track of assert information on)-.11
E(upstream interf)72 581.8 Q
(aces in order to send joins and prunes to the proper neighbor)-.11 E(.)
-.605 E/F3 11/Times-Bold@0 SF -.814(Tr)72 607.8 S(ansitions fr).814 E
(om NoInf)-.198 E 2.75(oS)-.275 G(tate)-2.75 E F0
(When in NoInfo state, the follo)72 624.4 Q(wing e)-.275 E -.165(ve)
-.275 G(nts may trigger transitions:).165 E F3(Recei)97 641 Q .22 -.11
(ve I)-.11 H(nferior Assert with RPTbit clear).11 E
(ed AND CouldAssert\(S,G,I\)==TR)-.198 E(UE)-.33 E F0
(An assert is recei)122 654 Q -.165(ve)-.275 G 2.75(df).165 G
(or \(S,G\) with the RPT bit cleared that is inferior to our o)-2.75 E
(wn)-.275 E(assert metric. The RPT bit cleared indicates that the sende\
r of the assert had \(S,G\))122 667 Q(forw)122 680 Q
(arding state on this interf)-.11 E 2.75(ace. If)-.11 F
(the assert is inferior to our metric, then we must)2.75 E(also ha)122
693 Q .33 -.165(ve \()-.22 H(S,G\) forw).165 E(arding state \(i.e.)-.11
E(CouldAssert\(S,G,I\)==TR)5.5 E(UE\) as \(S,G\) asserts)-.44 E
(beat \(*,G\) asserts, and so we should be the assert winner)122 706 Q
5.5(.W)-.605 G 2.75(et)-6.38 G(ransition to the "I am)-2.75 E(Assert W)
122 719 Q(inner" state, and perform Actions A1 \(belo)-.44 E(w\).)-.275
E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.1. [P)2.75 F(age 67])-.165 E 0 Cg EP
%%Page: 68 68
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(Recei)97
85 Q .22 -.11(ve A)-.11 H
(ssert with RPTbit set AND CouldAssert\(S,G,I\)==TR).11 E(UE)-.33 E F0
(An assert is recei)122 98 Q -.165(ve)-.275 G 2.75(df).165 G
(or \(S,G\) on I with the RPT bit set \(it')-2.75 E 2.75(sa\()-.605 G
(*,G\) assert\).)-2.75 E(CouldAssert\(S,G,I\) is TR)122 111 Q
(UE only if we ha)-.44 E .33 -.165(ve \()-.22 H(S,G\) forw).165 E
(arding state on this interf)-.11 E(ace,)-.11 E
(so we should be the assert winner)122 124 Q 5.5(.W)-.605 G 2.75(et)
-6.38 G(ransition to the "I am Assert W)-2.75 E(inner" state,)-.44 E
(and perform Actions A1 \(belo)122 137 Q(w\).)-.275 E F1
(An \(S,G\) data pack)97 153.6 Q(et arri)-.11 E -.11(ve)-.11 G 2.75(so)
.11 G 2.75(ni)-2.75 G(nterface I, AND CouldAssert\(S,G,I\)==TR)-2.75 E
(UE)-.33 E F0(An \(S,G\) data pack)122 166.6 Q(et arri)-.11 E -.165(ve)
-.275 G 2.75(do).165 G 2.75(na)-2.75 G 2.75(nd)-2.75 G -.275(ow)-2.75 G
(nstream interf).275 E(ace which is in our \(S,G\))-.11 E
(outgoing interf)122 179.6 Q(ace list.)-.11 E 1.76 -.88(We o)5.5 H
(ptimistically assume that we will be the assert winner for).88 E
(this \(S,G\), and so we transition to the "I am Assert W)122 192.6 Q
(inner" state, and perform Actions)-.44 E(A1 \(belo)122 205.6 Q
(w\) which will initiate the assert ne)-.275 E(gotiation for \(S,G\).)
-.165 E F1(Recei)97 222.2 Q .22 -.11(ve A)-.11 H
(cceptable Assert with RPT bit clear AND).11 E(AssertT)122 235.2 Q
(rackingDesir)-.814 E(ed\(S,G,I\)==TR)-.198 E(UE)-.33 E F0 -.88(We)122
248.2 S -.55('r).88 G 2.75(ei).55 G
(nterested in \(S,G\) Asserts, either because I is a do)-2.75 E
(wnstream interf)-.275 E(ace for which)-.11 E(we ha)122 261.2 Q .33
-.165(ve \()-.22 H(S,G\) or \(*,G\) forw).165 E
(arding state, or because I is the upstream interf)-.11 E(ace for S)-.11
E(and we ha)122 274.2 Q .33 -.165(ve \()-.22 H(S,G\) forw).165 E
(arding state.)-.11 E(The recei)5.5 E -.165(ve)-.275 G 2.75(da).165 G
(ssert has a better metric than our)-2.75 E -.275(ow)122 287.2 S
(n, so we do not win the Assert.).275 E 1.76 -.88(We t)5.5 H
(ransition to "I am Assert Loser" and perform).88 E(actions A6 \(belo)
122 300.2 Q(w\).)-.275 E F1 -.814(Tr)72 326.2 S(ansitions fr).814 E
(om "I am Assert W)-.198 E(inner" State)-.198 E F0
(When in "I am Assert W)72 342.8 Q(inner" state, the follo)-.44 E
(wing e)-.275 E -.165(ve)-.275 G(nts trigger transitions:).165 E F1
(Assert T)97 359.4 Q(imer Expir)-.198 E(es)-.198 E F0
(The \(S,G\) Assert T)122 372.4 Q(imer e)-.385 E 2.75(xpires. As)-.165 F
(we')2.75 E(re in the W)-.55 E(inner state, then we must still ha)-.44 E
-.165(ve)-.22 G(\(S,G\) forw)122 385.4 Q(arding state that is acti)-.11
E -.165(ve)-.275 G(ly being k).165 E(ept ali)-.11 E -.165(ve)-.275 G 5.5
(.W).165 G 2.75(er)-6.38 G(e-send the \(S,G\) Assert)-2.75 E
(and restart the Assert T)122 398.4 Q(imer \(Action A3 belo)-.385 E 2.75
(w\). Note)-.275 F(that the assert winner')2.75 E 2.75(sA)-.605 G(ssert)
-2.75 E -.385(Ti)122 411.4 S(mer is engineered to e).385 E
(xpire shortly before timers on assert losers; this pre)-.165 E -.165
(ve)-.275 G(nts).165 E(unnecessary thrashing of the forw)122 424.4 Q
(arder and periodic \215ooding of duplicate pack)-.11 E(ets.)-.11 E F1
(Recei)97 441 Q .22 -.11(ve I)-.11 H(nferior Assert).11 E F0 1.76 -.88
(We r)122 454 T(ecei).88 E .33 -.165(ve a)-.275 H 2.75(n\().165 G
(S,G\) assert or \(*,G\) assert mentioning S that has a w)-2.75 E
(orse metric than)-.11 E(our o)122 467 Q 2.75(wn. Whoe)-.275 F -.165(ve)
-.275 G 2.75(rs).165 G(ent the assert is in error)-2.75 E 2.75(,a)-.44 G
(nd so we re-send an \(S,G\) Assert, and)-2.75 E(restart the Assert T)
122 480 Q(imer \(Action A3 belo)-.385 E(w\).)-.275 E F1(Recei)97 496.6 Q
.22 -.11(ve P)-.11 H -.198(re).11 G(ferr).198 E(ed Assert)-.198 E F0
1.76 -.88(We r)122 509.6 T(ecei).88 E .33 -.165(ve a)-.275 H 2.75(n\()
.165 G(S,G\) assert that has a better metric than our o)-2.75 E 2.75
(wn. W)-.275 F 2.75(et)-.88 G(ransition to "I)-2.75 E
(am Assert Loser" state and perform actions A2 \(belo)122 522.6 Q 2.75
(w\). Note)-.275 F(that this may af)2.75 E(fect the)-.275 E -.275(va)122
535.6 S(lue of JoinDesired\(S,G\) and PruneDesired\(S,G,rpt\) which cou\
ld cause transitions in).275 E
(the upstream \(S,G\) or \(S,G,rpt\) state machines.)122 548.6 Q F1
(CouldAssert\(S,G,I\))97 565.2 Q/F2 11/Symbol SF<ae>2.75 E F1 -.99(FA)
2.75 G(LSE).99 E F0(Our \(S,G\) forw)122 578.2 Q
(arding state or RPF interf)-.11 E(ace changed so as to mak)-.11 E(e)
-.11 E(CouldAssert\(S,G,I\) become f)122 591.2 Q 2.75(alse. W)-.11 F
2.75(ec)-.88 G(an no longer perform the actions of the assert)-2.75 E
(winner)122 604.2 Q 2.75(,a)-.44 G
(nd so we transition to NoInfo state and perform actions A4 \(belo)-2.75
E 2.75(w\). This)-.275 F
(includes sending a "canceling assert" with an in\214nite metric.)122
617.2 Q F1 -.814(Tr)72 643.2 S(ansitions fr).814 E
(om "I am Assert Loser" State)-.198 E F0
(When in "I am Assert Loser" state, the follo)72 659.8 Q
(wing transitions can occur:)-.275 E F1(Recei)97 676.4 Q .22 -.11(ve P)
-.11 H -.198(re).11 G(ferr).198 E(ed Assert)-.198 E F0 1.76 -.88(We r)
122 689.4 T(ecei).88 E .33 -.165(ve a)-.275 H 2.75(na).165 G
(ssert that is better than that of the current assert winner)-2.75 E 5.5
(.W)-.605 G 2.75(es)-6.38 G(tay in)-2.75 E
(Loser state, and perform actions A2 belo)122 702.4 Q -.715(w.)-.275 G
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.1. [P)2.75 F(age 68])-.165 E 0 Cg EP
%%Page: 69 69
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(Recei)97
85 Q .22 -.11(ve A)-.11 H(cceptable Assert with RPTbit clear fr).11 E
(om Curr)-.198 E(ent W)-.198 E(inner)-.198 E F0 1.76 -.88(We r)122 98 T
(ecei).88 E .33 -.165(ve a)-.275 H 2.75(na).165 G
(ssert from the current assert winner that is better than our o)-2.75 E
(wn metric)-.275 E(for this \(S,G\) \(although the metric may be w)122
111 Q(orse than the winner')-.11 E 2.75(sp)-.605 G(re)-2.75 E
(vious metric\).)-.275 E 1.76 -.88(We s)122 124 T
(tay in Loser state, and perform actions A2 belo).88 E -.715(w.)-.275 G
F1(Recei)97 140.6 Q .22 -.11(ve I)-.11 H(nferior Assert fr).11 E
(om Curr)-.198 E(ent W)-.198 E(inner)-.198 E F0 1.76 -.88(We r)122 153.6
T(ecei).88 E .33 -.165(ve a)-.275 H 2.75(na).165 G
(ssert from the current assert winner that is w)-2.75 E(orse than our o)
-.11 E(wn metric)-.275 E(for this group \(typically the winner')122
166.6 Q 2.75(sm)-.605 G(etric became w)-2.75 E 2.75(orse\). W)-.11 F
2.75(et)-.88 G(ransition to NoInfo)-2.75 E
(state, deleting the \(S,G\) assert information and allo)122 179.6 Q
(wing the normal PIM Join/Prune)-.275 E(mechanisms to operate.)122 192.6
Q(Usually we will e)5.5 E -.165(ve)-.275 G
(ntually re-assert and win when data).165 E(pack)122 205.6 Q
(ets from S ha)-.11 E .33 -.165(ve s)-.22 H(tarted \215o).165 E(wing ag)
-.275 E(ain.)-.055 E F1(Assert T)97 222.2 Q(imer Expir)-.198 E(es)-.198
E F0(The \(S,G\) Assert T)122 235.2 Q(imer e)-.385 E 2.75(xpires. W)
-.165 F 2.75(et)-.88 G(ransition to NoInfo state, deleting the \(S,G\))
-2.75 E(assert information \(action A5 belo)122 248.2 Q(w\).)-.275 E F1
(Curr)97 264.8 Q(ent W)-.198 E(inner')-.198 E 2.75(sG)-.407 G
(enID Changes or NL)-2.75 E 2.75(TE)-1.012 G(xpir)-2.75 E(es)-.198 E F0
(The Neighbor Li)122 277.8 Q -.165(ve)-.275 G(ness T).165 E
(imer associated with the current winner e)-.385 E(xpires or we recei)
-.165 E -.165(ve)-.275 G 2.75(aH)122 290.8 S
(ello message from the current winner reporting a dif)-2.75 E
(ferent GenID from the one it)-.275 E(pre)122 303.8 Q(viously reported.)
-.275 E(This indicates that the current winner')5.5 E 2.75(si)-.605 G
(nterf)-2.75 E(ace or router has)-.11 E(gone do)122 316.8 Q
(wn \(and may ha)-.275 E .33 -.165(ve c)-.22 H
(ome back up\), and so we must assume it no longer kno).165 E(ws)-.275 E
(it w)122 329.8 Q(as the winner)-.11 E 2.75(.W)-.605 G 2.75(et)-3.63 G
(ransition to the NoInfo state, deleting this \(S,G\) assert)-2.75 E
(information \(action A5 belo)122 342.8 Q(w\).)-.275 E F1(AssertT)97
359.4 Q(rackingDesir)-.814 E(ed\(S,G,I\))-.198 E/F2 11/Symbol SF<ae>A F1
-.99(FA)C(LSE).99 E F0(AssertT)122 372.4 Q
(rackingDesired\(S,G,I\) becomes F)-.385 E 2.75(ALSE. Our)-.814 F(forw)
2.75 E(arding state has changed so)-.11 E
(that \(S,G\) Asserts on interf)122 385.4 Q
(ace I are no longer of interest to us.)-.11 E 1.76 -.88(We t)5.5 H
(ransition to the).88 E
(NoInfo state, deleting the \(S,G\) assert information.)122 398.4 Q F1
(My metric becomes better than the assert winner')97 415 Q 2.75(sm)-.407
G(etric)-2.75 E F0(my_assert_metric\(S,G,I\) has changed so that no)122
428 Q 2.75(wm)-.275 G 2.75(ya)-2.75 G
(ssert metric for \(S,G\) is better)-2.75 E(than the metric we ha)122
441 Q .33 -.165(ve s)-.22 H(tored for current assert winner).165 E 5.5
(.T)-.605 G(his might happen the)-5.5 E(underlying routing metric chang\
es, or when CouldAssert\(S,G,I\) becomes true; for)122 454 Q -.165(ex)
122 467 S(ample, when SPTbit\(S,G\) becomes true.).165 E 1.76 -.88(We t)
5.5 H(ransition to NoInfo state, delete this).88 E
(\(S,G\) assert state \(action A5 belo)122 480 Q(w\), and allo)-.275 E
2.75(wt)-.275 G(he normal PIM Join/Prune)-2.75 E(mechanisms to operate.)
122 493 Q(Usually we will e)5.5 E -.165(ve)-.275 G
(ntually re-assert and win when data).165 E(pack)122 506 Q
(ets from S ha)-.11 E .33 -.165(ve s)-.22 H(tarted \215o).165 E(wing ag)
-.275 E(ain.)-.055 E F1(RPF_interface\(S\) stops being interface I)97
522.6 Q F0(Interf)122 535.6 Q(ace I used to be the RPF interf)-.11 E
(ace for S, and no)-.11 E 2.75(wi)-.275 G 2.75(ti)-2.75 G 2.75(sn)-2.75
G 2.75(ot. W)-2.75 F 2.75(et)-.88 G(ransition to)-2.75 E
(NoInfo state, deleting this \(S,G\) assert state \(action A5 belo)122
548.6 Q(w\).)-.275 E F1(Recei)97 565.2 Q .22 -.11(ve J)-.11 H
(oin\(S,G\) on Interface I)-.055 E F0 1.76 -.88(We r)122 578.2 T(ecei)
.88 E .33 -.165(ve a J)-.275 H
(oin\(S,G\) that has the Upstream Neighbor Address \214eld set to my)
.165 E/F3 10/Symbol SF<ef>555 590.2 Q<ef>-4.94 -10 M F0
(primary IP address on interf)122 591.2 Q(ace I.)-.11 E
(The action is to transition to NoInfo state, and)5.5 E
(delete this \(S,G\) assert state \(action A5 belo)122 604.2 Q
(w\), and allo)-.275 E 2.75(wt)-.275 G(he normal PIM Join/Prune)-2.75 E
(mechanisms to operate.)122 617.2 Q(If whoe)5.5 E -.165(ve)-.275 G 2.75
(rs).165 G(ent the Join w)-2.75 E(as in error)-.11 E 2.75(,t)-.44 G
(hen the normal assert)-2.75 E(mechanism will e)122 630.2 Q -.165(ve)
-.275 G(ntually re-apply and we will lose the assert ag).165 E 2.75
(ain. Ho)-.055 F(we)-.275 E -.165(ve)-.275 G(r).165 E(whoe)122 643.2 Q
-.165(ve)-.275 G 2.75(rs).165 G(ent the assert may kno)-2.75 E 2.75(wt)
-.275 G(hat the pre)-2.75 E(vious assert winner has died, and so we)
-.275 E(may end up being the ne)122 656.2 Q 2.75(wf)-.275 G(orw)-2.75 E
(arder)-.11 E(.)-.605 E F1(\(S,G\) Assert State machine Actions)72 682.2
Q F0 5.75(A1: Send)97 698.8 R(Assert\(S,G\))2.75 E(Set Assert T)122
711.8 Q(imer to \(Assert_T)-.385 E(ime - Assert_Ov)-.385 E
(erride_Interv)-.165 E(al\))-.275 E(Store self as AssertW)122 724.8 Q
(inner\(S,G,I\))-.44 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)
-.385 E 160.971(elas Section)-.165 F 2.75(4.6.1. [P)2.75 F(age 69])-.165
E 0 Cg EP
%%Page: 70 70
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(Store spt_assert_metric\(S,I\) as AssertW)122 85 Q
(innerMetric\(S,G,I\))-.44 E 5.75(A2: Store)97 101.6 R(ne)2.75 E 2.75
(wa)-.275 G(ssert winner as AssertW)-2.75 E
(inner\(S,G,I\) and assert winner metric as)-.44 E(AssertW)122 114.6 Q
(innerMetric\(S,G,I\).)-.44 E(Set Assert T)122 127.6 Q(imer to Assert_T)
-.385 E(ime)-.385 E 5.75(A3: Send)97 144.2 R(Assert\(S,G\))2.75 E
(Set Assert T)122 157.2 Q(imer to \(Assert_T)-.385 E(ime - Assert_Ov)
-.385 E(erride_Interv)-.165 E(al\))-.275 E 5.75(A4: Send)97 173.8 R
(AssertCancel\(S,G\))2.75 E(Delete assert info \(AssertW)122 186.8 Q
(inner\(S,G,I\) and AssertW)-.44 E(innerMetric\(S,G,I\) will then)-.44 E
(return their def)122 199.8 Q(ault v)-.11 E(alues\).)-.275 E 5.75
(A5: Delete)97 216.4 R(assert info \(AssertW)2.75 E
(inner\(S,G,I\) and AssertW)-.44 E(innerMetric\(S,G,I\) will then)-.44 E
(return their def)122 229.4 Q(ault v)-.11 E(alues\).)-.275 E 5.75
(A6: Store)97 246 R(ne)2.75 E 2.75(wa)-.275 G(ssert winner as AssertW)
-2.75 E(inner\(S,G,I\) and assert winner metric as)-.44 E(AssertW)122
259 Q(innerMetric\(S,G,I\).)-.44 E(Set Assert T)122 272 Q
(imer to Assert_T)-.385 E(ime)-.385 E(If \(I is RPF_interf)122 285 Q
(ace\(S\)\) AND \(UpstreamJPState\(S,G\) == true\) set SPTbit\(S,G\) to)
-.11 E(TR)122 298 Q(UE.)-.44 E
(Note that some of these actions may cause the v)72 314.6 Q
(alue of JoinDesired\(S,G\), PruneDesired\(S,G,rpt\),)-.275 E(or RPF'\(\
S,G\) to change, which could cause further transitions in other state m\
achines.)72 327.6 Q/F1 11/Times-Bold@0 SF 2.75(4.6.2. \(*,G\))72 353.6 R
(Assert Message State Machine)2.75 E F0
(The \(*,G\) Assert state machine for interf)72 370.2 Q(ace I is sho)
-.11 E(wn in Figure 11. There are three states:)-.275 E F1(NoInf)72
386.8 Q 2.75(o\()-.275 G(NI\))-2.75 E F0
(This router has no \(*,G\) assert state on interf)97 399.8 Q(ace I.)
-.11 E F1 2.75(Ia)72 416.4 S 2.75(mA)-2.75 G(ssert W)-2.75 E
(inner \(W\))-.198 E F0(This router has w)97 429.4 Q
(on an \(*,G\) assert on interf)-.11 E(ace I.)-.11 E(It is no)5.5 E 2.75
(wr)-.275 G(esponsible for forw)-2.75 E(arding)-.11 E(traf)97 442.4 Q
(\214c destined for G onto interf)-.275 E(ace I with the e)-.11 E
(xception of traf)-.165 E(\214c for which it has \(S,G\) "I)-.275 E
(am Assert Loser" state.)97 455.4 Q(Irrespecti)5.5 E .33 -.165(ve o)
-.275 H 2.75(fw).165 G
(hether it is the DR for I, it is also responsible for)-2.75 E
(handling the membership requests for G from local hosts on I.)97 468.4
Q F1 2.75(Ia)72 485 S 2.75(mA)-2.75 G(ssert Loser \(L\))-2.75 E F0
(This router has lost an \(*,G\) assert on interf)97 498 Q(ace I.)-.11 E
(It must not forw)5.5 E(ard pack)-.11 E(ets for G onto)-.11 E(interf)97
511 Q(ace I with the e)-.11 E(xception of traf)-.165 E
(\214c from sources for which is has \(S,G\) "I am Assert)-.275 E -.44
(Wi)97 524 S(nner" state.).44 E(If it is the DR, it is no longer respon\
sible for handling the membership)5.5 E
(requests for group G from local hosts on I.)97 537 Q
(In addition, there is also an Assert T)72 553.6 Q(imer \(A)-.385 E
(T\) that is used to time out asserts on the assert losers)-1.221 E
(and to resend asserts on the assert winner)72 566.6 Q(.)-.605 E F1
(When an Assert message is r)72 583.2 Q(ecei)-.198 E -.11(ve)-.11 G 2.75
(dw).11 G(ith a sour)-2.75 E(ce addr)-.198 E(ess other than zer)-.198 E
(o, a PIM)-.198 E
(implementation must \214rst match it against the possible e)72 596.2 Q
-.11(ve)-.165 G(nts in the \(S,G\) assert state).11 E(machine and pr)72
609.2 Q(ocess any transitions and actions, bef)-.198 E(or)-.275 E 2.75
(ec)-.198 G(onsidering whether the Assert)-2.75 E
(message matches against the \(*,G\) assert state machine.)72 622.2 Q(I\
t is important to note that NO TRANSITION CAN OCCUR in the \(*,G\) stat\
e machine as a)72 638.8 Q -.198(re)72 651.8 S(sult of r).198 E(ecei)
-.198 E
(ving an Assert message unless the \(S,G\) assert state machine f)-.11 E
(or the r)-.275 E(ele)-.198 E -.11(va)-.165 G(nt S).11 E
(and G is in the "NoInf)72 664.8 Q
(o" state after the \(S,G\) state machine has pr)-.275 E
(ocessed the message. Also)-.198 E
(NO TRANSITION CAN OCCUR in the \(*,G\) state machine as a r)72 677.8 Q
(esult of r)-.198 E(ecei)-.198 E(ving an)-.11 E(assert message if that \
message triggers any change of state in the \(S,G\) state machine.)72
690.8 Q(Ob)72 703.8 Q(viously when the sour)-.165 E(ce addr)-.198 E
(ess in the r)-.198 E(ecei)-.198 E -.11(ve)-.11 G 2.75(dm).11 G
(essage is set to zer)-2.75 E 2.75(oa)-.198 G 2.75(n\()-2.75 G
(S,G\) state)-2.75 E(machine f)72 716.8 Q
(or the S and G does not exist and can be assumed to be in the "NoInf)
-.275 E(o" state.)-.275 E F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.6.2. [P)2.75 F(age 70])
-.165 E 0 Cg EP
%%Page: 71 71
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E -.165(Fo)72 85 S 2.75(re).165
G(xample, if both the \(S,G\) and \(*,G\) assert state machines where i\
n the NoInfo state when an)-2.915 E(Assert message arri)72 98 Q -.165
(ve)-.275 G(s, and the message causes the \(S,G\) state machine to tran\
sition to either).165 E("W" or "L" state, then the assert w)72 111 Q
(ould not be processed by the \(*,G\) assert state machine.)-.11 E
(Another e)72 127.6 Q(xample: if the \(S,G\) assert state machine is in\
 "L" state when an assert message is)-.165 E(recei)72 140.6 Q -.165(ve)
-.275 G(d, and the assert metric in the message is w).165 E(orse than)
-.11 E/F1 11/Courier@0 SF(my_assert_metric\(S,G,I\))2.75 E F0(,)A
(then the \(S,G\) assert state machine will transition to NoInfo state.)
72 153.6 Q(In such a case if the \(*,G\))5.5 E
(assert state machine were in NoInfo state, it might appear that it w)72
166.6 Q(ould transition to "W" state, b)-.11 E(ut)-.22 E(this is not th\
e case because this message already triggered a transition in the \(S,G\
\) assert state)72 179.6 Q(machine.)72 192.6 Q 75 145 396 534 -307.011
414 108 518.611 PBEGIN
%%BeginDocument: starg-assert.ps
%%Creator: idraw
%%DocumentFonts: Helvetica
%%Pages: 1
%%BoundingBox: 75 145 609 559
%%EndComments

%%BeginIdrawPrologue
/arrowhead {
0 begin
transform originalCTM itransform
/taily exch def
/tailx exch def
transform originalCTM itransform
/tipy exch def
/tipx exch def
/dy tipy taily sub def
/dx tipx tailx sub def
/angle dx 0 ne dy 0 ne or { dy dx atan } { 90 } ifelse def
gsave
originalCTM setmatrix
tipx tipy translate
angle rotate
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
patternNone not {
originalCTM setmatrix
/padtip arrowHeight 2 exp 0.25 arrowWidth 2 exp mul add sqrt brushWidth mul
arrowWidth div def
/padtail brushWidth 2 div def
tipx tipy translate
angle rotate
padtip 0 translate
arrowHeight padtip add padtail add arrowHeight div dup scale
arrowheadpath
ifill
} if
brushNone not {
originalCTM setmatrix
tipx tipy translate
angle rotate
arrowheadpath
istroke
} if
grestore
end
} dup 0 9 dict put def

/arrowheadpath {
newpath
arrowHeight neg arrowWidth 2 div moveto
0 0 lineto
arrowHeight neg arrowWidth 2 div neg lineto
} def

/leftarrow {
0 begin
y exch get /taily exch def
x exch get /tailx exch def
y exch get /tipy exch def
x exch get /tipx exch def
brushLeftArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

/rightarrow {
0 begin
y exch get /tipy exch def
x exch get /tipx exch def
y exch get /taily exch def
x exch get /tailx exch def
brushRightArrow { tipx tipy tailx taily arrowhead } if
end
} dup 0 4 dict put def

%%EndIdrawPrologue

/arrowHeight 8 def
/arrowWidth 4 def

/IdrawDict 51 dict def
IdrawDict begin

/reencodeISO {
dup dup findfont dup length dict begin
{ 1 index /FID ne { def }{ pop pop } ifelse } forall
/Encoding ISOLatin1Encoding def
currentdict end definefont
} def

/ISOLatin1Encoding [
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright
/parenleft/parenright/asterisk/plus/comma/minus/period/slash
/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon
/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N
/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright
/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m
/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/dotlessi/grave/acute/circumflex/tilde/macron/breve
/dotaccent/dieresis/.notdef/ring/cedilla/.notdef/hungarumlaut
/ogonek/caron/space/exclamdown/cent/sterling/currency/yen/brokenbar
/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot
/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior
/acute/mu/paragraph/periodcentered/cedilla/onesuperior/ordmasculine
/guillemotright/onequarter/onehalf/threequarters/questiondown
/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE/Ccedilla
/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute
/Thorn/germandbls/agrave/aacute/acircumflex/atilde/adieresis
/aring/ae/ccedilla/egrave/eacute/ecircumflex/edieresis/igrave
/iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute/ocircumflex
/otilde/odieresis/divide/oslash/ugrave/uacute/ucircumflex/udieresis
/yacute/thorn/ydieresis
] def
/Helvetica reencodeISO def

/none null def
/numGraphicParameters 17 def
/stringLimit 65535 def

/Begin {
save
numGraphicParameters dict begin
} def

/End {
end
restore
} def

/SetB {
dup type /nulltype eq {
pop
false /brushRightArrow idef
false /brushLeftArrow idef
true /brushNone idef
} {
/brushDashOffset idef
/brushDashArray idef
0 ne /brushRightArrow idef
0 ne /brushLeftArrow idef
/brushWidth idef
false /brushNone idef
} ifelse
} def

/SetCFg {
/fgblue idef
/fggreen idef
/fgred idef
} def

/SetCBg {
/bgblue idef
/bggreen idef
/bgred idef
} def

/SetF {
/printSize idef
/printFont idef
} def

/SetP {
dup type /nulltype eq {
pop true /patternNone idef
} {
dup -1 eq {
/patternGrayLevel idef
/patternString idef
} {
/patternGrayLevel idef
} ifelse
false /patternNone idef
} ifelse
} def

/BSpl {
0 begin
storexyn
newpath
n 1 gt {
0 0 0 0 0 0 1 1 true subspline
n 2 gt {
0 0 0 0 1 1 2 2 false subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 2 copy false subspline
} if
n 2 sub dup n 1 sub dup 2 copy 2 copy false subspline
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Circ {
newpath
0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/CBSpl {
0 begin
dup 2 gt {
storexyn
newpath
n 1 sub dup 0 0 1 1 2 2 true subspline
1 1 n 3 sub {
/i exch def
i 1 sub dup i dup i 1 add dup i 2 add dup false subspline
} for
n 3 sub dup n 2 sub dup n 1 sub dup 0 0 false subspline
n 2 sub dup n 1 sub dup 0 0 1 1 false subspline
patternNone not { ifill } if
brushNone not { istroke } if
} {
Poly
} ifelse
end
} dup 0 4 dict put def

/Elli {
0 begin
newpath
4 2 roll
translate
scale
0 0 1 0 360 arc
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 1 dict put def

/Line {
0 begin
2 storexyn
newpath
x 0 get y 0 get moveto
x 1 get y 1 get lineto
brushNone not { istroke } if
0 0 1 1 leftarrow
0 0 1 1 rightarrow
end
} dup 0 4 dict put def

/MLine {
0 begin
storexyn
newpath
n 1 gt {
x 0 get y 0 get moveto
1 1 n 1 sub {
/i exch def
x i get y i get lineto
} for
patternNone not brushLeftArrow not brushRightArrow not and and { ifill } if
brushNone not { istroke } if
0 0 1 1 leftarrow
n 2 sub dup n 1 sub dup rightarrow
} if
end
} dup 0 4 dict put def

/Poly {
3 1 roll
newpath
moveto
-1 add
{ lineto } repeat
closepath
patternNone not { ifill } if
brushNone not { istroke } if
} def

/Rect {
0 begin
/t exch def
/r exch def
/b exch def
/l exch def
newpath
l b moveto
l t lineto
r t lineto
r b lineto
closepath
patternNone not { ifill } if
brushNone not { istroke } if
end
} dup 0 4 dict put def

/Text {
ishow
} def

/idef {
dup where { pop pop pop } { exch def } ifelse
} def

/ifill {
0 begin
gsave
patternGrayLevel -1 ne {
fgred bgred fgred sub patternGrayLevel mul add
fggreen bggreen fggreen sub patternGrayLevel mul add
fgblue bgblue fgblue sub patternGrayLevel mul add setrgbcolor
eofill
} {
eoclip
originalCTM setmatrix
pathbbox /t exch def /r exch def /b exch def /l exch def
/w r l sub ceiling cvi def
/h t b sub ceiling cvi def
/imageByteWidth w 8 div ceiling cvi def
/imageHeight h def
bgred bggreen bgblue setrgbcolor
eofill
fgred fggreen fgblue setrgbcolor
w 0 gt h 0 gt and {
l w add b translate w neg h scale
w h true [w 0 0 h neg 0 h] { patternproc } imagemask
} if
} ifelse
grestore
end
} dup 0 8 dict put def

/istroke {
gsave
brushDashOffset -1 eq {
[] 0 setdash
1 setgray
} {
brushDashArray brushDashOffset setdash
fgred fggreen fgblue setrgbcolor
} ifelse
brushWidth setlinewidth
originalCTM setmatrix
stroke
grestore
} def

/ishow {
0 begin
gsave
fgred fggreen fgblue setrgbcolor
/fontDict printFont printSize scalefont dup setfont def
/descender fontDict begin 0 /FontBBox load 1 get FontMatrix end
transform exch pop def
/vertoffset 1 printSize sub descender sub def {
0 vertoffset moveto show
/vertoffset vertoffset printSize sub def
} forall
grestore
end
} dup 0 3 dict put def
/patternproc {
0 begin
/patternByteLength patternString length def
/patternHeight patternByteLength 8 mul sqrt cvi def
/patternWidth patternHeight def
/patternByteWidth patternWidth 8 idiv def
/imageByteMaxLength imageByteWidth imageHeight mul
stringLimit patternByteWidth sub min def
/imageMaxHeight imageByteMaxLength imageByteWidth idiv patternHeight idiv
patternHeight mul patternHeight max def
/imageHeight imageHeight imageMaxHeight sub store
/imageString imageByteWidth imageMaxHeight mul patternByteWidth add string def
0 1 imageMaxHeight 1 sub {
/y exch def
/patternRow y patternByteWidth mul patternByteLength mod def
/patternRowString patternString patternRow patternByteWidth getinterval def
/imageRow y imageByteWidth mul def
0 patternByteWidth imageByteWidth 1 sub {
/x exch def
imageString imageRow x add patternRowString putinterval
} for
} for
imageString
end
} dup 0 12 dict put def

/min {
dup 3 2 roll dup 4 3 roll lt { exch } if pop
} def

/max {
dup 3 2 roll dup 4 3 roll gt { exch } if pop
} def

/midpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 x1 add 2 div
y0 y1 add 2 div
end
} dup 0 4 dict put def

/thirdpoint {
0 begin
/y1 exch def
/x1 exch def
/y0 exch def
/x0 exch def
x0 2 mul x1 add 3 div
y0 2 mul y1 add 3 div
end
} dup 0 4 dict put def

/subspline {
0 begin
/movetoNeeded exch def
y exch get /y3 exch def
x exch get /x3 exch def
y exch get /y2 exch def
x exch get /x2 exch def
y exch get /y1 exch def
x exch get /x1 exch def
y exch get /y0 exch def
x exch get /x0 exch def
x1 y1 x2 y2 thirdpoint
/p1y exch def
/p1x exch def
x2 y2 x1 y1 thirdpoint
/p2y exch def
/p2x exch def
x1 y1 x0 y0 thirdpoint
p1x p1y midpoint
/p0y exch def
/p0x exch def
x2 y2 x3 y3 thirdpoint
p2x p2y midpoint
/p3y exch def
/p3x exch def
movetoNeeded { p0x p0y moveto } if
p1x p1y p2x p2y p3x p3y curveto
end
} dup 0 17 dict put def

/storexyn {
/n exch def
/y n array def
/x n array def
n 1 sub -1 0 {
/i exch def
y i 3 2 roll put
x i 3 2 roll put
} for
} def

/SSten {
fgred fggreen fgblue setrgbcolor
dup true exch 1 0 0 -1 0 6 -1 roll matrix astore
} def

/FSten {
dup 3 -1 roll dup 4 1 roll exch
newpath
0 0 moveto
dup 0 exch lineto
exch dup 3 1 roll exch lineto
0 lineto
closepath
bgred bggreen bgblue setrgbcolor
eofill
SSten
} def

/Rast {
exch dup 3 1 roll 1 0 0 -1 0 6 -1 roll matrix astore
} def


%I Idraw 12 Grid 4 4 


Begin
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t
[ 0.956649 0 0 0.956649 0 0 ] concat
/originalCTM matrix currentmatrix def

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
614 218
285 374
294 624
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
336 680
605 801
870 676
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 2
344 650
868 650
2 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 1 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
334 633
603 522
873 633
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
897 615
851 405
649 244
3 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 3
325 631
514 494
607 259
3 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 10 178.5 ] concat
%I
311 661 40 40 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 157.5 518.5 ] concat
%I
[
(No)
(Info)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
652 202
778 124
686 49
639 186
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
614 181
606 55
506 99
587 193
4 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 165.5 -43 ] concat
%I
311 661 40 40 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 308.5 301.5 ] concat
%I
[
(I am)
(Assert)
(Loser)
] Text
End

End %I eop

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
912 657
1056 649
1030 536
935 624
4 BSpl
%I 2
End

Begin %I BSpl
%I b 65535
0 0 1 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg Black
0 0 0 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 12.5 177.5 ] concat
%I 4
906 655
1002 813
1066 708
943 671
4 BSpl
%I 2
End

Begin %I Pict
%I b u
%I cfg u
%I cbg u
%I f u
%I p u
%I t u

Begin %I Elli
%I b 65535
0 0 0 [] 0 SetB
%I cfg Black
0 0 0 SetCFg
%I cbg White
1 1 1 SetCBg
%I p
1 SetP
%I t
[ 0.5 -0 -0 0.5 310.5 174.5 ] concat
%I
311 661 40 40 Elli
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 451.5 519 ] concat
%I
[
(I am)
(Assert)
(Winner)
] Text
End

End %I eop

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 243.997 574.98 ] concat
%I
[
(\(S,G\) data packet arrives on I)
(AND CouldAssert\(*,G,I\)==TRUE)
([A1])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 89.9993 260.996 ] concat
%I
[
(Receive Join\(*,G\))
(or Join\(*,*,RP\(G\)\)  on I [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 250 487 ] concat
%I
[
(CouldAssert\(*,G,I\)->FALSE)
([A4])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 535.5 497.5 ] concat
%I
[
(Receive inferior assert)
([A3])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 80 449 ] concat
%I
[
(Any of the following events:)
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 89.9993 283.997 ] concat
%I
[
(I stops being RPF_if\(RP\(G\)\) [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 89.9993 339.997 ] concat
%I
[
(AssertTrackingDesired\(*,G,I\) ->FALSE [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 89.9993 315.997 ] concat
%I
[
(My metric becomes better )
(than AssertWinnerMetric [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 88 428 ] concat
%I
[
(Receive inferior assert from )
(current winner [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 88.999 395 ] concat
%I
[
(Assert Timer Expires [A5])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 532 572 ] concat
%I
[
(Assert Timer Expires)
([A3])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 342.518 209.001 ] concat
%I
[
(Receive preferred )
(assert)
(with RPTbit set)
([A2])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 234.396 208.004 ] concat
%I
[
(Receive acceptable)
(assert from )
(current winner)
(with RPTbit set)
([A2])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 231.5 436 ] concat
%I
[
(Receive acceptable assert )
(with RPTbit set AND)
(AssertTrackingDesired\(*,G,I\))
(  ==TRUE)
([A2])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 249.501 533.982 ] concat
%I
[
(Receive inferior assert with)
(RPTbit set AND )
(CouldAssert\(*,G,I\)==TRUE)
([A1])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 397 442.5 ] concat
%I
[
(Receive preferred assert)
(with RPTbit set)
([A2])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 443.017 381.943 ] concat
%I
[
(Actions:)
()
(A1: [Send Assert\(*,G\)])
(       [Set Assert Timer to Assert_Time -)
(            Assert_Override_Interval])
(       [Store self as AssertWinner\(*,G,I\)])
(       [Store own rpt metric as)
(            AssertWinnerMetric\(*,G,I\)])
()
(A2: [Set Assert Timer to Assert_Time])
(      [Store winner  as )
(            AssertWinner\(*,G,I\)])
(      [Store winner's metric as)
(            AssertWinnerMetric\(*,G,I\)])
()
(A3: [Send Assert\(*,G\)])
(       [Set Assert Timer to Assert_Time - )
(             Assert_Override_Interval])
()
(A4: [Send AssertCancel\(*,G\)])
(       [Delete Assert Info])
()
(A5: [Delete Assert Info])
] Text
End

Begin %I Text
%I cfg Black
0 0 0 SetCFg
%I f -adobe-helvetica-medium-r-normal--10-100-75-75-p-56-iso8859-1
Helvetica 10 SetF
%I t
[ 1 0 0 1 87.9986 372 ] concat
%I
[
(Current Winner's GenID Changes)
(or Neighbor Liveness Timer expires [A5])
] Text
End

End %I eop

showpage


end
%%EndDocument
end PEND/F2 11/Times-Bold@0 SF(Figur)185.599 557.611 Q 2.75(e1)-.198 G
(1: P)-2.75 E(er)-.22 E(-interface \(*,G\) Assert State machine)-.407 E
F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.2. [P)2.75 F(age 71])-.165 E 0 Cg EP
%%Page: 72 72
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Per)72 85 Q(-interf)-.22 E
(ace \(*,G\) Assert State machine in tab)-.11 E(ular form:)-.22 E .44 LW
503.995 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF(In NoInf)240.626 106 Q
2.75(o\()-.275 G(NI\) State)-2.75 E 503.995 110.75 72 110.75 DL 503.995
112.75 72 112.75 DL(Recei)85.925 123 Q .22 -.11(ve I)-.11 H(nferior).11
E(Assert with RPTbit set)85.925 136 Q(and)85.925 149 Q
(CouldAssert\(*,G,I\))85.925 162 Q(Data arri)234.323 123 Q -.11(ve)-.11
G 2.75(sf).11 G(or G on I)-3.025 E(and CouldAssert)234.323 136 Q
(\(*,G,I\))234.323 149 Q(Recei)383.447 123 Q .22 -.11(ve A)-.11 H
(cceptable).11 E(Assert with RPTbit set)383.447 136 Q(and AssT)383.447
149 Q(rDes \(*,G,I\))-.814 E 503.995 166.75 72 166.75 DL 503.995 168.75
72 168.75 DL/F2 11/Symbol SF<ae>85.925 179 Q F0 2.75(Ws)2.75 G(tate)
-2.75 E F2<ae>101.494 E F0 2.75(Ws)2.75 G(tate)-2.75 E F2<ae>102.22 E F0
2.75(Ls)2.75 G(tate)-2.75 E([Actions A1])85.925 192 Q([Actions A1])
90.659 E([Actions A2])91.385 E 503.995 196.75 72 196.75 DL 362.559
112.75 362.559 196.75 DL 213.435 112.75 213.435 196.75 DL 503.995 95.75
503.995 196.75 DL 72 95.75 72 196.75 DL 503.992 208.75 72 208.75 DL F1
(In I Am Assert W)209.885 219 Q(inner \(W\) State)-.198 E 503.992 223.75
72 223.75 DL 503.992 225.75 72 225.75 DL(Assert T)83.672 236 Q(imer)
-.198 E(Expir)83.672 249 Q(es)-.198 E(Recei)180.497 236 Q .22 -.11(ve I)
-.11 H(nferior).11 E(Assert)180.497 249 Q(Recei)291.347 236 Q .22 -.11
(ve P)-.11 H -.198(re).11 G(ferr).198 E(ed)-.198 E(Assert)291.347 249 Q
(CouldAssert)410.337 236 Q(\(*,G,I\))410.337 249 Q F2<ae>2.75 E F1 -.99
(FA)2.75 G(LSE).99 E 503.992 253.75 72 253.75 DL 503.992 255.75 72
255.75 DL F2<ae>83.672 266 Q F0 2.75(Ws)2.75 G(tate)-2.75 E F2<ae>49.921
E F0 2.75(Ws)2.75 G(tate)-2.75 E F2<ae>63.946 E F0 2.75(Ls)2.75 G(tate)
-2.75 E F2<ae>75.749 E F0(NI state)2.75 E([Actions A3])83.672 279 Q
([Actions A3])39.086 E([Actions A2])53.111 E([Actions A4])61.251 E
503.992 283.75 72 283.75 DL 392.829 225.75 392.829 283.75 DL 273.839
225.75 273.839 283.75 DL 162.989 225.75 162.989 283.75 DL 503.992 208.75
503.992 283.75 DL 72 208.75 72 283.75 DL 503.994 295.75 72 295.75 DL F1
(In I Am Assert Loser \(L\) State)172.754 306 Q 503.994 310.75 72 310.75
DL 503.994 312.75 72 312.75 DL(Recei)80.896 323 Q -.11(ve)-.11 G(Pr)
80.896 336 Q(eferr)-.198 E(ed)-.198 E(Assert)80.896 349 Q(Recei)165.323
323 Q -.11(ve)-.11 G(Acceptable)165.323 336 Q(Assert fr)165.323 349 Q
(om)-.198 E(Curr)165.323 362 Q(ent)-.198 E -.198(Wi)165.323 375 S(nner)
.198 E(Recei)249.75 323 Q -.11(ve)-.11 G(Inferior Assert)249.75 336 Q
(fr)249.75 349 Q(om Curr)-.198 E(ent)-.198 E -.198(Wi)249.75 362 S(nner)
.198 E(Assert T)346.387 323 Q(imer)-.198 E(Expir)346.387 336 Q(es)-.198
E(Curr)434.884 323 Q(ent)-.198 E -.198(Wi)434.884 336 S(nner').198 E(s)
-.407 E(GenID)434.884 349 Q(Changes or)434.884 362 Q(NL)434.884 375 Q
2.75(TE)-1.012 G(xpir)-2.75 E(es)-.198 E 503.994 379.75 72 379.75 DL
503.994 381.75 72 381.75 DL F2<ae>80.896 392 Q F0 2.75(Ls)2.75 G(tate)
-2.75 E F2<ae>41.186 E F0 2.75(Ls)2.75 G(tate)-2.75 E F2<ae>41.186 E F0
(NI state)2.75 E F2<ae>48.512 E F0(NI state)2.75 E F2<ae>40.372 E F0
(NI state)2.75 E([Actions A2])80.896 405 Q([Actions A2])26.688 E
([Actions A5])26.688 E([Actions A5])38.898 E([Actions A5])30.758 E
503.994 409.75 72 409.75 DL 421.54 312.75 421.54 409.75 DL 333.043
312.75 333.043 409.75 DL 236.406 312.75 236.406 409.75 DL 151.979 312.75
151.979 409.75 DL 503.994 295.75 503.994 409.75 DL 72 295.75 72 409.75
DL 503.992 421.75 72 421.75 DL F1(In I Am Assert Loser \(L\) State)
157.769 432 Q 503.992 436.75 72 436.75 DL 503.992 438.75 72 438.75 DL
(AssT)83.387 449 Q(rDes \(*,G,I\))-.814 E F2<ae>83.387 462 Q F1 -.99(FA)
2.75 G(LSE).99 E(my_metric)196.473 449 Q F2<ae>2.75 E F1(better than)
196.473 462 Q -.198(Wi)196.473 475 S(nner').198 E 2.75(sm)-.407 G(etric)
-2.75 E(RPF_interface)307.315 449 Q(\(RP\(G\)\) stops)307.315 462 Q
(being I)307.315 475 Q(Recei)409.896 449 Q .22 -.11(ve J)-.11 H
(oin\(*,G\))-.055 E(or J)409.896 462 Q(oin)-.165 E(\(*,*,RP\(G\)\) on)
409.896 475 Q(Interface I)409.896 488 Q 503.992 492.75 72 492.75 DL
503.992 494.75 72 494.75 DL F2<ae>83.387 505 Q F0(NI state)2.75 E F2<ae>
64.961 E F0(NI state)2.75 E F2<ae>62.717 E F0(NI state)2.75 E F2<ae>
54.456 E F0(NI State)2.75 E([Actions A5])83.387 518 Q([Actions A5])
55.347 E([Actions A5])53.103 E([Actions A5])44.842 E 503.992 522.75 72
522.75 DL 392.815 438.75 392.815 522.75 DL 290.234 438.75 290.234 522.75
DL 179.392 438.75 179.392 522.75 DL 503.992 421.75 503.992 522.75 DL 72
421.75 72 522.75 DL(The state machine uses the follo)72 553.6 Q
(wing macros:)-.275 E/F3 11/Courier@0 SF(CouldAssert\(*,G,I\) =)72 570.2
Q 6.6(\(Ii)98.4 583.2 S 6.6(n\(j)-6.6 G(oins\(*,*,RP\(G\)\))-6.6 E F2(+)
6.88 E 273.3 580.45 2.75 DC ST F3(joins\(*,G\))283.2 583.2 Q F2(+)158.08
596.2 Q 161.1 593.45 2.75 DC ST F3(pim_include\(*,G\)\) \))171 596.2 Q
(AND \(RPF_interface\(RP\(G\)\))98.4 609.2 Q F2<b9>6.6 E F3(I\))6.6 E F0
(CouldAssert\(*,G,I\) is true on do)72 625.8 Q(wnstream interf)-.275 E
(aces for which we ha)-.11 E .33 -.165(ve \()-.22 H
(*,*,RP\(G\)\) or \(*,G\) join).165 E
(state, or local members that requested an)72 638.8 Q 2.75(yt)-.165 G
(raf)-2.75 E(\214c destined for G.)-.275 E F3
(AssertTrackingDesired\(*,G,I\) =)72 655.4 Q(CouldAssert\(*,G,I\))98.4
668.4 Q(OR \(local_receiver_include\(*,G,I\)==TRUE)98.4 681.4 Q
(AND \(I_am_DR\(I\) OR AssertWinner\(*,G,I\) == me\)\))124.8 694.4 Q
(OR \(RPF_interface\(RP\(G\)\) == I AND RPTJoinDesired\(G\)\))98.4 707.4
Q F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.2. [P)2.75 F(age 72])-.165 E 0 Cg EP
%%Page: 73 73
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(AssertT)72 85 Q
(rackingDesired\(*,G,I\) is true on an)-.385 E 2.75(yi)-.165 G(nterf)
-2.75 E(ace on which an \(*,G\) assert might af)-.11 E(fect our)-.275 E
(beha)72 98 Q(vior)-.22 E(.)-.605 E
(Note that for reasons of compactness, "AssT)72 114.6 Q
(rDes\(*,G,I\)" is used in the state machine table to)-.385 E
(refer to AssertT)72 127.6 Q(rackingDesired\(*,G,I\).)-.385 E -.77(Te)72
144.2 S(rminology:).77 E 2.75(A")97 157.2 S
(preferred assert" is one with a better metric than the current winner)
-2.75 E(.)-.605 E
(An "acceptable assert" is one that has a better metric than)97 173.8 Q
/F1 11/Courier@0 SF(my_assert_metric\(S,G,I\))97 186.8 Q F0(.)A
(An "inferior assert" is one with a w)97 203.4 Q(orse metric than)-.11 E
F1(my_assert_metric\(S,G,I\))2.75 E F0(.)A/F2 11/Times-Bold@0 SF -.814
(Tr)72 229.4 S(ansitions fr).814 E(om NoInf)-.198 E 2.75(oS)-.275 G
(tate)-2.75 E F0(When in NoInfo state, the follo)72 246 Q(wing e)-.275 E
-.165(ve)-.275 G(nts trigger transitions, b).165 E
(ut only if the \(S,G\) assert state)-.22 E
(machine is in NoInfo state before and after consideration of the recei)
72 259 Q -.165(ve)-.275 G 2.75(dm).165 G(essage:)-2.75 E F2(Recei)97
275.6 Q .22 -.11(ve I)-.11 H
(nferior Assert with RPTbit set AND CouldAssert\(*,G,I\)==TR).11 E(UE)
-.33 E F0(An Inferior \(*,G\) assert is recei)122 288.6 Q -.165(ve)-.275
G 2.75(df).165 G(or G on Interf)-2.75 E(ace I.)-.11 E
(If CouldAssert\(*,G,I\) is)5.5 E(TR)122 301.6 Q(UE, then I is our do)
-.44 E(wnstream interf)-.275 E(ace, and we ha)-.11 E .33 -.165(ve \()
-.22 H(*,G\) forw).165 E(arding state on this)-.11 E(interf)122 314.6 Q
(ace, so we should be the assert winner)-.11 E 5.5(.W)-.605 G 2.75(et)
-6.38 G(ransition to the "I am Assert)-2.75 E -.44(Wi)122 327.6 S
(nner" state, and perform Actions A1 \(belo).44 E(w\).)-.275 E F2 2.75
(Ad)97 344.2 S(ata pack)-2.75 E(et destined f)-.11 E(or G arri)-.275 E
-.11(ve)-.11 G 2.75(so).11 G 2.75(ni)-2.75 G
(nterface I, AND CouldAssert\(*,G,I\)==TR)-2.75 E(UE)-.33 E F0 2.75(Ad)
122 357.2 S(ata pack)-2.75 E(et destined for G arri)-.11 E -.165(ve)
-.275 G 2.75(do).165 G 2.75(nad)-2.75 G -.275(ow)-2.75 G(nstream interf)
.275 E(ace which is in our \(*,G\))-.11 E(outgoing interf)122 370.2 Q
(ace list.)-.11 E 1.76 -.88(We t)5.5 H(herefore belie).88 E .33 -.165
(ve w)-.275 H 2.75(es).165 G(hould be the forw)-2.75 E
(arder for this \(*,G\),)-.11 E
(and so we transition to the "I am Assert W)122 383.2 Q
(inner" state, and perform Actions A1)-.44 E(\(belo)122 396.2 Q(w\).)
-.275 E F2(Recei)97 412.8 Q .22 -.11(ve A)-.11 H
(cceptable Assert with RPT bit set AND).11 E(AssertT)122 425.8 Q
(rackingDesir)-.814 E(ed\(*,G,I\)==TR)-.198 E(UE)-.33 E F0 -.88(We)122
438.8 S -.55('r).88 G 2.75(ei).55 G
(nterested in \(*,G\) Asserts, either because I is a do)-2.75 E
(wnstream interf)-.275 E(ace for which)-.11 E(we ha)122 451.8 Q .33
-.165(ve \()-.22 H(*,G\) forw).165 E
(arding state, or because I is the upstream interf)-.11 E
(ace for RP\(G\) and)-.11 E(we ha)122 464.8 Q .33 -.165(ve \()-.22 H
(*,G\) forw).165 E(arding state.)-.11 E 1.76 -.88(We g)5.5 H
(et a \(*,G\) Assert that has a better metric than).88 E(our o)122 477.8
Q(wn, so we do not win the Assert.)-.275 E 1.76 -.88(We t)5.5 H
(ransition to "I am Assert Loser" and).88 E(perform actions A2 \(belo)
122 490.8 Q(w\).)-.275 E F2 -.814(Tr)72 516.8 S(ansitions fr).814 E
(om "I am Assert W)-.198 E(inner" State)-.198 E F0
(When in "I am Assert W)72 533.4 Q(inner" state, the follo)-.44 E
(wing e)-.275 E -.165(ve)-.275 G(nts trigger transitions, b).165 E
(ut only if the \(S,G\))-.22 E(assert state machine is in NoInfo state \
before and after consideration of the recei)72 546.4 Q -.165(ve)-.275 G
2.75(dm).165 G(essage:)-2.75 E F2(Recei)97 563 Q .22 -.11(ve I)-.11 H
(nferior Assert).11 E F0 1.76 -.88(We r)122 576 T(ecei).88 E .33 -.165
(ve a \()-.275 H(*,G\) assert that has a w).165 E
(orse metric than our o)-.11 E 2.75(wn. Whoe)-.275 F -.165(ve)-.275 G
2.75(rs).165 G(ent the)-2.75 E(assert has lost, and so we re-send a \(*\
,G\) Assert, and restart the Assert T)122 589 Q(imer \(Action)-.385 E
(A3 belo)122 602 Q(w\).)-.275 E F2(Recei)97 618.6 Q .22 -.11(ve P)-.11 H
-.198(re).11 G(ferr).198 E(ed Assert)-.198 E F0 1.76 -.88(We r)122 631.6
T(ecei).88 E .33 -.165(ve a \()-.275 H
(*,G\) assert that has a better metric than our o).165 E 2.75(wn. W)
-.275 F 2.75(et)-.88 G(ransition to "I am)-2.75 E
(Assert Loser" state and perform actions A2 \(belo)122 644.6 Q(w\).)
-.275 E(When in "I am Assert W)72 661.2 Q(inner" state, the follo)-.44 E
(wing e)-.275 E -.165(ve)-.275 G(nts trigger transitions:).165 E F2
(Assert T)97 677.8 Q(imer Expir)-.198 E(es)-.198 E F0
(The \(*,G\) Assert T)122 690.8 Q(imer e)-.385 E 2.75(xpires. As)-.165 F
(we')2.75 E(re in the W)-.55 E(inner state, then we must still ha)-.44 E
-.165(ve)-.22 G(\(*,G\) forw)122 703.8 Q(arding state that is acti)-.11
E -.165(ve)-.275 G(ly being k).165 E(ept ali)-.11 E -.165(ve)-.275 G 5.5
(.T).165 G 2.75(op)-6.38 G(re)-2.75 E -.165(ve)-.275 G(nt unnecessary)
.165 E(thrashing of the forw)122 716.8 Q
(arder and periodic \215ooding of duplicate pack)-.11 E
(ets, we re-send the)-.11 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.6.2. [P)2.75 F(age 73])
-.165 E 0 Cg EP
%%Page: 74 74
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(\(*,G\) Assert, and restart the Assert T)122 85 Q
(imer \(Action A3 belo)-.385 E(w\).)-.275 E/F1 11/Times-Bold@0 SF
(CouldAssert\(*,G,I\))97 101.6 Q/F2 11/Symbol SF<ae>2.75 E F1 -.99(FA)
2.75 G(LSE).99 E F0(Our \(*,G\) forw)122 114.6 Q
(arding state or RPF interf)-.11 E(ace changed so as to mak)-.11 E(e)
-.11 E(CouldAssert\(*,G,I\) become f)122 127.6 Q 2.75(alse. W)-.11 F
2.75(ec)-.88 G(an no longer perform the actions of the assert)-2.75 E
(winner)122 140.6 Q 2.75(,a)-.44 G
(nd so we transition to NoInfo state and perform actions A4 \(belo)-2.75
E(w\).)-.275 E F1 -.814(Tr)72 166.6 S(ansitions fr).814 E
(om "I am Assert Loser" State)-.198 E F0
(When in "I am Assert Loser" state, the follo)72 183.2 Q(wing e)-.275 E
-.165(ve)-.275 G(nts trigger transitions, b).165 E
(ut only if the \(S,G\))-.22 E(assert state machine is in NoInfo state \
before and after consideration of the recei)72 196.2 Q -.165(ve)-.275 G
2.75(dm).165 G(essage:)-2.75 E F1(Recei)97 212.8 Q .22 -.11(ve P)-.11 H
-.198(re).11 G(ferr).198 E(ed Assert)-.198 E F0 1.76 -.88(We r)122 225.8
T(ecei).88 E .33 -.165(ve a \()-.275 H
(*,G\) assert that is better than that of the current assert winner).165
E 5.5(.W)-.605 G 2.75(es)-6.38 G(tay)-2.75 E
(in Loser state, and perform actions A2 belo)122 238.8 Q -.715(w.)-.275
G F1(Recei)97 255.4 Q .22 -.11(ve A)-.11 H(cceptable Assert fr).11 E
(om Curr)-.198 E(ent W)-.198 E(inner)-.198 E F0 1.76 -.88(We r)122 268.4
T(ecei).88 E .33 -.165(ve a \()-.275 H
(*,G\) assert from the current assert winner that is better than our o)
.165 E(wn)-.275 E(metric for this group \(although the metric may be w)
122 281.4 Q(orse than the winner')-.11 E 2.75(sp)-.605 G(re)-2.75 E
(vious)-.275 E 2.75(metric\). W)122 294.4 R 2.75(es)-.88 G
(tay in Loser state, and perform actions A2 belo)-2.75 E -.715(w.)-.275
G F1(Recei)97 311 Q .22 -.11(ve I)-.11 H(nferior Assert fr).11 E
(om Curr)-.198 E(ent W)-.198 E(inner)-.198 E F0 1.76 -.88(We r)122 324 T
(ecei).88 E .33 -.165(ve a)-.275 H 2.75(na).165 G
(ssert from the current assert winner that is w)-2.75 E(orse than our o)
-.11 E(wn metric)-.275 E(for this group \(typically because the winner')
122 337 Q 2.75(sm)-.605 G(etric became w)-2.75 E 2.75(orse\). W)-.11 F
2.75(et)-.88 G(ransition to)-2.75 E
(NoInfo state, delete this \(*,G\) assert state \(action A5\), and allo)
122 350 Q 2.75(wt)-.275 G(he normal PIM)-2.75 E
(Join/Prune mechanisms to operate.)122 363 Q(Usually we will e)5.5 E
-.165(ve)-.275 G(ntually re-assert and win when).165 E(data pack)122 376
Q(ets for G ha)-.11 E .33 -.165(ve s)-.22 H(tarted \215o).165 E(wing ag)
-.275 E(ain.)-.055 E(When in "I am Assert Loser" state, the follo)72
392.6 Q(wing e)-.275 E -.165(ve)-.275 G(nts trigger transitions:).165 E
F1(Assert T)97 409.2 Q(imer Expir)-.198 E(es)-.198 E F0
(The \(*,G\) Assert T)122 422.2 Q(imer e)-.385 E 2.75(xpires. W)-.165 F
2.75(et)-.88 G(ransition to NoInfo state and delete this \(*,G\))-2.75 E
(assert info \(action A5\).)122 435.2 Q F1(Curr)97 451.8 Q(ent W)-.198 E
(inner')-.198 E 2.75(sG)-.407 G(enID Changes or NL)-2.75 E 2.75(TE)
-1.012 G(xpir)-2.75 E(es)-.198 E F0(The Neighbor Li)122 464.8 Q -.165
(ve)-.275 G(ness T).165 E(imer associated with the current winner e)
-.385 E(xpires or we recei)-.165 E -.165(ve)-.275 G 2.75(aH)122 477.8 S
(ello message from the current winner reporting a dif)-2.75 E
(ferent GenID from the one it)-.275 E(pre)122 490.8 Q(viously reported.)
-.275 E(This indicates that the current winner')5.5 E 2.75(si)-.605 G
(nterf)-2.75 E(ace or router has)-.11 E(gone do)122 503.8 Q
(wn \(and may ha)-.275 E .33 -.165(ve c)-.22 H
(ome back up\), and so we must assume it no longer kno).165 E(ws)-.275 E
(it w)122 516.8 Q(as the winner)-.11 E 2.75(.W)-.605 G 2.75(et)-3.63 G
(ransition to the NoInfo state, deleting the \(*,G\) assert)-2.75 E
(information \(action A5\).)122 529.8 Q F1(AssertT)97 546.4 Q
(rackingDesir)-.814 E(ed\(*,G,I\))-.198 E F2<ae>A F1 -.99(FA)C(LSE).99 E
F0(AssertT)122 559.4 Q(rackingDesired\(*,G,I\) becomes F)-.385 E 2.75
(ALSE. Our)-.814 F(forw)2.75 E(arding state has changed so)-.11 E
(that \(*,G\) Asserts on interf)122 572.4 Q
(ace I are no longer of interest to us.)-.11 E 1.76 -.88(We t)5.5 H
(ransition to).88 E
(NoInfo state and delete this \(*,G\) assert info \(action A5\).)122
585.4 Q F1(My metric becomes better than the assert winner')97 602 Q
2.75(sm)-.407 G(etric)-2.75 E F0
(My routing metric, rpt_assert_metric\(G,I\), has changed so that no)122
615 Q 2.75(wm)-.275 G 2.75(ya)-2.75 G(ssert metric)-2.75 E
(for \(*,G\) is better than the metric we ha)122 628 Q .33 -.165(ve s)
-.22 H(tored for current assert winner).165 E 5.5(.W)-.605 G(e)-6.38 E(\
transition to NoInfo state, and delete this \(*,G\) assert state \(acti\
on A5\), and allo)122 641 Q 2.75(wt)-.275 G(he)-2.75 E
(normal PIM Join/Prune mechanisms to operate.)122 654 Q
(Usually we will e)5.5 E -.165(ve)-.275 G(ntually re-assert).165 E
(and win when data pack)122 667 Q(ets for G ha)-.11 E .33 -.165(ve s)
-.22 H(tarted \215o).165 E(wing ag)-.275 E(ain.)-.055 E F1
(RPF_interface\(RP\(G\)\) stops being interface I)97 683.6 Q F0(Interf)
122 696.6 Q(ace I used to be the RPF interf)-.11 E
(ace for RP\(G\), and no)-.11 E 2.75(wi)-.275 G 2.75(ti)-2.75 G 2.75(sn)
-2.75 G 2.75(ot. W)-2.75 F 2.75(et)-.88 G(ransition to)-2.75 E
(NoInfo state, and delete this \(*,G\) assert state \(action A5\).)122
709.6 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.2. [P)2.75 F(age 74])-.165 E 0 Cg EP
%%Page: 75 75
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(Recei)97
85 Q .22 -.11(ve J)-.11 H(oin\(*,G\) or J)-.055 E
(oin\(*,*,RP\(G\)\) on interface I)-.165 E F0 1.76 -.88(We r)122 98 T
(ecei).88 E .33 -.165(ve a J)-.275 H(oin\(*,G\) or a Join\(*,*,RP\(G\)\
\) that has the Upstream Neighbor Address).165 E
(\214eld set to my IP address on interf)122 111 Q(ace I.)-.11 E
(The action is to transition to NoInfo state,)5.5 E
(and delete this \(*,G\) assert state \(action A5\), and allo)122 124 Q
2.75(wt)-.275 G(he normal PIM Join/Prune)-2.75 E(mechanisms to operate.)
122 137 Q(If whoe)5.5 E -.165(ve)-.275 G 2.75(rs).165 G(ent the Join w)
-2.75 E(as in error)-.11 E 2.75(,t)-.44 G(hen the normal assert)-2.75 E
(mechanism will e)122 150 Q -.165(ve)-.275 G
(ntually re-apply and we will lose the assert ag).165 E 2.75(ain. Ho)
-.055 F(we)-.275 E -.165(ve)-.275 G(r).165 E(whoe)122 163 Q -.165(ve)
-.275 G 2.75(rs).165 G(ent the assert may kno)-2.75 E 2.75(wt)-.275 G
(hat the pre)-2.75 E(vious assert winner has died, and so we)-.275 E
(may end up being the ne)122 176 Q 2.75(wf)-.275 G(orw)-2.75 E(arder)
-.11 E(.)-.605 E F1(\(*,G\) Assert State machine Actions)72 202 Q F0
5.75(A1: Send)97 218.6 R(Assert\(*,G\))2.75 E(Set Assert T)122 231.6 Q
(imer to \(Assert_T)-.385 E(ime - Assert_Ov)-.385 E(erride_Interv)-.165
E(al\))-.275 E(Store self as AssertW)122 244.6 Q(inner\(*,G,I\).)-.44 E
(Store rpt_assert_metric\(G,I\) as AssertW)122 257.6 Q
(innerMetric\(*,G,I\).)-.44 E 5.75(A2: Store)97 274.2 R(ne)2.75 E 2.75
(wa)-.275 G(ssert winner as AssertW)-2.75 E
(inner\(*,G,I\) and assert winner metric as)-.44 E(AssertW)122 287.2 Q
(innerMetric\(*,G,I\).)-.44 E(Set Assert T)122 300.2 Q(imer to Assert_T)
-.385 E(ime)-.385 E 5.75(A3: Send)97 316.8 R(Assert\(*,G\))2.75 E
(Set Assert T)122 329.8 Q(imer to \(Assert_T)-.385 E(ime - Assert_Ov)
-.385 E(erride_Interv)-.165 E(al\))-.275 E 5.75(A4: Send)97 346.4 R
(AssertCancel\(*,G\))2.75 E(Delete assert info \(AssertW)122 359.4 Q
(inner\(*,G,I\) and AssertW)-.44 E(innerMetric\(*,G,I\) will then)-.44 E
(return their def)122 372.4 Q(ault v)-.11 E(alues\).)-.275 E 5.75
(A5: Delete)97 389 R(assert info \(AssertW)2.75 E
(inner\(*,G,I\) and AssertW)-.44 E(innerMetric\(*,G,I\) will then)-.44 E
(return their def)122 402 Q(ault v)-.11 E(alues\).)-.275 E
(Note that some of these actions may cause the v)72 418.6 Q
(alue of JoinDesired\(*,G\) or RPF'\(*,G\)\) to)-.275 E
(change, which could cause further transitions in other state machines.)
72 431.6 Q F1 2.75(4.6.3. Assert)72 461.2 R(Metrics)2.75 E F0
(Assert metrics are de\214ned as:)72 477.8 Q/F2 11/Courier@0 SF
(struct assert_metric {)85.2 496.8 Q(rpt_bit_flag;)98.4 509.8 Q
(metric_preference;)98.4 522.8 Q(route_metric;)98.4 535.8 Q(ip_address;)
98.4 548.8 Q(};)85.2 561.8 Q F0(When comparing assert_metrics, the rpt_\
bit_\215ag, metric_preference, and route_metric \214eld are)72 593.8 Q
(compared in order)72 606.8 Q 2.75(,w)-.44 G(here the \214rst lo)-2.75 E
(wer v)-.275 E(alue wins.)-.275 E
(If all \214elds are equal, the primary IP address)5.5 E
(of the router that sourced the Assert message is used as a tie-break)72
619.8 Q(er)-.11 E 2.75(,w)-.44 G(ith the highest IP address)-2.75 E
(winning.)72 632.8 Q
(An assert metric for \(S,G\) to include in \(or compare ag)72 649.4 Q
(ainst\) an Assert message sent on interf)-.055 E(ace I)-.11 E
(should be computed using the follo)72 662.4 Q(wing pseudocode:)-.275 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.3. [P)2.75 F(age 75])-.165 E 0 Cg EP
%%Page: 76 76
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF
(assert_metric)85.2 85 Q(my_assert_metric\(S,G,I\) {)85.2 98 Q
(if\( CouldAssert\(S,G,I\) == TRUE \) {)111.6 111 Q
(return spt_assert_metric\(S,I\))138 124 Q 6.6(}e)111.6 137 S
(lse if\( CouldAssert\(*,G,I\) == TRUE \) {)-6.6 E
(return rpt_assert_metric\(G,I\))138 150 Q 6.6(}e)111.6 163 S(lse {)-6.6
E(return infinite_assert_metric\(\))138 176 Q(})111.6 189 Q(})85.2 202 Q
(spt_assert_metric\(S,I\))72 224.6 Q F0(gi)2.75 E -.165(ve)-.275 G 2.75
(st).165 G(he assert metric we use if we')-2.75 E
(re sending an assert based)-.55 E(on acti)72 237.6 Q .33 -.165(ve \()
-.275 H(S,G\) forw).165 E(arding state:)-.11 E F1(assert_metric)85.2
256.6 Q(spt_assert_metric\(S,I\) {)85.2 269.6 Q
(return {0,MRIB.pref\(S\),MRIB.metric\(S\),my_ip_address\(I\)})105 282.6
Q(})85.2 295.6 Q(rpt_assert_metric\(G,I\))72 318.2 Q F0(gi)2.75 E -.165
(ve)-.275 G 2.75(st).165 G(he assert metric we use if we')-2.75 E
(re sending an assert based)-.55 E(only on \(*,G\) forw)72 331.2 Q
(arding state:)-.11 E F1(assert_metric)85.2 350.2 Q
(rpt_assert_metric\(G,I\) {)85.2 363.2 Q(return {1,MRIB.pref\(RP\(G\)\)\
,MRIB.metric\(RP\(G\)\),my_ip_address\(I\)})111.6 376.2 Q(})85.2 389.2 Q
(MRIB.pref\(X\))72 411.8 Q F0(and)2.75 E F1(MRIB.metric\(X\))2.75 E F0
(are the routing preference and routing metrics)2.75 E(associated with \
the route to a particular \(unicast\) destination X, as determined by t\
he MRIB.)72 424.8 Q F1(my_ip_address\(I\))72 437.8 Q F0
(is simply the router')2.75 E 2.75(sp)-.605 G
(rimary IP address that is associated with the local)-2.75 E(interf)72
450.8 Q(ace I.)-.11 E F1(infinite_assert_metric\(\))72 467.4 Q F0(gi)
2.75 E -.165(ve)-.275 G 2.75(st).165 G
(he assert metric we need to send an assert b)-2.75 E(ut don')-.22 E(t)
-.198 E(match either \(S,G\) or \(*,G\) forw)72 480.4 Q(arding state:)
-.11 E F1(assert_metric)85.2 499.4 Q(infinite_assert_metric\(\) {)85.2
512.4 Q(return {1,infinity,infinity,0})118.2 525.4 Q(})85.2 538.4 Q/F2
11/Times-Bold@0 SF 2.75(4.6.4. AssertCancel)72 570.4 R(Messages)2.75 E
F0(An AssertCancel message is simply an RPT Assert message b)72 587 Q
(ut with in\214nite metric.)-.22 E(It is sent by)5.5 E
(the assert winner when it deletes the forw)72 600 Q
(arding state that had caused the assert to occur)-.11 E 5.5(.O)-.605 G
(ther)-5.5 E(routers will see this metric, and it will cause an)72 613 Q
2.75(yo)-.165 G(ther router that has forw)-2.75 E
(arding state to send its)-.11 E -.275(ow)72 626 S 2.75(na).275 G
(ssert, and to tak)-2.75 E 2.75(eo)-.11 G -.165(ve)-2.915 G 2.75(rf).165
G(orw)-2.75 E(arding.)-.11 E(An AssertCancel\(S,G\) is an in\214nite me\
tric assert with the RPT bit set that names S as the source.)72 642.6 Q
(An AssertCancel\(*,G\) is an in\214nite metric assert with the RPT bit\
 set and the source set to zero.)72 659.2 Q
(AssertCancel messages are simply an optimization.)72 675.8 Q
(The original Assert timeout mechanism will)5.5 E(allo)72 688.8 Q 2.75
(was)-.275 G(ubnet to e)-2.75 E -.165(ve)-.275 G
(ntually become consistent; the AssertCancel mechanism simply causes f)
.165 E(aster)-.11 E(con)72 701.8 Q -.165(ve)-.44 G -.198(rg).165 G 2.75
(ence. No).198 F(special processing is required for an AssertCancel mes\
sage, since it is simply)2.75 E
(an Assert message from the current winner)72 714.8 Q(.)-.605 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.4. [P)2.75 F(age 76])-.165 E 0 Cg EP
%%Page: 77 77
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF 2.75
(4.6.5. Assert)72 85 R(State Macr)2.75 E(os)-.198 E F0(The macros)72
101.6 Q/F2 11/Courier@0 SF(lost_assert\(S,G,rpt,I\))2.75 E F0(,)A F2
(lost_assert\(S,G,I\))2.75 E F0 2.75(,a)C(nd)-2.75 E F2
(lost_assert\(*,G,I\))72 114.6 Q F0(are used in the olist computations \
of Section 4.1, and are de\214ned as:)2.75 E F2
(bool lost_assert\(S,G,rpt,I\) {)85.2 133.6 Q
(if \( RPF_interface\(RP\(G\)\) == I)98.4 146.6 Q(OR)13.2 E 6.6(\(R)
131.4 159.6 S(PF_interface\(S\) == I AND SPTbit\(S,G\) == TRUE \) \) {)
-6.6 E(return FALSE)118.2 172.6 Q 6.6(}e)98.4 185.6 S(lse {)-6.6 E
(return \( AssertWinner\(S,G,I\))118.2 198.6 Q/F3 11/Symbol SF<b9>6.6 E
F2(NULL AND)6.6 E(AssertWinner\(S,G,I\))177.6 211.6 Q F3<b9>6.6 E F2
(me \))6.6 E(})98.4 224.6 Q(})85.2 237.6 Q(bool lost_assert\(S,G,I\) {)
85.2 262.6 Q(if \( RPF_interface\(S\) == I \) {)98.4 275.6 Q
(return FALSE)118.2 288.6 Q 6.6(}e)98.4 301.6 S(lse {)-6.6 E
(return \( AssertWinner\(S,G,I\))118.2 314.6 Q F3<b9>6.6 E F2(NULL AND)
6.6 E(AssertWinner\(S,G,I\))177.6 327.6 Q F3<b9>6.6 E F2 6.6(me AND)6.6
F(\(AssertWinnerMetric\(S,G,I\) is better)177.6 340.6 Q
(than spt_assert_metric\(S,I\) \))197.4 353.6 Q(})98.4 366.6 Q(})85.2
379.6 Q F0(Note: the term "AssertW)72 402.2 Q(innerMetric\(S,G,I\) is b\
etter than spt_assert_metric\(S,I\)" is required to)-.44 E(correctly ha\
ndle the transition phase when a router has \(S,G\) join state, b)72
415.2 Q(ut has not yet set the)-.22 E(SPT bit.)72 428.2 Q(In this case \
it needs to ignore the assert state if it will win the assert once the \
SPTbit is)5.5 E(set.)72 441.2 Q F2(bool lost_assert\(*,G,I\) {)85.2
460.2 Q(if \( RPF_interface\(RP\(G\)\) == I \) {)98.4 473.2 Q
(return FALSE)118.2 486.2 Q 6.6(}e)98.4 499.2 S(lse {)-6.6 E
(return \( AssertWinner\(*,G,I\))118.2 512.2 Q F3<b9>6.6 E F2(NULL AND)
6.6 E(AssertWinner\(*,G,I\))177.6 525.2 Q F3<b9>6.6 E F2(me \))6.6 E(})
98.4 538.2 Q(})85.2 551.2 Q(AssertWinner\(S,G,I\))72 573.8 Q F0
(is the IP source address of the Assert\(S,G\) pack)2.75 E(et that w)
-.11 E(on an)-.11 E(Assert.)72 586.8 Q F2(AssertWinner\(*,G,I\))72 603.4
Q F0(is the IP source address of the Assert\(*,G\) pack)2.75 E
(et that w)-.11 E(on an)-.11 E(Assert.)72 616.4 Q F2
(AssertWinnerMetric\(S,G,I\))72 633 Q F0
(is the Assert metric of the Assert\(S,G\) pack)2.75 E(et that w)-.11 E
(on an)-.11 E(Assert.)72 646 Q F2(AssertWinnerMetric\(*,G,I\))72 662.6 Q
F0(is the Assert metric of the Assert\(*,G\) pack)2.75 E(et that w)-.11
E(on an)-.11 E(Assert.)72 675.6 Q F2(AssertWinner\(S,G,I\))72 692.2 Q F0
(def)2.75 E(aults to NULL and)-.11 E F2(AssertWinnerMetric\(S,G,I\))2.75
E F0(def)2.75 E(aults)-.11 E(to In\214nity when in the NoInfo state.)72
705.2 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.5. [P)2.75 F(age 77])-.165 E 0 Cg EP
%%Page: 78 78
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF
(Summary of Assert Rules and Rationale)72 85 Q F0
(This section summarizes the k)72 101.6 Q .33 -.165(ey r)-.11 H
(ules for sending and reacting to asserts and the rationale for).165 E
(these rules.)72 114.6 Q(This section is not intended to be and should \
not be treated as a de\214niti)5.5 E -.165(ve)-.275 G
(speci\214cation of)72 127.6 Q(protocol beha)5.5 E(vior)-.22 E 5.5(.T)
-.605 G(he state machines and pseudocode should be consulted for)-5.5 E
(that purpose.)72 140.6 Q(Rather)5.5 E 2.75(,t)-.44 G
(his section is intended to document important aspects of a the Assert)
-2.75 E(protocol beha)72 153.6 Q(vior and to pro)-.22 E
(vide information that may pro)-.165 E .33 -.165(ve h)-.165 H
(elpful to the reader in).165 E
(understanding and implementing this part of the protocol.)72 166.6 Q 14
(1. Beha)72 183.2 R(vior: Do)-.22 E(wnstream neighbors send Join\(*,G\)\
 and Join\(S,G\) periodic messages to the)-.275 E
(appropriate RPF' neighbor)97 196.2 Q 2.75(,i)-.44 G
(.e., the RPF neighbor as modi\214ed by the assert process.)-2.75 E(The)
5.5 E(y)-.165 E(are not al)97 209.2 Q -.11(wa)-.11 G
(ys sent to the RPF neighbor as indicated by the MRIB.).11 E
(Normal suppression and)5.5 E -.165(ove)97 222.2 S(rride rules apply)
.165 E(.)-.715 E(Rationale: By sending the periodic and triggered Join \
messages to the RPF' neighbor)97 238.8 Q(instead of to the RPF neighbor)
97 251.8 Q 2.75(,t)-.44 G(he do)-2.75 E(wnstream router a)-.275 E -.22
(vo)-.22 G(ids re-triggering the Assert).22 E(process with e)97 264.8 Q
-.165(ve)-.275 G(ry Join.).165 E 2.75(As)5.5 G(ide ef)-2.75 E
(fect of sending Joins to the Assert winner is that traf)-.275 E<8c63>
-.275 E(will not switch back to the "normal" RPF neighbor until the Ass\
ert times out.)97 277.8 Q(This will not)5.5 E
(happen until data stops \215o)97 290.8 Q(wing, if item 8 belo)-.275 E
2.75(wi)-.275 G 2.75(si)-2.75 G(mplemented.)-2.75 E 14(2. Beha)72 307.4
R(vior: The assert winner for \(*,G\) acts as the local DR for \(*,G\) \
on behalf of)-.22 E(IGMP/MLD members.)97 320.4 Q
(Rationale: This is required to allo)97 337 Q 2.75(was)-.275 G
(ingle router to mer)-2.75 E(ge PIM and IGMP/MLD joins and)-.198 E(lea)
97 350 Q -.165(ve)-.22 G 2.75(s. W).165 F(ithout this, o)-.44 E -.165
(ve)-.165 G(rrides don').165 E 2.75(tw)-.198 G(ork.)-2.86 E 14(3. Beha)
72 366.6 R(vior: The assert winner for \(S,G\) acts as the local DR for\
 \(S,G\) on behalf of IGMPv3)-.22 E(members.)97 379.6 Q
(Rationale: Same rationale as for 2.)97 396.2 Q 14(4. Beha)72 412.8 R
(vior: \(S,G\) and \(*,G\) prune o)-.22 E -.165(ve)-.165 G
(rrides are sent to the RPF' neighbor and not to the).165 E(re)97 425.8
Q(gular RPF neighbor)-.165 E(.)-.605 E(Rationale: Same as for 1.)97
442.4 Q 14(5. Beha)72 459 R(vior: An \(S,G,rpt\) prune o)-.22 E -.165
(ve)-.165 G(rride is not sent \(at all\) if RPF'\(S,G,rpt\)).165 E/F2 11
/Symbol SF<b9>2.75 E F0(RPF'\(*,G\).)2.75 E(Rationale: This a)97 475.6 Q
-.22(vo)-.22 G(ids k).22 E(eeping state ali)-.11 E .33 -.165(ve o)-.275
H 2.75(nt).165 G(he \(S,G\) tree when only \(*,G\) do)-2.75 E(wnstream)
-.275 E(members are left.)97 488.6 Q(Also, it a)5.5 E -.22(vo)-.22 G
(ids sending \(S,G,rpt\) joins to a router that is not on the \(*,G\))
.22 E 2.75(tree. This)97 501.6 R(beha)2.75 E(vior might be confusing al\
though this speci\214cation does indicate that such a)-.22 E
(join should be dropped.)97 514.6 Q 14(6. Beha)72 531.2 R
(vior: An assert loser that recei)-.22 E -.165(ve)-.275 G 2.75(saJ).165
G(oin\(S,G\) with an Upstream Neighbor Address that)-2.75 E/F3 10/Symbol
SF<ef>555 543.2 Q<ef>-4.94 -10 M F0
(is its primary IP address on that interf)97 544.2 Q
(ace cancels the \(S,G\) Assert T)-.11 E(imer)-.385 E(.)-.605 E
(Rationale: This is necessary in order to ha)97 560.8 Q .33 -.165(ve r)
-.22 H(apid con).165 E -.165(ve)-.44 G -.198(rg).165 G(ence in the e)
.198 E -.165(ve)-.275 G(nt that the).165 E(do)97 573.8 Q(wnstream route\
r that initially sent a join to the prior Assert winner has under)-.275
E(gone a)-.198 E(topology change.)97 586.8 Q 14(7. Beha)72 603.4 R
(vior: An assert loser that recei)-.22 E -.165(ve)-.275 G 2.75(saJ).165
G(oin\(*,G\) or a Join\(*,*,RP\(G\)\) with an Upstream)-2.75 E
(Neighbor Address that is one of its addresses on that interf)97 616.4 Q
(ace cancels the \(*,G\) Assert)-.11 E -.385(Ti)97 629.4 S
(mer and all \(S,G\) assert timers that do not ha).385 E .33 -.165(ve c)
-.22 H(orresponding Prune\(S,G,rpt\) messages in).165 E
(the compound Join/Prune message.)97 642.4 Q(Rationale: Same as 6.)97
659 Q 14(8. Beha)72 675.6 R(vior: An assert winner for \(*,G\) or \(S,G\
\) sends a canceling assert when it is about to)-.22 E(stop forw)97
688.6 Q(arding on a \(*,G\) or an \(S,G\) entry)-.11 E 5.5(.T)-.715 G
(his beha)-5.5 E(vior does not apply to \(S,G,rpt\).)-.22 E
(Rationale: This allo)97 705.2 Q
(ws switching back to the shared tree after the last SPT router on the)
-.275 E(LAN lea)97 718.2 Q -.165(ve)-.22 G 2.75(s. Doing).165 F
(this pre)2.75 E -.165(ve)-.275 G(nts do).165 E
(wnstream routers on the shared tree from k)-.275 E(eeping SPT)-.11 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.6.5. [P)2.75 F(age 78])-.165 E 0 Cg EP
%%Page: 79 79
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(state ali)97 85 Q -.165(ve)
-.275 G(.).165 E 14(9. Beha)72 101.6 R
(vior: Re-send the assert messages before timing out an assert.)-.22 E
(\(This beha)5.5 E(vior is)-.22 E(optional.\))97 114.6 Q
(Rationale: This pre)97 131.2 Q -.165(ve)-.275 G
(nts the periodic duplicates that w).165 E
(ould otherwise occur each time that)-.11 E
(an assert times out and is then re-established.)97 144.2 Q 8.5
(10. Beha)72 160.8 R(vior: When RPF'\(S,G,rpt\) changes to be the same \
as RPF'\(*,G\) we need to trigger a)-.22 E
(Join\(S,G,rpt\) to RPF'\(*,G\).)97 173.8 Q(Rationale: This allo)97
190.4 Q(ws switching back to the RPT after the last SPT member lea)-.275
E -.165(ve)-.22 G(s.).165 E/F1 11/Times-Bold@0 SF(4.7.)72 229.4 Q/F2 13
/Times-Bold@0 SF(PIM Bootstrap and RP Disco)5.5 E -.13(ve)-.13 G(ry).13
E F0 -.165(Fo)72 246 S 2.75(rc).165 G(orrect operation, e)-2.75 E -.165
(ve)-.275 G
(ry PIM router within a PIM domain must be able to map a particular).165
E(multicast group address to the same RP)72 259 Q 5.5(.I)-1.221 G 2.75
(ft)-5.5 G(his is not the case then black holes may appear)-2.75 E 2.75
(,w)-.44 G(here)-2.75 E(some recei)72 272 Q -.165(ve)-.275 G
(rs in the domain cannot recei).165 E .33 -.165(ve s)-.275 H
(ome groups.).165 E 2.75(Ad)5.5 G(omain in this conte)-2.75 E(xt is a)
-.165 E(contiguous set of routers that all implement PIM and are con\
\214gured to operate within a common)72 285 Q(boundary)72 298 Q(.)-.715
E 2.75(An)72 314.6 S(otable e)-2.75 E
(xception to this is where a PIM domain is brok)-.165 E
(en up into multiple administrati)-.11 E -.165(ve)-.275 G(scope re)72
327.6 Q(gions - these are re)-.165 E(gions where a border has been con\
\214gured so that a range of multicast)-.165 E(groups will not be forw)
72 340.6 Q(arded across that border)-.11 E 5.5(.F)-.605 G
(or more information on Administrati)-5.665 E -.165(ve)-.275 G(ly).165 E
(Scoped IP Multicast, see RFC 2365.)72 353.6 Q
(The modi\214ed criteria for admin-scoped re)5.5 E(gions are that the)
-.165 E(re)72 366.6 Q(gion is con)-.165 E .33 -.165(vex w)-.44 H
(ith respect to forw).165 E
(arding based on the MRIB, and that all PIM routers within)-.11 E
(the scope re)72 379.6 Q
(gion map scoped groups to the same RP within that re)-.165 E(gion.)
-.165 E(This speci\214cation does not mandate the use of a single mecha\
nism to pro)72 396.2 Q(vide routers with the)-.165 E
(information to perform the group-to-RP mapping.)72 409.2 Q
(Currently three mechanisms are possible, and)5.5 E(all three ha)72
422.2 Q .33 -.165(ve a)-.22 H(ssociated problems:).165 E F1
(Static Con\214guration)72 438.8 Q F0 2.75(AP)97 451.8 S(IM router MUST\
 support the static con\214guration of group-to-RP mappings.)-2.75 E
(Such a)5.5 E(mechanism is not rob)97 464.8 Q(ust to f)-.22 E
(ailures, b)-.11 E(ut does at least pro)-.22 E
(vide a basic interoperability)-.165 E(mechanism.)97 477.8 Q F1
(Embedded-RP)72 494.4 Q F0
(Embedded-RP de\214nes an address allocation polic)97 507.4 Q 2.75(yi)
-.165 G 2.75(nw)-2.75 G(hich the address of the Rendezv)-2.75 E(ous)-.22
E(Point \(RP\) is encoded in an IPv6 multicast group address [15].)97
520.4 Q F1(Cisco')72 537 Q 2.75(sA)-.407 G(uto-RP)-3.3 E F0(Auto-RP use\
s a PIM Dense-Mode multicast group to announce group-to-RP mappings fro\
m)97 550 Q 2.75(ac)97 563 S(entral location.)-2.75 E
(This mechanism is not useful if PIM Dense-Mode is not being run in)5.5
E(parallel with PIM Sparse-Mode, and w)97 576 Q
(as only intended for use with PIM Sparse-Mode)-.11 E -1.221(Ve)97 589 S
(rsion 1.)1.221 E(No standard speci\214cation currently e)5.5 E(xists.)
-.165 E F1(BootStrap Router \(BSR\))72 605.6 Q F0(RFC 2362 speci\214es \
a bootstrap mechanism based around the automatic election of a)97 618.6
Q(bootstrap router \(BSR\).)97 631.6 Q(An)5.5 E 2.75(yr)-.165 G
(outer in the domain that is con\214gured to be a possible RP)-2.75 E
(reports its candidac)97 644.6 Q 2.75(yt)-.165 G 2.75(ot)-2.75 G
(he BSR, and then a domain-wide \215ooding mechanism distrib)-2.75 E
(utes)-.22 E(the BSR')97 657.6 Q 2.75(sc)-.605 G
(hosen set of RPs throughout the domain.)-2.75 E
(As speci\214ed in RFC 2362, BSR is)5.5 E<8d61>97 670.6 Q
(wed in its handling of admin-scoped re)-.165 E
(gions that are smaller than a PIM domain, b)-.165 E(ut the)-.22 E
(mechanism does w)97 683.6 Q(ork for global-scoped groups.)-.11 E(As f)
72 700.2 Q(ar as PIM-SM is concerned, the only important requirement is\
 that all routers in the domain)-.11 E
(\(or admin scope zone for scoped re)72 713.2 Q(gions\) recei)-.165 E
.33 -.165(ve t)-.275 H(he same set of group-range-to-RP mappings.).165 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 169.221
(elas Section)-.165 F 2.75(4.7. [P)2.75 F(age 79])-.165 E 0 Cg EP
%%Page: 80 80
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(This may be achie)72 85 Q
-.165(ve)-.275 G 2.75(dt).165 G(hrough the use of an)-2.75 E 2.75(yo)
-.165 G 2.75(ft)-2.75 G(hese mechanisms, or through alternati)-2.75 E
-.165(ve)-.275 G(mechanisms not currently speci\214ed.)72 98 Q
(It must be operationally ensured that an)72 114.6 Q 2.75(yR)-.165 G
2.75(Pa)-2.75 G(ddress con\214gured, learned or adv)-2.75 E(ertised is)
-.165 E(reachable from all routers in the PIM domain.)72 127.6 Q/F1 11
/Times-Bold@0 SF 2.75(4.7.1. Gr)72 166.6 R(oup-to-RP Mapping)-.198 E F0
(Using one of the mechanisms described abo)72 183.2 Q -.165(ve)-.165 G
2.75(,aP).165 G(IM router recei)-2.75 E -.165(ve)-.275 G 2.75(so).165 G
(ne or more possible group-)-2.75 E(range-to-RP mappings.)72 196.2 Q
(Each mapping speci\214es a range of multicast groups \(e)5.5 E
(xpressed as a group)-.165 E
(and mask\) and the RP to which such groups should be mapped.)72 209.2 Q
(Each mapping may also ha)5.5 E .33 -.165(ve a)-.22 H(n).165 E
(associated priority)72 222.2 Q 5.5(.I)-.715 G 2.75(ti)-5.5 G 2.75(sp)
-2.75 G(ossible to recei)-2.75 E .33 -.165(ve m)-.275 H
(ultiple mappings all of which might match the same).165 E
(multicast group - this is the common case with BSR.)72 235.2 Q
(The algorithm for performing the group-to-)5.5 E
(RP mapping is as follo)72 248.2 Q(ws:)-.275 E 19.5(1P)72 264.8 S
(erform longest match on group-range to obtain a list of RPs.)-19.5 E
19.5(2F)72 281.4 S
(rom this list of matching RPs, \214nd the one with highest priority)
-19.5 E 5.5(.E)-.715 G(liminate an)-5.5 E 2.75(yR)-.165 G(Ps from)-2.75
E(the list that ha)97 294.4 Q .33 -.165(ve l)-.22 H -.275(ow).165 G
(er priorities.).275 E 19.5(3I)72 311 S 2.75(fo)-19.5 G
(nly one RP remains in the list, use that RP)-2.75 E(.)-1.221 E 19.5(4I)
72 327.6 S 2.75(fm)-19.5 G
(ultiple RPs are in the list, use the PIM hash function to choose one.)
-2.75 E(Thus if tw)72 344.2 Q 2.75(oo)-.11 G 2.75(rm)-2.75 G
(ore group-range-to-RP mappings co)-2.75 E -.165(ve)-.165 G 2.75(rap)
.165 G(articular group, the one with the)-2.75 E
(longest mask is the mapping to use.)72 357.2 Q(If the mappings ha)5.5 E
.33 -.165(ve t)-.22 H(he same mask length, then the one).165 E
(with the highest priority is chosen.)72 370.2 Q
(If there is more than one matching entry with the same)5.5 E(longest m\
ask and the priorities are identical, then a hash function \(see Sectio\
n 4.7.2\) is applied to)72 383.2 Q(choose the RP)72 396.2 Q(.)-1.221 E
(This algorithm is in)72 412.8 Q -.22(vo)-.44 G -.11(ke).22 G 2.75(db)
.11 G 2.75(yaD)-2.75 G 2.75(Rw)-2.75 G
(hen it needs to determine an RP for a gi)-2.75 E -.165(ve)-.275 G 2.75
(ng).165 G(roup, e.g. upon)-2.75 E(reception of a pack)72 425.8 Q
(et or IGMP/MLD membership indication for a group for which the DR does)
-.11 E(not kno)72 438.8 Q 2.75(wt)-.275 G(he RP)-2.75 E 5.5(.I)-1.221 G
2.75(ti)-5.5 G 2.75(si)-2.75 G -2.09 -.44(nv o)-2.75 H -.11(ke).44 G
2.75(db).11 G 2.75(ya)-2.75 G .33 -.165(ny r)-2.75 H
(outer that has \(*,*,RP\) state when a pack).165 E(et is recei)-.11 E
-.165(ve)-.275 G 2.75(df).165 G(or)-2.75 E
(which there is no corresponding \(S,G\) or \(*,G\) entry)72 451.8 Q 5.5
(.F)-.715 G(urthermore, the mapping function is)-5.5 E(in)72 464.8 Q
-.22(vo)-.44 G -.11(ke).22 G 2.75(db).11 G 2.75(ya)-2.75 G
(ll routers upon recei)-2.75 E
(ving a \(*,G\) or \(*,*,RP\) Join/Prune message.)-.275 E(Note that if \
the set of possible group-range-to-RP mappings changes, each router wil\
l need to)72 481.4 Q(check whether an)72 494.4 Q 2.75(ye)-.165 G
(xisting groups are af)-2.915 E 2.75(fected. This)-.275 F(may)2.75 E
2.75(,f)-.715 G(or e)-2.75 E(xample, cause a DR or acting DR)-.165 E
(to re-join a group, or cause it to re-start re)72 507.4 Q
(gister encapsulation to the ne)-.165 E 2.75(wR)-.275 G -1.221(P.)-2.75
G/F2 11/Times-Italic@0 SF(Implementation note: the bootstr)97 524 Q
(ap mec)-.165 E(hanism described in RFC 2362 omitted step)-.165 E
(\(1\) abo)97 537 Q(ve)-.11 E 5.5(.H)-.165 G(owe)-5.5 E
(ver of the implementations we ar)-.165 E 2.75(ea)-.407 G(war)-2.75 E
2.75(eo)-.407 G .22 -.11(f, a)-2.75 H(ppr).11 E(oximately half)-.495 E
(performed step \(1\) anyway)97 550 Q 5.5(.I)-.605 G 2.75(ts)-5.5 G
(hould be noted that implementations of BSR that omit)-2.75 E
(step 1 will not corr)97 563 Q(ectly inter)-.407 E(oper)-.495 E
(ate with implementations of this speci\214cation when)-.165 E
(used with the BSR mec)97 576 Q(hanism described in [11].)-.165 E F1
2.75(4.7.2. Hash)72 605.6 R(Function)2.75 E F0(The hash function is use\
d by all routers within a domain, to map a group to one of the RPs from)
72 622.2 Q
(the matching set of group-range-to-RP mappings \(this set all ha)72
635.2 Q .33 -.165(ve t)-.22 H(he same longest mask length).165 E
(and same highest priority\). The algorithm tak)72 648.2 Q
(es as input the group address, and the addresses of)-.11 E
(the candidate RPs from the mappings, and gi)72 661.2 Q -.165(ve)-.275 G
2.75(sa).165 G 2.75(so)-2.75 G(utput one RP address to be used.)-2.75 E
(The protocol requires that all routers hash to the same RP within a do\
main \(e)72 687.2 Q(xcept for transients\).)-.165 E(The follo)72 700.2 Q
(wing hash function must be used in each router:)-.275 E(Fenner/Handle)
72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F
2.75(4.7.2. [P)2.75 F(age 80])-.165 E 0 Cg EP
%%Page: 81 81
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 19.5(1F)72 85 S(or RP address\
es in the matching group-range-to-RP mappings, compute a v)-19.665 E
(alue:)-.275 E -1.221(Va)97 104 S(lue\(G,M,C\(i\)\)=)1.221 E(\(11035152\
45 * \(\(1103515245 * \(G&M\)+12345\) XOR C\(i\)\) + 12345\) mod 2^31)
99.75 117 Q(where C\(i\) is the RP address and M is a hash-mask.)97
139.6 Q(If BSR is being used, the hash-mask is)5.5 E(gi)97 152.6 Q -.165
(ve)-.275 G 2.75(ni).165 G 2.75(nt)-2.75 G(he Bootstrap messages.)-2.75
E(If BSR is not being used, the alternati)5.5 E .33 -.165(ve m)-.275 H
(echanism that).165 E
(supplies the group-range-to-RP mappings may supply the v)97 165.6 Q
(alue, or else it def)-.275 E(aults to a mask)-.11 E(with the most sign\
i\214cant 30 bits being one for IPv4 and the most signi\214cant 126 bit\
s being)97 178.6 Q(one for IPv6.)97 191.6 Q(The hash-mask allo)5.5 E
(ws a small number of consecuti)-.275 E .33 -.165(ve g)-.275 H
(roups \(e.g., 4\) to).165 E(al)97 204.6 Q -.11(wa)-.11 G
(ys hash to the same RP).11 E 2.75(.F)-1.221 G
(or instance, hierarchically-encoded data can be sent on)-2.915 E
(consecuti)97 217.6 Q .33 -.165(ve g)-.275 H
(roup addresses to get the same delay and f).165 E
(ate-sharing characteristics.)-.11 E -.165(Fo)97 234.2 S 2.75(ra).165 G
(ddress f)-2.75 E(amilies other than IPv4, a 32-bit digest to be used a\
s C\(i\) and G must \214rst be)-.11 E(deri)97 247.2 Q -.165(ve)-.275 G
2.75(df).165 G(rom the actual RP or group address.)-2.75 E
(Such a digest method must be used)5.5 E
(consistently throughout the PIM domain. F)97 260.2 Q
(or IPv6 addresses, we recommend using the)-.165 E(equi)97 273.2 Q -.275
(va)-.275 G(lent IPv4 address for an IPv4-compatible address, and the e)
.275 E(xclusi)-.165 E -.165(ve)-.275 G(-or of each 32-bit).165 E(se)97
286.2 Q(gment of the address for all other IPv6 addresses.)-.165 E -.165
(Fo)5.5 G 2.75(re).165 G(xample, the digest of the IPv6)-2.915 E
(address 3f)97 299.2 Q(fe:b00:c18:1::10 w)-.275 E
(ould be computed as 0x3f)-.11 E(fe0b00 ^ 0x0c180001 ^ 0x00000000 ^)
-.275 E(0x00000010, where ^ represents the e)97 312.2 Q(xclusi)-.165 E
-.165(ve)-.275 G(-or operation.).165 E 19.5(2T)72 328.8 S
(he candidate RP with the highest resulting hash v)-19.5 E
(alue is then the RP chosen by this Hash)-.275 E 2.75(Function. If)97
341.8 R(more than one RP has the same highest hash v)2.75 E
(alue, the RP with the highest IP)-.275 E(address is chosen.)97 354.8 Q
/F1 11/Times-Bold@0 SF(4.8.)72 384.4 Q/F2 13/Times-Bold@0 SF(Sour)5.5 E
(ce-Speci\214c Multicast)-.234 E F0(The Source-Speci\214c Multicast \(S\
SM\) service model [5] can be implemented with a strict subset)72 401 Q
(of the PIM-SM protocol mechanisms.)72 414 Q(Both re)5.5 E
(gular IP Multicast and SSM semantics can coe)-.165 E(xist)-.165 E(on a\
 single router and both can be implemented using the PIM-SM protocol.)72
427 Q 2.75(Ar)5.5 G(ange of multicast)-2.75 E(addresses, currently 232.\
0.0.0/8 in IPv4 and FF3x::/32 for IPv6, is reserv)72 440 Q
(ed for SSM, and the)-.165 E(choice of semantics is determined by the m\
ulticast group address in both data pack)72 453 Q(ets and PIM)-.11 E
(messages.)72 466 Q F1 2.75(4.8.1. Pr)72 492 R(otocol Modi\214cations f)
-.198 E(or SSM destination addr)-.275 E(esses)-.198 E F0(The follo)72
508.6 Q(wing rules o)-.275 E -.165(ve)-.165 G
(rride the normal PIM-SM beha).165 E
(vior for a multicast address G in the SSM)-.22 E(range:)72 521.6 Q 7.15
<8341>72 538.2 S(router MUST NO)-4.4 E 2.75(Ts)-.44 G
(end a \(*,G\) Join/Prune message for an)-2.75 E 2.75(yr)-.165 G(eason.)
-2.75 E 7.15<8341>72 554.8 S(router MUST NO)-4.4 E 2.75(Ts)-.44 G
(end an \(S,G,rpt\) Join/Prune message for an)-2.75 E 2.75(yr)-.165 G
(eason.)-2.75 E 7.15<8341>72 571.4 S(router MUST NO)-4.4 E 2.75(Ts)-.44
G(end a Re)-2.75 E(gister message for an)-.165 E 2.75(yp)-.165 G(ack)
-2.75 E(et that is destined to an SSM)-.11 E(address.)83 584.4 Q 7.15
<8341>72 601 S(router MUST NO)-4.4 E 2.75(Tf)-.44 G(orw)-2.75 E
(ard pack)-.11 E(ets based on \(*,G\) or \(S,G,rpt\) state.)-.11 E
(The \(*,G\) and)5.5 E
(\(S,G,rpt\) -related state summarization macros are NULL for an)83 614
Q 2.75(yS)-.165 G(SM address, for the purposes)-2.75 E(of pack)83 627 Q
(et forw)-.11 E(arding.)-.11 E 7.15<8341>72 643.6 S
(router acting as an RP MUST NO)-4.4 E 2.75(Tf)-.44 G(orw)-2.75 E
(ard an)-.11 E 2.75(yR)-.165 G -.165(eg)-2.75 G(ister).165 E
(-encapsulated pack)-.22 E(et that has an)-.11 E
(SSM destination address.)83 656.6 Q(The last tw)72 673.2 Q 2.75(or)-.11
G(ules are present to deal with "le)-2.75 E -.055(ga)-.165 G -.165(cy)
.055 G 2.75("r).165 G(outers una)-2.75 E -.11(wa)-.165 G
(re of SSM that may be sending).11 E
(\(*,G\) and \(S,G,rpt\) Join/Prunes, or Re)72 686.2 Q
(gister messages for SSM destination addresses.)-.165 E(Additionally:)72
702.8 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.8.1. [P)2.75 F(age 81])-.165 E 0 Cg EP
%%Page: 82 82
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 7.15<8341>72 85 S(router MA)
-4.4 E 2.75(Yb)-1.155 G 2.75(ec)-2.75 G(on\214gured to adv)-2.75 E
(ertise itself as a Candidate RP for an SSM address.)-.165 E(If so, it)
5.5 E(SHOULD respond with a Re)83 98 Q(gister)-.165 E
(-Stop message to an)-.22 E 2.75(yR)-.165 G -.165(eg)-2.75 G
(ister message containing a pack).165 E(et)-.11 E
(destined for an SSM address.)83 111 Q 7.15<8341>72 127.6 S(router MA)
-4.4 E 2.75(Yo)-1.155 G(ptimize out the creation and maintenance of \(S\
,G,rpt\) and \(*,G\) state for SSM)-2.75 E
(destination addresses -- this state is not needed for SSM pack)83 140.6
Q(ets.)-.11 E/F1 11/Times-Bold@0 SF 2.75(4.8.2. PIM-SSM-only)72 166.6 R
(Routers)2.75 E F0(An implementor may choose to implement only the subs\
et of PIM Sparse-Mode that pro)72 183.2 Q(vides)-.165 E(SSM forw)72
196.2 Q(arding semantics.)-.11 E 2.75(AP)72 212.8 S
(IM-SSM-only router MUST implement the follo)-2.75 E
(wing portions of this speci\214cation:)-.275 E 18.15<8355>72 233 S
(pstream \(S,G\) state machine \(Section 4.5.7\))-18.15 E 18.15<8344>72
249.6 S -.275(ow)-18.15 G
(nstream \(S,G\) state machine \(Section 4.5.3\)).275 E 18.15<8328>72
266.2 S(S,G\) Assert state machine \(Section 4.6.1\))-18.15 E 18.15
<8348>72 282.8 S(ello messages, neighbor disco)-18.15 E -.165(ve)-.165 G
(ry and DR election \(Section 4.3\)).165 E 18.15<8350>72 299.4 S(ack)
-18.315 E(et forw)-.11 E(arding rules \(Section 4.2\))-.11 E 2.75(AP)72
316 S(IM-SSM-only router does not need to implement the follo)-2.75 E
(wing protocol elements:)-.275 E 18.15<8352>72 336.2 S -.165(eg)-18.15 G
(ister state machine \(Section 4.4\)).165 E 18.15<8328>72 352.8 S
(*,G\), \(S,G,rpt\) and \(*,*,RP\) Do)-18.15 E
(wnstream state machines \(Sections 4.5.2, 4.5.4, and 4.5.1\))-.275 E
18.15<8328>72 369.4 S(*,G\), \(S,G,rpt\), and \(*,*,RP\) Upstream state\
 machines \(Sections 4.5.6, 4.5.8, and 4.5.5\))-18.15 E 18.15<8328>72
386 S(*,G\) Assert state machine \(Section 4.6.2\))-18.15 E 18.15<8342>
72 402.6 S(ootstrap RP Election \(Section 4.7\))-18.15 E 18.15<834b>72
419.2 S(eepali)-18.425 E .33 -.165(ve T)-.275 H(imer)-.22 E 18.15<8353>
72 435.8 S(ptBit \(Section 4.2.2\))-18.15 E(The)72 452.4 Q/F2 11
/Courier@0 SF(Keepalive Timer)2.75 E F0(should be treated as al)2.75 E
-.11(wa)-.11 G(ys running and).11 E F2(SptBit)2.75 E F0
(should be treated as)2.75 E(being al)72 465.4 Q -.11(wa)-.11 G
(ys set for an SSM address.).11 E(Additionally)5.5 E 2.75(,t)-.715 G
(he P)-2.75 E(ack)-.165 E(et forw)-.11 E(arding rules of Section 4.2)
-.11 E(can be simpli\214ed in a PIM-SSM-only router:)72 478.4 Q F2(if\(\
 iif == RPF_interface\(S\) AND UpstreamJPState\(S,G\) == Joined \) {)83
497.4 Q(oiflist = inherited_olist\(S,G\))124.8 510.4 Q 6.6(}e)98.4 523.4
S(lse if\( iif is in inherited_olist\(S,G\) \) {)-6.6 E
(send Assert\(S,G\) on iif)124.8 536.4 Q(})98.4 549.4 Q
(oiflist = oiflist)98.4 575.4 Q/F3 11/Symbol SF(-)6.88 E 220.5 572.65
2.75 DC .44 LW ST F2(iif)230.4 575.4 Q
(forward packet on all interfaces in oiflist)98.4 588.4 Q F0
(This is nothing more than the reduction of the normal PIM-SM forw)72
607.4 Q(arding rule, with all \(S,G,rpt\))-.11 E
(and \(*,G\) clauses replaced with NULL.)72 620.4 Q F1(4.9.)72 646.4 Q
/F4 13/Times-Bold@0 SF(PIM P)5.5 E(ack)-.13 E(et F)-.13 E(ormats)-.325 E
F0(This section describes the details of the pack)72 663 Q
(et formats for PIM control messages.)-.11 E
(All PIM control messages ha)72 679.6 Q .33 -.165(ve I)-.22 H 2.75(Pp)
.165 G(rotocol number 103.)-2.75 E
(PIM messages are either unicast \(e.g.)72 696.2 Q(Re)5.5 E
(gisters and Re)-.165 E(gister)-.165 E
(-Stop\), or multicast with TTL 1 to)-.22 E(the `)72 709.2 Q(ALL-PIM-R)
-.88 E(OUTERS' group \(e.g. Join/Prune, Asserts, etc.\).)-.44 E
(The source address used for)5.5 E(unicast messages is a domain-wide re\
achable address; the source address used for multicast)72 722.2 Q
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 169.221
(elas Section)-.165 F 2.75(4.9. [P)2.75 F(age 82])-.165 E 0 Cg EP
%%Page: 83 83
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(messages is the link-local address of the interf)72 85 Q
(ace on which the message is being sent.)-.11 E(The IPv4 `)72 101.6 Q
(ALL-PIM-R)-.88 E(OUTERS' group is `224.0.0.13'.)-.44 E(The IPv6 `)5.5 E
(ALL-PIM-R)-.88 E(OUTERS' group)-.44 E(is `f)72 114.6 Q(f02::d'.)-.275 E
(The PIM header common to all PIM messages is:)72 131.2 Q/F1 11
/Courier@0 SF 125.4(0123)78.6 150.2 S 6.6
(01234567890123456789012345678901)78.6 163.2 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
176.2 Q(|PIM Ver| Type)72 189.2 Q 19.8(|R)13.2 G 19.8(eserved |)-19.8 F
72.6(Checksum |)72.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
202.2 Q/F2 11/Times-Bold@0 SF(PIM V)72 224.8 Q(er)-1.1 E F0(PIM V)97
237.8 Q(ersion number is 2.)-1.221 E F2 -.814(Ty)72 254.4 S(pe).814 E F0
-.88(Ty)97 267.4 S(pes for speci\214c PIM messages.).88 E(PIM T)5.5 E
(ypes are:)-.88 E(Message T)72 290 Q 120.736(ype Destination)-.88 F .44
LW 417.334 294.75 72 294.75 DL 2.75(0=H)72 305 S 142.054(ello Multicast)
-2.75 F(to ALL-PIM-R)2.75 E(OUTERS)-.44 E 2.75(1=R)72 318 S -.165(eg)
-2.75 G 129.998(ister Unicast).165 F(to RP)2.75 E 2.75(2=R)72 331 S
-.165(eg)-2.75 G(ister).165 E 106.381(-Stop Unicast)-.22 F
(to source of Re)2.75 E(gister pack)-.165 E(et)-.11 E 2.75(3=J)72 344 S
119.438(oin/Prune Multicast)-2.75 F(to ALL-PIM-R)2.75 E(OUTERS)-.44 E
2.75(4=B)72 357 S 123.717(ootstrap Multicast)-2.75 F(to ALL-PIM-R)2.75 E
(OUTERS)-.44 E 2.75(5=A)72 370 S 138.391(ssert Multicast)-2.75 F
(to ALL-PIM-R)2.75 E(OUTERS)-.44 E 2.75(6=G)72 383 S
(raft \(used in PIM-DM only\))-2.75 E(Multicast to ALL-PIM-R)38.489 E
(OUTERS)-.44 E 2.75(7=G)72 396 S(raft-Ack \(used in PIM-DM only\))-2.75
E(Unicast to source of Graft pack)16.5 E(et)-.11 E 2.75(8=C)72 409 S
(andidate-RP-Adv)-2.75 E 36.509(ertisement Unicast)-.165 F(to Domain')
2.75 E 2.75(sB)-.605 G(SR)-2.75 E F2(Reser)72 431.6 Q -.11(ve)-.11 G(d)
.11 E F0(Set to zero on transmission.)97 444.6 Q(Ignored upon receipt.)
5.5 E F2(Checksum)72 474.2 Q F0
(The checksum is a standard IP checksum, i.e.)97 487.2 Q
(the 16-bit one')5.5 E 2.75(sc)-.605 G(omplement of the one')-2.75 E(s)
-.605 E(complement sum of the entire PIM message, e)97 500.2 Q
(xcluding the "Multicast data pack)-.165 E(et" section)-.11 E(of the Re)
97 513.2 Q(gister message.)-.165 E -.165(Fo)5.5 G 2.75(rc).165 G
(omputing the checksum, the checksum \214eld is zeroed.)-2.75 E(If the)
5.5 E(pack)97 526.2 Q(et')-.11 E 2.75(sl)-.605 G(ength is not an inte)
-2.75 E(gral number of 16-bit w)-.165 E(ords, the pack)-.11 E
(et is padded with a)-.11 E
(trailing byte of zero before performing the checksum.)97 539.2 Q -.165
(Fo)97 555.8 S 2.75(rI).165 G(Pv6, the checksum also includes the IPv6 \
"pseudo-header", as speci\214ed in RFC 2460,)-2.75 E(Section 8.1 [4]. T\
his "pseudo-header" is prepended to the PIM header for the purposes of)
97 568.8 Q(calculating the checksum.)97 581.8 Q(The "Upper)5.5 E
(-Layer P)-.22 E(ack)-.165 E(et Length" in the pseudo-header is set to)
-.11 E(the length of the PIM message, e)97 594.8 Q(xcept in Re)-.165 E
(gister messages where it is set to the length of)-.165 E(the PIM re)97
607.8 Q(gister header \(8\).)-.165 E(The Ne)5.5 E(xt Header v)-.165 E
(alue used in the pseudo-header is 103.)-.275 E(If a message is recei)72
624.4 Q -.165(ve)-.275 G 2.75(dw).165 G(ith an unrecognized PIM V)-2.75
E(er or T)-1.221 E(ype \214eld or a message')-.88 E 2.75(sd)-.605 G
(estination)-2.75 E(does not correspond to the table abo)72 637.4 Q
-.165(ve)-.165 G 2.75(,i).165 G 2.75(tM)-2.75 G
(UST be discarded and an error message SHOULD be)-2.75 E
(logged to the administrator in a rate limited manner)72 650.4 Q(.)-.605
E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.9.1. [P)2.75 F(age 83])-.165 E 0 Cg EP
%%Page: 84 84
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF 2.75
(4.9.1. Encoded)72 85 R(Sour)2.75 E(ce and Gr)-.198 E(oup Addr)-.198 E
(ess F)-.198 E(ormats)-.275 E(Encoded-Unicast addr)72 114.6 Q(ess)-.198
E F0(An Encoded-Unicast address tak)72 131.2 Q(es the follo)-.11 E
(wing format:)-.275 E/F2 11/Courier@0 SF 125.4(0123)78.6 150.2 S 6.6
(01234567890123456789012345678901)78.6 163.2 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
176.2 Q 13.2(|A)72 189.2 S(ddr Family)-13.2 E 6.6(|E)13.2 G
(ncoding Type |)-6.6 E(Unicast Address)33 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...)72 202.2 Q F1
(Addr F)72 224.8 Q(amily)-.275 E F0(The PIM address f)97 237.8 Q
(amily of the `Unicast Address' \214eld of this address.)-.11 E -1.221
(Va)97 254.4 S(lues of 0-127 are as assigned by the IAN)1.221 E 2.75(Af)
-.385 G(or Internet Address F)-2.75 E(amilies in [6]. V)-.165 E(alues)
-1.221 E(128-250 are reserv)97 267.4 Q(ed to be assigned by the IAN)
-.165 E 2.75(Af)-.385 G(or PIM-speci\214c Address F)-2.75 E(amilies.)
-.165 E -1.221(Va)97 280.4 S(lues 251 though 255 are designated for pri)
1.221 E -.275(va)-.275 G(te use.).275 E
(As there is no assignment authority)5.5 E
(for this space, collisions should be e)97 293.4 Q(xpected.)-.165 E F1
(Encoding T)72 310 Q(ype)-.814 E F0
(The type of encoding used within a speci\214c Address F)97 323 Q(amily)
-.165 E 5.5(.T)-.715 G(he v)-5.5 E(alue `0' is reserv)-.275 E(ed for)
-.165 E(this \214eld, and represents the nati)97 336 Q .33 -.165(ve e)
-.275 H(ncoding of the Address F).165 E(amily)-.165 E(.)-.715 E F1
(Unicast Addr)72 365.6 Q(ess)-.198 E F0
(The unicast address as represented by the gi)97 378.6 Q -.165(ve)-.275
G 2.75(nA).165 G(ddress F)-2.75 E(amily and Encoding T)-.165 E(ype.)-.88
E F1(Encoded-Gr)72 417.6 Q(oup addr)-.198 E(ess)-.198 E F0
(Encoded-Group addresses tak)72 434.2 Q 2.75(et)-.11 G(he follo)-2.75 E
(wing format:)-.275 E F2 125.4(0123)78.6 453.2 S 6.6
(01234567890123456789012345678901)78.6 466.2 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
479.2 Q 13.2(|A)72 492.2 S(ddr Family)-13.2 E 6.6(|E)13.2 G
(ncoding Type |B| Reserved)-6.6 E 6.6(|Z| Mask)13.2 F 26.4(Len |)6.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
505.2 Q 105.6(|G)72 518.2 S(roup multicast Address)-105.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...)72 531.2 Q F1(Addr F)72 553.8
Q(amily)-.275 E F0(described abo)97 566.8 Q -.165(ve)-.165 G(.).165 E F1
(Encoding T)72 596.4 Q(ype)-.814 E F0(described abo)97 609.4 Q -.165(ve)
-.165 G(.).165 E F1([B]idir)72 639 Q(ectional PIM)-.198 E F0
(indicates the group range should use Bidirectional PIM [12]. F)97 652 Q
(or PIM-SM de\214ned in this)-.165 E
(speci\214cation, this bit MUST be zero.)97 665 Q F1(Reser)72 694.6 Q
-.11(ve)-.11 G(d).11 E F0 -.385(Tr)97 707.6 S
(ansmitted as zero. Ignored upon receipt.).385 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.9.1. [P)2.75 F(age 84])-.165 E 0 Cg EP
%%Page: 85 85
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF
(Admin Scope [Z]one)72 85 Q F0
(indicates the group range is an admin scope zone.)97 98 Q
(This is used in the Bootstrap Router)5.5 E(Mechanism [11] only)97 111 Q
5.5(.F)-.715 G
(or all other purposes, this bit is set to zero and ignored on receipt.)
-5.665 E F1(Mask Len)72 140.6 Q F0
(The Mask length \214eld is 8 bits. The v)97 153.6 Q
(alue is the number of contiguous one bits left justi\214ed)-.275 E(use\
d as a mask which, combined with the group address, describes a range o\
f groups. It is)97 166.6 Q
(less than or equal to the address length in bits for the gi)97 179.6 Q
-.165(ve)-.275 G 2.75(nA).165 G(ddress F)-2.75 E(amily and Encoding)
-.165 E -.88(Ty)97 192.6 S(pe. If the message is sent for a single grou\
p then the Mask length must equal the address).88 E
(length in bits for the gi)97 205.6 Q -.165(ve)-.275 G 2.75(nA).165 G
(ddress F)-2.75 E(amily and Encoding T)-.165 E 2.75(ype. \(e.g.)-.88 F
(32 for IPv4 nati)2.75 E -.165(ve)-.275 G(encoding, 128 for IPv6 nati)97
218.6 Q .33 -.165(ve e)-.275 H(ncoding\).).165 E F1(Gr)72 248.2 Q
(oup multicast Addr)-.198 E(ess)-.198 E F0(Contains the group address.)
97 261.2 Q F1(Encoded-Sour)72 300.2 Q(ce addr)-.198 E(ess)-.198 E F0
(Encoded-Source address tak)72 316.8 Q(es the follo)-.11 E(wing format:)
-.275 E/F2 11/Courier@0 SF 125.4(0123)78.6 335.8 S 6.6
(01234567890123456789012345678901)78.6 348.8 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
361.8 Q 6.6(|A)72 374.8 S(ddr Family)-6.6 E 6.6(|E)19.8 G
(ncoding Type | Rsrvd)-6.6 E 6.6(|S|W|R| Mask)19.8 F 26.4(Len |)6.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
387.8 Q 158.4(|S)72 400.8 S(ource Address)-158.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...)72 413.8 Q F1(Addr F)72 436.4 Q
(amily)-.275 E F0(described abo)97 449.4 Q -.165(ve)-.165 G(.).165 E F1
(Encoding T)72 479 Q(ype)-.814 E F0(described abo)97 492 Q -.165(ve)
-.165 G(.).165 E F1(Reser)72 521.6 Q -.11(ve)-.11 G(d).11 E F0 -.385(Tr)
97 534.6 S(ansmitted as zero, ignored on receipt.).385 E F1(S)72 564.2 Q
F0(The Sparse bit is a 1 bit v)18.884 E(alue, set to 1 for PIM-SM.)-.275
E(It is used for PIM v)5.5 E(ersion 1)-.165 E(compatibility)97 577.2 Q
(.)-.715 E F1(W)72 606.8 Q F0(The WC \(or W)14 E
(ildCard\) bit is a 1 bit v)-.44 E
(alue for use with PIM Join/Prune messages \(see)-.275 E
(Section 4.9.5.1 \).)97 619.8 Q F1(R)72 649.4 Q F0(The RPT \(or Rendezv)
17.058 E(ous Point T)-.22 E(ree\) bit is a 1 bit v)-.385 E
(alue for use with PIM Join/Prune)-.275 E(messages \(see Section 4.9.5.\
1 \). If the WC bit is 1, the RPT bit MUST be 1.)97 662.4 Q F1(Mask Len)
72 692 Q F0(The mask length \214eld is 8 bits. The v)97 705 Q
(alue is the number of contiguous one bits left justi\214ed)-.275 E(use\
d as a mask which, combined with the Source Address, describes a source\
 subnet. The)97 718 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)
-.385 E 160.971(elas Section)-.165 F 2.75(4.9.1. [P)2.75 F(age 85])-.165
E 0 Cg EP
%%Page: 86 86
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(mask length MUST be equal to the mask length in bits for the gi)97 85 Q
-.165(ve)-.275 G 2.75(nA).165 G(ddress F)-2.75 E(amily and)-.165 E
(Encoding T)97 98 Q(ype \(32 for IPv4 nati)-.88 E .33 -.165(ve a)-.275 H
(nd 128 for IPv6 nati).165 E -.165(ve)-.275 G 2.75(\). A).165 F
(router SHOULD ignore an)2.75 E(y)-.165 E(messages recei)97 111 Q -.165
(ve)-.275 G 2.75(dw).165 G(ith an)-2.75 E 2.75(yo)-.165 G
(ther mask length.)-2.75 E/F1 11/Times-Bold@0 SF(Sour)72 140.6 Q
(ce Addr)-.198 E(ess)-.198 E F0(The source address.)97 153.6 Q F1 2.75
(4.9.2. Hello)72 192.6 R(Message F)2.75 E(ormat)-.275 E F0
(It is sent periodically by routers on all interf)72 209.2 Q(aces.)-.11
E/F2 11/Courier@0 SF 125.4(0123)78.6 228.2 S 6.6
(01234567890123456789012345678901)78.6 241.2 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
254.2 Q(|PIM Ver| Type)72 267.2 Q 19.8(|R)13.2 G 19.8(eserved |)-19.8 F
72.6(Checksum |)72.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
280.2 Q 66(|O)72 293.2 S 66(ptionType |)-66 F 59.4(OptionLength |)59.4 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
306.2 Q 171.6(|O)72 319.2 S 165(ptionValue |)-171.6 F 198(|.)72 332.2 S
191.4(.. |)-198 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
345.2 Q 204.6(|.|)72 358.2 S 204.6(|.|)72 371.2 S 204.6(|.|)72 384.2 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
397.2 Q 66(|O)72 410.2 S 66(ptionType |)-66 F 59.4(OptionLength |)59.4 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
423.2 Q 171.6(|O)72 436.2 S 165(ptionValue |)-171.6 F 198(|.)72 449.2 S
191.4(.. |)-198 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
462.2 Q F1(PIM V)72 484.8 Q(ersion, T)-1.1 E(ype, Reser)-.814 E -.11(ve)
-.11 G(d, Checksum).11 E F0(Described in Section 4.9.)97 497.8 Q F1
(OptionT)72 514.4 Q(ype)-.814 E F0(The type of the option gi)97 527.4 Q
-.165(ve)-.275 G 2.75(ni).165 G 2.75(nt)-2.75 G(he follo)-2.75 E
(wing OptionV)-.275 E(alue \214eld.)-1.221 E F1(OptionLength)72 557 Q F0
(The length of the OptionV)97 570 Q(alue \214eld in bytes.)-1.221 E F1
(OptionV)72 599.6 Q(alue)-1.012 E F0 2.75(Av)97 612.6 S
(ariable length \214eld, carrying the v)-3.025 E(alue of the option.)
-.275 E(The Option \214elds may contain the follo)97 629.2 Q(wing v)
-.275 E(alues:)-.275 E 7.15<834f>97 645.8 S(ptionT)-7.15 E
(ype 1: Holdtime)-.88 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)
-.385 E 160.971(elas Section)-.165 F 2.75(4.9.2. [P)2.75 F(age 86])-.165
E 0 Cg EP
%%Page: 87 87
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF 125.4(0123)
114.6 85 S 6.6(01234567890123456789012345678901)114.6 98 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
111 Q 66(|T)108 124 S(ype = 1)-66 E 59.4(|L)85.8 G(ength = 2)-59.4 E(|)
79.2 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
137 Q 66(|H)108 150 S 79.2(oldtime |)-66 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108 163 Q F0
(Holdtime is the amount of time a recei)108 182 Q -.165(ve)-.275 G 2.75
(rm).165 G(ust k)-2.75 E(eep the neighbor reachable, in seconds.)-.11 E
(If the Holdtime is set to `0xf)108 195 Q -1.595 -.275(fff ')-.275 H
2.75(,t).275 G(he recei)-2.75 E -.165(ve)-.275 G 2.75(ro).165 G 2.75(ft)
-2.75 G(his message ne)-2.75 E -.165(ve)-.275 G 2.75(rt).165 G
(imes out the)-2.75 E(neighbor)108 208 Q 2.75(.T)-.605 G
(his may be used with dial-on-demand links, to a)-2.75 E -.22(vo)-.22 G
(id k).22 E(eeping the link up with)-.11 E(periodic Hello messages.)108
221 Q(Hello messages with a Holdtime v)108 247 Q
(alue set to `0' are also sent by a router on an interf)-.275 E(ace)-.11
E(about to go do)108 260 Q
(wn or changing IP address \(see Section 4.3.1\). These are ef)-.275 E
(fecti)-.275 E -.165(ve)-.275 G(ly).165 E
(goodbye messages and the recei)108 273 Q
(ving routers should immediately time out the neighbor)-.275 E
(information for the sender)108 286 Q(.)-.605 E 7.15<834f>97 302.6 S
(ptionT)-7.15 E(ype 2: LAN Prune Delay)-.88 E F1 125.4(0123)114.6 321.6
S 6.6(01234567890123456789012345678901)114.6 334.6 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
347.6 Q 66(|T)108 360.6 S(ype = 2)-66 E 66(|L)85.8 G(ength = 4)-66 E(|)
72.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
373.6 Q 33(|T| Propagation_Delay | Override_Interval)108 386.6 R(|)52.8
E(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
399.6 Q F0(The LAN Prune Delay option is used to tune the prune propag)
108 418.6 Q(ation delay on multi-access)-.055 E 2.75(LANs. The)108 431.6
R 2.75(Tb)2.75 G(it speci\214es the ability of the sending router to di\
sable joins suppression.)-2.75 E(Propag)108 444.6 Q(ation_Delay and Ov)
-.055 E(erride_Interv)-.165 E(al are time interv)-.275 E
(als in units of milliseconds.)-.275 E(A)5.5 E
(router originating a LAN Prune Delay option on interf)108 457.6 Q
(ace I sets the Propag)-.11 E(ation_Delay)-.055 E
(\214eld to the con\214gured v)108 470.6 Q(alue of Propag)-.275 E
(ation_Delay\(I\) and the v)-.055 E(alue of the)-.275 E(Ov)108 483.6 Q
(erride_Interv)-.165 E(al \214eld to the v)-.275 E(alue of Ov)-.275 E
(erride_Interv)-.165 E 2.75(al\(I\). On)-.275 F 2.75(ar)2.75 G(ecei)
-2.75 E(ving router the)-.275 E -.275(va)108 496.6 S
(lues of the \214elds are used to tune the v).275 E(alue of the Ef)-.275
E(fecti)-.275 E -.165(ve)-.275 G(_Ov).165 E(erride_Interv)-.165 E
(al\(I\) and its)-.275 E(deri)108 509.6 Q -.165(ve)-.275 G 2.75(dt).165
G(imer v)-2.75 E(alues. Section 4.3.3 describes ho)-.275 E 2.75(wt)-.275
G(hese v)-2.75 E(alues af)-.275 E(fect the beha)-.275 E(vior of a)-.22 E
(router)108 522.6 Q(.)-.605 E 7.15<834f>97 539.2 S(ptionT)-7.15 E
(ype 3 to 16: reserv)-.88 E(ed to be de\214ned in future v)-.165 E
(ersions of this document.)-.165 E 7.15<834f>97 555.8 S(ptionT)-7.15 E
(ype 18: deprecated and should not be used.)-.88 E 7.15<834f>97 572.4 S
(ptionT)-7.15 E(ype 19: DR Priority)-.88 E F1 125.4(0123)114.6 591.4 S
6.6(01234567890123456789012345678901)114.6 604.4 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
617.4 Q 66(|T)108 630.4 S(ype = 19)-66 E 66(|L)79.2 G(ength = 4)-66 E(|)
72.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
643.4 Q 165(|D)108 656.4 S 6.6(RP)-165 G 171.6(riority |)-6.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
669.4 Q F0(DR Priority is a 32-bit unsigned number and should be consid\
ered in the DR election as)108 688.4 Q(described in Section 4.3.2.)108
701.4 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.9.2. [P)2.75 F(age 87])-.165 E 0 Cg EP
%%Page: 88 88
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 7.15<834f>97 85 S(ptionT)-7.15
E(ype 20: Generation ID)-.88 E/F1 11/Courier@0 SF 125.4(0123)114.6 104 S
6.6(01234567890123456789012345678901)114.6 117 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
130 Q 66(|T)108 143 S(ype = 20)-66 E 66(|L)79.2 G(ength = 4)-66 E(|)72.6
E(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
156 Q 151.8(|G)108 169 S(eneration ID)-151.8 E(|)178.2 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
182 Q F0(Generation ID is a random 32-bit v)108 201 Q
(alue for the interf)-.275 E(ace on which the Hello message is)-.11 E
2.75(sent. The)108 214 R(Generation ID is re)2.75 E(generated whene)
-.165 E -.165(ve)-.275 G 2.75(rP).165 G(IM forw)-2.75 E
(arding is started or restarted)-.11 E(on the interf)108 227 Q(ace.)-.11
E 7.15<834f>97 243.6 S(ptionT)-7.15 E(ype 24: Address List)-.88 E F1
125.4(0123)114.6 262.6 S 6.6(01234567890123456789012345678901)114.6
275.6 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
288.6 Q 66(|T)108 301.6 S(ype = 24)-66 E 39.6(|L)79.2 G
(ength = <Variable>)-39.6 E(|)39.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
314.6 Q 59.4(|S)108 327.6 S
(econdary Address 1 \(Encoded-Unicast format\))-59.4 E(|)66 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
340.6 Q(...)312.6 353.6 Q
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
366.6 Q 59.4(|S)108 379.6 S
(econdary Address N \(Encoded-Unicast format\))-59.4 E(|)66 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)108
392.6 Q F0(The contents of the Address List Hello option are described \
in Section 4.3.4. All)108 411.6 Q(addresses within a single Address Lis\
t must belong to the same address f)108 424.6 Q(amily)-.11 E(.)-.715 E
(OptionT)97 441.2 Q(ypes 17 thru 65000 are assigned by the IAN)-.88 E
2.75(A. OptionT)-.385 F(ypes 65001 through 65535)-.88 E(are reserv)97
454.2 Q(ed for Pri)-.165 E -.275(va)-.275 G
(te Use, as de\214ned in [8].).275 E(Unkno)97 467.2 Q
(wn options MUST be ignored, and MUST NO)-.275 E 2.75(Tp)-.44 G(re)-2.75
E -.165(ve)-.275 G(nt a neighbor relationship from).165 E/F2 10/Symbol
SF<ef>555 479.2 Q<ef>-4.94 -10 M F0(being formed.)97 480.2 Q
(The "Holdtime" option MUST be implemented; the "DR Priority" and)5.5 E
("Generation ID" options SHOULD be implemented. The "Address List" opti\
on MUST be)97 493.2 Q(implemented for IPv6.)97 506.2 Q/F3 11
/Times-Bold@0 SF 2.75(4.9.3. Register)72 545.2 R(Message F)2.75 E(ormat)
-.275 E F0 2.75(AR)72 561.8 S -.165(eg)-2.75 G(ister message is sent by\
 the DR or a PMBR to the RP when a multicast pack).165 E(et needs to be)
-.11 E(transmitted on the RP-tree.)72 574.8 Q
(The IP source address is set to the address of the DR, the destination)
5.5 E(address to the RP')72 587.8 Q 2.75(sa)-.605 G 2.75(ddress. The)
-2.75 F(IP TTL of the PIM pack)2.75 E(et is the system')-.11 E 2.75(sn)
-.605 G(ormal unicast TTL.)-2.75 E(Fenner/Handle)72 769 Q(y/Holbrook/K)
-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75(4.9.3. [P)2.75 F
(age 88])-.165 E 0 Cg EP
%%Page: 89 89
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF 125.4(0123)
78.6 85 S 6.6(01234567890123456789012345678901)78.6 98 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
111 Q(|PIM Ver| Type)72 124 Q 19.8(|R)13.2 G 19.8(eserved |)-19.8 F 72.6
(Checksum |)72.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
137 Q 145.2(|B|N| Reserved2)72 150 R(|)178.2 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
163 Q 415.8(||)72 176 S 138.6(.M)72 189 S(ulticast data packet)-138.6 E
(.)138.6 E 415.8(||)72 202 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
215 Q/F2 11/Times-Bold@0 SF(PIM V)72 237.6 Q(ersion, T)-1.1 E
(ype, Reser)-.814 E -.11(ve)-.11 G(d, Checksum).11 E F0
(Described in Section 4.9. Note that in order to reduce encapsulation o)
97 250.6 Q -.165(ve)-.165 G(rhead, the checksum).165 E(for Re)97 263.6 Q
(gisters is done only on \214rst 8 bytes of the pack)-.165 E
(et, including the PIM header and the)-.11 E(ne)97 276.6 Q
(xt 4 bytes, e)-.165 E(xcluding the data pack)-.165 E(et portion. F)-.11
E(or interoperability reasons, a message)-.165 E
(carrying a checksum calculated o)97 289.6 Q -.165(ve)-.165 G 2.75(rt)
.165 G(he entire PIM Re)-2.75 E(gister message should also be)-.165 E
2.75(accepted. When)97 302.6 R
(calculating the checksum, the IPv6 pseudoheader "Upper)2.75 E(-Layer P)
-.22 E(ack)-.165 E(et)-.11 E(Length" is set to 8.)97 315.6 Q F2(B)72
345.2 Q F0(The Border bit. If the router is a DR for a source that it i\
s directly connected to, it sets the B)17.663 E(bit to 0. If the router\
 is a PMBR for a source in a directly connected cloud, it sets the B bi\
t)97 358.2 Q(to 1.)97 371.2 Q F2(N)72 400.8 Q F0(The Null-Re)17.058 E
(gister bit. Set to 1 by a DR that is probing the RP before e)-.165 E
(xpiring its local)-.165 E(Re)97 413.8 Q(gister)-.165 E(-Suppression T)
-.22 E(imer)-.385 E 2.75(.S)-.605 G(et to 0 otherwise.)-2.75 E F2(Reser)
72 443.4 Q -.11(ve)-.11 G(d2).11 E F0 -.385(Tr)97 456.4 S
(ansmitted as zero, ignored on receipt.).385 E F2(Multicast data pack)72
486 Q(et)-.11 E F0(The original pack)97 499 Q(et sent by the source.)
-.11 E(This pack)5.5 E(et must be of the same address f)-.11 E(amily as)
-.11 E(the encapsulating PIM pack)97 512 Q(et, e.g. an IPv6 data pack)
-.11 E(et must be encapsulated in an IPv6)-.11 E(PIM pack)97 525 Q 2.75
(et. Note)-.11 F(that the TTL of the original pack)2.75 E
(et is decremented before encapsulation,)-.11 E(just lik)97 538 Q 2.75
(ea)-.11 G .33 -.165(ny o)-2.75 H(ther pack).165 E(et that is forw)-.11
E 2.75(arded. In)-.11 F(addition, the RP decrements the TTL after)2.75 E
(decapsulating, before forw)97 551 Q(arding the pack)-.11 E(et do)-.11 E
(wn the shared tree.)-.275 E -.165(Fo)97 567.6 S 2.75(r\().165 G
(S,G\) Null-Re)-2.75 E(gisters, the Multicast data pack)-.165 E
(et portion contains a dummy IP header)-.11 E
(with S as the source address, G as the destination address.)97 580.6 Q
(When generating an IPv4 Null-)5.5 E(Re)97 593.6 Q(gister message, the \
\214elds in the dummy IPv4 header SHOULD be \214lled in according to)
-.165 E(the follo)97 606.6 Q(wing table.)-.275 E
(Other IPv4 header \214elds may contain an)5.5 E 2.75(yv)-.165 G
(alue that is v)-3.025 E(alid for that)-.275 E(\214eld.)97 619.6 Q
82.819(Field V)97 638.6 R(alue)-1.221 E .44 LW 283.681 643.35 97 643.35
DL(IP V)97 653.6 Q 59.301(ersion 4)-1.221 F(Header Length)97 666.6 Q(5)
42.515 E 58.993(Checksum Header)97 679.6 R(checksum)2.75 E
(Fragmentation of)97 692.6 Q 13.75(fset 0)-.275 F(More Fragments)97
705.6 Q(0)35.167 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385
E 160.971(elas Section)-.165 F 2.75(4.9.3. [P)2.75 F(age 89])-.165 E 0
Cg EP
%%Page: 90 90
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E -.88(To)97 85 S(tal Length).88
E(20)51.931 E(IP Protocol)97 98 Q(103 \(PIM\))58.377 E
(On receipt of an \(S,G\) Null-Re)97 117 Q(gister)-.165 E 2.75(,i)-.44 G
2.75(ft)-2.75 G(he Header Checksum \214eld is non-zero, the recipient)
-2.75 E(SHOULD check the checksum and discard null re)97 130 Q
(gisters that ha)-.165 E .33 -.165(ve a b)-.22 H(ad checksum.).165 E
(The)5.5 E(recipient SHOULD NO)97 143 Q 2.75(Tc)-.44 G(heck the v)-2.75
E(alue of an)-.275 E 2.75(yi)-.165 G(ndi)-2.75 E
(vidual \214elds; a correct IP header)-.275 E(checksum is suf)97 156 Q
2.75(\214cient. If)-.275 F
(the Header Checksum \214eld is zero, the recipient MUST NO)2.75 E(T)
-.44 E(check the checksum.)97 169 Q -.44(Wi)97 185.6 S
(th IPv6, an implementation generates a dummy IP header follo).44 E
(wed by a dummy PIM)-.275 E(header with v)97 198.6 Q
(alues according to the follo)-.275 E
(wing table in addition to the source and group.)-.275 E
(Other IPv6 header \214elds may contain an)97 211.6 Q 2.75(yv)-.165 G
(alue that is v)-3.025 E(alid for that \214eld.)-.275 E(Header Field)97
230.6 Q -1.221(Va)28.127 G(lue)1.221 E .44 LW 316.384 235.35 97 235.35
DL(IP V)97 245.6 Q 36.366(ersion 6)-1.221 F(Ne)97 258.6 Q(xt Header)
-.165 E(103 \(PIM\))29.524 E 51.337(Length 4)97 271.6 R(PIM V)97 284.6 Q
26.587(ersion 0)-1.221 F(PIM T)97 297.6 Q 38.467(ype 0)-.88 F
(PIM Reserv)97 310.6 Q 19.426(ed 0)-.165 F(PIM Checksum)97 323.6 Q
(PIM checksum including IPv6)182.25 323.6 Q
("pseudo-header"; see Section)182.25 336.6 Q(4.9)182.25 349.6 Q
(On receipt of an IPv6 \(S,G\) Null-Re)97 368.6 Q(gister)-.165 E 2.75
(,i)-.44 G 2.75(ft)-2.75 G(he dummy PIM header is present, the)-2.75 E
(recipient SHOULD check the checksum and discard Null-Re)97 381.6 Q
(gisters that ha)-.165 E .33 -.165(ve a b)-.22 H(ad).165 E(checksum.)97
394.6 Q/F1 11/Times-Bold@0 SF 2.75(4.9.4. Register)72 433.6 R
(-Stop Message F)-.407 E(ormat)-.275 E F0 2.75(AR)72 450.2 S -.165(eg)
-2.75 G(ister).165 E
(-Stop is unicast from the RP to the sender of the Re)-.22 E
(gister message.)-.165 E(The IP source)5.5 E
(address is the address to which the re)72 463.2 Q(gister w)-.165 E
(as addressed.)-.11 E(The IP destination address is the)5.5 E
(source address of the re)72 476.2 Q(gister message.)-.165 E/F2 11
/Courier@0 SF 125.4(0123)78.6 495.2 S 6.6
(01234567890123456789012345678901)78.6 508.2 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
521.2 Q(|PIM Ver| Type)72 534.2 Q 19.8(|R)13.2 G 19.8(eserved |)-19.8 F
72.6(Checksum |)72.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
547.2 Q 85.8(|G)72 560.2 S(roup Address \(Encoded-Group format\))-85.8 E
(|)92.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
573.2 Q 79.2(|S)72 586.2 S(ource Address \(Encoded-Unicast format\))
-79.2 E(|)79.2 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
599.2 Q F1(PIM V)72 621.8 Q(ersion, T)-1.1 E(ype, Reser)-.814 E -.11(ve)
-.11 G(d, Checksum).11 E F0(Described in Section 4.9.)97 634.8 Q F1(Gr)
72 651.4 Q(oup Addr)-.198 E(ess)-.198 E F0
(The group address from the multicast data pack)97 664.4 Q(et in the Re)
-.11 E(gister)-.165 E 5.5(.F)-.605 G(ormat described in)-5.665 E
(Section 4.9.1. Note that for Re)97 677.4 Q(gister)-.165 E
(-Stops the Mask Len \214eld contains the full address)-.22 E
(length * 8 \(e.g. 32 for IPv4 nati)97 690.4 Q .33 -.165(ve e)-.275 H
(ncoding\), if the message is sent for a single group.).165 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.9.4. [P)2.75 F(age 90])-.165 E 0 Cg EP
%%Page: 91 91
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(Sour)72
85 Q(ce Addr)-.198 E(ess)-.198 E F0
(The host address of the source from the multicast data pack)97 98 Q
(et in the re)-.11 E(gister)-.165 E 5.5(.T)-.605 G(he format for)-5.5 E
(this address is gi)97 111 Q -.165(ve)-.275 G 2.75(ni).165 G 2.75(nt)
-2.75 G
(he Encoded-Unicast address in Section 4.9.1. A special wild card)-2.75
E -.275(va)97 124 S(lue consisting of an address \214eld of all zeroes \
can be used to indicate an).275 E 2.75(ys)-.165 G(ource.)-2.75 E F1 2.75
(4.9.5. J)72 163 R(oin/Prune Message F)-.165 E(ormat)-.275 E F0 2.75(AJ)
72 179.6 S(oin/Prune message is sent by routers to)-2.75 E -.11(wa)-.275
G(rds upstream sources and RPs.).11 E(Joins are sent to)5.5 E -.22(bu)72
192.6 S(ild shared trees \(RP trees\) or source trees \(SPT\). Prunes a\
re sent to prune source trees when).22 E(members lea)72 205.6 Q .33
-.165(ve g)-.22 H
(roups as well as sources that do not use the shared tree.).165 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.9.5. [P)2.75 F(age 91])-.165 E 0 Cg EP
%%Page: 92 92
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Courier@0 SF 125.4(0123)
78.6 85 S 6.6(01234567890123456789012345678901)78.6 98 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
111 Q(|PIM Ver| Type)72 124 Q 19.8(|R)13.2 G 19.8(eserved |)-19.8 F 72.6
(Checksum |)72.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
137 Q 52.8(|U)72 150 S
(pstream Neighbor Address \(Encoded-Unicast format\))-52.8 E(|)33 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
163 Q 13.2(|R)72 176 S 26.4(eserved |)-13.2 F(Num groups)6.6 E 66(|H)
26.4 G 79.2(oldtime |)-66 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
189 Q 59.4(|M)72 202 S
(ulticast Group Address 1 \(Encoded-Group format\))-59.4 E(|)39.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
215 Q 19.8(|N)72 228 S(umber of Joined Sources)-19.8 E 19.8(|N)26.4 G
(umber of Pruned Sources)-19.8 E(|)26.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
241 Q 52.8(|J)72 254 S(oined Source Address 1 \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
267 Q -171.6 191.4(|. |)72 280 T -171.6 191.4(|. |)72 293 T
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
306 Q 52.8(|J)72 319 S(oined Source Address n \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
332 Q 52.8(|P)72 345 S(runed Source Address 1 \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
358 Q -171.6 191.4(|. |)72 371 T -171.6 191.4(|. |)72 384 T
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
397 Q 52.8(|P)72 410 S(runed Source Address n \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
423 Q -132 178.2(|. |)72 436 T -132 178.2(|. |)72 449 T
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
462 Q 59.4(|M)72 475 S
(ulticast Group Address m \(Encoded-Group format\))-59.4 E(|)39.6 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
488 Q 19.8(|N)72 501 S(umber of Joined Sources)-19.8 E 19.8(|N)26.4 G
(umber of Pruned Sources)-19.8 E(|)26.4 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
514 Q 52.8(|J)72 527 S(oined Source Address 1 \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
540 Q -171.6 191.4(|. |)72 553 T -171.6 191.4(|. |)72 566 T
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
579 Q 52.8(|J)72 592 S(oined Source Address n \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
605 Q 52.8(|P)72 618 S(runed Source Address 1 \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
631 Q -171.6 191.4(|. |)72 644 T -171.6 191.4(|. |)72 657 T
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
670 Q 52.8(|P)72 683 S(runed Source Address n \(Encoded-Source format\))
-52.8 E(|)52.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
696 Q F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.9.5. [P)2.75 F(age 92])-.165 E 0 Cg EP
%%Page: 93 93
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(PIM V)72
85 Q(ersion, T)-1.1 E(ype, Reser)-.814 E -.11(ve)-.11 G(d, Checksum).11
E F0(Described in Section 4.9.)97 98 Q F1(Unicast Upstr)72 114.6 Q
(eam Neighbor Addr)-.198 E(ess)-.198 E F0
(The address of the upstream neighbor that is the tar)97 127.6 Q
(get of the message.)-.198 E(The format for this)5.5 E(address is gi)97
140.6 Q -.165(ve)-.275 G 2.75(ni).165 G 2.75(nt)-2.75 G
(he Encoded-Unicast address in Section 4.9.1. F)-2.75 E
(or IPv6 the source)-.165 E(address used for multicast messages is the \
link-local address of the interf)97 153.6 Q(ace on which the)-.11 E
(message is being sent.)97 166.6 Q -.165(Fo)5.5 G 2.75(rI).165 G
(Pv4, the source address is the primary address associated with)-2.75 E
(that interf)97 179.6 Q(ace.)-.11 E F1(Reser)72 209.2 Q -.11(ve)-.11 G
(d).11 E F0 -.385(Tr)97 222.2 S(ansmitted as zero, ignored on receipt.)
.385 E F1(Holdtime)72 251.8 Q F0(The amount of time a recei)97 264.8 Q
-.165(ve)-.275 G 2.75(rm).165 G(ust k)-2.75 E
(eep the Join/Prune state ali)-.11 E -.165(ve)-.275 G 2.75(,i).165 G
2.75(ns)-2.75 G 2.75(econds. If)-2.75 F(the)2.75 E
(Holdtime is set to `0xf)97 277.8 Q -1.595 -.275(fff ')-.275 H 2.75(,t)
.275 G(he recei)-2.75 E -.165(ve)-.275 G 2.75(ro).165 G 2.75(ft)-2.75 G
(his message should hold the state until canceled)-2.75 E(by the approp\
riate canceling Join/Prune message, or timed out according to local pol\
ic)97 290.8 Q -.715(y.)-.165 G
(This may be used with dial-on-demand links, to a)97 303.8 Q -.22(vo)
-.22 G(id k).22 E(eeping the link up with periodic)-.11 E
(Join/Prune messages.)97 316.8 Q(Note that the HoldT)97 342.8 Q
(ime must be lar)-.385 E(ger than the J/P_Ov)-.198 E(erride_Interv)-.165
E(al\(I\).)-.275 E F1(Number of Gr)72 372.4 Q(oups)-.198 E F0
(The number of multicast group sets contained in the message.)97 385.4 Q
F1(Multicast gr)72 415 Q(oup addr)-.198 E(ess)-.198 E F0 -.165(Fo)97 428
S 2.75(rf).165 G(ormat description see Section 4.9.1.)-2.75 E F1
(Number of J)72 444.6 Q(oined Sour)-.165 E(ces)-.198 E F0
(Number of join source addresses listed for a gi)97 457.6 Q -.165(ve)
-.275 G 2.75(ng).165 G(roup.)-2.75 E F1 -.165(Jo)72 487.2 S(in Sour).165
E(ce Addr)-.198 E(ess 1 .. n)-.198 E F0
(This list contains the sources that the sending router will forw)97
500.2 Q(ard multicast datagrams for if)-.11 E(recei)97 513.2 Q -.165(ve)
-.275 G 2.75(do).165 G 2.75(nt)-2.75 G(he interf)-2.75 E
(ace this message is sent on.)-.11 E
(See Encoded-Source-Address format in Section 4.9.1.)97 539.2 Q F1
(Number of Pruned Sour)72 555.8 Q(ces)-.198 E F0
(Number of prune source addresses listed for a group.)97 568.8 Q F1
(Prune Sour)72 598.4 Q(ce Addr)-.198 E(ess 1 .. n)-.198 E F0
(This list contains the sources that the sending router does not w)97
611.4 Q(ant to forw)-.11 E(ard multicast)-.11 E
(datagrams for when recei)97 624.4 Q -.165(ve)-.275 G 2.75(do).165 G
2.75(nt)-2.75 G(he interf)-2.75 E(ace this message is sent on.)-.11 E
-.44(Wi)72 654 S(thin one PIM Join/Prune message, all the Multicast Gro\
up Addresses, Joined Source addresses).44 E
(and Pruned Source addresses MUST be of the same address f)72 667 Q
(amily)-.11 E 5.5(.I)-.715 G 2.75(ti)-5.5 G 2.75(sN)-2.75 G .88 -.44
(OT P)-2.75 H(ERMITTED to).44 E
(mix IPv4 and IPv6 addresses within the same message.)72 680 Q
(In addition, the address f)5.5 E(amily of the)-.11 E(\214elds in the m\
essage SHOULD be the same as the IP source and destination addresses of\
 the)72 693 Q(pack)72 706 Q 2.75(et. This)-.11 F
(permits maximum implementation \215e)2.75 E
(xibility for dual-stack IPv4/IPv6 routers.)-.165 E(If a)5.5 E
(router recei)72 719 Q -.165(ve)-.275 G 2.75(sam).165 G(essage with mix)
-2.75 E(ed f)-.165 E
(amily addresses, it SHOULD only process the addresses)-.11 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971
(elas Section)-.165 F 2.75(4.9.5. [P)2.75 F(age 93])-.165 E 0 Cg EP
%%Page: 94 94
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(which are of the same f)72 85
Q(amily as the unicast upstream neighbor address.)-.11 E/F1 11
/Times-Bold@0 SF 2.75(4.9.5.1. Gr)72 124 R(oup Set Sour)-.198 E
(ce List Rules)-.198 E F0(As described abo)72 140.6 Q -.165(ve)-.165 G
2.75(,J).165 G
(oin / Prune messages are composed of one or more group sets. Each set)
-2.75 E(contains tw)72 153.6 Q 2.75(os)-.11 G(ource lists, the Join Sou\
rces and the Prune Sources. This section describes the)-2.75 E(dif)72
166.6 Q(ferent types of group sets and source list entries that can e)
-.275 E(xist in a Join / Prune message.)-.165 E(There are tw)72 192.6 Q
2.75(ov)-.11 G(alid group set types:)-3.025 E F1 -.198(Wi)72 222.2 S
(ldcard Gr).198 E(oup Set)-.198 E F0(The wildcard group set is represen\
ted by the entire multicast range - the be)97 235.2 Q(ginning of the)
-.165 E(multicast address range in the group address \214eld and the pr\
e\214x length of the multicast)97 248.2 Q(address range in the mask len\
gth \214eld of the Multicast Group Address, i.e., `224.0.0.0/4' for)97
261.2 Q(IPv4 or `f)97 274.2 Q(f00::/8' for IPv6.)-.275 E
(Each Join / Prune message SHOULD contain at most one)5.5 E/F2 10/Symbol
SF<ef>555 286.2 Q<ef>-4.94 -10 M F0(wildcard group set.)97 287.2 Q
(Each wildcard group set may contain one or more \(*,*,RP\) source list)
5.5 E(entries in either the Join or Prune lists.)97 300.2 Q 2.75(A\()97
326.2 S(*,*,RP\) source list entry may only e)-2.75 E
(xist in a wildcard group set.)-.165 E(When added to a Join)5.5 E
(source list, this type of source entry e)97 339.2 Q
(xpresses the router')-.165 E 2.75(si)-.605 G(nterest in recei)-2.75 E
(ving traf)-.275 E(\214c for all)-.275 E
(groups mapping to the speci\214ed RP)97 352.2 Q 2.75(.W)-1.221 G
(hen added to a Prune source list a \(*,*,RP\) entry)-2.75 E -.165(ex)97
365.2 S(presses the router').165 E 2.75(si)-.605 G
(nterest to stop recei)-2.75 E(ving such traf)-.275 E 2.75(\214c. Note)
-.275 F(that as indicated by the)2.75 E
(Join/Prune state machines, such a Join or Prune will NO)97 378.2 Q 2.75
(To)-.44 G -.165(ve)-2.915 G(rride Join/Prune state created).165 E
(using a Group-Speci\214c Set \(see belo)97 391.2 Q(w\).)-.275 E
(\(*,*,RP\) source list entries ha)97 417.2 Q .33 -.165(ve t)-.22 H
(he Source-Address set to the address of the RP).165 E 2.75(,t)-1.221 G
(he Source-)-2.75 E(Address Mask-Len set to the full length of the IP a\
ddress and both the WC and RPT bits of)97 430.2 Q
(the Source-Address set to 1.)97 443.2 Q F1(Gr)72 472.8 Q
(oup Speci\214c Set)-.198 E F0 2.75(AG)97 485.8 S
(roup Speci\214c Set is represented by a v)-2.75 E
(alid IP multicast address in the group address)-.275 E(\214eld and the\
 full length of the IP address in the mask length \214eld of the Multic\
ast Group)97 498.8 Q 2.75(Address. Each)97 511.8 R
(Join / Prune message SHOULD NO)2.75 E 2.75(Tc)-.44 G
(ontain more than one group speci\214c)-2.75 E F2<ef>555 523.8 Q<ef>
-4.94 -10 M<ef>-4.94 -10 M F0(set for the same IP multicast address.)97
524.8 Q(Each group speci\214c set may contain \(*,G\), \(S,G,rpt\))5.5 E
(and \(S,G\) source list entries in the Join or Prune lists.)97 537.8 Q
F1(\(*,G\))97 554.4 Q F0
(The \(*,G\) source list entry is used in Join / Prune messages sent to)
122 567.4 Q -.11(wa)-.275 G(rds the RP for).11 E
(the speci\214ed group. It e)122 580.4 Q
(xpresses interest \(or lack of\) in recei)-.165 E(ving traf)-.275 E
(\214c sent to the)-.275 E(group through the Rendezv)122 593.4 Q
(ous-Point shared tree. There may only be one such entry in)-.22 E
(both the Join and Prune lists of a group speci\214c set.)122 606.4 Q
(\(*,G\) source list entries ha)122 632.4 Q .33 -.165(ve t)-.22 H
(he Source-Address set to the address of the RP for).165 E(group G, the\
 Source-Address Mask-Len set to the full length of the IP address and)
122 645.4 Q(ha)122 658.4 Q .33 -.165(ve b)-.22 H
(oth the WC and RPT bits of the Encoded-Source-Address set.).165 E F1
(\(S,G,r)97 688 Q(pt\))-.11 E F0(The \(S,G,rpt\) source list entry is u\
sed in Join / Prune messages sent to)122 701 Q -.11(wa)-.275 G
(rds the RP for).11 E(the speci\214ed group. It e)122 714 Q
(xpresses interest \(or lack of\) in recei)-.165 E(ving traf)-.275 E
(\214c through the)-.275 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 152.721(elas Section)-.165 F 2.75(4.9.5.1. [P)2.75 F
(age 94])-.165 E 0 Cg EP
%%Page: 95 95
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(shared tree sent by the speci\214ed source to this group. F)122 85 Q
(or each source address the)-.165 E(entry may e)122 98 Q(xist in only o\
ne of the Join and Prune source lists of a group speci\214c set)-.165 E
-.22(bu)122 111 S 2.75(tn).22 G(ot both.)-2.75 E
(\(S,G,rpt\) source list entries ha)122 137 Q .33 -.165(ve t)-.22 H
(he Source-Address set to the address of the source S,).165 E(the Sourc\
e-Address Mask-Len set to the full length of the IP address and ha)122
150 Q .33 -.165(ve t)-.22 H(he WC).165 E
(bit clear and the RPT bit set in the Encoded-Source-Address.)122 163 Q
/F1 11/Times-Bold@0 SF(\(S,G\))97 192.6 Q F0
(The \(S,G\) source list entry is used in Join / Prune messages sent to)
122 205.6 Q -.11(wa)-.275 G(rds the speci\214ed).11 E(source. It e)122
218.6 Q(xpresses interest \(or lack of\) in recei)-.165 E(ving traf)
-.275 E(\214c through the shortest path)-.275 E
(tree sent by the source to the speci\214ed group. F)122 231.6 Q
(or each source address the entry may)-.165 E -.165(ex)122 244.6 S(ist \
in only one of the Join and Prune source lists of a group speci\214c se\
t b).165 E(ut not both.)-.22 E(\(S,G\) source list entries ha)122 270.6
Q .33 -.165(ve t)-.22 H
(he Source-Address set to the address of the source S, the).165 E(Sourc\
e-Address Mask-Len set to the full length of the IP address and ha)122
283.6 Q .33 -.165(ve b)-.22 H(oth the).165 E
(WC and RPT bits of the Encoded-Source-Address cleared.)122 296.6 Q
(The rules described abo)72 313.2 Q .33 -.165(ve a)-.165 H(re suf).165 E
(\214cient to pre)-.275 E -.165(ve)-.275 G(nt in).165 E -.275(va)-.44 G
(lid combinations of source list entries in).275 E
(group-speci\214c sets.)72 326.2 Q(There are ho)5.5 E(we)-.275 E -.165
(ve)-.275 G 2.75(ran).165 G(umber of combinations that ha)-2.75 E .33
-.165(ve a v)-.22 H(alid interpretation)-.11 E -.22(bu)72 339.2 S 2.75
(tw).22 G(hich are not generated by the protocol as described in this s\
peci\214cation:)-2.75 E 7.15<8343>72 355.8 S(ombining a \(*,G\) Join an\
d a \(S,G,rpt\) Join entry in the same message is redundant as the)-7.15
E(\(*,G\) entry co)83 368.8 Q -.165(ve)-.165 G(rs the information pro)
.165 E(vided by the \(S,G,rpt\) entry)-.165 E(.)-.715 E 7.15<8354>72
385.4 S(he same applies for a \(*,G\) Prunes and \(S,G,rpt\) Prunes.)
-7.15 E 7.15<8354>72 402 S(he combination of a \(*,G\) Prune and a \(S,\
G,rpt\) Join is also not generated. \(S,G,rpt\) Joins are)-7.15 E
(only sent when the router is recei)83 415 Q(ving all traf)-.275 E
(\214c for a group on the shared tree and it wishes to)-.275 E(indicate\
 a change for the particular source. As a \(*,G\) prune indicates that \
the router no longer)83 428 Q(wishes to recei)83 441 Q .33 -.165(ve s)
-.275 H(hared tree traf).165 E(\214c, the \(S,G,rpt\) Join w)-.275 E
(ould be meaningless.)-.11 E 7.15<8341>72 457.6 S 2.75(sJ)-7.15 G
(oin / Prune messages are tar)-2.75 E(geted to a single PIM neighbor)
-.198 E 2.75(,i)-.44 G(ncluding both a \(S,G\) Join)-2.75 E(and a \(S,G\
,rpt\) Prune in the same message is redundant. The \(S,G\) Join informs\
 the neighbor)83 470.6 Q(that the sender wishes to recei)83 483.6 Q .33
-.165(ve t)-.275 H
(he particular source on the shortest path tree. It is therefore).165 E
(unnecessary for the router to say that it no longer wishes to recei)83
496.6 Q .33 -.165(ve i)-.275 H 2.75(to).165 G 2.75(nt)-2.75 G
(he shared tree.)-2.75 E 7.15<8354>72 513.2 S(he combination of a \(S,G\
\) Prune and a \(S,G,rpt\) Join could possibly be used by a router to)
-7.15 E(switch from recei)83 526.2 Q
(ving a particular source on the shortest-path tree back to recei)-.275
E(ving it on the)-.275 E(shared tree \(pro)83 539.2 Q(vided that the RP\
F neighbor for the shortest-path and shared trees is common\).)-.165 E
(Ho)83 552.2 Q(we)-.275 E -.165(ve)-.275 G 2.75(rS).165 G
(parse-Mode PIM does not pro)-2.75 E
(vide a mechanism for switching back to the shared)-.165 E(tree.)83
565.2 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 152.721
(elas Section)-.165 F 2.75(4.9.5.1. [P)2.75 F(age 95])-.165 E 0 Cg EP
%%Page: 96 96
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(The rules are summarized in the tables belo)72 85 Q -.715(w.)-.275 G
.44 LW 414.485 95.75 72 95.75 DL/F1 11/Times-Bold@0 SF -.165(Jo)136.053
106 S(in).165 E(\(*,G\))136.053 119 Q(Prune)176.687 106 Q(\(*,G\))
176.687 119 Q -.165(Jo)221.908 106 S(in).165 E(\(S,G,r)221.908 119 Q
(pt\))-.11 E(Prune)280.461 106 Q(\(S,G,r)280.461 119 Q(pt\))-.11 E -.165
(Jo)339.014 106 S(in).165 E(\(S,G\))339.014 119 Q(Prune)380.264 106 Q
(\(S,G\))380.264 119 Q 414.485 123.75 72 123.75 DL 414.485 125.75 72
125.75 DL F0 36.971(-n)136.053 136 S -17.523 34.221(o? y)-36.971 H 41.14
(es yes)-34.221 F(yes)26.587 E F1 -.165(Jo)77.5 136 S(in).165 E(\(*,G\))
77.5 149 Q 414.485 153.75 72 153.75 DL F0 26.884(no -)136.053 164 R
53.669(??y)41.558 G 23.837(es yes)-53.669 F F1(Prune)77.5 164 Q(\(*,G\))
77.5 177 Q 414.485 181.75 72 181.75 DL F0 -33.913 35.75(?? -)136.053 192
T 44.803(no yes)19.14 F(?)26.587 E F1 -.165(Jo)77.5 192 S(in).165 E
(\(S,G,r)77.5 205 Q(pt\))-.11 E 414.485 209.75 72 209.75 DL F0 23.221
(yes ?)136.053 220 R 44.803(no -)40.337 F 36.366(?y)54.89 G(es)-36.366 E
F1(Prune)77.5 220 Q(\(S,G,r)77.5 233 Q(pt\))-.11 E 414.485 237.75 72
237.75 DL F0 23.221(yes yes)136.053 248 R 41.14(yes ?)30.558 F 37.587
(-n)53.669 G(o)-37.587 E F1 -.165(Jo)77.5 248 S(in).165 E(\(S,G\))77.5
261 Q 414.485 265.75 72 265.75 DL F0 23.221(yes yes)136.053 276 R 41.14
(yes ?)30.558 F 27.5(no -)53.669 F F1(Prune)77.5 276 Q(\(S,G\))77.5 289
Q 414.485 293.75 72 293.75 DL 372.014 95.75 372.014 293.75 DL 330.764
95.75 330.764 293.75 DL 272.211 95.75 272.211 293.75 DL 213.658 95.75
213.658 293.75 DL 168.437 95.75 168.437 293.75 DL 126.803 95.75 126.803
293.75 DL 128.803 95.75 128.803 293.75 DL 414.485 95.75 414.485 293.75
DL 72 95.75 72 293.75 DL 377.36 318.75 72 318.75 DL -.165(Jo)163.96 329
S(in \(*,*,RP\)).165 E(Prune \(*,*,RP\))241.708 329 Q(all others)328.168
329 Q 377.36 333.75 72 333.75 DL F0 74.085(-n)163.96 344 S 75.46(oy)
-74.085 G(es)-75.46 E F1 -.165(Jo)77.5 344 S(in \(*,*,RP\)).165 E 377.36
348.75 72 348.75 DL F0 63.998(no -)163.96 359 R(yes)82.797 E F1
(Prune \(*,*,RP\))77.5 359 Q 377.36 363.75 72 363.75 DL F0 60.335
(yes yes)163.96 374 R(see abo)71.797 E -.165(ve)-.165 G F1(all others)
77.5 374 Q 377.36 378.75 72 378.75 DL 319.918 318.75 319.918 378.75 DL
233.458 318.75 233.458 378.75 DL 154.71 318.75 154.71 378.75 DL 156.71
318.75 156.71 378.75 DL 377.36 318.75 377.36 378.75 DL 72 318.75 72
378.75 DL -.11(ye)72 409.6 S(s).11 E F0(Allo)10.447 E(wed and e)-.275 E
(xpected.)-.165 E F1(no)72 439.2 Q F0(Combination is not allo)13.384 E
(wed by the protocol and MUST NO)-.275 E 2.75(Tb)-.44 G 2.75(eg)-2.75 G
(enerated by a router)-2.75 E 5.5(.A)-.605 G(router MA)97 452.2 Q 2.75
(Ya)-1.155 G(ccept these messages b)-2.75 E
(ut the result is unde\214ned.)-.22 E(An error message MA)5.5 E 2.75(Yb)
-1.155 G(e)-2.75 E(logged to the administrator in a rate limited manner)
97 465.2 Q(.)-.605 E F1(?)72 494.8 Q F0(Combination not e)19.5 E
(xpected by the protocol, b)-.165 E(ut well-de\214ned. A router MA)-.22
E 2.75(Ya)-1.155 G(ccept it b)-2.75 E(ut)-.22 E(SHOULD NO)97 507.8 Q
2.75(Tg)-.44 G(enerate it.)-2.75 E(The order of source list entries in \
a group set source list is not important, e)72 524.4 Q
(xcept where limited by)-.165 E(the pack)72 537.4 Q(et format itself.)
-.11 E F1 2.75(4.9.5.2. Gr)72 576.4 R(oup Set Fragmentation)-.198 E F0
(When b)72 593 Q(uilding a Join / Prune for a particular neighbor)-.22 E
2.75(,ar)-.44 G(outer should try and include in the)-2.75 E
(message as much of the information it needs to con)72 606 Q .33 -.165
(vey t)-.44 H 2.75(ot).165 G(he neighbor as possible.)-2.75 E
(This implies)5.5 E(adding one group set for each multicast group that \
has information pending transmission and)72 619 Q
(within each set including all rele)72 632 Q -.275(va)-.275 G
(nt source list entries.).275 E(On a router with a lar)72 648.6 Q(ge am\
ount of multicast state the number of entries that must be included)
-.198 E(may result in pack)72 661.6 Q(ets that are lar)-.11 E
(ger than the maximum IP pack)-.198 E(et size. In most such cases the)
-.11 E(information may be split into multiple messages.)72 674.6 Q
(There is an e)72 691.2 Q
(xception with group sets that contain a \(*,G\) Join source list entry)
-.165 E 2.75(.T)-.715 G(he group set)-2.75 E -.165(ex)72 704.2 S
(presses the router').165 E 2.75(si)-.605 G(nterest in recei)-2.75 E
(ving all traf)-.275 E
(\214c for the speci\214ed group on the shared tree and)-.275 E
(it MUST include an \(S,G,rpt\) Prune source list entry for e)72 717.2 Q
-.165(ve)-.275 G(ry source that the router does not).165 E
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 152.721
(elas Section)-.165 F 2.75(4.9.5.2. [P)2.75 F(age 96])-.165 E 0 Cg EP
%%Page: 97 97
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(wish to recei)72 85 Q -.165
(ve)-.275 G 2.75(.T).165 G(his list of \(S,G,rpt\) Prune source-list en\
tries MUST not be split in multiple)-2.75 E(messages.)72 98 Q(If only N\
 \(S,G,rpt\) Prune entries \214t into a maximum-sized Join / Prune mess\
age, b)72 124 Q(ut the router)-.22 E(has more than N \(S,G,rpt\) Prunes\
 to add, then the router MUST choose to include the \214rst N)72 137 Q
(\(numerically smallest in netw)72 150 Q(ork byte order\) IP addresses.)
-.11 E/F1 11/Times-Bold@0 SF 2.75(4.9.6. Assert)72 189 R(Message F)2.75
E(ormat)-.275 E F0(The Assert message is used to resolv)72 205.6 Q 2.75
(ef)-.165 G(orw)-2.75 E
(arder con\215icts between routers on a link. It is sent)-.11 E
(when a multicast data pack)72 218.6 Q(et is recei)-.11 E -.165(ve)-.275
G 2.75(do).165 G 2.75(na)-2.75 G 2.75(ni)-2.75 G(nterf)-2.75 E
(ace that the router w)-.11 E(ould normally forw)-.11 E(ard)-.11 E
(that pack)72 231.6 Q 2.75(et. Assert)-.11 F(messages may also be sent \
in response to an Assert message from another)2.75 E(router)72 244.6 Q
(.)-.605 E/F2 11/Courier@0 SF 125.4(0123)78.6 263.6 S 6.6
(01234567890123456789012345678901)78.6 276.6 S
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
289.6 Q(|PIM Ver| Type)72 302.6 Q 19.8(|R)13.2 G 19.8(eserved |)-19.8 F
72.6(Checksum |)72.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
315.6 Q 92.4(|G)72 328.6 S(roup Address \(Encoded-Group format\))-92.4 E
(|)85.8 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
341.6 Q 79.2(|S)72 354.6 S(ource Address \(Encoded-Unicast format\))
-79.2 E(|)79.2 E
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
367.6 Q 138.6(|R| Metric)72 380.6 R 138.6(Preference |)6.6 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
393.6 Q 191.4(|M)72 406.6 S 178.2(etric |)-191.4 F
(+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+)72
419.6 Q F1(PIM V)72 442.2 Q(ersion, T)-1.1 E(ype, Reser)-.814 E -.11(ve)
-.11 G(d, Checksum).11 E F0(Described in Section 4.9.)97 455.2 Q F1(Gr)
72 471.8 Q(oup Addr)-.198 E(ess)-.198 E F0
(The group address for which the router wishes to resolv)97 484.8 Q 2.75
(et)-.165 G(he forw)-2.75 E(arding con\215ict.)-.11 E(This is an)5.5 E
(Encoded-Group address, as speci\214ed in Section 4.9.1.)97 497.8 Q F1
(Sour)72 514.4 Q(ce Addr)-.198 E(ess)-.198 E F0
(Source address for which the router wishes to resolv)97 527.4 Q 2.75
(et)-.165 G(he forw)-2.75 E(arding con\215ict. The source)-.11 E
(address MA)97 540.4 Q 2.75(Yb)-1.155 G 2.75(es)-2.75 G
(et to zero for \(*,G\) asserts \(see belo)-2.75 E 2.75(w\). The)-.275 F
(format for this address is)2.75 E(gi)97 553.4 Q -.165(ve)-.275 G 2.75
(ni).165 G 2.75(nE)-2.75 G(ncoded-Unicast-Address in Section 4.9.1.)
-2.75 E F1(R)72 570 Q F0(RPT)17.058 E(-bit is a 1 bit v)-1.012 E
(alue. The RPT)-.275 E
(-bit is set to 1 for Assert\(*,G\) messages and 0 for)-1.012 E
(Assert\(S,G\) messages.)97 583 Q F1(Metric Pr)72 612.6 Q(efer)-.198 E
(ence)-.198 E F0(Preference v)97 625.6 Q
(alue assigned to the unicast routing protocol that pro)-.275 E
(vided the route to the)-.165 E(multicast source or Rendezv)97 638.6 Q
(ous-Point.)-.22 E F1(Metric)72 668.2 Q F0(The unicast routing table me\
tric associated with the route used to reach the multicast source)97
681.2 Q(or Rendezv)97 694.2 Q(ous-Point. The metric is in units applica\
ble to the unicast routing protocol used.)-.22 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 160.971(elas Section)-.165 F 2.75
(4.9.6. [P)2.75 F(age 97])-.165 E 0 Cg EP
%%Page: 98 98
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E
(Assert messages can be sent to resolv)72 85 Q 2.75(eaf)-.165 G(orw)
-2.75 E(arding con\215ict for all traf)-.11 E(\214c to gi)-.275 E -.165
(ve)-.275 G 2.75(ng).165 G(roup or for a)-2.75 E
(speci\214c source and group.)72 98 Q/F1 11/Times-Bold@0 SF
(Assert\(S,G\))72 114.6 Q F0
(Source speci\214c asserts are sent by routers forw)97 127.6 Q
(arding a speci\214c source on the shortest-path)-.11 E
(tree \(SPTbit is TR)97 140.6 Q(UE\). \(S,G\) Asserts ha)-.44 E .33
-.165(ve t)-.22 H(he Group-Address \214eld set to the group G and).165 E
(the Source-Address \214eld set to the source S. The RPT)97 153.6 Q
(-bit is set to 0, the Metric-Preference)-1.012 E
(is set to MRIB.pref\(S\) and the Metric is set to MRIB.metric\(S\).)97
166.6 Q F1(Assert\(*,G\))72 183.2 Q F0
(Group speci\214c asserts are sent by routers forw)97 196.2 Q
(arding data for the group and source\(s\) under)-.11 E
(contention on the shared tree. \(*,G\) asserts ha)97 209.2 Q .33 -.165
(ve t)-.22 H(he Group-Address \214eld set to the group G.).165 E -.165
(Fo)97 222.2 S 2.75(rd).165 G
(ata triggered Asserts the Source-Address \214eld MA)-2.75 E 2.75(Yb)
-1.155 G 2.75(es)-2.75 G(et to the IP source address of)-2.75 E
(the data pack)97 235.2 Q
(et that triggered the Assert and is set to zero otherwise.)-.11 E
(The RPT)5.5 E(-bit is set to 1,)-1.012 E(the Metric-Preference is set \
to MRIB.pref\(RP\(G\)\) and the Metric is set to)97 248.2 Q
(MRIB.metric\(RP\(G\)\).)97 261.2 Q F1(4.10.)72 287.2 Q/F2 13
/Times-Bold@0 SF(PIM T)5.5 E(imers)-.234 E F0
(PIM-SM maintains the follo)72 303.8 Q
(wing timers, as discussed in Section 4.1. All timers are countdo)-.275
E(wn)-.275 E(timers - the)72 316.8 Q 2.75(ya)-.165 G(re set to a v)-2.75
E(alue and count do)-.275 E(wn to zero, at which point the)-.275 E 2.75
(yt)-.165 G(ypically trigger an)-2.75 E 2.75(action. Of)72 329.8 R
(course the)2.75 E 2.75(yc)-.165 G(an just as easily be implemented as \
count-up timers, where the absolute)-2.75 E -.165(ex)72 342.8 S
(piry time is stored and compared ag).165 E(ainst a real-time clock, b)
-.055 E(ut the language in this speci\214cation)-.22 E(assumes that the)
72 355.8 Q 2.75(yc)-.165 G(ount do)-2.75 E(wnw)-.275 E(ards to zero.)
-.11 E(Global T)72 385.4 Q(imers)-.385 E(Per interf)72 402 Q(ace \(I\):)
-.11 E F1(Hello T)97 418.6 Q(imer: HT\(I\))-.198 E F0
(Per neighbor \(N\):)97 435.2 Q F1(Neighbor Li)122 451.8 Q -.11(ve)-.11
G(ness T).11 E(imer: NL)-.198 E(T\(N,I\))-1.012 E F0(Per acti)97 468.4 Q
.33 -.165(ve R)-.275 H 2.75(P\().165 G(RP\):)-2.75 E F1(\(*,*,RP\) J)122
485 Q(oin Expiry T)-.165 E(imer: ET\(*,*,RP)-.198 E(,I\))-1.012 E
(\(*,*,RP\) Prune-P)122 501.6 Q(ending T)-.22 E(imer: PPT\(*,*,RP)-.198
E(,I\))-1.012 E F0(Per Group \(G\):)97 518.2 Q F1(\(*,G\) J)122 534.8 Q
(oin Expiry T)-.165 E(imer: ET\(*,G,I\))-.198 E(\(*,G\) Prune-P)122
551.4 Q(ending T)-.22 E(imer: PPT\(*,G,I\))-.198 E(\(*,G\) Assert T)122
568 Q(imer: A)-.198 E(T\(*,G,I\))-1.045 E F0(Per Source \(S\):)122 584.6
Q F1(\(S,G\) J)147 601.2 Q(oin Expiry T)-.165 E(imer: ET\(S,G,I\))-.198
E(\(S,G\) Prune-P)147 617.8 Q(ending T)-.22 E(imer: PPT\(S,G,I\))-.198 E
(\(S,G\) Assert T)147 634.4 Q(imer: A)-.198 E(T\(S,G,I\))-1.045 E
(\(S,G,r)147 651 Q(pt\) Prune Expiry T)-.11 E(imer: ET\(S,G,r)-.198 E
(pt,I\))-.11 E(\(S,G,r)147 667.6 Q(pt\) Prune-P)-.11 E(ending T)-.22 E
(imer: PPT\(S,G,r)-.198 E(pt,I\))-.11 E F0(Per acti)72 684.2 Q .33 -.165
(ve R)-.275 H 2.75(P\().165 G(RP\):)-2.75 E F1(\(*,*,RP\) Upstr)97 700.8
Q(eam J)-.198 E(oin T)-.165 E(imer: JT\(*,*,RP\))-.198 E F0
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 163.721
(elas Section)-.165 F 2.75(4.10. [P)2.75 F(age 98])-.165 E 0 Cg EP
%%Page: 99 99
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(Per Group \(G\):)72 85 Q/F1 11
/Times-Bold@0 SF(\(*,G\) Upstr)97 101.6 Q(eam J)-.198 E(oin T)-.165 E
(imer: JT\(*,G\))-.198 E F0(Per Source \(S\):)97 118.2 Q F1
(\(S,G\) Upstr)122 134.8 Q(eam J)-.198 E(oin T)-.165 E(imer: JT\(S,G\))
-.198 E(\(S,G\) K)122 151.4 Q(eepali)-.275 E .22 -.11(ve T)-.11 H
(imer: KA)-.088 E(T\(S,G\))-1.045 E(\(S,G,r)122 168 Q(pt\) Upstr)-.11 E
(eam Ov)-.198 E(erride T)-.11 E(imer: O)-.198 E(T\(S,G,r)-.44 E(pt\))
-.11 E F0(At the DRs or rele)72 184.6 Q -.275(va)-.275 G(nt Assert W)
.275 E(inners only:)-.44 E(Per Source,Group pair \(S,G\):)97 201.2 Q F1
(Register)122 217.8 Q(-Stop T)-.407 E(imer: RST\(S,G\))-.198 E(4.11.)72
243.8 Q/F2 13/Times-Bold@0 SF -.234(Ti)5.5 G(mer V).234 E(alues)-1.196 E
F0(When timers are started or restarted, the)72 260.4 Q 2.75(ya)-.165 G
(re set to def)-2.75 E(ault v)-.11 E 2.75(alues. This)-.275 F
(section summarizes those)2.75 E(def)72 273.4 Q(ault v)-.11 E(alues.)
-.275 E(Note that protocol e)72 290 Q -.165(ve)-.275 G
(nts or con\214guration may change the def).165 E(ault v)-.11 E
(alue of a timer on a speci\214c)-.275 E(interf)72 303 Q
(ace. When timers are initialized in this document the v)-.11 E
(alue speci\214c to the interf)-.275 E(ace in)-.11 E(conte)72 316 Q
(xt must be used.)-.165 E(Some of the timers listed belo)72 332.6 Q 2.75
(w\()-.275 G(Prune-Pending, Upstream Join, Upstream Ov)-2.75 E
(erride\) can be set to)-.165 E -.275(va)72 345.6 S
(lues which depend on the settings of the Propag).275 E
(ation_Delay and Ov)-.055 E(erride_Interv)-.165 E(al of the)-.275 E
(corresponding interf)72 358.6 Q(ace. The def)-.11 E(ault v)-.11 E
(alues for these are gi)-.275 E -.165(ve)-.275 G 2.75(nb).165 G(elo)
-2.75 E -.715(w.)-.275 G F1 -1.012(Va)72 384.6 S(riable Name: Pr)1.012 E
(opagation_Delay\(I\))-.198 E .44 LW 503.994 398.95 72 398.95 DL -1.012
(Va)94.828 409.2 S(lue Name)1.012 E -1.012(Va)130.128 G 74.072
(lue Explanation)1.012 F 503.994 413.95 72 413.95 DL 503.994 415.95 72
415.95 DL F0(Propag)94.828 426.2 Q(ation_delay_def)-.055 E 65.734
(ault 0.5)-.11 F(secs)2.75 E(Expected propag)384.993 426.2 Q(ation)-.055
E(delay o)384.993 439.2 Q -.165(ve)-.165 G 2.75(rt).165 G(he local)-2.75
E(link.)384.993 452.2 Q 503.994 456.95 72 456.95 DL 350.751 398.95
350.751 456.95 DL 247.441 398.95 247.441 456.95 DL 503.994 398.95
503.994 456.95 DL 72 398.95 72 456.95 DL(The def)72 474.8 Q(ault v)-.11
E(alue of the Propag)-.275 E(ation_delay_def)-.055 E
(ault is chosen to be relati)-.11 E -.165(ve)-.275 G(ly lar).165 E
(ge to pro)-.198 E(vide)-.165 E
(compatibility with older PIM implementations.)72 487.8 Q F1 -1.012(Va)
72 513.8 S(riable Name: Ov)1.012 E(erride_Inter)-.11 E -.11(va)-.11 G
(l\(I\)).11 E 503.994 528.15 72 528.15 DL -1.012(Va)99.602 538.4 S
(lue Name)1.012 E -1.012(Va)106.896 G 88.394(lue Explanation)1.012 F
503.994 543.15 72 543.15 DL 503.994 545.15 72 545.15 DL F0(t_o)99.602
555.4 Q -.165(ve)-.165 G(rride_def).165 E 80.056(ault 2.5)-.11 F(secs)
2.75 E(Def)380.857 555.4 Q(ault delay interv)-.11 E(al)-.275 E -.165
(ove)380.857 568.4 S 2.75(rw).165 G(hich to)-2.75 E(randomize when)
380.857 581.4 Q(scheduling a delayed)380.857 594.4 Q(Join message.)
380.857 607.4 Q 503.994 612.15 72 612.15 DL 339.454 528.15 339.454
612.15 DL 221.822 528.15 221.822 612.15 DL 503.994 528.15 503.994 612.15
DL 72 528.15 72 612.15 DL(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 163.721(elas Section)-.165 F 2.75(4.11. [P)2.75 F(age 99])
-.165 E 0 Cg EP
%%Page: 100 100
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF -.198
(Ti)72 85 S(mer Name: Hello T).198 E(imer \(HT\(I\)\))-.198 E .44 LW
503.996 99.35 72 99.35 DL -1.012(Va)88.583 109.6 S(lue Name)1.012 E
-1.012(Va)97.72 G 52.587(lue Explanation)1.012 F 503.996 114.35 72
114.35 DL 503.996 116.35 72 116.35 DL F0 93.034(Hello_Period 30)88.583
126.6 R 46.999(secs Periodic)2.75 F(interv)2.75 E
(al for Hello messages.)-.275 E 503.996 131.35 72 131.35 DL -.385(Tr)
88.583 141.6 S 46.999(iggered_Hello_Delay 5).385 F(secs)2.75 E
(Randomized interv)324.855 141.6 Q(al for initial)-.275 E
(Hello message on bootup or)324.855 154.6 Q
(triggered Hello message to a)324.855 167.6 Q(rebooting neighbor)324.855
180.6 Q(.)-.605 E 503.996 185.35 72 185.35 DL 299.98 99.35 299.98 185.35
DL 218.155 99.35 218.155 185.35 DL 503.996 99.35 503.996 185.35 DL 72
99.35 72 185.35 DL(At system po)72 203.2 Q(wer)-.275 E
(-up, the timer is initialized to rand\(0, T)-.22 E
(riggered_Hello_Delay\) to pre)-.385 E -.165(ve)-.275 G(nt).165 E 2.75
(synchronization. When)72 216.2 R 2.75(an)2.75 G .55 -.275(ew o)-2.75 H
2.75(rr).275 G
(ebooting neighbor is detected, a responding Hello is sent)-2.75 E
(within rand\(0, T)72 229.2 Q(riggered_Hello_Delay\).)-.385 E F1 -.198
(Ti)72 255.2 S(mer Name: Neighbor Li).198 E -.11(ve)-.11 G(ness T).11 E
(imer \(NL)-.198 E(T\(N,I\)\))-1.012 E 504 269.55 72 269.55 DL -1.012
(Va)90.228 279.8 S(lue Name)1.012 E -1.012(Va)107.836 G 108.859
(lue Explanation)1.012 F 504 284.55 72 284.55 DL 504 286.55 72 286.55 DL
F0(Def)90.228 296.8 Q 51.934(ault_Hello_Holdtime 3.5)-.11 F 2.75(*H)2.75
G(ello_Period)-2.75 E(Def)392.888 296.8 Q(ault holdtime to)-.11 E -.11
(ke)392.888 309.8 S(ep neighbor state).11 E(ali)392.888 322.8 Q -.165
(ve)-.275 G 504 327.55 72 327.55 DL 90.313(Hello_Holdtime from)90.228
337.8 R(message)2.75 E(Holdtime from Hello)392.888 337.8 Q
(Message Holdtime)392.888 350.8 Q(option.)392.888 363.8 Q 504 368.55 72
368.55 DL 365.546 269.55 365.546 368.55 DL 227.449 269.55 227.449 368.55
DL 504 269.55 504 368.55 DL 72 269.55 72 368.55 DL(The Holdtime in a He\
llo Message should be set to \(3.5 * Hello_Period\), gi)72 386.4 Q
(ving a def)-.275 E(ault v)-.11 E(alue of)-.275 E(105 seconds.)72 399.4
Q F1 -.198(Ti)72 425.4 S(mer Names: Expiry T).198 E(imer \(ET\(*,*,RP)
-.198 E(,I\), ET\(*,G,I\), ET\(S,G,I\), ET\(S,G,r)-1.012 E(pt,I\)\))-.11
E 503.994 439.75 72 439.75 DL -1.012(Va)90.758 450 S(lue Name)1.012 E
-1.012(Va)63.336 G 88.438(lue Explanation)1.012 F 503.994 454.75 72
454.75 DL 503.994 456.75 72 456.75 DL F0(J/P_HoldT)90.758 467 Q 53.524
(ime from)-.385 F 53.524(message Holdtime)2.75 F
(from Join/Prune Message)2.75 E 503.994 471.75 72 471.75 DL 300.36
439.75 300.36 471.75 DL 182.684 439.75 182.684 471.75 DL 503.994 439.75
503.994 471.75 DL 72 439.75 72 471.75 DL(See details of JT\(*,G\) for t\
he Holdtime that is included in Join/Prune Messages.)72 489.6 Q F1 -.198
(Ti)72 515.6 S(mer Names: Prune-P).198 E(ending T)-.22 E
(imer \(PPT\(*,*,RP)-.198 E(,I\), PPT\(*,G,I\), PPT\(S,G,I\),)-1.012 E
(PPT\(S,G,r)72 528.6 Q(pt,I\)\))-.11 E 503.995 542.95 72 542.95 DL
-1.012(Va)86.222 553.2 S(lue Name)1.012 E -1.012(Va)94.245 G 118.247
(lue Explanation)1.012 F 503.995 557.95 72 557.95 DL 503.995 559.95 72
559.95 DL F0(J/P_Ov)86.222 570.2 Q(erride_Interv)-.165 E(al\(I\))-.275 E
(Def)237.194 570.2 Q(ault: Ef)-.11 E(fecti)-.275 E -.165(ve)-.275 G(_)
.165 E(Propag)237.194 583.2 Q(ation_Delay\(I\) +)-.055 E(Ef)237.194
596.2 Q(fecti)-.275 E -.165(ve)-.275 G(Ov).165 E(erride_)-.165 E(Interv)
237.194 609.2 Q(al\(I\))-.275 E(Short period after a join)384.679 570.2
Q(or prune to allo)384.679 583.2 Q 2.75(wo)-.275 G(ther)-2.75 E
(routers on the LAN to)384.679 596.2 Q -.165(ove)384.679 609.2 S
(rride the join or).165 E(prune)384.679 622.2 Q 503.995 626.95 72 626.95
DL 363.346 542.95 363.346 626.95 DL 215.861 542.95 215.861 626.95 DL
503.995 542.95 503.995 626.95 DL 72 542.95 72 626.95 DL
(Note that both the Ef)72 644.8 Q(fecti)-.275 E -.165(ve)-.275 G
(_Propag).165 E(ation_Delay\(I\) and the Ef)-.055 E(fecti)-.275 E -.165
(ve)-.275 G(_Ov).165 E(erride_Interv)-.165 E(al\(I\) are)-.275 E(interf)
72 657.8 Q(ace speci\214c v)-.11 E
(alues that may change when Hello messages are recei)-.275 E -.165(ve)
-.275 G 2.75(d\().165 G(see section 4.3.3\).)-2.75 E(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 158.221(elas Section)-.165 F 2.75
(4.11. [P)2.75 F(age 100])-.165 E 0 Cg EP
%%Page: 101 101
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF -.198
(Ti)72 85 S(mer Names: Assert T).198 E(imer \(A)-.198 E(T\(*,G,I\), A)
-1.045 E(T\(S,G,I\)\))-1.045 E .44 LW 503.999 99.35 72 99.35 DL -1.012
(Va)89.484 109.6 S(lue Name)1.012 E -1.012(Va)107.694 G 99.477
(lue Explanation)1.012 F 503.999 114.35 72 114.35 DL 503.999 116.35 72
116.35 DL F0(Assert_Ov)89.484 126.6 Q(erride_Interv)-.165 E 49.702
(al Def)-.275 F(ault: 3 secs)-.11 E(Short interv)382.62 126.6 Q
(al before an)-.275 E(assert times out where)382.62 139.6 Q
(the assert winner)382.62 152.6 Q(resends an Assert)382.62 165.6 Q
(message)382.62 178.6 Q 503.999 183.35 72 183.35 DL(Assert_T)89.484
193.6 Q 105.23(ime Def)-.385 F(ault: 180 secs)-.11 E
(Period after last assert)382.62 193.6 Q(before assert state is)382.62
206.6 Q(timed out)382.62 219.6 Q 503.999 224.35 72 224.35 DL 356.394
99.35 356.394 224.35 DL 227.679 99.35 227.679 224.35 DL 503.999 99.35
503.999 224.35 DL 72 99.35 72 224.35 DL(Note that for historical reason\
s, the Assert message lacks a Holdtime \214eld.)72 242.2 Q
(Thus changing the)5.5 E(Assert T)72 255.2 Q(ime from the def)-.385 E
(ault v)-.11 E(alue is not recommended.)-.275 E F1 -.198(Ti)72 281.2 S
(mer Names: Upstr).198 E(eam J)-.198 E(oin T)-.165 E
(imer \(JT\(*,*,RP\), JT\(*,G\), JT\(S,G\)\))-.198 E 503.999 295.55 72
295.55 DL -1.012(Va)84.501 305.8 S(lue Name)1.012 E -1.012(Va)40.253 G
114.58(lue Explanation)1.012 F 503.999 310.55 72 310.55 DL 503.999
312.55 72 312.55 DL F0 49.625(t_periodic Def)84.501 322.8 R
(ault: 60 secs)-.11 E(Period between Join/Prune Messages)73.055 E
503.999 327.55 72 327.55 DL(t_suppressed)84.501 337.8 Q
(rand\(1.1 * t_periodic,)181.481 337.8 Q(1.4 * t_periodic\) when)181.481
350.8 Q(Suppression_Enabled\(I\))181.481 363.8 Q(is true, 0 otherwise)
181.481 376.8 Q(Suppression period when someone)325.299 337.8 Q
(else sends a J/P message so we don')325.299 350.8 Q(t)-.198 E
(need to do so.)325.299 363.8 Q 503.999 381.55 72 381.55 DL(t_o)84.501
391.8 Q -.165(ve)-.165 G(rride).165 E(rand\(0, Ef)181.481 391.8 Q(fecti)
-.275 E -.165(ve)-.275 G(_).165 E(Ov)181.481 404.8 Q(erride_Interv)-.165
E(al\(I\)\))-.275 E(Randomized delay to pre)325.299 391.8 Q -.165(ve)
-.275 G(nt).165 E(response implosion when sending a)325.299 404.8 Q
(join message to o)325.299 417.8 Q -.165(ve)-.165 G(rride someone).165 E
(else')325.299 430.8 Q 2.75(sP)-.605 G(rune message.)-2.75 E 503.999
435.55 72 435.55 DL 306.547 295.55 306.547 435.55 DL 162.729 295.55
162.729 435.55 DL 503.999 295.55 503.999 435.55 DL 72 295.55 72 435.55
DL(t_periodic may be set to tak)72 453.4 Q 2.75(ei)-.11 G
(nto account such things as the con\214gured bandwidth and e)-2.75 E
(xpected)-.165 E -2.475 -.22(av e)72 466.4 T
(rage number of multicast route entries for the attached netw).22 E
(ork or link \(e.g., the period w)-.11 E(ould)-.11 E(be longer for lo)72
479.4 Q(wer)-.275 E
(-speed links, or for routers in the center of the netw)-.22 E
(ork that e)-.11 E(xpect to ha)-.165 E .33 -.165(ve a)-.22 H(lar)72
492.4 Q(ger number of entries\). If the Join/Prune-Period is modi\214ed\
 during operation, these changes)-.198 E(should be made relati)72 505.4
Q -.165(ve)-.275 G
(ly infrequently and the router should continue to refresh at its pre)
.165 E(vious)-.275 E
(Join/Prune-Period for at least Join/Prune-Holdtime, in order to allo)72
518.4 Q 2.75(wt)-.275 G(he upstream router to adapt.)-2.75 E(The holdti\
me speci\214ed in a Join/Prune message should be set to \(3.5 * t_perio\
dic\).)72 535 Q(t_o)72 551.6 Q -.165(ve)-.165 G(rride depends on the Ef)
.165 E(fecti)-.275 E -.165(ve)-.275 G(_Ov).165 E(erride_Interv)-.165 E
(al of the upstream interf)-.275 E(ace which may)-.11 E
(change when Hello messages are recei)72 564.6 Q -.165(ve)-.275 G(d.)
.165 E
(t_suppressed depends on the Suppression State of the upstream interf)72
581.2 Q(ace \(Section 4.3.3\) and)-.11 E
(becomes zero when suppression is disabled.)72 594.2 Q F1 -.198(Ti)72
620.2 S(mer Name: Upstr).198 E(eam Ov)-.198 E(erride T)-.11 E(imer \(O)
-.198 E(T\(S,G,r)-.44 E(pt\)\))-.11 E 503.999 634.55 72 634.55 DL -1.012
(Va)91.09 644.8 S(lue Name)1.012 E -1.012(Va)60.02 G 137.933
(lue Explanation)1.012 F 503.999 649.55 72 649.55 DL 503.999 651.55 72
651.55 DL F0(t_o)91.09 661.8 Q -.165(ve)-.165 G 69.117(rride see).165 F
(Upstream Join T)2.75 E 54.52(imer see)-.385 F(Upstream Join T)2.75 E
(imer)-.385 E 503.999 666.55 72 666.55 DL 346.373 634.55 346.373 666.55
DL 179.202 634.55 179.202 666.55 DL 503.999 634.55 503.999 666.55 DL 72
634.55 72 666.55 DL(The upstream Ov)72 684.4 Q(erride T)-.165 E
(imer is only e)-.385 E -.165(ve)-.275 G 2.75(rs).165 G(et to t_o)-2.75
E -.165(ve)-.165 G(rride; this v).165 E
(alue is de\214ned in the section on)-.275 E(Upstream Join T)72 697.4 Q
(imers.)-.385 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E
158.221(elas Section)-.165 F 2.75(4.11. [P)2.75 F(age 101])-.165 E 0 Cg
EP
%%Page: 102 102
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF -.198
(Ti)72 85 S(mer Name: K).198 E(eepali)-.275 E .22 -.11(ve T)-.11 H
(imer \(KA)-.088 E(T\(S,G\)\))-1.045 E .44 LW 503.993 99.35 72 99.35 DL
-1.012(Va)88.562 109.6 S(lue Name)1.012 E -1.012(Va)90.012 G 117.93
(lue Explanation)1.012 F 503.993 114.35 72 114.35 DL 503.993 116.35 72
116.35 DL F0 -.275(Ke)88.562 126.6 S(epali).275 E -.165(ve)-.275 G
65.889(_Period Def).165 F(ault: 210 secs)-.11 E
(Period after last \(S,G\))382.469 126.6 Q(data pack)382.469 139.6 Q
(et during)-.11 E(which \(S,G\) Join state)382.469 152.6 Q
(will be maintained e)382.469 165.6 Q -.165(ve)-.275 G(n).165 E
(in the absence of \(S,G\))382.469 178.6 Q(Join messages.)382.469 191.6
Q 503.993 196.35 72 196.35 DL(RP_K)88.562 206.6 Q(eepali)-.275 E -.165
(ve)-.275 G(_Period).165 E 2.75(\(3*R)235.301 206.6 S -.165(eg)-2.75 G
(ister_).165 E(Suppression_T)235.301 219.6 Q(ime \) +)-.385 E(Re)235.301
232.6 Q(gister_Probe_T)-.165 E(ime)-.385 E(As K)382.469 206.6 Q(eepali)
-.275 E -.165(ve)-.275 G(_Period,).165 E -.22(bu)382.469 219.6 S 2.75
(ta).22 G 2.75(tt)-2.75 G(he RP when a)-2.75 E(Re)382.469 232.6 Q
(gister)-.165 E(-Stop is sent.)-.22 E 503.993 237.35 72 237.35 DL
357.626 99.35 357.626 237.35 DL 210.458 99.35 210.458 237.35 DL 503.993
99.35 503.993 237.35 DL 72 99.35 72 237.35 DL(The normal k)72 251.6 Q
(eepali)-.11 E .33 -.165(ve p)-.275 H(eriod for the KA).165 E
(T\(S,G\) def)-1.221 E(aults to 210 seconds.)-.11 E(Ho)5.5 E(we)-.275 E
-.165(ve)-.275 G 2.75(ra).165 G 2.75(tt)-2.75 G(he RP)-2.75 E 2.75(,t)
-1.221 G(he)-2.75 E -.11(ke)72 264.6 S(epali).11 E .33 -.165(ve p)-.275
H(eriod must be at least the Re).165 E(gister_Suppression_T)-.165 E
(ime or the RP may time out the)-.385 E(\(S,G\) state before the ne)72
277.6 Q(xt Null-Re)-.165 E(gister arri)-.165 E -.165(ve)-.275 G 2.75
(s. Thus).165 F(the KA)2.75 E(T\(S,G\) is set to)-1.221 E(max\(K)72
290.6 Q(eepali)-.275 E -.165(ve)-.275 G(_Period, RP_K).165 E(eepali)
-.275 E -.165(ve)-.275 G(_Period\) when a Re).165 E(gister)-.165 E
(-Stop is sent.)-.22 E F1 -.198(Ti)72 316.6 S(mer Name: Register).198 E
(-Stop T)-.407 E(imer \(RST\(S,G\)\))-.198 E 504 330.95 72 330.95 DL
-1.012(Va)88.105 341.2 S(lue Name)1.012 E -1.012(Va)115.701 G 92.59
(lue Explanation)1.012 F 504 345.95 72 345.95 DL 504 347.95 72 347.95 DL
F0(Re)88.105 358.2 Q(gister_Suppression_T)-.165 E 45.565(ime Def)-.385 F
(ault: 60 secs)-.11 E(Period during which a)382.361 358.2 Q
(DR stops sending)382.361 371.2 Q(Re)382.361 384.2 Q(gister)-.165 E
(-encapsulated)-.22 E(data to the RP after)382.361 397.2 Q(recei)382.361
410.2 Q(ving a Re)-.275 E(gister)-.165 E(-)-.22 E(Stop message.)382.361
423.2 Q 504 427.95 72 427.95 DL(Re)88.105 438.2 Q(gister_Probe_T)-.165 E
73.681(ime Def)-.385 F(ault: 5 secs)-.11 E -.385(Ti)382.361 438.2 S
(me before RST).385 E -.165(ex)382.361 451.2 S(pires when a DR may).165
E(send a Null-Re)382.361 464.2 Q(gister to)-.165 E
(the RP to cause it to)382.361 477.2 Q(resend a Re)382.361 490.2 Q
(gister)-.165 E(-Stop)-.22 E(message.)382.361 503.2 Q 504 507.95 72
507.95 DL 358.203 330.95 358.203 507.95 DL 236.375 330.95 236.375 507.95
DL 504 330.95 504 507.95 DL 72 330.95 72 507.95 DL(If the the Re)72
522.2 Q(gister_Suppression_T)-.165 E(ime or the Re)-.385 E
(gister_Probe_T)-.165 E(ime are con\214gured to v)-.385 E(alues other)
-.275 E(than the def)72 535.2 Q(aults it MUST be ensured that the v)-.11
E(alue of the Re)-.275 E(gister_Probe_T)-.165 E(ime is less than half)
-.385 E(the v)72 548.2 Q(alue of the Re)-.275 E(gister_Suppression_T)
-.165 E(ime to pre)-.385 E -.165(ve)-.275 G(nt a possible ne).165 E
-.055(ga)-.165 G(ti).055 E .33 -.165(ve v)-.275 H
(alue in the setting of)-.11 E(the Re)72 561.2 Q(gister)-.165 E(-Stop T)
-.22 E(imer)-.385 E(.)-.605 E F1(5.)72 587.2 Q/F2 14/Times-Bold@0 SF
(IAN)5.5 E 3.5(AC)-.28 G(onsiderations)-3.5 E F1(5.1.)72 613.2 Q/F3 13
/Times-Bold@0 SF(PIM Addr)5.5 E(ess F)-.234 E(amily)-.325 E F0
(The PIM Address F)72 629.8 Q(amily \214eld w)-.165 E
(as chosen to be 8 bits as a tradeof)-.11 E 2.75(fb)-.275 G(etween pack)
-2.75 E(et format and)-.11 E(use of the IAN)72 642.8 Q 2.75(Aa)-.385 G
(ssigned numbers.)-2.75 E(Since when the PIM pack)5.5 E(et format w)-.11
E(as designed only 15)-.11 E -.275(va)72 655.8 S
(lues were assigned for Address F).275 E(amilies, and lar)-.165 E
(ge numbers of ne)-.198 E 2.75(wA)-.275 G(ddress F)-2.75 E(amily v)-.165
E(alues)-.275 E(were not en)72 668.8 Q(visioned, 8 bits seemed lar)-.44
E(ge enough.)-.198 E(Ho)5.5 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t)
.165 H(he IAN).44 E 2.75(Aa)-.385 G(ssigns Address F)-2.75 E(amilies)
-.165 E(in a 16-bit \214eld.)72 681.8 Q(Therefore, the PIM Address F)5.5
E(amily is allocated as follo)-.165 E(ws:)-.275 E -1.221(Va)97 698.4 S
(lues 0 through 127 are designated to ha)1.221 E .33 -.165(ve t)-.22 H
(he same meaning as IAN).165 E(A-assigned Address)-.385 E -.165(Fa)97
711.4 S(mily Numbers [6].).165 E(Fenner/Handle)72 769 Q(y/Holbrook/K)
-.165 E(ouv)-.385 E 163.721(elas Section)-.165 F 2.75(5.1. [P)2.75 F
(age 102])-.165 E 0 Cg EP
%%Page: 103 103
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E -1.221(Va)97 85 S
(lues 128 through 250 are designated to be assigned for PIM by the IAN)
1.221 E 2.75(Ab)-.385 G(ased upon)-2.75 E(IESG Appro)97 98 Q -.275(va)
-.165 G(l, as de\214ned in [8].).275 E -1.221(Va)97 114.6 S
(lues 251 through 255 are designated for Pri)1.221 E -.275(va)-.275 G
(te Use, as de\214ned in [8].).275 E/F1 11/Times-Bold@0 SF(5.2.)72 140.6
Q/F2 13/Times-Bold@0 SF(PIM Hello Options)5.5 E F0 -1.221(Va)72 157.2 S
(lues 17 through 65000 are to be assigned by the IAN)1.221 E 2.75
(A. Since)-.385 F(the space is lar)2.75 E(ge, the)-.198 E 2.75(ym)-.165
G(ay be)-2.75 E(assigned as First Come First Serv)72 170.2 Q
(ed as de\214ned in [8]. Such assignments are v)-.165 E
(alid for one year)-.275 E(,)-.44 E(and may be rene)72 183.2 Q 2.75
(wed. Permanent)-.275 F
(assignments require a speci\214cation \(see "Speci\214cation)2.75 E
(Required" in [8].\))72 196.2 Q F1(6.)72 222.2 Q/F3 14/Times-Bold@0 SF
(Security Considerations)5.5 E F0
(The IPsec authentication header [7] MA)72 238.8 Q 2.75(Yb)-1.155 G 2.75
(eu)-2.75 G(sed to pro)-2.75 E(vide data inte)-.165 E
(grity protection and)-.165 E
(groupwise data origin authentication of PIM protocol messages.)72 251.8
Q(Authentication of PIM messages)5.5 E(can protect ag)72 264.8 Q
(ainst unw)-.055 E(anted beha)-.11 E
(viors caused by unauthorized or altered PIM messages.)-.22 E F1(6.1.)72
290.8 Q F2(Attacks based on f)5.5 E(or)-.325 E(ged messages)-.13 E F0
(The e)72 307.4 Q(xtent of possible damage depends on the type of count\
erfeit messages accepted.)-.165 E 1.76 -.88(We n)5.5 H -.165(ex).88 G(t)
.165 E(consider the impact of possible for)72 320.4 Q
(geries, including for)-.198 E(ged link-local \(Join/Prune, Hello, and)
-.198 E(Assert\) and for)72 333.4 Q(ged unicast \(Re)-.198 E
(gister and Re)-.165 E(gister)-.165 E(-Stop\) messages.)-.22 E F1 2.75
(6.1.1. F)72 359.4 R(or)-.275 E(ged link-local messages)-.11 E F0(Join/\
Prune, Hello, and Assert messages are all sent to the link-local ALL_PI\
M_R)72 376 Q(OUTERS)-.44 E(multicast addresses, and thus are not forw)72
389 Q(arded by a compliant router)-.11 E 5.5(.A)-.605 G(for)-2.75 E
(ged message of this)-.198 E(type can only reach a LAN if it w)72 402 Q
(as sent by a local host or if it w)-.11 E(as allo)-.11 E
(wed onto the LAN by a)-.275 E(compromised or non-compliant router)72
415 Q(.)-.605 E 14(1. A)72 431.6 R(for)2.75 E
(ged Join/Prune message can cause multicast traf)-.198 E
(\214c to be deli)-.275 E -.165(ve)-.275 G(red to links where there).165
E(are no le)97 444.6 Q(gitimate requesters, potentially w)-.165 E
(asting bandwidth on that link.)-.11 E 2.75(Af)5.5 G(or)-2.75 E(ged lea)
-.198 E -.165(ve)-.22 G(message on a multi-access LAN is generally not \
a signi\214cant attack in PIM, because an)97 457.6 Q(y)-.165 E(le)97
470.6 Q(gitimately joined router on the LAN w)-.165 E(ould o)-.11 E
-.165(ve)-.165 G(rride the lea).165 E .33 -.165(ve w)-.22 H
(ith a join before the).165 E(upstream router stops forw)97 483.6 Q
(arding data to the LAN.)-.11 E 16.75(2. By)72 500.2 R(for)2.75 E(ging \
a Hello message, an unauthorized router can cause itself to be elected \
as the)-.198 E(designated router on a LAN.)97 513.2 Q
(The designated router on a LAN is \(in the absence of asserts\))5.5 E
(responsible for forw)97 526.2 Q(arding traf)-.11 E
(\214c to that LAN on behalf of an)-.275 E 2.75(yl)-.165 G
(ocal members.)-2.75 E(The)5.5 E
(designated router is also responsible for re)97 539.2 Q(gister)-.165 E
(-encapsulating to the RP an)-.22 E 2.75(yp)-.165 G(ack)-2.75 E
(ets that)-.11 E(are originated by hosts on the LAN.)97 552.2 Q
(Thus, the ability of local hosts to send and recei)5.5 E -.165(ve)-.275
G(multicast traf)97 565.2 Q(\214c may be compromised by a for)-.275 E
(ged Hello message.)-.198 E 14(3. By)72 581.8 R(for)2.75 E
(ging an Assert message on a multi-access LAN, an attack)-.198 E
(er could cause the le)-.11 E(gitimate)-.165 E(designated forw)97 594.8
Q(arder to stop forw)-.11 E(arding traf)-.11 E(\214c to the LAN.)-.275 E
(Such a for)5.5 E(gery w)-.198 E(ould pre)-.11 E -.165(ve)-.275 G(nt)
.165 E(an)97 607.8 Q 2.75(yh)-.165 G(osts do)-2.75 E
(wnstream of that LAN from recei)-.275 E(ving traf)-.275 E(\214c.)-.275
E F1 2.75(6.1.2. F)72 633.8 R(or)-.275 E(ged unicast messages)-.11 E F0
(Re)72 650.4 Q(gister messages and)-.165 E(Re)5.5 E(gister)-.165 E
(-Stop messages are forw)-.22 E(arded by intermediate routers to their)
-.11 E(destination using normal IP forw)72 663.4 Q 2.75(arding. W)-.11 F
(ithout data origin authentication, an attack)-.44 E(er who is)-.11 E
(located an)72 676.4 Q(ywhere in the netw)-.165 E
(ork may be able to for)-.11 E(ge a Re)-.198 E(gister or Re)-.165 E
(gister)-.165 E(-Stop message.)-.22 E -.88(We)5.5 G(consider the ef)72
689.4 Q(fect of a for)-.275 E(gery of each of these messages ne)-.198 E
(xt.)-.165 E 19.5(1B)72 706 S 2.75(yf)-19.5 G(or)-2.75 E(ging a Re)-.198
E(gister message, an attack)-.165 E(er can cause the RP to inject for)
-.11 E(ged traf)-.198 E(\214c onto the)-.275 E(shared multicast tree.)97
719 Q(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 155.471
(elas Section)-.165 F 2.75(6.1.2. [P)2.75 F(age 103])-.165 E 0 Cg EP
%%Page: 104 104
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 19.5(2B)72 85 S 2.75(yf)-19.5
G(or)-2.75 E(ging a Re)-.198 E(gister)-.165 E(-stop message, an attack)
-.22 E(er can pre)-.11 E -.165(ve)-.275 G(nt a le).165 E
(gitimate DR from)-.165 E(Re)97 98 Q(gistering pack)-.165 E
(ets to the RP)-.11 E 5.5(.T)-1.221 G(his can pre)-5.5 E -.165(ve)-.275
G(nt local hosts on that LAN from sending).165 E(multicast pack)97 111 Q
(ets.)-.11 E(The abo)72 127.6 Q .33 -.165(ve t)-.165 H .22 -.11(wo P)
.165 H
(IM messages are not changed by intermediate routers and need only be e)
.11 E(xamined)-.165 E(by the intended recei)72 140.6 Q -.165(ve)-.275 G
3.96 -.605(r. T).165 H
(hus these messages can be authenticated end-to-end, using AH.).605 E
(Attacks on Re)72 153.6 Q(gister and Re)-.165 E(gister)-.165 E
(-Stop messages do not apply to a PIM-SSM-only)-.22 E
(implementation, as these messages are not required for PIM-SSM.)72
166.6 Q/F1 11/Times-Bold@0 SF(6.2.)72 192.6 Q/F2 13/Times-Bold@0 SF
(Non-cryptographic A)5.5 E(uthentication Mechanisms)-.65 E F0 2.75(AP)72
209.2 S(IM router SHOULD pro)-2.75 E
(vide an option to limit the set of neighbors from which it will accept)
-.165 E(Join/Prune, Assert, and Hello messages.)72 222.2 Q
(Either static con\214guration of IP addresses or an IPsec)5.5 E
(security association may be used.)72 235.2 Q
(Furthermore, a PIM router SHOULD NO)5.5 E 2.75(Ta)-.44 G
(ccept protocol)-2.75 E
(messages from a router from which it has not yet recei)72 248.2 Q -.165
(ve)-.275 G 2.75(dav).165 G(alid Hello message.)-3.025 E 2.75(AD)72
264.8 S(esignated Router MUST NO)-2.75 E 2.75(Tr)-.44 G -.165(eg)-2.75 G
(ister).165 E(-encapsulate a pack)-.22 E
(et and send it to the RP unless the)-.11 E(source address of the pack)
72 277.8 Q(et is a le)-.11 E -.055(ga)-.165 G 2.75(la).055 G
(ddress for the subnet on which the pack)-2.75 E(et w)-.11 E(as recei)
-.11 E -.165(ve)-.275 G(d.).165 E(Similarly)72 290.8 Q 2.75(,aD)-.715 G
(esignated Router SHOULD NO)-2.75 E 2.75(Ta)-.44 G(ccept a Re)-2.75 E
(gister)-.165 E(-Stop pack)-.22 E(et whose IP source)-.11 E
(address is not a v)72 303.8 Q(alid RP address for the local domain.)
-.275 E(An implementation SHOULD pro)72 320.4 Q
(vide a mechanism to allo)-.165 E 2.75(wa)-.275 G 2.75(nR)-2.75 G 2.75
(Pt)-2.75 G 2.75(or)-2.75 G(estrict the range of source)-2.75 E
(addresses from which it accepts Re)72 333.4 Q(gister)-.165 E
(-encapsulated pack)-.22 E(ets.)-.11 E
(All options that restrict the range of addresses from which pack)72 350
Q(ets are accepted MUST def)-.11 E(ault to)-.11 E(allo)72 363 Q
(wing all pack)-.275 E(ets.)-.11 E F1(6.3.)72 389 Q F2 -.65(Au)5.5 G
(thentication using IPsec).65 E F0(The IPsec [7] transport mode using t\
he Authentication Header \(AH\) is the recommended method)72 405.6 Q
(to pre)72 418.6 Q -.165(ve)-.275 G(nt the abo).165 E .33 -.165(ve a)
-.165 H(ttacks ag).165 E(ainst PIM.)-.055 E
(The speci\214c AH authentication algorithm and)5.5 E(parameters, inclu\
ding the choice of authentication algorithm and the choice of k)72 431.6
Q -.165(ey)-.11 G 2.75(,a)-.55 G(re con\214gured)-2.75 E(by the netw)72
444.6 Q(ork administrator)-.11 E 5.5(.W)-.605 G
(hen IPsec authentication is used, a PIM router should reject)-5.5 E
(\(drop without processing\) an)72 457.6 Q 2.75(yu)-.165 G
(nauthorized PIM protocol messages.)-2.75 E(As of this writing, the IPs\
ec anti-replay option does not handle the case of a Security Associatio\
n)72 474.2 Q(identi\214ed by a multicast destination address.)72 487.2 Q
(Thus, the anti-replay option currently must be)5.5 E
(disabled on these Security Associations.)72 500.2 Q(Until replay pre)
5.5 E -.165(ve)-.275 G(ntion for link-local multicast).165 E(messages i\
s addressed \(one such proposal is [14]\), the anti-replay option SHOUL\
D be enabled on)72 513.2 Q(all security associations ha)72 526.2 Q
(ving a unicast destination address.)-.22 E 1.76 -.88(To u)72 542.8 T
(se IPsec, the administrator of a PIM netw).88 E
(ork con\214gures each PIM router with one or more)-.11 E(Security Asso\
ciations and associated SPI\(s\) that are used by senders to authentica\
te PIM protocol)72 555.8 Q/F3 10/Symbol SF<ef>555 567.8 Q<ef>-4.94 -10 M
F0(messages and are used by recei)72 568.8 Q -.165(ve)-.275 G
(rs to authenticate recei).165 E -.165(ve)-.275 G 2.75(dP).165 G
(IM protocol messages.)-2.75 E(This)5.5 E(document does not describe pr\
otocols for establishing Security Associations.)72 581.8 Q
(It assumes that)5.5 E
(manual con\214guration of Security Associations is performed, b)72
594.8 Q(ut it does not preclude the use of a)-.22 E(ne)72 607.8 Q
(gotiation protocol such as The Internet K)-.165 E .33 -.165(ey E)-.275
H(xchange [13] to establish Security Associations.).165 E(The follo)72
624.4 Q(wing sections describe the Security Associations required to pr\
otect PIM protocol)-.275 E(messages.)72 637.4 Q F1 2.75(6.3.1. Pr)72
663.4 R(otecting link-local multicast messages)-.198 E F0(The netw)72
680 Q(ork administrator de\214nes a Security Association \(SA\) and Sec\
urity P)-.11 E(arameters Inde)-.165 E(x)-.165 E(\(SPI\) that is to be u\
sed to authenticate all link-local PIM protocol messages \(Hello, Join/\
Prune,)72 693 Q(and Assert\) on each link in a PIM domain.)72 706 Q
(All link-local PIM protocol messages use SPI 0.)5.5 E(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 155.471(elas Section)-.165 F 2.75
(6.3.1. [P)2.75 F(age 104])-.165 E 0 Cg EP
%%Page: 105 105
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(The Security Polic)72 85 Q
2.75(yD)-.165 G(atabase at a PIM router should be con\214gured to ensur\
e that all incoming)-2.75 E
(and outgoing Join/Prune, Assert, and Hello pack)72 98 Q
(ets use the SA associated with the interf)-.11 E(ace to)-.11 E
(which the pack)72 111 Q(et is sent.)-.11 E
(Note that, according to [7] there is nominally a dif)72 127.6 Q
(ferent Security Association Database \(SAD\) for)-.275 E
(each router interf)72 140.6 Q 2.75(ace. Thus,)-.11 F
(the selected Security Association for an inbound PIM pack)2.75 E
(et can)-.11 E -.275(va)72 153.6 S(ry depending on the interf).275 E
(ace on which the pack)-.11 E(et arri)-.11 E -.165(ve)-.275 G 2.75
(d. This).165 F -.11(fa)2.75 G(ct allo).11 E(ws the netw)-.275 E(ork)
-.11 E(administrator to use dif)72 166.6 Q
(ferent authentication methods for each link, e)-.275 E -.165(ve)-.275 G
2.75(nt).165 G(hough the destination)-2.75 E
(address is the same for all link-local PIM pack)72 179.6 Q(ets, re)-.11
E -.055(ga)-.165 G(rdless of interf).055 E(ace.)-.11 E/F1 11
/Times-Bold@0 SF 2.75(6.3.2. Pr)72 209.2 R(otecting unicast messages)
-.198 E F0(IPSec can also be used to pro)72 225.8 Q
(vide data origin authentication and data inte)-.165 E
(grity protection for the)-.165 E(Re)72 238.8 Q(gister and Re)-.165 E
(gister)-.165 E(-Stop unicast messages.)-.22 E F1 2.75
(6.3.2.1. Register)72 264.8 R(messages)2.75 E F0(The Security Polic)72
281.4 Q 2.75(yD)-.165 G(atabase at e)-2.75 E -.165(ve)-.275 G
(ry PIM router is con\214gured to select a Security Association to).165
E(use when sending PIM Re)72 294.4 Q(gister pack)-.165 E
(ets to each rendezv)-.11 E(ous point.)-.22 E
(In the most general mode of operation, the Security Polic)72 311 Q 2.75
(yD)-.165 G(atabase at each DR is con\214gured to)-2.75 E
(select a unique SA and SPI for traf)72 324 Q(\214c sent to each RP)
-.275 E 5.5(.T)-1.221 G(his allo)-5.5 E(ws each DR to ha)-.275 E .33
-.165(ve a d)-.22 H(if).165 E(ferent)-.275 E
(authentication algorithm and k)72 337 Q .33 -.165(ey t)-.11 H 2.75(ot)
.165 G(alk to the RP)-2.75 E 5.5(.H)-1.221 G -.275(ow)-5.5 G -2.365
-.275(ev e).275 H .88 -.44(r, t).275 H(his creates a daunting k).44 E
-.165(ey)-.11 G(management and distrib)72 350 Q
(ution problem for the netw)-.22 E(ork administrator)-.11 E 5.5(.T)-.605
G(herefore, it may be)-5.5 E(preferable in PIM domains where all Design\
ated Routers are under a single administrati)72 363 Q -.165(ve)-.275 G(\
control, to use the same authentication algorithm parameters \(includin\
g the k)72 376 Q -.165(ey)-.11 G 2.75(\)f).165 G(or all Re)-2.75 E
(gistered)-.165 E(pack)72 389 Q(ets in a domain, re)-.11 E -.055(ga)
-.165 G(rdless of who is the RP and re).055 E -.055(ga)-.165 G
(rdless of who is the DR.).055 E(In this "single shared k)72 405.6 Q
-.165(ey)-.11 G 2.75("m).165 G(ode of operation, the netw)-2.75 E
(ork administrator must choose an SPI for)-.11 E
(each DR that will be used to send it PIM protocol pack)72 418.6 Q 2.75
(ets. The)-.11 F(Security Polic)2.75 E 2.75(yD)-.165 G(atabase at e)
-2.75 E -.165(ve)-.275 G(ry).165 E(DR is con\214gured to select a Secur\
ity Association \(including the authentication algorithm,)72 431.6 Q
(authentication parameters, and this SPI\) when sending Re)72 444.6 Q
(gister messages to this RP)-.165 E(.)-1.221 E(By using a single authen\
tication algorithm and associated parameters, the k)72 461.2 Q .33 -.165
(ey d)-.11 H(istrib).165 E(ution)-.22 E(problem is simpli\214ed.)72
474.2 Q(Note ho)5.5 E(we)-.275 E -.165(ve)-.275 G .88 -.44(r, t).165 H
(hat this method has the property that, in order to change).44 E
(the authentication method or authentication k)72 487.2 Q .33 -.165
(ey u)-.11 H(sed, all routers in the domain must be updated.).165 E F1
2.75(6.3.2.2. Register)72 513.2 R(-Stop messages)-.407 E F0(Similarly)72
529.8 Q 2.75(,t)-.715 G(he Security Polic)-2.75 E 2.75(yD)-.165 G
(atabase at each Rendezv)-2.75 E
(ous Point should be con\214gured to choose)-.22 E 2.75(aS)72 542.8 S
(ecurity Association to use when sending Re)-2.75 E(gister)-.165 E
(-Stop messages.)-.22 E(Because Re)5.5 E(gister)-.165 E(-Stop)-.22 E
(messages are unicast to the destination DR, a dif)72 555.8 Q
(ferent Security Association and a potentially)-.275 E
(unique SPI is required for each DR.)72 568.8 Q(In order to simplify th\
e management problem, it may be acceptable to use the same authenticati\
on)72 585.4 Q(algorithm and authentication parameters, re)72 598.4 Q
-.055(ga)-.165 G(rdless of the sending RP and re).055 E -.055(ga)-.165 G
(rdless of the).055 E(destination DR.)72 611.4 Q
(Although a unique Security Association is needed for each DR, the same)
5.5 E(authentication algorithm and authentication algorithm parameters \
\(secret k)72 624.4 Q -.165(ey)-.11 G 2.75(\)c).165 G(an be shared by)
-2.75 E(all DRs and by all RPs.)72 637.4 Q F1(6.4.)72 667 Q/F2 13
/Times-Bold@0 SF(Denial of Ser)5.5 E(vice Attacks)-.13 E F0
(There are a number of possible denial of service attacks ag)72 683.6 Q
(ainst PIM that can be caused by)-.055 E(generating f)72 696.6 Q
(alse PIM protocol messages or e)-.11 E -.165(ve)-.275 G 2.75(nb).165 G
2.75(yg)-2.75 G(enerating data f)-2.75 E(alse traf)-.11 E 2.75
(\214c. Authenticating)-.275 F(PIM protocol traf)72 709.6 Q(\214c pre)
-.275 E -.165(ve)-.275 G(nts some, b).165 E
(ut not all of these attacks.)-.22 E -1.1 -.88(Tw o)5.5 H
(of the possible attacks)3.63 E(include:)72 722.6 Q(Fenner/Handle)72 769
Q(y/Holbrook/K)-.165 E(ouv)-.385 E 163.721(elas Section)-.165 F 2.75
(6.4. [P)2.75 F(age 105])-.165 E 0 Cg EP
%%Page: 106 106
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E 21.337(-S)72 85 S(ending pack)
-21.337 E(ets to man)-.11 E 2.75(yd)-.165 G(if)-2.75 E
(ferent group addresses quickly can be a denial of service attack)-.275
E(in and of itself.)97 98 Q(This will cause man)5.5 E 2.75(yr)-.165 G
-.165(eg)-2.75 G(ister).165 E(-encapsulated pack)-.22 E
(ets, loading the DR, the RP)-.11 E(,)-1.221 E
(and the routers between the DR and the RP)97 111 Q(.)-1.221 E 21.337
(-F)72 127.6 S(or)-21.502 E
(ging Join messages can cause a multicast tree to get set up.)-.198 E
2.75(Al)5.5 G(ar)-2.75 E(ge number of for)-.198 E(ged)-.198 E
(joins can consume router resources and result in denial of service.)97
140.6 Q/F1 11/Times-Bold@0 SF(7.)72 166.6 Q/F2 14/Times-Bold@0 SF -.7
(Au)5.5 G(thors' Addr).7 E(esses)-.252 E F0(Bill Fenner)108 185.6 Q
-1.221(AT)108 198.6 S(&T Labs - Research)1.221 E(75 W)108 211.6 Q(illo)
-.44 E 2.75(wR)-.275 G(oad)-2.75 E(Menlo P)108 224.6 Q(ark, CA 94025)
-.165 E(fenner@research.att.com)108 237.6 Q(Mark Handle)108 262.6 Q(y)
-.165 E(Department of Computer Science)108 275.6 Q(Uni)108 288.6 Q -.165
(ve)-.275 G(rsity Colle).165 E(ge London)-.165 E(Go)108 301.6 Q
(wer Street)-.275 E(London WC1E 6BT)108 314.6 Q(United Kingdom)108 327.6
Q(M.Handle)108 340.6 Q(y@cs.ucl.ac.uk)-.165 E(Hugh Holbrook)108 365.6 Q
(Cisco Systems)108 378.6 Q(170 W)108 391.6 Q 2.75(.T)-1.012 G(asman Dri)
-3.63 E -.165(ve)-.275 G(San Jose, CA 95134)108 404.6 Q
(holbrook@cisco.com)108 417.6 Q(Isidor K)108 442.6 Q(ouv)-.385 E(elas)
-.165 E(Cisco Systems)108 455.6 Q(170 W)108 468.6 Q 2.75(.T)-1.012 G
(asman Dri)-3.63 E -.165(ve)-.275 G(San Jose, CA 95134)108 481.6 Q -.11
(ko)108 494.6 S(uv).11 E(elas@cisco.com)-.165 E F1(8.)72 539.6 Q F2
(Ackno)5.5 E(wledgments)-.14 E F0(PIM-SM w)72 556.2 Q(as designed o)-.11
E -.165(ve)-.165 G 2.75(rm).165 G(an)-2.75 E 2.75(yy)-.165 G
(ears by a lar)-2.75 E(ge group of people, including ideas, comments,)
-.198 E(and corrections from Deborah Estrin, Dino F)72 569.2 Q
(arinacci, Ahmed Helmy)-.165 E 2.75(,D)-.715 G -.22(av)-2.75 G
(id Thaler).22 E 2.75(,S)-.44 G(te)-2.75 E -.165(ve)-.275 G(Deering, V)
72 582.2 Q(an Jacobson, C. Liu, Puneet Sharma, Liming W)-1.221 E(ei, T)
-.88 E(om Pusateri, T)-.88 E(on)-.88 E 2.75(yB)-.165 G(allardie, Scott)
-2.75 E(Brim, Jon Cro)72 595.2 Q(wcroft, P)-.275 E
(aul Francis, Joel Halpern, Horst Hodel, Polly Huang, Stephen Ostro)
-.165 E(wski,)-.275 E
(Lixia Zhang, Girish Chandranmenon, Brian Haberman, Hal Sandick, Mik)72
608.2 Q 2.75(eM)-.11 G(roz, Garry K)-2.75 E(ump,)-.165 E -.165(Pa)72
621.2 S(vlin Radosla)-.055 E -2.475 -.22(vo v)-.22 H 2.75(,M)-.495 G(ik)
-2.75 E 2.75(eD)-.11 G -.22(av)-2.75 G
(ison, James Huang, Christopher Thomas Bro).22 E(wn, and James)-.275 E
(Ling)72 634.2 Q(ard.)-.055 E
(Thanks are due to the American Licorice Compan)72 650.8 Q 1.43 -.715
(y, f)-.165 H(or its obscure b).715 E(ut possibly essential role in)-.22
E(the creation of this document.)72 663.8 Q F1(9.)72 689.8 Q F2(Normati)
5.5 E .28 -.14(ve R)-.14 H(efer).14 E(ences)-.252 E F0
([1] B. Cain, S. Deering, I. K)72 706.4 Q(ouv)-.385 E(elas, B. Fenner)
-.165 E 2.75(,A)-.44 G 2.75(.T)-2.75 G -.055(hy)-2.75 G(ag).055 E
(arajan, "Internet Group Management)-.055 E(Protocol, V)97 719.4 Q
(ersion 3", RFC 3376.)-1.221 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165
E(ouv)-.385 E 171.971(elas Section)-.165 F 2.75(9. [P)2.75 F(age 106])
-.165 E 0 Cg EP
%%Page: 107 107
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E([2] S.E. Deering, "Host e)72
85 Q(xtensions for IP multicasting", RFC 1112, Aug 1989.)-.165 E
([3] S. Deering, W)72 101.6 Q 2.75(.F)-1.012 G(enner)-2.75 E 2.75(,B)
-.44 G 2.75(.H)-2.75 G(aberman, "Multicast Listener Disco)-2.75 E -.165
(ve)-.165 G(ry \(MLD\) for IPv6", RFC).165 E(2710.)97 114.6 Q
([4] S. Deering, R. Hinden, "Internet Protocol, V)72 131.2 Q
(ersion 6 \(IPv6\) Speci\214cation", RFC 2460.)-1.221 E([5] H. Holbrook\
, B. Cain, "Source-Speci\214c Multicast for IP", draft-ietf-ssm-arch-04\
.txt, w)72 147.8 Q(ork in)-.11 E(progress.)97 160.8 Q([6] IAN)72 177.4 Q
(A, "Address F)-.385 E(amily Numbers", link)-.165 E(ed from http://www)
-.11 E(.iana.or)-.715 E(g/numbers.html)-.198 E([7] S. K)72 194 Q(ent, R\
. Atkinson, "Security Architecture for the Internet Protocol.", RFC 240\
1.)-.275 E([8] T)72 210.6 Q 2.75(.N)-.814 G(arten , H. Alv)-2.75 E
(estrand, "Guidelines for Writing an IAN)-.165 E 2.75(AC)-.385 G
(onsiderations Section in RFCs",)-2.75 E(RFC 2434.)97 223.6 Q/F1 11
/Times-Bold@0 SF(10.)72 249.6 Q/F2 14/Times-Bold@0 SF(Inf)5.5 E(ormati)
-.35 E .28 -.14(ve R)-.14 H(efer).14 E(ences)-.252 E F0([9] T)72 266.2 Q
2.75(.B)-.814 G(ates , R. Chandra , D. Katz , Y)-2.75 E 2.75(.R)-1.419 G
(ekhter)-2.75 E 2.75(,")-.44 G(Multiprotocol Extensions for BGP-4", RFC)
-2.75 E(2283)97 279.2 Q([10] D. Black, "Dif)72 295.8 Q
(ferentiated Services and T)-.275 E(unnels", RFC 2983.)-.495 E([11] W)72
312.4 Q 2.75(.F)-1.012 G(enner)-2.75 E 2.75(,M)-.44 G 2.75(.H)-2.75 G
(andle)-2.75 E 1.43 -.715(y, R)-.165 H 2.75(.K).715 G(ermode, D. Thaler)
-3.025 E 2.75(,")-.44 G(Bootstrap Router \(BSR\) Mechanism for)-2.75 E
(PIM Sparse Mode", draft-ietf-pim-sm-bsr)97 325.4 Q(-03.txt, w)-.22 E
(ork in progress.)-.11 E([12] M. Handle)72 342 Q 1.43 -.715(y, I)-.165 H
2.75(.K).715 G(ouv)-3.135 E(elas, T)-.165 E 2.75(.S)-.814 G
(peakman, L. V)-2.75 E(icisano, "Bi-directional Protocol Independent)
-.66 E(Multicast", draft-ietf-pim-bidir)97 355 Q(-05.txt, w)-.22 E
(ork in progress.)-.11 E([13] D. Harkins, D. Carrell, "The Internet K)72
371.6 Q .33 -.165(ey E)-.275 H(xchange \(IKE\)", RFC 2409.).165 E
([14] S. K)72 388.2 Q(ent, "IP Encapsulating Security P)-.275 E
(ayload \(ESP\)", draft-ietf-ipsec-esp-v3-06.txt, w)-.165 E(ork in)-.11
E(progress.)97 401.2 Q([15] P)72 417.8 Q 2.75(.S)-1.221 G -.22(avo)-2.75
G(la, B. Haberman, "Embedding the Rendezv).22 E
(ous Point \(RP\) Address in an IPv6)-.22 E
(Multicast Address" draft-ietf-mboned-embeddedrp-04.txt, w)97 430.8 Q
(ork in progress.)-.11 E([16] D. Thaler)72 447.4 Q 2.75(,")-.44 G
(Interoperability Rules for Multicast Routing Protocols", RFC 2715.)
-2.75 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 166.471
(elas Section)-.165 F 2.75(10. [P)2.75 F(age 107])-.165 E 0 Cg EP
%%Page: 108 108
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(11.)72
85 Q/F2 14/Times-Bold@0 SF -.35(Ap)5.5 G
(pendix A: PIM Multicast Border Router Beha).35 E(vior)-.35 E F0(In som\
e cases PIM-SM domains will interconnect with non-PIM multicast domains\
.)72 101.6 Q(In these)5.5 E(cases, the border routers of the PIM domain\
 speak PIM-SM on some interf)72 114.6 Q(aces and speak other)-.11 E
(multicast routing protocols on other interf)72 127.6 Q 2.75(aces. Such)
-.11 F(routers are termed PIM Multicast Border)2.75 E(Routers or PMBRs.)
72 140.6 Q(In general, RFC 2715 [16] pro)5.5 E
(vides rules for interoperability between)-.165 E(dif)72 153.6 Q
(ferent multicast routing protocols.)-.275 E
(In this section we specify ho)5.5 E 2.75(wP)-.275 G(MBRs dif)-2.75 E
(fer from re)-.275 E(gular)-.165 E(PIM-SM routers.)72 166.6 Q
(From the point of vie)72 183.2 Q 2.75(wo)-.275 G 2.75(fP)-2.75 G
(IM-SM, a PMBR has tw)-2.75 E 2.75(ot)-.11 G(asks:)-2.75 E 7.15<8354>72
199.8 S 2.75(oe)-8.03 G(nsure that traf)-2.75 E
(\214c from sources outside the PIM-SM domain reaches recei)-.275 E
-.165(ve)-.275 G(rs inside the).165 E(domain.)83 212.8 Q 7.15<8354>72
229.4 S 2.75(oe)-8.03 G(nsure that traf)-2.75 E
(\214c from sources inside the PIM-SM domain reaches recei)-.275 E -.165
(ve)-.275 G(rs outside the).165 E(domain.)83 242.4 Q 1.76 -.88(We n)72
259 T(ote that multiple PIM-SM domains are sometimes connected together\
 using protocols such).88 E(as MSDP)72 272 Q 2.75(,w)-1.221 G(hich pro)
-2.75 E(vides information about acti)-.165 E .33 -.165(ve ex)-.275 H
(ternal sources, b).165 E(ut does not follo)-.22 E 2.75(wR)-.275 G(FC)
-2.75 E 2.75(2715. In)72 285 R(such cases the domains are not connected\
 via PMBRs because Join\(S,G\) messages)2.75 E(tra)72 298 Q -.165(ve)
-.22 G(rse the border between domains.).165 E 2.75(AP)5.5 G
(MBR is required when no PIM messages can tra)-2.75 E -.165(ve)-.22 G
(rse).165 E(the border)72 311 Q(.)-.605 E F1(11.1.)72 337 Q/F3 13
/Times-Bold@0 SF(Sour)5.5 E(ces Exter)-.234 E(nal to the PIM-SM Domain)
-.195 E F0 2.75(AP)72 353.6 S(MBR needs to ensure that traf)-2.75 E
(\214c from multicast sources e)-.275 E(xternal to the PIM-SM domain)
-.165 E(reaches recei)72 366.6 Q -.165(ve)-.275 G(rs inside the domain.)
.165 E(The PMBR will follo)5.5 E 2.75(wt)-.275 G
(he rules in RFC 2715, such that)-2.75 E(traf)72 379.6 Q(\214c from e)
-.275 E(xternal sources reaches the PMBR itself.)-.165 E
(According to RFC 2715, the PIM-SM component of the PMBR will recei)72
396.2 Q .33 -.165(ve a)-.275 H 2.75(n\().165 G(S,G\) Creation)-2.75 E
-2.365 -.275(ev e)72 409.2 T(nt when data from an \(S,G\) data pack).275
E(et from an e)-.11 E(xternal source \214rst reaches the PMBR.)-.165 E
(If)5.5 E(RPF_interf)72 422.2 Q(ace\(S\) is an interf)-.11 E
(ace in the PIM-SM domain, the pack)-.11 E
(et cannot be originated into the)-.11 E(PIM domain at this router)72
435.2 Q 2.75(,a)-.44 G
(nd the PIM-SM component of the PMBR will not process the pack)-2.75 E
(et.)-.11 E(Otherwise the PMBR will then act e)72 448.2 Q
(xactly as if it were the DR for this source \(see Section 4.4.1\),)
-.165 E(with the follo)72 461.2 Q(wing modi\214cations:)-.275 E 7.15
<8354>72 477.8 S(he Border)-7.15 E(-bit is set in all PIM Re)-.22 E
(gister message sent for these sources.)-.165 E 7.15<8344>72 494.4 S
(irectlyConnected\(S\) is treated as being TR)-7.15 E
(UE for these sources.)-.44 E 7.15<8354>72 511 S(he PIM-SM forw)-7.15 E
(arding rule "iif == RPF_interf)-.11 E(ace\(S\)" is relax)-.11 E
(ed to be TR)-.165 E(UE if iif is an)-.44 E(y)-.165 E(interf)83 524 Q(a\
ce that is not part of the PIM-SM component of the PMBR \(see Section 4\
.2\).)-.11 E F1(11.2.)72 550 Q F3(Sour)5.5 E(ces Inter)-.234 E
(nal to the PIM-SM Domain)-.195 E F0 2.75(AP)72 566.6 S
(MBR needs to ensure that traf)-2.75 E
(\214c from sources inside the PIM-SM domain reaches recei)-.275 E -.165
(ve)-.275 G(rs).165 E(outside the domain.)72 579.6 Q
(Using terminology from RFC 2715, there are tw)5.5 E 2.75(op)-.11 G
(ossible scenarios for this:)-2.75 E 7.15<8341>72 596.2 S
(nother component of the PMBR is a wildcard recei)-7.15 E -.165(ve)-.275
G 3.96 -.605(r. I).165 H 2.75(nt).605 G(his case the PIM-SM component)
-2.75 E(of the PMBR must ensure that traf)83 609.2 Q
(\214c from all internal sources reaches the PMBR until it is)-.275 E
(informed otherwise.)83 622.2 Q(Note that certain pro\214les of PIM-SM,\
 e.g., PIM-SSM, PIM-SM with Embedded RP)83 638.8 Q 2.75(,c)-1.221 G
(annot)-2.75 E(interoperate with a neighboring wildcard recei)83 651.8 Q
-.165(ve)-.275 G 2.75(rd).165 G(omain.)-2.75 E 7.15<834e>72 668.4 S 2.75
(oo)-7.15 G(ther component of the PMBR is a wildcard recei)-2.75 E -.165
(ve)-.275 G 3.96 -.605(r. I).165 H 2.75(nt).605 G
(his case the PMBR will recei)-2.75 E -.165(ve)-.275 G -.165(ex)83 681.4
S(plicit information as to which groups or \(source,group\) pairs the e)
.165 E(xternal domains wish to)-.165 E(recei)83 694.4 Q -.165(ve)-.275 G
(.).165 E(In the former case, the PMBR will need to send a Join\(*,*,RP\
\) to all the acti)72 711 Q .33 -.165(ve R)-.275 H(Ps in the PIM-).165 E
(SM domain.)72 724 Q(It may also send a Join\(*,*,RP\) to all the candi\
date RPs in the PIM-SM domain.)5.5 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 158.221(elas Section)-.165 F 2.75
(11.2. [P)2.75 F(age 108])-.165 E 0 Cg EP
%%Page: 109 109
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(This will cause all traf)72 85
Q(\214c in the domain to reach the PMBR.)-.275 E
(The PMBR may then act as if it were)5.5 E 2.75(aD)72 98 S 2.75(Rw)-2.75
G(ith directly connected recei)-2.75 E -.165(ve)-.275 G
(rs, and trigger the transition to a shortest path tree \(see).165 E
(Section 4.2.1\).)72 111 Q(In the latter case, the PMBR will not need t\
o send Join\(*,*,RP\) messages.)72 127.6 Q(Ho)5.5 E(we)-.275 E -.165(ve)
-.275 G 2.75(rt).165 G(he PMBR)-2.75 E
(will still need to act as a DR with directly connected recei)72 140.6 Q
-.165(ve)-.275 G(rs on behalf of the e).165 E(xternal recei)-.165 E
-.165(ve)-.275 G(rs).165 E(in terms of being able to switch to the shor\
test-path tree for internally-reached sources.)72 153.6 Q
(According to RFC 2715, the PIM-SM component of the PMBR may recei)72
170.2 Q .33 -.165(ve a n)-.275 H(umber of alerts).165 E(generated by e)
72 183.2 Q -.165(ve)-.275 G(nts in the e).165 E
(xternal routing components.)-.165 E 1.76 -.88(To i)5.5 H
(mplement the abo).88 E .33 -.165(ve b)-.165 H(eha).165 E(vior)-.22 E
2.75(,o)-.44 G(ne)-2.75 E(reasonable w)72 196.2 Q
(ay to map these alerts into PIM-SM state as follo)-.11 E(ws:)-.275 E
7.15<8357>72 212.8 S(hen a PIM-SM component recei)-7.15 E -.165(ve)-.275
G 2.75(sa).165 G 2.75(n\()-2.75 G
(S,G\) Prune alert, it sets local_recei)-2.75 E -.165(ve)-.275 G
(r_include\(S,G,I\)).165 E(to F)83 225.8 Q(ALSE for the discard interf)
-.814 E(ace.)-.11 E 7.15<8357>72 242.4 S(hen a PIM-SM component recei)
-7.15 E -.165(ve)-.275 G 2.75(sa\().165 G
(*,G\) Prune alert, it sets local_recei)-2.75 E -.165(ve)-.275 G
(r_include\(*,G,I\)).165 E(to F)83 255.4 Q(ALSE for the discard interf)
-.814 E(ace.)-.11 E 7.15<8357>72 272 S(hen a PIM-SM component recei)
-7.15 E -.165(ve)-.275 G 2.75(sa).165 G 2.75(n\()-2.75 G
(S,G\) Join alert, it sets local_recei)-2.75 E -.165(ve)-.275 G
(r_include\(S,G,I\)).165 E(to TR)83 285 Q(UE for the discard interf)-.44
E(ace.)-.11 E 7.15<8357>72 301.6 S(hen a PIM-SM component recei)-7.15 E
-.165(ve)-.275 G 2.75(sa\().165 G(*,G\) Join alert, it sets local_recei)
-2.75 E -.165(ve)-.275 G(r_include\(*,G,I\) to).165 E(TR)83 314.6 Q
(UE for the discard interf)-.44 E(ace.)-.11 E 7.15<8357>72 331.2 S
(hen a PIM-SM component recei)-7.15 E -.165(ve)-.275 G 2.75(sa\().165 G
(*,*\) Join alert, it sets Do)-2.75 E(wnstreamJPState\(*,*,RP)-.275 E
(,I\) to)-1.221 E(Join state on the discard interf)83 344.2 Q
(ace for all RPs in the PIM-SM domain.)-.11 E 7.15<8357>72 360.8 S
(hen a PIM-SM component recei)-7.15 E -.165(ve)-.275 G 2.75(sa\().165 G
(*,*\) Prune alert, then it sets)-2.75 E(Do)83 373.8 Q
(wnstreamJPState\(*,*,RP)-.275 E
(,I\) to NoInfo state on the discard interf)-1.221 E
(ace for all RPs in the PIM-)-.11 E(SM domain.)83 386.8 Q 1.76 -.88
(We r)72 403.4 T(efer abo).88 E .33 -.165(ve t)-.165 H 2.75(ot).165 G
(he discard interf)-2.75 E
(ace because the macros and state machines are interf)-.11 E(ace-)-.11 E
(speci\214c, b)72 416.4 Q(ut we need to ha)-.22 E .33 -.165(ve P)-.22 H
(IM state that is not associated with an).165 E 2.75(ya)-.165 G
(ctual PIM-SM interf)-2.75 E(ace.)-.11 E
(Implementors are free to implement this in an)72 429.4 Q 2.75(yr)-.165
G(easonable manner)-2.75 E(.)-.605 E(Note that these state changes will\
 then cause additional PIM-SM state machine transitions in the)72 446 Q
(normal w)72 459 Q(ay)-.11 E(.)-.715 E(These rules are ho)72 475.6 Q(we)
-.275 E -.165(ve)-.275 G 2.75(rn).165 G(ot suf)-2.75 E
(\214cient to allo)-.275 E 2.75(wp)-.275 G(runing of)-2.75 E 2.75(ft)
-.275 G(he \(*,*,RP\) tree.)-2.75 E(Some additional)5.5 E(rules pro)72
488.6 Q(vide guidance as to one w)-.165 E(ay this may be done:)-.11 E
7.15<8349>72 505.2 S 2.75(ft)-7.15 G
(he PMBR has joined on the \(*,*,RP\) tree, then it should set Do)-2.75
E(wnstreamJPState\(*,G,I\) to)-.275 E(JOIN on the discard interf)83
518.2 Q(ace for all acti)-.11 E .33 -.165(ve g)-.275 H(roups.).165 E
7.15<8349>72 534.8 S 2.75(ft)-7.15 G(he router recei)-2.75 E -.165(ve)
-.275 G 2.75(sa\().165 G(S,G\) prune alert it will need to set Do)-2.75
E(wnstreamJPState\(S,G,rpt,I\) to)-.275 E(PR)83 547.8 Q
(UNE on the discard interf)-.44 E(ace.)-.11 E 7.15<8349>72 564.4 S 2.75
(ft)-7.15 G(he router recei)-2.75 E -.165(ve)-.275 G 2.75(sa\().165 G
(*,G\) prune alert, it will need to set Do)-2.75 E
(wnstreamJPState\(S,G,rpt,I\) to)-.275 E(PR)83 577.4 Q
(UNE on the discard interf)-.44 E(ace for all acti)-.11 E .33 -.165
(ve s)-.275 H(ources sending to G.).165 E
(The rationale for this is that there is no w)72 594 Q
(ay in PIM-SM to prune traf)-.11 E(\214c of)-.275 E 2.75(ft)-.275 G
(he \(*,*,RP\) tree,)-2.75 E -.165(ex)72 607 S
(cept by Joining the \(*,G\) tree and then pruning each source indi).165
E(vidually)-.275 E(.)-.715 E(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 158.221(elas Section)-.165 F 2.75(11.2. [P)2.75 F(age 109])
-.165 E 0 Cg EP
%%Page: 110 110
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 11/Times-Bold@0 SF(12.)72
85 Q/F2 14/Times-Bold@0 SF(Index)5.5 E/F3 10/Times-Roman@0 SF
(Assert\(*,G\))72 97 Q F0 11(..........................)11.07 G F3(20,)
-6 E/F4 10/Times-Bold@0 SF(98)A F3(Assert\(S,G\))72 109 Q F0 11
(..........................)10.51 G F3(20,)-6 E F4(98)A F3
(AssertCancel\(*,G\))72 121 Q F0 11(........................)10.8 G F3
(75,)-6 E F4(76)A F3(AssertCancel\(S,G\))72 133 Q F0 11
(........................)10.24 G F3(62,70,)-18.5 E F4(76)A F3(AssertT)
72 145 Q(imer\(*,G,I\))-.35 E F0 11(........................)8.65 G F3
(12,17,70,)-36 E F4(101)A F3(AssertT)72 157 Q(imer\(S,G,I\))-.35 E F0 11
(........................)8.09 G F3(13,18,65,)-36 E F4(101)A F3(AssertT)
72 169 Q(rackingDesired\(*,G,I\))-.35 E F0 11(.....................)7.14
G F4(72)-18.5 E F3(,73,74)A(AssertT)72 181 Q(rackingDesired\(S,G,I\))
-.35 E F0 11(.....................)6.58 G F3(66,)-31 E F4(67)A F3
(,68,69)A(AssertW)72 193 Q(inner\(*,G,I\))-.4 E F0 11
(........................)3.15 G F4(12)-56 E F3(,16,17,72,75,)A F4(77)A
F3(AssertW)72 205 Q(inner\(S,G,I\))-.4 E F0 11(........................)
2.59 G F4(13)-68.5 E F3(,16,18,67,70,77,)A F4(77)A F3(AssertW)72 217 Q
(innerMetric\(*,G,I\))-.4 E F0 11(......................)3.99 G F4(12)
-18.5 E F3(,75,)A F4(77)A F3(AssertW)72 229 Q(innerMetric\(S,G,I\))-.4 E
F0 11(......................)3.43 G F4(13)-18.5 E F3(,70,)A F4(77)A F3
(assert_metric)72 241 Q F0 11(..........................)4.68 G F4(75)
6.5 E F3(Assert_Ov)72 253 Q(erride_Interv)-.15 E(al)-.25 E F0 11
(......................)11.21 G F3(69,75,)-23.5 E F4(101)A F3(Assert_T)
72 265 Q(ime)-.35 E F0 11(..........................)6.69 G F3(69,75,)
-23.5 E F4(101)A F3 -1.11(AT)72 277 S(\(*,G,I\))1.11 E F0 11
(...........................)4.82 G F3(12,17,70,98,)-48.5 E F4(101)A F3
-1.11(AT)72 289 S(\(S,G,I\))1.11 E F0 11(...........................)
4.26 G F3(13,18,65,98,)-48.5 E F4(101)A F3(CheckSwitchT)72 301 Q
(oSpt\(S,G\))-.8 E F0 11(.......................).33 G F3(20,)-6 E F4
(21)A F3(CouldAssert\(*,G,I\))72 313 Q F0 11(........................)
8.29 G F3(71,)-43.5 E F4(72)A F3(,73,74,76)A(CouldAssert\(S,G,I\))72 325
Q F0 11(........................)7.73 G F3(65,)-56 E F4(66)A F3
(,67,68,69,76)A(CouldRe)72 337 Q(gister\(S,G\))-.15 E F0 11
(........................)5.93 G F3(30,)-6 E F4(32)A F3(Def)72 349 Q
(ault_Hello_Holdtime)-.1 E F0 11(......................)13.11 G F3(24)
6.5 E(DirectlyConnected\(S\))72 361 Q F0 11(.......................)
11.49 G F3(20,)-48.5 E F4(20)A F3(,22,32,108)A(Do)72 373 Q
(wnstreamJPState\(*,*,RP)-.25 E(,I\))-1.11 E F0 11
(.....................)7.84 G F4(16)-11 E F3(,109)A(Do)72 385 Q
(wnstreamJPState\(*,G,I\))-.25 E F0 11(......................)5.49 G F4
(17)6.5 E F3(Do)72 397 Q(wnstreamJPState\(S,G,I\))-.25 E F0 11
(......................)4.93 G F4(17)-6 E F3(,31)A(Do)72 409 Q
(wnstreamJPState\(S,G,rpt,I\))-.25 E F0 11(.....................)5.07 G
F4(17)6.5 E F3(DR\(I\))72 421 Q F0 11(............................)6.62
G F4(25)6.5 E F3(dr_is_better\(a,b,I\))72 433 Q F0 11
(........................)13.3 G F3(25,)-6 E F4(25)A F3(DR_Priority)72
445 Q F0 11(..........................)8.55 G F4(23)-18.5 E F3(,24,25)A
(Ef)72 457 Q(fecti)-.25 E -.15(ve)-.25 G(_Ov).15 E(erride_Interv)-.15 E
(al\(I\))-.25 E F0 11(.....................)4.52 G F4(27)-23.5 E F3
(,87,100)A(Ef)72 469 Q(fecti)-.25 E -.15(ve)-.25 G(_Propag).15 E
(ation_Delay\(I\))-.05 E F0 11(....................)12.35 G F4(27)-11 E
F3(,100)A(ET\(*,*,RP)72 481 Q(,I\))-1.11 E F0 11
(..........................)7.17 G F3(11,36,98,)-36 E F4(100)A F3
(ET\(*,G,I\))72 493 Q F0 11(...........................)4.82 G F3
(12,39,98,)-36 E F4(100)A F3(ET\(S,G,I\))72 505 Q F0 11
(...........................)4.26 G F3(13,42,98,)-36 E F4(100)A F3
(ET\(S,G,rpt,I\))72 517 Q F0 11(..........................)4.4 G F3
(14,44,47,98,)-48.5 E F4(100)A F3(GenID)72 529 Q F0 11
(............................)3.29 G F3(12,13,14,)-106 E F4(23)A F3
(,50,53,55,57,65,71)A(Hash_Function)72 541 Q F0 11
(.........................)10.64 G F3(9,)-1 E F4(81)A F3(Hello_Holdtime)
72 553 Q F0 11(.........................)6.75 G F3(24,)-11 E F4(100)A F3
(Hello_Period)72 565 Q F0 11(..........................)4.67 G F3(23,)
-11 E F4(100)A F3(HT\(I\))72 577 Q F0 11(............................)
7.18 G F4(23)-11 E F3(,100)A(IGMP)72 589 Q F0 11
(............................)5.5 G F3(6,7,12,16,78,80)-46 E
(immediate_olist\(*,*,RP\))72 601 Q F0 11(.......................).91 G
F4(15)-6 E F3(,50)A(immediate_olist\(*,G\))72 613 Q F0 11
(.......................)13.42 G F4(15)-6 E F3(,53)A
(immediate_olist\(S,G\))72 625 Q F0 11(.......................)12.86 G
F4(15)-18.5 E F3(,31,57)A(in\214nite_assert_metric\(\))72 637 Q F0 11
(.......................)5.93 G F4(76)6.5 E F3(inherited_olist\(S,G\))72
649 Q F0 11(........................)5.78 G F4(16)-56 E F3
(,20,34,57,67,82)A(inherited_olist\(S,G,rpt\))72 661 Q F0 11
(.......................)5.92 G F4(16)-56 E F3(,20,22,59,61,63)A(Interf)
72 673 Q(ace_Address_List)-.1 E F0 11(.......................)5.49 G F4
(24)6.5 E F3(I_Am_Assert_Loser\(*,G,I\))72 685 Q F0 11
(......................)4.14 G F3(17)6.5 E(I_Am_Assert_Loser\(S,G,I\))72
697 Q F0 11(......................)3.58 G F3(18)6.5 E(I_am_DR\(I\))72
709 Q F0 11(..........................)8.57 G F3(16,)-43.5 E F4(25)A F3
(,32,67,72)A(I_am_RP\(G\))72 721 Q F0 11(..........................)6.34
G F3(34,)-6 E F4(34)A F0(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E
(ouv)-.385 E 166.471(elas Section)-.165 F 2.75(12. [P)2.75 F(age 110])
-.165 E 0 Cg EP
%%Page: 111 111
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 10/Times-Roman@0 SF
(J/P_Holdtime)72 84 Q F0 11(..........................)2.99 G F1
(37,40,43,46,51,54,58,93,)-116 E/F2 10/Times-Bold@0 SF(100)A F1(,101)A
(J/P_Ov)72 96 Q(erride_Interv)-.15 E(al\(I\))-.25 E F0 11
(.......................).79 G F1(38,41,43,46,93,)-61 E F2(100)A F1
(JoinDesired\(*,*,RP\))72 108 Q F0 11(........................)3.84 G F2
(50)-6 E F1(,61)A(JoinDesired\(*,G\))72 120 Q F0 11
(.........................)2.6 G F1(12,)-43.5 E F2(53)A F1(,61,67,75)A
(JoinDesired\(S,G\))72 132 Q F0 11(.........................)2.04 G F1
(14,22,)-56 E F2(57)A F1(,67,68,70)A(joins\(*,*,RP\(G\)\))72 144 Q F0 11
(.........................)4.53 G F1(16)6.5 E(joins\(*,*,RP\))72 156 Q
F0 11(..........................)4.66 G F1(15,)-31 E F2(16)A F1(,66,72)A
(joins\(*,G\))72 168 Q F0 11(...........................)3.42 G F1(15,)
-31 E F2(16)A F1(,66,72)A(joins\(S,G\))72 180 Q F0 11
(...........................)2.86 G F1(15,)-18.5 E F2(17)A F1(,66)A
(JT\(*,*,RP\))72 192 Q F0 11(...........................).36 G F1
(11,49,98,)-36 E F2(101)A F1(JT\(*,G\))72 204 Q F0 11
(...........................)12.87 G F1(12,52,99,)-36 E F2(101)A F1
(JT\(S,G\))72 216 Q F0 11(...........................)12.31 G F1
(13,55,99,)-36 E F2(101)A F1(KA)72 228 Q(T\(S,G\))-1.11 E F0 11
(...........................)2.87 G F1(13,19,20,21,32,34,57,82,99,)-111
E F2(101)A F1 -.25(Ke)72 240 S(epali).25 E -.15(ve)-.25 G -.35(Ti).15 G
(mer\(S,G\)).35 E F0 11(.......................)13.33 G F1
(13,19,20,20,21,32,34,57,82,99,)-123.5 E F2(101)A F1 -.25(Ke)72 252 S
(epali).25 E -.15(ve)-.25 G(_Period).15 E F0 11
(.........................).75 G F1(20,)-11 E F2(101)A F1
(lan_delay_enabled\(I\))72 264 Q F0 11(........................).53 G F2
(26)-6 E F1(,28)A(LAN_Prune_Delay)72 276 Q F0 11
(........................)7.74 G F2(24)6.5 E F1(local_recei)72 288 Q
-.15(ve)-.25 G(r_e).15 E(xclude\(S,G,I\))-.15 E F0 11
(.....................)6.79 G F2(16)6.5 E F1(local_recei)72 300 Q -.15
(ve)-.25 G(r_include\(*,G,I\)).15 E F0 11(.....................)8.86 G
F2(16)-23.5 E F1(,72,109)A(local_recei)72 312 Q -.15(ve)-.25 G
(r_include\(S,G,I\)).15 E F0 11(.....................)8.3 G F2(16)-6 E
F1(,67)A(local_recei)72 324 Q -.15(ve)-.25 G(r_include\(S,G,I\).).15 E
F0 11(.....................)5.8 G F1(109)1.5 E(lost_assert\(*,G\))72 336
Q F0 11(.........................)8.15 G F1(15,)-18.5 E F2(17)A F1(,66)A
(lost_assert\(*,G,I\))72 348 Q F0 11(.........................)2.32 G F1
(16,17,)-18.5 E F2(77)A F1(lost_assert\(S,G\))72 360 Q F0 11
(.........................)7.59 G F1(15,)-6 E F2(17)A F1
(lost_assert\(S,G,I\))72 372 Q F0 11(.........................)1.76 G F1
(16,17,)-18.5 E F2(77)A F1(lost_assert\(S,G,rpt\))72 384 Q F0 11
(........................)7.73 G F2(17)6.5 E F1
(lost_assert\(S,G,rpt,I\))72 396 Q F0 11(........................)1.9 G
F1(17,)-6 E F2(77)A F1(MBGP)72 408 Q F0 11(............................)
2.16 G F1(5,6)4 E(MFIB)72 420 Q F0 11(............................)6.05
G F1(6,10)-1 E(MLD)72 432 Q F0 11(............................)8.28 G F1
(6,7,12,16,78,80)-46 E(MRIB)72 444 Q F0 11(............................)
4.94 G F2(5)-128.5 E F1(,6,9,12,14,18,49,51,52,59,76,79,98)A(MRIB.ne)72
456 Q(xt_hop\(host\))-.15 E F0 11(.......................)10.79 G F1
(17,)-31 E F2(18)A F1(,49,50)A(my_assert_metric\(S,G,I\))72 468 Q F0 11
(.......................).38 G F1(66,69,71,73,)-43.5 E F2(76)A F1
(NBR\(Interf)72 480 Q(ace,IP_address\))-.1 E F0 11
(......................)3.97 G F2(18)-43.5 E F1(,28,49,51,51)A(NL)72 492
Q(T\(N,I\))-.92 E F0 11(...........................)6.02 G F1
(11,24,98,100)-36 E -.4(OT)72 504 S(\(S,G,rpt\)).4 E F0 11
(..........................)9.52 G F1(15,60,99,)-36 E F2(101)A F1(Ov)72
516 Q(erride_Interv)-.15 E(al\(I\))-.25 E F0 11
(........................)4.27 G F1(11,24,26,27,87,)-73.5 E F2(99)A F1
(,100)A(pack)72 528 Q(et_arri)-.1 E -.15(ve)-.25 G
(s_on_rp_tunnel\(pkt\)).15 E F0 11(....................)4.92 G F2(34)6.5
E F1(pim_e)72 540 Q(xclude\(S,G\))-.15 E F0 11(........................)
12.05 G F1(16,)-31 E F2(16)A F1(,21,66)A(pim_include\(*,G\))72 552 Q F0
11(.........................).37 G F1(12,15,)-56 E F2(16)A F1(,21,66,72)
A(pim_include\(S,G\))72 564 Q F0 11(........................)13.56 G F1
(14,15,)-43.5 E F2(16)A F1(,21,66)A(PPT\(*,*,RP)72 576 Q(,I\))-1.11 E F0
11(..........................)2.16 G F1(11,36,98,)-36 E F2(100)A F1
(PPT\(*,G,I\))72 588 Q F0 11(..........................)13.56 G F1
(12,39,98,)-36 E F2(100)A F1(PPT\(S,G,I\))72 600 Q F0 11
(..........................)13 G F1(13,42,98,)-36 E F2(100)A F1
(PPT\(S,G,rpt,I\))72 612 Q F0 11(.........................)13.14 G F1
(14,44,47,98,)-48.5 E F2(100)A F1(Propag)72 624 Q(ation_Delay\(I\))-.05
E F0 11(.......................)12.1 G F1(24,27,)-36 E F2(99)A F1(,100)A
(Propag)72 636 Q(ation_delay_def)-.05 E(ault)-.1 E F0 11
(......................)5.39 G F1(27,)-6 E F2(99)A F1
(PruneDesired\(S,G,rpt\))72 648 Q F0 11(.......................)9.27 G
F2(61)-31 E F1(,62,68,70)A(prunes\(S,G,rpt\))72 660 Q F0 11
(.........................)9.54 G F1(16,)-18.5 E F2(17)A F1(,66)A(Re)72
672 Q(gister)-.15 E(-Stop\(*,G\))-.2 E F0 11(........................)
9.47 G F2(33)6.5 E F1(Re)72 684 Q(gister)-.15 E(-Stop\(S,G\))-.2 E F0 11
(........................)8.91 G F1(34)6.5 E(Re)72 696 Q(gister)-.15 E
(-StopT)-.2 E(imer\(S,G\))-.35 E F0 11(......................)12.32 G F1
(29,31,99,)-36 E F2(102)A F1(Re)72 708 Q(gister_Probe_T)-.15 E(ime)-.35
E F0 11(.......................)11.98 G F1(31,35,)-23.5 E F2(102)A F1
(Re)72 720 Q(gister_Suppression_T)-.15 E(ime)-.35 E F0 11
(......................).17 G F1(31,35,)-23.5 E F2(102)A F0
(Fenner/Handle)72 769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 166.471
(elas Section)-.165 F 2.75(12. [P)2.75 F(age 111])-.165 E 0 Cg EP
%%Page: 112 112
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E/F1 10/Times-Roman@0 SF
(RP\(G\))72 84 Q F0 11(............................)4.39 G F1
(5,16,17,31,34,38,53,60,66,72,76,78,98)-138.5 E(RPF)72 96 Q F0 11
(............................)12.71 G/F2 10/Times-Bold@0 SF(5)11.5 E F1
(RPF'\(*,G\))72 108 Q F0 11(...........................)1.75 G F2(17)
-93.5 E F1(,22,52,53,55,59,61,75,78)A(RPF'\(S,G\))72 120 Q F0 11
(...........................)1.19 G F2(18)-68.5 E F1(,22,55,59,61,70,78)
A(RPF'\(S,G,rpt\))72 132 Q F0 11(..........................)1.33 G F2
(18)-31 E F1(,59,61,78)A(RPF_interf)72 144 Q(ace)-.1 E F0 11
(..........................).33 G F1(72)6.5 E(RPF_interf)72 156 Q
(ace\(host\))-.1 E F0 11(........................)4.5 G F1
(17,20,22,32,53,54,58,67,72,77,82,108)-136 E(RPTJoinDesired\(G\))72 168
Q F0 11(........................)5.51 G F2(61)-18.5 E F1(,63,72)A
(rpt_assert_metric\(G,I\))72 180 Q F0 11(.......................)10.11 G
F1(74,)-6 E F2(76)A F1(RST\(S,G\))72 192 Q F0 11
(...........................)3.97 G F1(29,31,99,)-36 E F2(102)A F1
(SPTbit\(S,G\))72 204 Q F0 11(..........................)8.27 G F2(14)
-156 E F1(,20,22,34,41,58,59,61,66,67,69,70,77,82)A
(spt_assert_metric\(S,I\))72 216 Q F0 11(.......................)11.21 G
F1(70,)-18.5 E F2(76)A F1(,77)A(SSM)72 228 Q F0 11
(............................)10.49 G F1(8,81)-1 E
(Suppression_Enabled\(I\))72 240 Q F0 11(.......................)2.6 G
F2(28)-11 E F1(,101)A(SwitchT)72 252 Q(oSptDesired\(S,G\))-.8 E F0 11
(......................)8.53 G F1(21,)-18.5 E F2(21)A F1(,34)A(TIB)72
264 Q F0 11(.............................).64 G F1(6,10,19)-13.5 E -.35
(Tr)72 276 S(iggered_Hello_Delay).35 E F0 11(.......................)
4.07 G F1(23,24,)-23.5 E F2(100)A F1(t_joinsuppress)72 288 Q F0 11
(..........................).22 G F1(50,51,53,54,58)-43.5 E(t_o)72 300 Q
-.15(ve)-.15 G(rride).15 E F0 11(...........................)3.45 G F1
(50,53,57,61,101,)-66 E F2(101)A F1(t_o)72 312 Q -.15(ve)-.15 G
(rride_def).15 E(ault)-.1 E F0 11(........................)12.03 G F1
(27,99)-6 E(t_periodic)72 324 Q F0 11(...........................)3.7 G
F1(50,53,57,101)-36 E(t_suppressed)72 336 Q F0 11
(..........................)6.34 G F1(28,51,54,57,58,101)-61 E
(Update_SPTbit\(S,G,iif\))72 348 Q F0 11(.......................)4.25 G
F1(20,)-6 E F2(22)A F1(UpstreamJPState\(S,G\))72 360 Q F0 11
(.......................)8.98 G F2(20)-6 E F1(,82)A F0(Fenner/Handle)72
769 Q(y/Holbrook/K)-.165 E(ouv)-.385 E 166.471(elas Section)-.165 F 2.75
(12. [P)2.75 F(age 112])-.165 E 0 Cg EP
%%Page: 113 113
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(INTERNET)72 49 Q 77.081(-DRAFT Expires:)-1.012 F
(April 2005)2.75 E(October 2004)112.127 E(The IETF tak)72 85 Q
(es no position re)-.11 E -.055(ga)-.165 G(rding the v).055 E
(alidity or scope of an)-.275 E 2.75(yI)-.165 G
(ntellectual Property Rights or)-2.75 E(other rights that might be clai\
med to pertain to the implementation or use of the technology)72 98 Q
(described in this document or the e)72 111 Q(xtent to which an)-.165 E
2.75(yl)-.165 G(icense under such rights might or might)-2.75 E
(not be a)72 124 Q -.275(va)-.22 G
(ilable; nor does it represent that it has made an).275 E 2.75(yi)-.165
G(ndependent ef)-2.75 E(fort to identify an)-.275 E 2.75(ys)-.165 G(uch)
-2.75 E 2.75(rights. Information)72 137 R(on the procedures with respec\
t to rights in RFC documents can be found in)2.75 E(BCP 78 and BCP 79.)
72 150 Q(Copies of IPR disclosures made to the IETF Secretariat and an)
72 166.6 Q 2.75(ya)-.165 G(ssurances of licenses to be made)-2.75 E -.22
(av)72 179.6 S(ailable, or the result of an attempt made to obtain a ge\
neral license or permission for the use of)-.055 E(such proprietary rig\
hts by implementers or users of this speci\214cation can be obtained fr\
om the)72 192.6 Q(IETF on-line IPR repository at http://www)72 205.6 Q
(.ietf.or)-.715 E(g/ipr)-.198 E(.)-.605 E(The IETF in)72 222.2 Q
(vites an)-.44 E 2.75(yi)-.165 G
(nterested party to bring to its attention an)-2.75 E 2.75(yc)-.165 G
(op)-2.75 E(yrights, patents or patent)-.11 E
(applications, or other proprietary rights that may co)72 235.2 Q -.165
(ve)-.165 G 2.75(rt).165 G(echnology that may be required to)-2.75 E
(implement this standard.)72 248.2 Q
(Please address the information to the IETF at ietf-ipr@ietf.or)5.5 E
(g.)-.198 E/F1 11/Times-Bold@0 SF(13.)72 274.2 Q/F2 14/Times-Bold@0 SF
(Full Copyright Statement)5.5 E F0(Cop)72 290.8 Q(yright \(C\) The Inte\
rnet Society \(2004\). This document is subject to the rights, licenses\
 and)-.11 E(restrictions contained in BCP 78, and e)72 303.8 Q
(xcept as set forth therein, the authors retain all their rights.)-.165
E(This document and the information contained herein are pro)72 320.4 Q
(vided on an "AS IS" basis and THE)-.165 E(CONTRIB)72 333.4 Q(UT)-.11 E
(OR, THE ORGANIZA)-.198 E(TION HE/SHE REPRESENTS OR IS SPONSORED BY)
-1.221 E
(\(IF ANY\), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING T)72
346.4 Q(ASK FORCE)-1.023 E(DISCLAIM ALL W)72 359.4 Q
(ARRANTIES, EXPRESS OR IMPLIED, INCLUDING B)-1.32 E(UT NO)-.11 E(T)-.44
E(LIMITED T)72 372.4 Q 2.75(OA)-.198 G(NY W)-2.75 E(ARRANTY THA)-1.32 E
2.75(TT)-1.221 G(HE USE OF THE INFORMA)-2.75 E(TION HEREIN WILL)-1.221 E
(NO)72 385.4 Q 2.75(TI)-.44 G(NFRINGE ANY RIGHTS OR ANY IMPLIED W)-2.75
E(ARRANTIES OF)-1.32 E(MERCHANT)72 398.4 Q(ABILITY OR FITNESS FOR A P)
-1.023 E(AR)-1.012 E(TICULAR PURPOSE.)-.66 E(Fenner/Handle)72 769 Q
(y/Holbrook/K)-.165 E(ouv)-.385 E 166.471(elas Section)-.165 F 2.75
(13. [P)2.75 F(age 113])-.165 E 0 Cg EP
%%Trailer
end
%%EOF

PAFTECH AB 2003-20262026-04-22 06:11:09