(original) (raw)

%!PS-Adobe-2.0 %%Copyright: Copyright (c) 1993 AT&T, All Rights Reserved %%Version: 3.4 %%DocumentFonts: (atend) %%Pages: (atend) %%BoundingBox: (atend) %%EndComments /DpostDict 200 dict def DpostDict begin % % Copyright (c) 1993 AT&T, All Rights Reserved % % Version 3.4 prologue for troff files. % /#copies 1 store /Prologue (dpost.ps) def /aspectratio 1 def /formsperpage 1 def /landscape false def /linewidth .3 def /magnification 1 def /margin 0 def /orientation 0 def /resolution 720 def /rotation 1 def /xoffset 0 def /yoffset 0 def /roundpage true def /useclippath true def /pagebbox [0 0 612 792] def /R /Times-Roman def /I /Times-Italic def /B /Times-Bold def /BI /Times-BoldItalic def /H /Helvetica def /HI /Helvetica-Oblique def /HB /Helvetica-Bold def /HX /Helvetica-BoldOblique def /CW /Courier def /CO /Courier def /CI /Courier-Oblique def /CB /Courier-Bold def /CX /Courier-BoldOblique def /PA /Palatino-Roman def /PI /Palatino-Italic def /PB /Palatino-Bold def /PX /Palatino-BoldItalic def /Hr /Helvetica-Narrow def /Hi /Helvetica-Narrow-Oblique def /Hb /Helvetica-Narrow-Bold def /Hx /Helvetica-Narrow-BoldOblique def /KR /Bookman-Light def /KI /Bookman-LightItalic def /KB /Bookman-Demi def /KX /Bookman-DemiItalic def /AR /AvantGarde-Book def /AI /AvantGarde-BookOblique def /AB /AvantGarde-Demi def /AX /AvantGarde-DemiOblique def /NR /NewCenturySchlbk-Roman def /NI /NewCenturySchlbk-Italic def /NB /NewCenturySchlbk-Bold def /NX /NewCenturySchlbk-BoldItalic def /ZD /ZapfDingbats def /ZI /ZapfChancery-MediumItalic def /S /S def /S1 /S1 def /GR /Symbol def /inch {72 mul} bind def /min {2 copy gt {exch} if pop} bind def /setup { counttomark 2 idiv {def} repeat pop landscape {/orientation 90 orientation add def} if /scaling 72 resolution div def linewidth setlinewidth 1 setlinecap pagedimensions xcenter ycenter translate orientation rotation mul rotate width 2 div neg height 2 div translate xoffset inch yoffset inch neg translate margin 2 div dup neg translate magnification dup aspectratio mul scale scaling scaling scale addmetrics 0 0 moveto } def /pagedimensions { useclippath userdict /gotpagebbox known not and { /pagebbox [clippath pathbbox newpath] def roundpage currentdict /roundpagebbox known and {roundpagebbox} if } if pagebbox aload pop 4 -1 roll exch 4 1 roll 4 copy landscape {4 2 roll} if sub /width exch def sub /height exch def add 2 div /xcenter exch def add 2 div /ycenter exch def userdict /gotpagebbox true put } def /landscapepage { landscape not { 0 height scaling div neg translate % not quite 90 rotate } if } bind def /portraitpage { landscape { width scaling div 0 translate % not quite -90 rotate } if } bind def /addmetrics { /Symbol /S null Sdefs cf /Times-Roman /S1 StandardEncoding dup length array copy S1defs cf } def /pagesetup { /page exch def currentdict /pagedict known currentdict page known and { page load pagedict exch get cvx exec } if } def /decodingdefs [ {counttomark 2 idiv {y moveto show} repeat} {neg /y exch def counttomark 2 idiv {y moveto show} repeat} {neg moveto {2 index stringwidth pop sub exch div 0 32 4 -1 roll widthshow} repeat} {neg moveto {spacewidth sub 0.0 32 4 -1 roll widthshow} repeat} {counttomark 2 idiv {y moveto show} repeat} {neg setfunnytext} ] def /setdecoding {/t decodingdefs 3 -1 roll get bind def} bind def /w {neg moveto show} bind def /m {neg dup /y exch def moveto} bind def /done {/lastpage where {pop lastpage} if} def /f { dup /font exch def findfont exch dup /ptsize exch def scaling div dup /size exch def scalefont setfont linewidth ptsize mul scaling 10 mul div setlinewidth /spacewidth ( ) stringwidth pop def } bind def /changefont { /fontheight exch def /fontslant exch def currentfont [ 1 0 fontheight ptsize div fontslant sin mul fontslant cos div fontheight ptsize div 0 0 ] makefont setfont } bind def /sf {f} bind def /cf { dup length 2 idiv /entries exch def /chtab exch def /newencoding exch def /newfont exch def findfont dup length 1 add dict /newdict exch def {1 index /FID ne {newdict 3 1 roll put}{pop pop} ifelse} forall newencoding type /arraytype eq {newdict /Encoding newencoding put} if newdict /Metrics entries dict put newdict /Metrics get begin chtab aload pop 1 1 entries {pop def} for newfont newdict definefont pop end } bind def % % A few arrays used to adjust reference points and character widths in some % of the printer resident fonts. If square roots are too high try changing % the lines describing /radical and /radicalex to, % % /radical [0 -75 550 0] % /radicalex [-50 -75 500 0] % % Move braceleftbt a bit - default PostScript character is off a bit. % /Sdefs [ /bracketlefttp [201 500] /bracketleftbt [201 500] /bracketrighttp [-81 380] /bracketrightbt [-83 380] /braceleftbt [203 490] /bracketrightex [220 -125 500 0] /radical [0 0 550 0] /radicalex [-50 0 500 0] /parenleftex [-20 -170 0 0] /integral [100 -50 500 0] /infinity [10 -75 730 0] ] def /S1defs [ /underscore [0 80 500 0] /endash [7 90 650 0] ] def end %%EndProlog %%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 %%BeginSetup DpostDict begin mark /rotation 1 def /gotpagebbox true def /linewidth 0.5 def /xoffset 0 def /yoffset 0 def /#copies 1 store /magnification 1 def %%FormsPerPage: 1 /formsperpage 1 def %%Patch from lp %%EndPatch from lp /landscape false def /resolution 720 def setup 2 setdecoding end %%EndSetup %%Page: 1 1 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 1 pagesetup 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 1.0 0 0 setrgbcolor 20 H f (Native-mode ATM in FreeBSD: Experience and Performance)6 5526 1 566 1410 t 0 0 0 setrgbcolor 0 0 1.0 setrgbcolor 18 H f (A. Jain and S. Keshav)4 1849 1 1946 2040 t 0 0 0 setrgbcolor 0 0 1.0 setrgbcolor (AT&T Research, Murray Hill)3 2295 1 1757 2460 t 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/1)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 619 713 %%EndPage: 1 1 %%Page: 3 2 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 2 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Motivation for a Native Mode Stack)5 3112 1 566 860 t 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t cleartomark saveobj restore end %%BeginDocument: figures/native_stack.ps %ps_include: begin save /ed {exch def} def {} /showpage ed {} /copypage ed {} /erasepage ed {} /letter ed currentdict /findfont known systemdict /findfont known and { /findfont systemdict /findfont get def } if 36 dict dup /PS-include-dict-dw ed begin /context ed count array astore /o-stack ed %ps_include: variables begin /llx 65 def /lly 295 def /urx 413 def /ury 739 def /w 0 def /o 0 def /s 0 def /cx 2904.5 def /cy -2700 def /sx 4677 def /sy 2160 def /ax 0.5 def /ay 0.5 def /rot 0 def %ps_include: variables end {llx lly urx ury} /bbox ed {newpath 2 index exch 2 index exch dup 6 index exch moveto 3 {lineto} repeat closepath} /boxpath ed {dup mul exch dup mul add sqrt} /len ed {2 copy gt {exch} if pop} /min ed {2 copy lt {exch} if pop} /max ed {transform round exch round exch A itransform} /nice ed {6 array} /n ed n defaultmatrix n currentmatrix n invertmatrix n concatmatrix /A ed urx llx sub 0 A dtransform len /Sx ed 0 ury lly sub A dtransform len /Sy ed llx urx add 2 div lly ury add 2 div A transform /Cy ed /Cx ed rot dup sin abs /S ed cos abs /C ed Sx S mul Sy C mul add /H ed Sx C mul Sy S mul add /W ed sy H div /Scaley ed sx W div /Scalex ed s 0 eq {Scalex Scaley min dup /Scalex ed /Scaley ed} if sx Scalex W mul sub 0 max ax 0.5 sub mul cx add /cx ed sy Scaley H mul sub 0 max ay 0.5 sub mul cy add /cy ed urx llx sub 0 A dtransform exch atan rot exch sub /rot ed n currentmatrix initgraphics setmatrix cx cy translate Scalex Scaley scale rot rotate Cx neg Cy neg translate A concat bbox boxpath clip newpath w 0 ne {gsave bbox boxpath 1 setgray fill grestore} if end gsave %ps_include: inclusion begin /arrowHeight 6 def /arrowWidth 3 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-Oblique reencodeISO 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 b translate w 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] 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 Begin [ 1.43947 0 0 1.43947 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Rect 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 -19 -47 ] concat 68 435 228 480 Rect End Begin %I Rect 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 -19 -1 ] concat 68 435 228 480 Rect End Begin %I Rect 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 -19 -138 ] concat 68 435 228 480 Rect End Begin %I Rect 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 -19 -92 ] concat 68 435 228 480 Rect End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 68 470 ] concat [ (APPLICATION) ] Text End Begin %I Rect 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 -19 -182 ] concat 68 435 228 480 Rect End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 80 285 ] concat [ (DATALINK) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 76 332 ] concat [ (NETWORK) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 73 379 ] concat [ (TRANSPORT) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 72 420 ] concat [ (PRESENTATION) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 233 431 ] concat [ (S) (I) (G) (N) (A) (L) (L) (I) (N) (G) ] Text End Begin %I Rect 2 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg 0.5 SetP [ 0.999999 0 0 0.999999 -25 51 ] concat 214 201 223 413 Rect End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 158 448 ] concat [ (VCI) ] Text End Begin %I Rect 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 -19 -228 ] concat 68 435 228 480 Rect End Begin %I Text 0 0 0 SetCFg Helvetica-Oblique 14 SetF [ 1 0 0 1 81 243 ] concat [ (PHYSICAL) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 1 0 0 1 47 495 ] concat [ (Data Plane) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 1 0 0 1 204 498 ] concat [ (Control Plane) ] Text End Begin %I MLine 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.999999 0 0 0.999999 -19 1.07288e-06 ] concat 133 482 133 512 305 512 305 251 229 251 229 249 229 249 228 250 8 MLine End End %I eop showpage end %ps_include: inclusion end grestore PS-include-dict-dw begin o 0 ne {gsave A defaultmatrix /A ed llx lly nice urx ury nice initgraphics 0.1 setlinewidth boxpath stroke grestore} if clear o-stack aload pop context end restore %ps_include: end %%EndDocument DpostDict begin /saveobj save def mark 18 H f (Most current implementations run TCP/IP over ATM)6 4242 1 566 4200 t 17 H f (TCP checksums data, not needed with AAL5)6 3478 1 792 4610 t (Also, neither obeys ABR signals, nor is leaky-bucket)7 4047 1 792 5010 t (bounded)792 5210 w (Datagram \(IP\) layer over connection-oriented ATM may)6 4275 1 792 5610 t (multiplex incompatible connections)2 2661 1 792 5810 t 18 H f (For end-to-end QoS)2 1641 1 566 6440 t 1.0 0 0 setrgbcolor (native-mode ATM)1 1441 1 2274 6440 t 0 0 0 setrgbcolor (is necessary)1 1020 1 3849 6440 t 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/3)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 3 2 %%Page: 4 3 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 3 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Features)566 860 w 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (No multiplexing of VCIs above physical level)6 3648 1 566 1410 t (Targeting to ATM)2 1429 1 566 1830 t (Minimal functionality in the critical path)5 3166 1 566 2250 t (Portability ensured by separating OS-specific and OS-)6 4430 1 566 2670 t (independent portions)1 1709 1 566 2880 t (QOS)566 3300 w 17 H f (Applications specify quality of service \(QOS\) parameters)6 4352 1 792 3500 t (to signalling)1 914 1 792 3700 t (QOS information is bound to VCI, and used by each)9 4066 1 792 4100 t (data transport layer for scheduling)4 2639 1 792 4300 t (We do not assume any specific QOS specification, at the)9 4434 1 792 4700 t (moment)792 4900 w 18 H f (Platform: PC)1 1039 1 566 5530 t 17 H f (Implemented on PCs: high performance at low cost)7 3973 1 792 5940 t (FreeBSD OS is freely available and has standard)7 3821 1 792 6340 t (protocol stack)1 1067 1 792 6540 t (Off-the-shelf components: easy to replicate)4 3314 1 792 6940 t 20 S1 f (_ _________________________________________________)1 4965 1 566 7210 t 8 H f ( GBN/4)1 4391(1996 S. Keshav)2 569 2 566 7380 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 39 563 736 %%EndPage: 4 3 %%Page: 5 4 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 4 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Features)566 860 w 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t cleartomark saveobj restore end %%BeginDocument: figures/new_design.ps %ps_include: begin save /ed {exch def} def {} /showpage ed {} /copypage ed {} /erasepage ed {} /letter ed currentdict /findfont known systemdict /findfont known and { /findfont systemdict /findfont get def } if 36 dict dup /PS-include-dict-dw ed begin /context ed count array astore /o-stack ed %ps_include: variables begin /llx 37 def /lly 37 def /urx 574 def /ury 754 def /w 0 def /o 0 def /s 0 def /cx 2904.5 def /cy -4140 def /sx 4677 def /sy 5040 def /ax 0.5 def /ay 0.5 def /rot 0 def %ps_include: variables end {llx lly urx ury} /bbox ed {newpath 2 index exch 2 index exch dup 6 index exch moveto 3 {lineto} repeat closepath} /boxpath ed {dup mul exch dup mul add sqrt} /len ed {2 copy gt {exch} if pop} /min ed {2 copy lt {exch} if pop} /max ed {transform round exch round exch A itransform} /nice ed {6 array} /n ed n defaultmatrix n currentmatrix n invertmatrix n concatmatrix /A ed urx llx sub 0 A dtransform len /Sx ed 0 ury lly sub A dtransform len /Sy ed llx urx add 2 div lly ury add 2 div A transform /Cy ed /Cx ed rot dup sin abs /S ed cos abs /C ed Sx S mul Sy C mul add /H ed Sx C mul Sy S mul add /W ed sy H div /Scaley ed sx W div /Scalex ed s 0 eq {Scalex Scaley min dup /Scalex ed /Scaley ed} if sx Scalex W mul sub 0 max ax 0.5 sub mul cx add /cx ed sy Scaley H mul sub 0 max ay 0.5 sub mul cy add /cy ed urx llx sub 0 A dtransform exch atan rot exch sub /rot ed n currentmatrix initgraphics setmatrix cx cy translate Scalex Scaley scale rot rotate Cx neg Cy neg translate A concat bbox boxpath clip newpath w 0 ne {gsave bbox boxpath 1 setgray fill grestore} if end gsave %ps_include: inclusion begin /$F2psDict 200 dict def F2psDictbeginF2psDict begin F2psDictbeginF2psDict /mtrx matrix put /col-1 {} def /col0 {0.000 0.000 0.000 srgb} bind def /col1 {0.000 0.000 1.000 srgb} bind def /col2 {0.000 1.000 0.000 srgb} bind def /col3 {0.000 1.000 1.000 srgb} bind def /col4 {1.000 0.000 0.000 srgb} bind def /col5 {1.000 0.000 1.000 srgb} bind def /col6 {1.000 1.000 0.000 srgb} bind def /col7 {1.000 1.000 1.000 srgb} bind def /col8 {0.000 0.000 0.560 srgb} bind def /col9 {0.000 0.000 0.690 srgb} bind def /col10 {0.000 0.000 0.820 srgb} bind def /col11 {0.530 0.810 1.000 srgb} bind def /col12 {0.000 0.560 0.000 srgb} bind def /col13 {0.000 0.690 0.000 srgb} bind def /col14 {0.000 0.820 0.000 srgb} bind def /col15 {0.000 0.560 0.560 srgb} bind def /col16 {0.000 0.690 0.690 srgb} bind def /col17 {0.000 0.820 0.820 srgb} bind def /col18 {0.560 0.000 0.000 srgb} bind def /col19 {0.690 0.000 0.000 srgb} bind def /col20 {0.820 0.000 0.000 srgb} bind def /col21 {0.560 0.000 0.560 srgb} bind def /col22 {0.690 0.000 0.690 srgb} bind def /col23 {0.820 0.000 0.820 srgb} bind def /col24 {0.500 0.190 0.000 srgb} bind def /col25 {0.630 0.250 0.000 srgb} bind def /col26 {0.750 0.380 0.000 srgb} bind def /col27 {1.000 0.500 0.500 srgb} bind def /col28 {1.000 0.630 0.630 srgb} bind def /col29 {1.000 0.750 0.750 srgb} bind def /col30 {1.000 0.880 0.880 srgb} bind def /col31 {1.000 0.840 0.000 srgb} bind def end save 33.5 36.5 translate 90 rotate 1 -1 scale /clp {closepath} bind def /ef {eofill} bind def /gr {grestore} bind def /gs {gsave} bind def /l {lineto} bind def /m {moveto} bind def /n {newpath} bind def /s {stroke} bind def /slc {setlinecap} bind def /slj {setlinejoin} bind def /slw {setlinewidth} bind def /srgb {setrgbcolor} bind def /rot {rotate} bind def /sc {scale} bind def /tr {translate} bind def /tnt {dup dup currentrgbcolor 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add 4 -2 roll dup 1 exch sub 3 -1 roll mul add srgb} bind def /shd {dup dup currentrgbcolor 4 -2 roll mul 4 -2 roll mul 4 -2 roll mul srgb} bind def /$F2psBegin {$F2psDict begin /$F2psEnteredState save def} def /$F2psEnd {$F2psEnteredState restore end} def F2psBegin10setmiterlimit0.900000.90000sc1.000slwF2psBegin 10 setmiterlimit 0.90000 0.90000 sc 1.000 slw % Polyline n 655 159 m 655 244 l gs col-1 s gr n 651.00 169.00 m 655.00 159.00 l 659.00 169.00 l gs col-1 s gr n 659.00 234.00 m 655.00 244.00 l 651.00 234.00 l gs col-1 s gr 0.500 slw % Polyline [4.4] 0 setdash n 409 159 m 409 159 l 409 159 l 409 159 l clp gs col-1 s gr [] 0 setdash 1.000 slw % Polyline n 604 539 m 664 539 l gs col-1 s gr n 614.00 543.00 m 604.00 539.00 l 614.00 535.00 l gs col-1 s gr n 654.00 535.00 m 664.00 539.00 l 654.00 543.00 l gs col-1 s gr % Polyline [6.7] 0 setdash n 604 509 m 664 509 l gs col-1 s gr [] 0 setdash n 614.00 513.00 m 604.00 509.00 l 614.00 505.00 l gs col-1 s gr n 654.00 505.00 m 664.00 509.00 l 654.00 513.00 l gs col-1 s gr % Polyline [6.7] 0 setdash n 536 219 m 536 244 l gs col-1 s gr [] 0 setdash n 532.00 229.00 m 536.00 219.00 l 540.00 229.00 l gs col-1 s gr n 540.00 234.00 m 536.00 244.00 l 532.00 234.00 l gs col-1 s gr % Polyline [6.7] 0 setdash n 514 189 m 447 188 l 447 245 l gs col-1 s gr [] 0 setdash n 498.06 184.76 m 514.00 189.00 l 497.94 192.76 l gs col-1 s gr n 451.00 229.00 m 447.00 245.00 l 443.00 229.00 l gs col-1 s gr % Polyline [6.7] 0 setdash n 444 335 m 444 299 l gs col-1 s gr [] 0 setdash n 448.00 319.00 m 444.00 335.00 l 440.00 319.00 l gs col-1 s gr n 440.00 315.00 m 444.00 299.00 l 448.00 315.00 l gs col-1 s gr % Polyline [6.7] 0 setdash n 535 299 m 535 335 l gs col-1 s gr [] 0 setdash n 531.00 315.00 m 535.00 299.00 l 539.00 315.00 l gs col-1 s gr n 539.00 319.00 m 535.00 335.00 l 531.00 319.00 l gs col-1 s gr % Polyline n 651 299 m 650 424 l 521 424 l 522 444 l gs col-1 s gr n 646.87 314.97 m 651.00 299.00 l 654.87 315.03 l gs col-1 s gr n 525.20 427.82 m 522.00 444.00 l 517.21 428.22 l gs col-1 s gr 2.000 slw % Polyline n 19 259 m 794 259 l gs col-1 s gr n 34.00 265.00 m 19.00 259.00 l 34.00 253.00 l gs col-1 s gr n 779.00 253.00 m 794.00 259.00 l 779.00 265.00 l gs col-1 s gr 0.500 slw % Polyline n 607 219 m 516 219 l 516 159 l 607 159 l clp gs col-1 s gr /Times-Roman findfont 20.00 scalefont setfont 561 183 m gs 1 -1 sc (Kernel) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 560 202 m gs 1 -1 sc (stub) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr % Polyline n 569 59 m 569 14 l 518 14 l 518 59 l clp gs col-1 s gr /Times-Roman findfont 16.00 scalefont setfont 749 108 m gs 1 -1 sc (Signalling) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr 1.000 slw % Polyline n 129 154 m 129 244 l gs col-1 s gr n 125.00 164.00 m 129.00 154.00 l 133.00 164.00 l gs col-1 s gr n 133.00 234.00 m 129.00 244.00 l 125.00 234.00 l gs col-1 s gr 0.500 slw % Polyline n 199 299 m 199 244 l 59 244 l 59 299 l clp gs col-1 s gr /Times-Roman findfont 20.00 scalefont setfont 262 516 m gs 1 -1 sc (ATM Adaptation Layer) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 359 514 m gs 1 -1 sc (\(on card\)) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 749 130 m gs 1 -1 sc (Entity) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr 1.000 slw % Polyline [6.7] 0 setdash n 199 400 m 364 400 l gs col-1 s gr [] 0 setdash n 209.00 404.00 m 199.00 400.00 l 209.00 396.00 l gs col-1 s gr n 354.00 396.00 m 364.00 400.00 l 354.00 404.00 l gs col-1 s gr /Times-Roman findfont 16.00 scalefont setfont 289 564 m gs 1 -1 sc (Transport entity) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr 0.500 slw % Interp Spline [3.3] 0 setdash n 45 240 m 70.81 233.37 82.06 230.87 90 230 curveto 98.04 229.12 117.01 230.40 125 230 curveto 136.47 229.43 163.53 225.57 175 225 curveto 188.69 224.32 220.75 228.67 235 225 curveto 242.86 222.97 258.12 214.67 264 209 curveto 269.18 204.01 276.67 190.56 279 184 curveto 281.82 176.05 282.45 156.93 284 149 curveto 284.91 144.38 286.48 133.44 289 129 curveto 292.45 122.90 302.49 112.22 309 109 curveto 317.59 104.75 337.33 104.08 346 104 curveto 356.05 103.91 379.25 106.83 389 109 curveto 396.12 110.58 412.54 113.82 419 119 curveto 424.96 123.78 431.33 137.75 434 144 curveto 439.21 156.22 441.95 186.86 449 199 curveto 452.50 205.02 463.08 215.44 469 219 curveto 476.88 223.73 496.40 228.50 505 230 curveto 523.30 233.20 566.75 233.42 585 234 curveto 602.31 234.55 643.66 235.49 661 235 curveto 670.84 234.72 693.08 228.59 704 232 curveto 708.87 233.52 716.73 238.95 719 244 curveto 721.37 249.26 718.18 259.44 718 264 curveto 717.69 271.74 718.21 290.20 717 298 curveto 713.63 319.70 700.02 368.84 691 389 curveto 680.29 412.94 650.01 464.77 631 484 curveto 616.69 498.48 575.74 518.81 560 530 curveto 549.39 537.54 527.83 559.44 515 565 curveto 493.36 574.38 442.00 578.27 420 580 curveto 399.41 581.62 350.51 580.45 330 580 curveto 303.77 579.43 241.23 575.57 215 575 curveto 199.05 574.65 161.04 576.49 145 575 curveto 126.35 573.27 83.31 571.16 65 560 curveto 52.17 552.18 35.19 528.31 30 515 curveto 24.51 500.94 26.03 468.68 25 455 curveto 23.72 437.92 19.86 397.24 20 380 curveto 20.11 366.19 22.74 333.64 25 320 curveto 27.32 305.99 32.32 285.99 45 240 curveto gs col-1 s gr [] 0 setdash % Interp Spline [4.4] 0 setdash n 456 33 m 464.49 20.69 489.53 14.14 501 11 curveto 515.48 7.04 549.57 6.43 564 6 curveto 586.62 5.33 640.44 7.77 663 8 curveto 672.11 8.09 693.87 7.55 703 8 curveto 716.99 8.69 749.08 4.01 764 14 curveto 776.96 22.68 785.49 48.72 789 61 curveto 793.83 77.88 794.26 117.19 794 134 curveto 793.82 145.54 792.81 172.50 789 184 curveto 786.79 190.67 779.70 204.15 774 209 curveto 768.74 213.48 755.10 217.51 749 219 curveto 737.62 221.79 710.47 223.43 699 224 curveto 686.45 224.63 656.53 224.00 644 224 curveto 636.71 224.00 619.29 224.17 612 224 curveto 602.19 223.77 578.80 222.30 569 222 curveto 553.05 221.51 515.94 226.98 499 221 curveto 487.62 216.98 468.73 201.83 462 192 curveto 457.07 184.79 453.18 166.97 452 159 curveto 449.77 143.97 451.77 108.81 452 94 curveto 452.11 86.70 452.48 69.29 453 62 curveto 453.29 57.88 454.58 48.10 455 44 curveto 455.25 41.50 454.13 35.72 456 33 curveto clp gs col-1 s gr [] 0 setdash % Interp Spline [4.4] 0 setdash n 122 17 m 82.74 16.42 65.74 16.92 54 19 curveto 46.72 20.29 30.44 23.41 24 29 curveto 14.89 36.90 6.49 58.44 4 69 curveto 2.05 77.26 3.56 96.01 4 104 curveto 4.57 114.34 8.43 138.66 9 149 curveto 9.25 153.57 7.38 164.14 9 169 curveto 11.02 175.07 18.44 185.47 24 189 curveto 30.59 193.18 46.24 194.19 53 195 curveto 66.47 196.61 98.55 196.77 112 197 curveto 126.81 197.25 162.17 197.74 177 197 curveto 188.47 196.43 215.57 195.24 227 192 curveto 236.87 189.20 258.37 182.41 266 173 curveto 271.80 165.84 272.38 148.34 274 141 curveto 276.61 129.21 284.75 101.93 284 89 curveto 283.15 74.40 279.80 44.12 266 32 curveto 246.31 14.70 201.54 18.73 182 17 curveto 171.69 16.09 156.69 16.09 122 17 curveto gs col-1 s gr [] 0 setdash /Times-Roman findfont 20.00 scalefont setfont 129 289 m gs 1 -1 sc (Channel Driver) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 291 472 m gs 1 -1 sc (ATM Device Driver) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 558 113 m gs 1 -1 sc (Support) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 127 44 m gs 1 -1 sc (Application entity) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 684 544 m gs 1 -1 sc (Data) col-1 show gr /Times-Roman findfont 16.00 scalefont setfont 684 514 m gs 1 -1 sc (Control) col-1 show gr 1.000 slw % Polyline [6.7] 0 setdash n 264 90 m 459 90 l gs col-1 s gr [] 0 setdash n 280.00 94.00 m 264.00 90.00 l 280.00 86.00 l gs col-1 s gr n 443.00 86.00 m 459.00 90.00 l 443.00 94.00 l gs col-1 s gr 0.500 slw % Polyline n 460 159 m 460 59 l 705 59 l 705 159 l clp gs col-1 s gr 1.000 slw % Polyline [6.7] 0 setdash n 344 299 m 344 368 l 364 368 l gs col-1 s gr [] 0 setdash n 340.00 315.00 m 344.00 299.00 l 348.00 315.00 l gs col-1 s gr n 348.00 364.00 m 364.00 368.00 l 348.00 372.00 l gs col-1 s gr 0.500 slw % Polyline n 199 444 m 199 299 l 59 299 l 59 444 l clp gs col-1 s gr 1.000 slw % Polyline [6.7] 0 setdash n 449 416 m 449 446 l gs col-1 s gr [] 0 setdash n 445.00 426.00 m 449.00 416.00 l 453.00 426.00 l gs col-1 s gr n 453.00 436.00 m 449.00 446.00 l 445.00 436.00 l gs col-1 s gr 0.500 slw % Polyline [4.4] 0 setdash n 517 59 m 517 159 l gs col-1 s gr [] 0 setdash % Polyline n 59 489 m 534 489 l 534 489 l gs col-1 s gr % Polyline n 534 529 m 534 444 l 59 444 l 59 529 l clp gs col-1 s gr % Polyline n 705 159 m 705 59 l 460 59 l 460 159 l clp gs col-1 s gr % Polyline n 490 159 m 490 59 l gs col-1 s gr % Polyline n 607 159 m 607 59 l gs col-1 s gr /Times-Roman findfont 20.00 scalefont setfont 544 36 m gs 1 -1 sc (Chan) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 125 382 m gs 1 -1 sc (Layer) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 125 356 m gs 1 -1 sc (Transport) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr % Polyline n 374 335 m 367 335 367 406 7 arcto 4 {pop} repeat 367 413 535 413 7 arcto 4 {pop} repeat 542 413 542 342 7 arcto 4 {pop} repeat 542 335 374 335 7 arcto 4 {pop} repeat clp gs col-1 s gr /Times-Roman findfont 19.00 scalefont setfont 452 389 m gs 1 -1 sc (Support) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 348 191 m gs 1 -1 sc (schduler) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr 1.000 slw % Polyline [6.7] 0 setdash n 346 205 m 346 244 l gs col-1 s gr [] 0 setdash n 342.00 221.00 m 346.00 205.00 l 350.00 221.00 l gs col-1 s gr n 350.00 228.00 m 346.00 244.00 l 342.00 228.00 l gs col-1 s gr /Times-Roman findfont 20.00 scalefont setfont 349 284 m gs 1 -1 sc (schd_driver) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr 0.500 slw % Polyline n 395 300 m 395 245 l 300 245 l 300 300 l clp gs col-1 s gr % Polyline n 406 206 m 406 140 l 295 140 l 295 206 l clp gs col-1 s gr /Times-Roman findfont 20.00 scalefont setfont 348 171 m gs 1 -1 sc (Spawn) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 19.00 scalefont setfont 452 370 m gs 1 -1 sc (OS) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 647 289 m gs 1 -1 sc (Channel Driver) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr % Polyline n 712 299 m 712 244 l 577 244 l 577 299 l clp gs col-1 s gr /Times-Roman findfont 18.00 scalefont setfont 524 599 m gs 1 -1 sc (Inter Process Communication) col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 504 599 m gs 1 -1 sc (IPC:) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr % Polyline n 571 300 m 571 245 l 491 245 l 491 300 l clp gs col-1 s gr /Times-Bold findfont 20.00 scalefont setfont 724 287 m gs 1 -1 sc (Kernel) col-1 show gr /Times-Bold findfont 20.00 scalefont setfont 724 247 m gs 1 -1 sc (User) col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 444 285 m gs 1 -1 sc (anand) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr % Polyline n 483 300 m 483 245 l 403 245 l 403 300 l clp gs col-1 s gr /Times-Roman findfont 20.00 scalefont setfont 531 286 m gs 1 -1 sc (devatm) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 202 90 m gs 1 -1 sc (User) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 503 154 m gs 1 -1 sc (2) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 503 130 m gs 1 -1 sc (P) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 503 106 m gs 1 -1 sc (U) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 502 84 m gs 1 -1 sc (S) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 475 89 m gs 1 -1 sc (I) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 543 53 m gs 1 -1 sc (mgr) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 617 41 m gs 1 -1 sc (Timers) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr % Polyline n 674 14 m 569 14 l 569 59 l 674 59 l clp gs col-1 s gr /Times-Roman findfont 20.00 scalefont setfont 475 153 m gs 1 -1 sc (C) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 475 121 m gs 1 -1 sc (P) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 18.00 scalefont setfont 658 130 m gs 1 -1 sc (sig) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 252 121 m gs 1 -1 sc (P) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 252 89 m gs 1 -1 sc (I) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 202 143 m gs 1 -1 sc (\(ulib\)) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 202 115 m gs 1 -1 sc (Library) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 252 153 m gs 1 -1 sc (C) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 18.00 scalefont setfont 658 100 m gs 1 -1 sc (Spans) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr /Times-Roman findfont 20.00 scalefont setfont 87 99 m gs 1 -1 sc (Application) dup stringwidth pop 2 div neg 0 rmoveto col-1 show gr % Polyline [4.4] 0 setdash n 237 159 m 237 59 l gs col-1 s gr [] 0 setdash % Polyline n 267 159 m 267 59 l 22 59 l 22 159 l clp gs col-1 s gr % Polyline n 167 59 m 167 134 l 22 134 l gs col-1 s gr showpage F2psBegin10setmiterlimit0.900000.90000sc1.000slwF2psEnd restore %ps_include: inclusion end grestore PS-include-dict-dw begin o 0 ne {gsave A defaultmatrix /A ed llx lly nice urx ury nice initgraphics 0.1 setlinewidth boxpath stroke grestore} if clear o-stack aload pop context end restore %ps_include: end %%EndDocument DpostDict begin /saveobj save def mark 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/5)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 5 4 %%Page: 6 5 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 5 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Overall Data Flow)2 1592 1 566 860 t 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t cleartomark saveobj restore end %%BeginDocument: figures/dflow.idraw %ps_include: begin save /ed {exch def} def {} /showpage ed {} /copypage ed {} /erasepage ed {} /letter ed currentdict /findfont known systemdict /findfont known and { /findfont systemdict /findfont get def } if 36 dict dup /PS-include-dict-dw ed begin /context ed count array astore /o-stack ed %ps_include: variables begin /llx 35 def /lly 247 def /urx 555 def /ury 645 def /w 0 def /o 0 def /s 0 def /cx 2904.5 def /cy -4140 def /sx 4677 def /sy 5040 def /ax 0.5 def /ay 0.5 def /rot 0 def %ps_include: variables end {llx lly urx ury} /bbox ed {newpath 2 index exch 2 index exch dup 6 index exch moveto 3 {lineto} repeat closepath} /boxpath ed {dup mul exch dup mul add sqrt} /len ed {2 copy gt {exch} if pop} /min ed {2 copy lt {exch} if pop} /max ed {transform round exch round exch A itransform} /nice ed {6 array} /n ed n defaultmatrix n currentmatrix n invertmatrix n concatmatrix /A ed urx llx sub 0 A dtransform len /Sx ed 0 ury lly sub A dtransform len /Sy ed llx urx add 2 div lly ury add 2 div A transform /Cy ed /Cx ed rot dup sin abs /S ed cos abs /C ed Sx S mul Sy C mul add /H ed Sx C mul Sy S mul add /W ed sy H div /Scaley ed sx W div /Scalex ed s 0 eq {Scalex Scaley min dup /Scalex ed /Scaley ed} if sx Scalex W mul sub 0 max ax 0.5 sub mul cx add /cx ed sy Scaley H mul sub 0 max ay 0.5 sub mul cy add /cy ed urx llx sub 0 A dtransform exch atan rot exch sub /rot ed n currentmatrix initgraphics setmatrix cx cy translate Scalex Scaley scale rot rotate Cx neg Cy neg translate A concat bbox boxpath clip newpath w 0 ne {gsave bbox boxpath 1 setgray fill grestore} if end gsave %ps_include: inclusion begin /arrowHeight 11 def /arrowWidth 5 def /IdrawDict 53 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-Bold reencodeISO def /Times-Italic reencodeISO 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 b translate w 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] 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 Begin [ 0.748524 0 0 0.748524 0 0 ] concat /originalCTM matrix currentmatrix def Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.837097 0 0 0.837097 114.538 262.488 ] concat 16 374 94 374 Line End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 1.16263 102.911 55.2835 ] concat 95 517 265 550 Rect End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 238.707 687.175 ] concat [ (t_send) ] Text End Begin %I Pict [ 0.930108 0 0 0.930108 27.5726 29.5893 ] concat Begin %I Rect 0 0 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 80 223 ] concat 99 406 265 434 Rect End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 1 0 0 1 233 648 ] concat [ (buffer) ] Text End End %I eop Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 230.336 670.433 ] concat [ (\(fragment\)) ] Text End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 101.981 231.423 ] concat 98 363 266 395 Rect End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 1.16263 104.771 -101.905 ] concat 95 517 265 550 Rect End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 102.911 233.283 ] concat 175 362 175 329 Line End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 239.226 520.936 ] concat [ (a_send) ] Text End Begin %I Rect 0 0 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 100.228 -5.07485 ] concat 99 406 265 434 Rect End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 102.911 162.595 ] concat 175 362 175 329 Line End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 101.123 100.635 ] concat 98 363 266 395 Rect End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 1.16263 321.487 54.3534 ] concat 95 517 265 550 Rect End Begin %I Pict [ 0.930108 0 0 0.930108 246.148 28.6591 ] concat Begin %I Rect 0 0 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 1 0 0 1 80 223 ] concat 99 406 265 434 Rect End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 1 0 0 1 233 648 ] concat [ (buffer) ] Text End End %I eop Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 320.556 230.493 ] concat 98 363 266 395 Rect End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 1.16263 323.347 -102.835 ] concat 95 517 265 550 Rect End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 321.487 232.353 ] concat 175 362 175 329 Line End Begin %I Rect 0 0 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 322.417 73.4476 ] concat 99 406 265 434 Rect End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 322.417 72.5173 ] concat 98 363 266 395 Rect End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 438.68 669.503 ] concat [ (\(re-assemble\)) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 460.055 522.761 ] concat [ (a_recv) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 456.352 685.315 ] concat [ (t_recv) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930063 0.00911826 -0.00911826 0.930063 232.933 850.394 ] concat [ (SOURCE) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930063 0.00911826 -0.00911826 0.930063 425.456 850.367 ] concat [ (DESTINATION) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930063 0.00911826 -0.00911826 0.930063 217.422 804.62 ] concat [ (Application) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930063 0.00911826 -0.00911826 0.930063 437.848 806.782 ] concat [ (Application) ] Text End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 99.1908 450.928 ] concat 175 362 175 329 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 316.836 450.928 ] concat 175 362 175 329 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 99.1908 389.541 ] concat 175 362 175 329 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 317.766 387.681 ] concat 175 362 175 329 Line End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 50.8253 587.654 ] concat [ (scheduler) ] Text End Begin %I Line 1 1 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 104.271 240.759 ] concat 501 374 600 374 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -104.503 80.7452 ] concat 431 662 431 695 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -104.503 80.7452 ] concat 431 728 431 761 Line End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 201.503 585.794 ] concat [ (t_schedule_send) ] Text End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -104.503 80.7452 ] concat 428 416 428 453 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -104.503 80.7452 ] concat 429 491 429 525 Line End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 421.938 585.794 ] concat [ (t_schedule_recv) ] Text End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -104.503 80.7452 ] concat 320 547 248 547 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 107.061 228.668 ] concat 501 374 600 374 Line End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 672.137 587.654 ] concat [ (scheduler) ] Text End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 7.1102 79.8151 ] concat 537 729 537 764 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 8.04031 78.885 ] concat 536 661 536 695 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.837097 0 0 0.837097 111.747 29.0314 ] concat 16 374 94 374 Line End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 99.1908 -2.03415 ] concat 98 363 266 395 Rect End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -107.293 -152.712 ] concat 320 547 248 547 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -2.19087 80.7452 ] concat 560 491 560 523 Line End Begin %I Line 1 1 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 106.131 80.7807 ] concat 501 374 600 374 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 108.921 68.6892 ] concat 501 374 600 374 Line End Begin %I Line 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -2.19087 80.7452 ] concat 91 746 780 746 Line End Begin %I Line 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 6.1801 -145.271 ] concat 91 746 780 746 Line End Begin %I Line 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 3.38977 -212.239 ] concat 91 746 780 746 Line End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 0.930108 0 0 0.930108 94.5403 802.509 ] concat [ (User level) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 0.930108 0 0 0.930108 86.1693 644.39 ] concat [ (Transport) ] Text End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 679.578 433.256 ] concat [ (interrupt) ] Text End Begin %I Poly 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -27.3038 108.648 ] concat 234 663 404 663 404 698 234 698 4 Poly End Begin %I Poly 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -27.3038 108.648 ] concat 234 733 404 733 404 768 234 768 4 Poly End Begin %I Poly 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 194.062 106.788 ] concat 234 733 404 733 404 768 234 768 4 Poly End Begin %I Poly 0 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 194.062 106.788 ] concat 234 663 404 663 404 698 234 698 4 Poly End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 229.406 745.772 ] concat [ (atm_write) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 0.930108 0 0 0.930108 97.3306 757.864 ] concat [ (Session ) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 0.930108 0 0 0.930108 106.632 740.192 ] concat [ (\(ulib\)) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 14 SetF [ 0.930108 0 0 0.930108 655.395 738.331 ] concat [ (User) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 14 SetF [ 0.930108 0 0 0.930108 655.395 700.197 ] concat [ (Kernel) ] Text End Begin %I Line 3 1 1 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -27.3038 108.648 ] concat 124 648 809 648 Line End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 450.771 743.912 ] concat [ (atm_read) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 222.895 453.718 ] concat [ (enqueue_tx) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 0.930108 0 0 0.930108 111.282 461.159 ] concat [ (ATM) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 0.930108 0 0 0.930108 106.632 447.208 ] concat [ (Driver) ] Text End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 242.534 390.221 ] concat [ (tx_queue) ] Text End Begin %I Line 2 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 -27.3038 103.998 ] concat 124 323 819 323 Line End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 50.8253 370.009 ] concat [ (card cpu) (scheduler) ] Text End Begin %I Rect 0 0 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 321.594 -6.93507 ] concat 99 406 265 434 Rect End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 463.9 388.361 ] concat [ (rx_queue) ] Text End Begin %I Rect 1 0 0 [] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 323.347 -3.89436 ] concat 98 363 266 395 Rect End Begin %I Line 1 1 0 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 107.061 6.37208 ] concat 501 374 600 374 Line End Begin %I Line 1 0 1 [12 4] 0 SetB 0 0 0 SetCFg 1 1 1 SetCBg none SetP %I p n [ 0.930108 0 0 0.930108 109.851 -5.71932 ] concat 501 374 600 374 Line End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 672.137 363.498 ] concat [ (card cpu) (scheduler) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 205.223 353.267 ] concat [ (schedule_send) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 429.379 351.407 ] concat [ (schedule_recv) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica-Bold 14 SetF [ 0.930108 0 0 0.930108 434.03 427.675 ] concat [ (enqueue_recv) ] Text End Begin %I Text 0 0 0 SetCFg Times-Italic 14 SetF [ 0.930108 0 0 0.930108 446.121 468.743 ] concat [ (per_vci queue) ] Text End Begin %I Text 0 0 0 SetCFg Helvetica 12 SetF [ 1 0 0 1 101 533 ] concat [ (ATM) (Adaptation) (Layer) ] Text End End %I eop showpage end %ps_include: inclusion end grestore PS-include-dict-dw begin o 0 ne {gsave A defaultmatrix /A ed llx lly nice urx ury nice initgraphics 0.1 setlinewidth boxpath stroke grestore} if clear o-stack aload pop context end restore %ps_include: end %%EndDocument DpostDict begin /saveobj save def mark 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/6)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 6 5 %%Page: 7 6 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 6 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Porting requirements)1 1862 1 566 860 t 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (IPC)566 1410 w (Channel driver \(socket interface\))3 2659 1 566 1830 t (Task scheduler)1 1242 1 566 2250 t (Locking)566 2670 w (Abnormal termination)1 1733 1 566 3090 t (Page size issues)2 1391 1 566 3510 t (Buffer pools)1 982 1 566 3930 t (Packet- and cell-level smoothing)3 2652 1 566 4350 t 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/7)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 7 6 %%Page: 8 7 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 7 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Testbed)566 860 w 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (2 486/66 PCs with FORE HPA-200 EISA host-adaptors)7 4540 1 566 1410 t (and FORE ASX-100 switch)3 2231 1 566 1620 t (2-year old technology, now bottom-of-the-line!)4 3743 1 566 2040 t (FreeBSD Operating system)2 2241 1 566 2460 t (Initial version of code came from Indian Institute of)8 4162 1 566 2880 t (Technology, Delhi, India)2 1975 1 566 3090 t (All code also runs in a packet-level simulator \(REAL\))8 4341 1 566 3510 t (In the process of upgrading to Pentium/133 and PCI-)8 4358 1 566 3930 t (based ATM cards)2 1449 1 566 4140 t 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/8)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 8 7 %%Page: 9 8 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 8 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Performance)566 860 w 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (Round-trip time : averaged over 10,000 pings)6 3729 1 566 1410 t (User-to-user latency of)2 1858 1 566 1830 t 0 0 1.0 setrgbcolor (650 microseconds)1 1483 1 2491 1830 t 0 0 0 setrgbcolor (for 64-byte)1 880 1 4108 1830 t (messages)566 2040 w (Measured throughput by sending 10,000 messages,)5 4258 1 566 2460 t (results averaged over 50 reps)4 2458 1 566 2670 t (User-to-user speed of)2 1779 1 566 3090 t 0 0 1.0 setrgbcolor (56 Mbps)1 710 1 2412 3090 t 0 0 0 setrgbcolor (for unreliable transport)2 1841 1 3256 3090 t (and)566 3300 w 0 0 1.0 setrgbcolor (54 Mbps)1 710 1 936 3300 t 0 0 0 setrgbcolor (for reliable transport connections)3 2672 1 1780 3300 t (Throughput is half the peak value for 2200 byte)8 3918 1 566 3720 t (messages)566 3930 w (Only a slight degradation due to reliable service)7 3928 1 566 4350 t (Better than Brazil!)2 1470 1 566 4770 t 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/9)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 9 8 %%Page: 10 9 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 9 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Performance)566 860 w 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (Reliable transmission \(using timeouts and)4 3411 1 566 1410 t (retransmissions\))566 1620 w cleartomark saveobj restore end %%BeginDocument: /usr/keshav/res/papers/freebsd/rpush.ps %ps_include: begin save /ed {exch def} def {} /showpage ed {} /copypage ed {} /erasepage ed {} /letter ed currentdict /findfont known systemdict /findfont known and { /findfont systemdict /findfont get def } if 36 dict dup /PS-include-dict-dw ed begin /context ed count array astore /o-stack ed %ps_include: variables begin /llx 50 def /lly 50 def /urx 554 def /ury 770 def /w 0 def /o 0 def /s 0 def /cx 2906 def /cy -3690 def /sx 4680 def /sy 2880 def /ax 0.5 def /ay 0.5 def /rot -90 def %ps_include: variables end {llx lly urx ury} /bbox ed {newpath 2 index exch 2 index exch dup 6 index exch moveto 3 {lineto} repeat closepath} /boxpath ed {dup mul exch dup mul add sqrt} /len ed {2 copy gt {exch} if pop} /min ed {2 copy lt {exch} if pop} /max ed {transform round exch round exch A itransform} /nice ed {6 array} /n ed n defaultmatrix n currentmatrix n invertmatrix n concatmatrix /A ed urx llx sub 0 A dtransform len /Sx ed 0 ury lly sub A dtransform len /Sy ed llx urx add 2 div lly ury add 2 div A transform /Cy ed /Cx ed rot dup sin abs /S ed cos abs /C ed Sx S mul Sy C mul add /H ed Sx C mul Sy S mul add /W ed sy H div /Scaley ed sx W div /Scalex ed s 0 eq {Scalex Scaley min dup /Scalex ed /Scaley ed} if sx Scalex W mul sub 0 max ax 0.5 sub mul cx add /cx ed sy Scaley H mul sub 0 max ay 0.5 sub mul cy add /cy ed urx llx sub 0 A dtransform exch atan rot exch sub /rot ed n currentmatrix initgraphics setmatrix cx cy translate Scalex Scaley scale rot rotate Cx neg Cy neg translate A concat bbox boxpath clip newpath w 0 ne {gsave bbox boxpath 1 setgray fill grestore} if end gsave %ps_include: inclusion begin /gnudict 40 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /vshift -46 def /dl {10 mul} def /hpt 31.5 def /vpt 31.5 def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop Solid {pop []} if 0 setdash} ifelse } def /BL { stroke gnulinewidth 2 mul setlinewidth } def /AL { stroke gnulinewidth 2 div setlinewidth } def /PL { stroke gnulinewidth setlinewidth } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 0 1 0 DL } def /LT1 { PL [4 dl 2 dl] 0 0 1 DL } def /LT2 { PL [2 dl 3 dl] 1 0 0 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /P { stroke [] 0 setdash currentlinewidth 2 div sub M 0 currentlinewidth V stroke } def /D { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke P } def /A { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke P } def /C { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke P } def /S { 2 copy A C} def end gnudict begin gsave 50 50 translate 0.100 0.100 scale 90 rotate 0 -5040 translate 0 setgray /Helvetica findfont 140 scalefont setfont newpath LTa 840 351 M 6129 0 V 840 351 M 0 4478 V LTb LTa 840 351 M 6129 0 V LTb 840 351 M 63 0 V 6066 0 R -63 0 V 756 351 M (0) Rshow LTa 840 911 M 6129 0 V LTb 840 911 M 63 0 V 6066 0 R -63 0 V 756 911 M (10) Rshow LTa 840 1471 M 6129 0 V LTb 840 1471 M 63 0 V 6066 0 R -63 0 V -6150 0 R (20) Rshow LTa 840 2030 M 6129 0 V LTb 840 2030 M 63 0 V 6066 0 R -63 0 V -6150 0 R (30) Rshow LTa 840 2590 M 6129 0 V LTb 840 2590 M 63 0 V 6066 0 R -63 0 V -6150 0 R (40) Rshow LTa 840 3150 M 6129 0 V LTb 840 3150 M 63 0 V 6066 0 R -63 0 V -6150 0 R (50) Rshow LTa 840 3710 M 6129 0 V LTb 840 3710 M 63 0 V 6066 0 R -63 0 V -6150 0 R (60) Rshow LTa 840 4269 M 6129 0 V LTb 840 4269 M 63 0 V 6066 0 R -63 0 V -6150 0 R (70) Rshow LTa 840 4829 M 6129 0 V LTb 840 4829 M 63 0 V 6066 0 R -63 0 V -6150 0 R (80) Rshow LTa 840 351 M 0 4478 V LTb 840 351 M 0 63 V 0 4415 R 0 -63 V 840 211 M (0) Cshow LTa 1954 351 M 0 4478 V LTb 1954 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (20000) Cshow LTa 3069 351 M 0 4478 V LTb 3069 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (40000) Cshow LTa 4183 351 M 0 4478 V LTb 4183 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (60000) Cshow LTa 5297 351 M 0 4478 V LTb 5297 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (80000) Cshow LTa 6412 351 M 0 4478 V LTb 6412 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (100000) Cshow 840 351 M 6129 0 V 0 4478 V -6129 0 V 840 351 L 140 2590 M currentpoint gsave translate 90 rotate 0 0 M (Throughput Mbps) Cshow grestore 3904 71 M (Packet size \(bytes\)) Cshow 3904 4969 M (Transmit side throughput in reliable service) Cshow LT0 6486 4626 M (Throughput \(FreeBSD\)) Rshow 6570 4626 M 252 0 V 842 376 M 2 31 V 3 50 V 7 110 V 14 191 V 28 396 V 55 565 V 112 747 V 223 563 V 445 28 V 446 122 V 446 73 V 446 -2 V 557 -42 V 557 14 V 557 -10 V 557 203 V 558 -37 V 557 -15 V 6654 4626 D 842 376 D 844 407 D 847 457 D 854 567 D 868 758 D 896 1154 D 951 1719 D 1063 2466 D 1286 3029 D 1731 3057 D 2177 3179 D 2623 3252 D 3069 3250 D 3626 3208 D 4183 3222 D 4740 3212 D 5297 3415 D 5855 3378 D 6412 3363 D LT1 6486 4486 M (Standard deviation \(FreeBSD\)) Rshow 6654 4486 A 842 376 A 844 407 A 847 457 A 854 567 A 868 758 A 896 1154 A 951 1719 A 1063 2466 A 1286 3029 A 1731 3057 A 2177 3179 A 2623 3252 A 3069 3250 A 3626 3208 A 4183 3222 A 4740 3212 A 5297 3415 A 5855 3378 A 6412 3363 A 6570 4486 M 252 0 V -252 31 R 0 -62 V 252 62 R 0 -62 V 842 376 M -31 0 R 62 0 V -62 0 R 62 0 V -29 31 R -31 0 R 62 0 V -62 0 R 62 0 V -28 49 R 0 3 V -31 -3 R 62 0 V -62 3 R 62 0 V 854 562 M 0 9 V -31 -9 R 62 0 V -62 9 R 62 0 V 868 740 M 0 36 V 837 740 M 62 0 V -62 36 R 62 0 V -3 358 R 0 41 V -31 -41 R 62 0 V -62 41 R 62 0 V 24 543 R 0 2 V -31 -2 R 62 0 V -62 2 R 62 0 V 81 532 R 0 428 V -31 -428 R 62 0 V -62 428 R 62 0 V 192 277 R 0 144 V -31 -144 R 62 0 V -62 144 R 62 0 V 414 -239 R 0 389 V -31 -389 R 62 0 V -62 389 R 62 0 V 415 -93 R 0 42 V -31 -42 R 62 0 V -62 42 R 62 0 V 415 44 R 0 17 V -31 -17 R 62 0 V -62 17 R 62 0 V 415 -15 R 0 7 V -31 -7 R 62 0 V -62 7 R 62 0 V 526 -52 R 0 14 V -31 -14 R 62 0 V -62 14 R 62 0 V 526 0 R 0 13 V -31 -13 R 62 0 V -62 13 R 62 0 V 526 -21 R 0 11 V -31 -11 R 62 0 V -62 11 R 62 0 V 526 194 R 0 6 V -31 -6 R 62 0 V -62 6 R 62 0 V 527 -58 R 0 37 V -31 -37 R 62 0 V -62 37 R 62 0 V 526 -39 R 0 10 V -31 -10 R 62 0 V -62 10 R 62 0 V LT2 6486 4346 M (Throughput \(Brazil\)) Rshow 6570 4346 M 252 0 V 1063 1810 M 223 621 V 223 222 V 222 209 V 223 38 V 223 -206 V 223 180 V 223 -35 V 223 -37 V 223 7 V 223 5 V 222 -64 V 223 -15 V 223 -11 V 223 -23 V 223 -32 V 6654 4346 B 1063 1810 B 1286 2431 B 1509 2653 B 1731 2862 B 1954 2900 B 2177 2694 B 2400 2874 B 2623 2839 B 2846 2802 B 3069 2809 B 3292 2814 B 3514 2750 B 3737 2735 B 3960 2724 B 4183 2701 B 4406 2669 B LT3 6486 4206 M (Standard deviation \(Brazil\)) Rshow 6654 4206 C 1063 1810 C 1286 2431 C 1509 2653 C 1731 2862 C 1954 2900 C 2177 2694 C 2400 2874 C 2623 2839 C 2846 2802 C 3069 2809 C 3292 2814 C 3514 2750 C 3737 2735 C 3960 2724 C 4183 2701 C 4406 2669 C 6570 4206 M 252 0 V -252 31 R 0 -62 V 252 62 R 0 -62 V 1063 1585 M 0 450 V -31 -450 R 62 0 V -62 450 R 62 0 V 192 99 R 0 595 V -31 -595 R 62 0 V -62 595 R 62 0 V 192 -266 R 0 379 V -31 -379 R 62 0 V -62 379 R 62 0 V 191 -226 R 0 492 V -31 -492 R 62 0 V -62 492 R 62 0 V 192 -396 R 0 375 V -31 -375 R 62 0 V -62 375 R 62 0 V 192 -581 R 0 376 V -31 -376 R 62 0 V -62 376 R 62 0 V 192 -145 R 0 274 V -31 -274 R 62 0 V -62 274 R 62 0 V 192 -295 R 0 246 V -31 -246 R 62 0 V -62 246 R 62 0 V 192 -261 R 0 203 V -31 -203 R 62 0 V -62 203 R 62 0 V 192 -179 R 0 168 V -31 -168 R 62 0 V -62 168 R 62 0 V 192 -130 R 0 101 V -31 -101 R 62 0 V -62 101 R 62 0 V 191 -157 R 0 87 V -31 -87 R 62 0 V -62 87 R 62 0 V 192 -94 R 0 71 V -31 -71 R 62 0 V -62 71 R 62 0 V 192 -90 R 0 86 V -31 -86 R 62 0 V -62 86 R 62 0 V 192 -116 R 0 100 V -31 -100 R 62 0 V -62 100 R 62 0 V 192 -152 R 0 139 V -31 -139 R 62 0 V -62 139 R 62 0 V LT4 6486 4066 M (Least square linear fit \(Pkt size 32 - 8000\)) Rshow 6570 4066 M 252 0 V 840 595 M 62 388 V 62 388 V 62 388 V 62 388 V 62 388 V 61 388 V 62 388 V 62 388 V 62 388 V 62 388 V 57 354 V LT5 6486 3926 M (Least square linear fit \(Pkt size 8000 - 100000\)) Rshow 6570 3926 M 252 0 V 840 3110 M 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 61 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 61 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 61 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 61 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 61 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 61 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 61 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 61 4 V 62 3 V 62 4 V 62 4 V 62 4 V 62 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V 61 4 V 62 4 V 62 3 V 62 4 V 62 4 V 62 4 V stroke grestore end showpage %ps_include: inclusion end grestore PS-include-dict-dw begin o 0 ne {gsave A defaultmatrix /A ed llx lly nice urx ury nice initgraphics 0.1 setlinewidth boxpath stroke grestore} if clear o-stack aload pop context end restore %ps_include: end %%EndDocument DpostDict begin /saveobj save def mark 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/10)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 10 9 %%Page: 11 10 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 10 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Performance)566 860 w 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (Unreliable transmission \(UDP-like\))2 2789 1 566 1410 t cleartomark saveobj restore end %%BeginDocument: /usr/keshav/res/papers/freebsd/bpush.ps %ps_include: begin save /ed {exch def} def {} /showpage ed {} /copypage ed {} /erasepage ed {} /letter ed currentdict /findfont known systemdict /findfont known and { /findfont systemdict /findfont get def } if 36 dict dup /PS-include-dict-dw ed begin /context ed count array astore /o-stack ed %ps_include: variables begin /llx 50 def /lly 50 def /urx 554 def /ury 770 def /w 0 def /o 0 def /s 0 def /cx 2906 def /cy -3480 def /sx 4680 def /sy 2880 def /ax 0.5 def /ay 0.5 def /rot -90 def %ps_include: variables end {llx lly urx ury} /bbox ed {newpath 2 index exch 2 index exch dup 6 index exch moveto 3 {lineto} repeat closepath} /boxpath ed {dup mul exch dup mul add sqrt} /len ed {2 copy gt {exch} if pop} /min ed {2 copy lt {exch} if pop} /max ed {transform round exch round exch A itransform} /nice ed {6 array} /n ed n defaultmatrix n currentmatrix n invertmatrix n concatmatrix /A ed urx llx sub 0 A dtransform len /Sx ed 0 ury lly sub A dtransform len /Sy ed llx urx add 2 div lly ury add 2 div A transform /Cy ed /Cx ed rot dup sin abs /S ed cos abs /C ed Sx S mul Sy C mul add /H ed Sx C mul Sy S mul add /W ed sy H div /Scaley ed sx W div /Scalex ed s 0 eq {Scalex Scaley min dup /Scalex ed /Scaley ed} if sx Scalex W mul sub 0 max ax 0.5 sub mul cx add /cx ed sy Scaley H mul sub 0 max ay 0.5 sub mul cy add /cy ed urx llx sub 0 A dtransform exch atan rot exch sub /rot ed n currentmatrix initgraphics setmatrix cx cy translate Scalex Scaley scale rot rotate Cx neg Cy neg translate A concat bbox boxpath clip newpath w 0 ne {gsave bbox boxpath 1 setgray fill grestore} if end gsave %ps_include: inclusion begin /gnudict 40 dict def gnudict begin /Color false def /Solid false def /gnulinewidth 5.000 def /vshift -46 def /dl {10 mul} def /hpt 31.5 def /vpt 31.5 def /M {moveto} bind def /L {lineto} bind def /R {rmoveto} bind def /V {rlineto} bind def /vpt2 vpt 2 mul def /hpt2 hpt 2 mul def /Lshow { currentpoint stroke M 0 vshift R show } def /Rshow { currentpoint stroke M dup stringwidth pop neg vshift R show } def /Cshow { currentpoint stroke M dup stringwidth pop -2 div vshift R show } def /DL { Color {setrgbcolor Solid {pop []} if 0 setdash } {pop pop pop Solid {pop []} if 0 setdash} ifelse } def /BL { stroke gnulinewidth 2 mul setlinewidth } def /AL { stroke gnulinewidth 2 div setlinewidth } def /PL { stroke gnulinewidth setlinewidth } def /LTb { BL [] 0 0 0 DL } def /LTa { AL [1 dl 2 dl] 0 setdash 0 0 0 setrgbcolor } def /LT0 { PL [] 0 1 0 DL } def /LT1 { PL [4 dl 2 dl] 0 0 1 DL } def /LT2 { PL [2 dl 3 dl] 1 0 0 DL } def /LT3 { PL [1 dl 1.5 dl] 1 0 1 DL } def /LT4 { PL [5 dl 2 dl 1 dl 2 dl] 0 1 1 DL } def /LT5 { PL [4 dl 3 dl 1 dl 3 dl] 1 1 0 DL } def /LT6 { PL [2 dl 2 dl 2 dl 4 dl] 0 0 0 DL } def /LT7 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 1 0.3 0 DL } def /LT8 { PL [2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 2 dl 4 dl] 0.5 0.5 0.5 DL } def /P { stroke [] 0 setdash currentlinewidth 2 div sub M 0 currentlinewidth V stroke } def /D { stroke [] 0 setdash 2 copy vpt add M hpt neg vpt neg V hpt vpt neg V hpt vpt V hpt neg vpt V closepath stroke P } def /A { stroke [] 0 setdash vpt sub M 0 vpt2 V currentpoint stroke M hpt neg vpt neg R hpt2 0 V stroke } def /B { stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M 0 vpt2 neg V hpt2 0 V 0 vpt2 V hpt2 neg 0 V closepath stroke P } def /C { stroke [] 0 setdash exch hpt sub exch vpt add M hpt2 vpt2 neg V currentpoint stroke M hpt2 neg 0 R hpt2 vpt2 V stroke } def /T { stroke [] 0 setdash 2 copy vpt 1.12 mul add M hpt neg vpt -1.62 mul V hpt 2 mul 0 V hpt neg vpt 1.62 mul V closepath stroke P } def /S { 2 copy A C} def end gnudict begin gsave 50 50 translate 0.100 0.100 scale 90 rotate 0 -5040 translate 0 setgray /Helvetica findfont 140 scalefont setfont newpath LTa 840 351 M 6129 0 V 840 351 M 0 4478 V LTb LTa 840 351 M 6129 0 V LTb 840 351 M 63 0 V 6066 0 R -63 0 V 756 351 M (0) Rshow LTa 840 1040 M 6129 0 V LTb 840 1040 M 63 0 V 6066 0 R -63 0 V -6150 0 R (10) Rshow LTa 840 1729 M 6129 0 V LTb 840 1729 M 63 0 V 6066 0 R -63 0 V -6150 0 R (20) Rshow LTa 840 2418 M 6129 0 V LTb 840 2418 M 63 0 V 6066 0 R -63 0 V -6150 0 R (30) Rshow LTa 840 3107 M 6129 0 V LTb 840 3107 M 63 0 V 6066 0 R -63 0 V -6150 0 R (40) Rshow LTa 840 3796 M 6129 0 V LTb 840 3796 M 63 0 V 6066 0 R -63 0 V -6150 0 R (50) Rshow LTa 840 4485 M 6129 0 V LTb 840 4485 M 63 0 V 6066 0 R -63 0 V -6150 0 R (60) Rshow LTa 840 351 M 0 4478 V LTb 840 351 M 0 63 V 0 4415 R 0 -63 V 840 211 M (0) Cshow LTa 1954 351 M 0 4478 V LTb 1954 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (20000) Cshow LTa 3069 351 M 0 4478 V LTb 3069 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (40000) Cshow LTa 4183 351 M 0 4478 V LTb 4183 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (60000) Cshow LTa 5297 351 M 0 4478 V LTb 5297 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (80000) Cshow LTa 6412 351 M 0 4478 V LTb 6412 351 M 0 63 V 0 4415 R 0 -63 V 0 -4555 R (100000) Cshow 840 351 M 6129 0 V 0 4478 V -6129 0 V 840 351 L 140 2590 M currentpoint gsave translate 90 rotate 0 0 M (Throughput Mbps) Cshow grestore 3904 71 M (Packet size \(bytes\)) Cshow 3904 4969 M (Receive side throughput in besteffort service) Cshow LT0 6486 4626 M (Throughput) Rshow 6570 4626 M 252 0 V 854 791 M 14 380 V 28 559 V 55 971 V 112 555 V 223 651 V 445 101 V 446 26 V 446 89 V 446 74 V 557 -13 V 557 -7 V 557 -8 V 557 49 V 558 37 V 557 12 V 6654 4626 D 854 791 D 868 1171 D 896 1730 D 951 2701 D 1063 3256 D 1286 3907 D 1731 4008 D 2177 4034 D 2623 4123 D 3069 4197 D 3626 4184 D 4183 4177 D 4740 4169 D 5297 4218 D 5855 4255 D 6412 4267 D LT1 6486 4486 M (Standard deviation) Rshow 6654 4486 A 854 791 A 868 1171 A 896 1730 A 951 2701 A 1063 3256 A 1286 3907 A 1731 4008 A 2177 4034 A 2623 4123 A 3069 4197 A 3626 4184 A 4183 4177 A 4740 4169 A 5297 4218 A 5855 4255 A 6412 4267 A 6570 4486 M 252 0 V -252 31 R 0 -62 V 252 62 R 0 -62 V 854 789 M 0 3 V -31 -3 R 62 0 V -62 3 R 62 0 V -17 362 R 0 33 V -31 -33 R 62 0 V -62 33 R 62 0 V -3 496 R 0 93 V -31 -93 R 62 0 V -62 93 R 62 0 V 24 922 R 0 7 V -31 -7 R 62 0 V -62 7 R 62 0 V 81 375 R 0 352 V -31 -352 R 62 0 V -62 352 R 62 0 V 192 464 R 0 23 V -31 -23 R 62 0 V -62 23 R 62 0 V 414 33 R 0 111 V -31 -111 R 62 0 V -62 111 R 62 0 V 415 -31 R 0 4 V -31 -4 R 62 0 V -62 4 R 62 0 V 415 80 R 0 15 V -31 -15 R 62 0 V -62 15 R 62 0 V 415 39 R 0 53 V -31 -53 R 62 0 V -62 53 R 62 0 V 526 -39 R 0 1 V -31 -1 R 62 0 V -62 1 R 62 0 V 526 -17 R 0 17 V -31 -17 R 62 0 V -62 17 R 62 0 V 526 -17 R 0 1 V -31 -1 R 62 0 V -62 1 R 62 0 V 526 47 R 0 5 V -31 -5 R 62 0 V -62 5 R 62 0 V 527 34 R -31 0 R 62 0 V -62 0 R 62 0 V 526 12 R -31 0 R 62 0 V -62 0 R 62 0 V stroke grestore end showpage %ps_include: inclusion end grestore PS-include-dict-dw begin o 0 ne {gsave A defaultmatrix /A ed llx lly nice urx ury nice initgraphics 0.1 setlinewidth boxpath stroke grestore} if clear o-stack aload pop context end restore %ps_include: end %%EndDocument DpostDict begin /saveobj save def mark 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/11)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 11 10 %%Page: 12 11 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 11 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Observations)566 860 w 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (Most of the delay is due to waiting for task scheduler =)11 4539 1 566 1410 t 18 S f (>)5105 1410 w 18 H f (use scheduler only when pre-emptability is critical)6 4066 1 566 1620 t (Bottleneck in the system is the receiver's CPU)7 3811 1 566 2040 t (Dropping data in the interrupt service routing leads to)8 4386 1 566 2460 t (livelock)566 2670 w 17 H f (Frames arrive too rapidly to be processed and are)8 3892 1 792 2870 t (dropped)792 3070 w (Processing partial frames wastes time)4 2928 1 792 3470 t 18 H f (Dropping data in the card removes livelock, but can)8 4244 1 566 4100 t (cause unfairness)1 1384 1 566 4310 t (Per-VC queueing in the card is essential for fairness)8 4304 1 566 4730 t (It would also be nice to have a way to turn on and off)13 4444 1 566 5150 t (AAL5 CRC checking, and interrupts)4 2921 1 566 5360 t (Need modifications to CPU scheduler for providing)6 4149 1 566 5780 t (realtime QOS guarantees)2 2082 1 566 5990 t 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/12)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 12 11 %%Page: 13 12 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 12 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (Implementation experience)1 2410 1 566 860 t 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (Reverse-engineering device drivers is a pain, even with)7 4548 1 566 1410 t (source code)1 1002 1 566 1620 t (Careful memory management is necessary: we manage)6 4576 1 566 2040 t (all headers and mbufs ourselves)4 2670 1 566 2250 t (Locking \(and, particularly, releasing locks on sleeping\) is)7 4638 1 566 2670 t (hard to get right)3 1317 1 566 2880 t (For good performance, every instruction counts)5 3869 1 566 3300 t (PCs are excellent for development, particularly with)6 4207 1 566 3720 t (FreeBSD/Linux)566 3930 w 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/13)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 13 12 %%Page: 14 13 %%PageBoundingBox: (atend) DpostDict begin /saveobj save def mark 13 pagesetup 0 0.6 0.4 setrgbcolor 20 H f (University release)1 1592 1 566 860 t 0 0 0 setrgbcolor 20 S1 f (_ _________________________________________________)1 4965 1 566 1090 t 18 H f (Testbed can be replicated easily: every component is)7 4379 1 566 1410 t 1.0 0 0 setrgbcolor (off-the-shelf)566 1620 w 0 0 0 setrgbcolor (Source code for entire stack available)5 3099 1 566 2040 t 1.0 0 0 setrgbcolor (free)3732 2040 w 0 0 0 setrgbcolor (to universities)1 1121 1 4110 2040 t (Contact: keshav@research.att.com with name of PI and)6 4573 1 566 2460 t (postal address)1 1193 1 566 2670 t 20 S1 f (_ _________________________________________________)1 4965 1 566 7198 t 8 H f ( GBN/14)1 4391(1996 S. Keshav)2 569 2 566 7368 t cleartomark showpage saveobj restore end %%PageBoundingBox: 46 40 563 736 %%EndPage: 14 13 %%Trailer DpostDict begin done end %%Pages: 13 %%DocumentFonts: Helvetica Times-Roman Symbol