%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 14:23:52 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /Times-Bold 1 AEnc-def pop /B-1{/Times-Bold-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(IRDPD)S 1031(\()S 1073(8)S 1131(\))S 2696(Eighth)S (Edition)296 2989 A 4816(IRDPD)S 5127(\()S 5169(8)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R (irdpd)212 1080 A 10 R-1 1317(-)S 10 R 1399(internet)S 1732(router)S 1998(discovery)S 2414(protocol)S 2774(daemon)S 1248 V 9 R 720(S)S 722(SY)S 774(YN)S 842(NO)S 910(OP)S 978(PS)S 1030(SI)S 1082(IS)S 1115(S)S 1368 V 10 B (irdpd)241 1080 A 10 R 1359([)S 10 B-1 1393(-)S 10 B 1450(bsd)S 10 R 1601(])S 1673([)S 10 B-1 1707(-)S 10 B 1764(U)S 10 I (udp-device)442 1875 A 10 R 2325(])S 2397([)S 10 B-1 2431(-)S 10 B 2488(I)S 10 I 2565(ip-device)S 10 R 2943(])S 3015([)S 10 B-1 3049(-)S 10 B 3106(o)S 10 I 3194(priority-offset)S 10 R 3761(])S 1536 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 1656 V 10 B (Irdpd)252 1080 A 10 R (looks)217 1363 A 1611(for)S 1760(routers.)S 2121(This)S (should)267 2331 A 2629(be)S 2755(a)S 2831(simple)S 3130(task,)S 3348(but)S 3507(many)S 3761(routers)S 4072(are)S 4228(hard)S 4439(to)S 4549(\256nd)S (because)319 4737 A 5088(they)S 1776 V 1080(do)S 1208(not)S 1364(implement)S 1822(the)S 1973(router)S 2242(discovery)S 2661(protocol.)S 3074(This)S 3281(daemon)S 3627(collects)S 3963(information)S 4465(that)S 4643(routers)S 4950(do)S 5077(send)S 1896 V 1080(out)S 1233(and)S 1403(makes)S 1685(it)S 1766(available.)S 2064 V 1080(At)S 1210(startup)S 10 B (irdpd)241 1513 A 10 R 1783(sends)S 2035(out)S 2192(several)S 2507(router)S 2777(solicitation)S 3254(broadcasts.)S 3759(A)S (good)200 3862 A 4092(router)S (should)267 4363 A (respond)318 4660 A 5008(to)S 5116(this)S 2184 V 1080(with)S 1284(a)S 1354(router)S 1620(advertisement.)S 2352 V 1080(If)S 1181(a)S 1259(router)S 1534(advertisement)S 2133(arrives)S 2442(then)S 2649(no)S 2783(more)S 3024(solicitations)S 3544(are)S 3702(sent.)S 3948(The)S 4139(TCP/IP)S 4476(server)S 4757(has)S 4925(\256lled)S 5166(its)S 2472 V 1080(routing)S 1403(table)S 1632(with)S 1844(the)S 2000(info)S 2195(from)S 2424(the)S 2580(advertisement,)S 3203(so)S 3325(it)S 3414(now)S 3620(has)S 3786(at)S 3891(least)S 4108(one)S 4285(router.)S 4608(If)S 4708(the)S 4863(advertise-)S 2592 V 1080(ment)S 1306(is)S 1398(sent)S 1585(by)S 1710(a)S 1780(genuine)S 2123(router)S 2390(\(the)S 2573(sender)S 2862(is)S 2955(in)S 3059(the)S 3208(table\))S 3464(then)S 3663(the)S 10 B (irdpd)241 3812 A 10 R 4079(daemon)S 4423(goes)S 4633(dormant)S 4994(for)S 5138(the)S 2712 V 1080(time)S 1284(the)S 1432(advert)S 1709(is)S 1801(valid.)S 2077(Routers)S 2415(send)S 2624(new)S 2817(adverts)S 3133(periodically,)S 3664(keeping)S 4007(the)S 4155(daemon)S 4498(silent.)S 2880 V 1080(Otherwise)S 10 B (irdpd)241 1535 A 10 R (will)157 1816 A 2013(listen)S 2272(for)S 2431(RIP)S 2629(\(Router)S 2978(Information)S 3500(Protocol\))S 3916(packets.)S 4309(These)S 4591(packets)S 4934(are)S 5099(sent)S 3000 V 1080(between)S 1441(routers)S 1746(to)S 1849(exchange)S 2254(routing)S 2569(information.)S 10 B (Irdpd)252 3119 A 10 R 3396(uses)S 3594(this)S 3764(information)S 4264(to)S 4367(build)S 4598(a)S 4668(routing)S 4983(table.)S 3168 V 1080(Every)S 1353(now)S 1558(and)S 1735(then)S 1940(a)S 2017(router)S 2290(advertisement)S 2887(is)S 2986(sent)S 3180(to)S 3290(the)S 3445(local)S 3673(host)S 3872(to)S 3982(give)S 4187(it)S 4275(router)S 4548(information)S 5055(build)S 3288 V 1080(from)S 1301(the)S 1449(RIP)S 1631(packets.)S 3456 V 1080(Lastly,)S 1398(if)S 1501(a)S 1587(router)S 1869(solicitation)S 2357(arrives)S 2673(and)S 2860(there)S 3104(is)S 3213(no)S 3355(router)S (around)279 3638 A 3959(that)S 4152(sends)S 4417(advertisements,)S 5088(then)S 3576 V 10 B (irdpd)241 1080 A 10 R 1354(sends)S 1610(an)S 1738(advertisement)S 2336(to)S 2447(the)S 2603(requestor.)S 3061(Note)S 3290(that)S 3474(this)S 3652(is)S 3752(a)S 3830(direct)S 4093(violation)S 4482(of)S (RFC1256,)415 4598 A 5045(as)S 5161(no)S 3696 V 1080(host)S 1273(is)S (supposed)373 1366 A 1765(to)S 1869(sent)S 2057(those)S 2295(adverts.)S 2662(But)S 2833(alas)S 3016(the)S 3165(world)S 3426(is)S 3519(not)S 3674(always)S 3981(perfect,)S 4314(and)S 4486(those)S 4725(adverts)S 5043(make)S 3816 V (booting)306 1080 A 1426(hosts)S 1672(\256nd)S 1868(routers)S 2188(quickly)S 2529(with)S 2748(this)S 2932(help)S 3144(from)S 3379(their)S 3603(brothers.)S 4022(\(Of)S 4202(course,)S 4529(they)S (will)157 4741 A 4937(lose)S 5138(the)S 3936 V 1080(router)S (soon)189 1346 A 1560(if)S 1647(they)S (don't)212 1845 A 2082(have)S 2297(an)S 10 B (irdpd)241 2417 A 10 R 2683(daemon)S 3026(themselves.\))S 4104 V 9 R 720(O)S 722(OP)S 790(PT)S 842(TI)S 900(IO)S 933(ON)S 1001(NS)S 1069(S)S 4224 V 10 B-1 1080(-)S 10 B 1137(b)S 10 R 1440(Broadcast)S 1871(advertisements)S 2503(instead)S 2816(of)S 2928(sending)S 3269(them)S 3499(to)S 3606(the)S 3758(local)S 3983(host)S 4179(only.)S 4436(This)S 4644(may)S 4846(be)S 4970(used)S 5183(to)S 4344 V 1440(keep)S (\(non-Minix\))497 1655 A 2177(hosts)S 2408(alive)S 2629(on)S 2754(a)S 2824(net)S (without)307 2972 A 3304(adverts.)S 4512 V 10 B-1 1080(-)S 10 B 1137(s)S 10 R 1440(Be)S 1577(silent,)S 1845(do)S 1970(not)S 2123(send)S 2332(advertisements)S 2961(to)S 3064(hosts)S 3295(that)S 3471(ask)S 3630(for)S 3773(them.)S 4680 V 10 B-1 1080(-)S 10 B 1137(d)S 10 R (Debug)268 1440 A 1747(mode,)S 2034(tell)S 2202(where)S 2488(info)S 2689(is)S 2795(coming)S 3135(from)S 3371(and)S 3556(where)S 3843(it)S 3939(is)S 4046(sent.)S (Debugging)446 4298 A 4784(can)S 4964(also)S 5166(be)S 4800 V 1440(turned)S 1722(on)S 1847(at)S 1945(runtime)S 2283(by)S 2408(sending)S 2745(signal)S 10 B 3010(SIGUSR1)S 10 R 3460(or)S 3569(turned)S 3851(off)S 3994(with)S 10 B 4198(SIGUSR2)S 10 R 4623(.)S 4968 V 10 B-1 1080(-)S 10 B 1137(o)S 10 I 1212(priority-offset)S 5088 V 10 R 1440(Offset)S 1729(used)S 1949(to)S 2064(make)S 2319(the)S 2479(gateway's)S 2925(preferences)S 3428(collected)S 3829(from)S 4062(RIP)S 4256(packets)S (look)178 4595 A 4810(worse)S 5088(than)S 5208 V 1440(those)S (found)234 1677 A 1936(in)S 2039(genuine)S 2382(router)S 2648(adverts.)S 3014(By)S 3156(default)S 10 B (-1024)234 3461 A 10 R 3695(.)S 5376 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 5496 V 10 B 1080(set_net_default)S 10 R 1736(\(8\),)S 10 B 1904(boot)S 10 R 2094(\(8\),)S 10 B 2262(inetd)S 10 R 2481(\(8\),)S 10 B 2649(nonamed)S 10 R 3046(\(8\),)S 10 B 3214(rarpd)S 10 R 3466(\(8\).)S 5664 V 9 R 720(B)S 722(BU)S 784(UG)S 852(GS)S 920(S)S 5784 V 10 R 1080(Under)S 1361(standard)S 1731(Minix)S 2005(this)S 2179(daemon)S 2526(can't)S 2757(listen)S 3004(to)S 3111(two)S 3291(both)S 3498(IRDP)S 3757(and)S 3931(RIP)S 4117(at)S 4219(the)S 4372(same)S 4609(time,)S 4843(so)S 4962(it)S 5048(starts)S 5904 V 1080(out)S 1242(with)S 1455(IRDP.)S 1769(It)S 1865(switches)S 2245(over)S 2457(to)S 2568(RIP)S 2758(if)S 2853(it)S 2942(can't)S 3177(\256nd)S 3366(a)S 3444(router,)S 3743(or)S 3860(if)S 3955(it)S 4044(threatens)S 4441(to)S 4552(lose)S 4747(its)S 4875(router.)S 5199(It)S 6024 V 1080(does)S 1289(not)S 1442(switch)S 1730(back.)S 6192 V 10 B (Irdpd)252 1080 A 10 R 1360(may)S 1561(help)S 1762(a)S 1835(host)S 2030(that)S (should)267 2209 A 2504(not)S 2660(be)S 2783(helped,)S 3104(i.e.)S 3255(if)S 3345(it)S 3429(doesn't)S 3753(have)S 3971(an)S 10 B (irdpd)241 4094 A 10 R 4363(daemon)S 4710(with)S 4918(RIP)S 5104(col-)S 6312 V 1080(lecting)S 1392(trickery.)S 1794(It)S (will)157 1894 A 2089(make)S 2345(System)S 2679(Administrators)S 3321(pull)S 3515(out)S 3681(their)S 3904(remaining)S 4350(hair)S 4545(trying)S 4823(to)S 4939(\256nd)S 5133(out)S 6432 V 1080(why)S 1278(a)S 1348(host)S 1540(can)S (access)258 1705 A 1988(outside)S 2303(networks)S 2697(for)S 2840(a)S 2910(some)S 3147(time)S 3351(after)S (boot,)203 3562 A 3790(but)S 3943(goes)S 4152(blind)S 4383(afterwards.)S 6600 V 9 R 720(A)S 722(AU)S 790(UT)S 858(TH)S 916(HO)S 984(OR)S 1052(R)S 6720 V 10 R 1080(Kees)S 1307(J.)S 1396(Bot)S 1566(\(kjb@cs.vu.nl\))S 7903 V 720(Page)S 941(1)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic %%Pages: 1