--- a/doc/manual/Makefile Fri Oct 10 15:24:56 2008 -0700
+++ b/doc/manual/Makefile Fri Oct 10 15:26:32 2008 -0700
@@ -1,35 +1,22 @@
TEXI2HTML = texi2html
TEXI2PDF = texi2dvi --pdf
EPSTOPDF = epstopdf
-TGIF = tgif
DIA = dia
CONVERT = convert
CSS = --css-include=manual.css
SPLIT = --split section
-DIA_SOURCES = buffer.dia sockets-overview.dia
-TGIF_SOURCES = packet.obj node.obj internet-node-send.obj internet-node-recv.obj
+DIA_SOURCES = internet-node-send.dia internet-node-recv.dia packet.dia node.dia buffer.dia sockets-overview.dia
DIA_EPS = ${DIA_SOURCES:.dia=.eps}
DIA_PNG = ${DIA_SOURCES:.dia=.png}
DIA_PDF = ${DIA_SOURCES:.dia=.pdf}
-TGIF_EPS = ${TGIF_SOURCES:.obj=.eps}
-TGIF_PNG = ${TGIF_SOURCES:.obj=.png}
-TGIF_PDF = ${TGIF_SOURCES:.obj=.pdf}
-
all: images html split-html pdf
-# Note: tgif requires a valid x display to convert from .obj to .png.
-# If running this makefile on a remote console, the X virtual frame
-# buffer may be needed (xorg-x11-server-Xvfb) to provide a "fake"
-# display
images:
cd figures/; $(DIA) -t png $(DIA_SOURCES)
cd figures/; $(DIA) -t eps $(DIA_SOURCES)
cd figures/; $(foreach FILE,$(DIA_EPS),$(EPSTOPDF) $(FILE);)
- cd figures/; $(TGIF) -print -png $(TGIF_SOURCES)
- cd figures/; $(TGIF) -print -eps $(TGIF_SOURCES)
- cd figures/; $(foreach FILE,$(TGIF_EPS),$(EPSTOPDF) $(FILE);)
html: images
$(TEXI2HTML) ${CSS} manual.texi
@@ -42,7 +29,6 @@
figures-clean:
cd figures/; rm -rf $(DIA_EPS); rm -rf $(DIA_PNG); rm -rf $(DIA_PDF)
- cd figures/; rm -rf $(TGIF_EPS); rm -rf $(TGIF_PNG); rm -rf $(TGIF_PDF)
clean: figures-clean
rm -rf manual.aux manual.cp manual.cps manual.fn manual.ky manual.pg manual.tp manual.vr manual.toc manual.log manual.pdf manual.html manual/
--- a/doc/manual/figures/README Fri Oct 10 15:24:56 2008 -0700
+++ b/doc/manual/figures/README Fri Oct 10 15:26:32 2008 -0700
@@ -1,18 +1,18 @@
Please write image files in a vector graphics format, when possible, and
generate the .png and .pdf versions on the fly (see ../Makefile).
-Currently supported tools are dia and tgif. xfig could be added similarly
+The currently supported tool is dia. xfig could be added similarly
if someone wants to add it. The main requirement for adding another format
is that the tool to edit it is freely available and that a cron script can
-autogenerate the pdf and png from the figure source.
+autogenerate the pdf and png from the figure source. Tgif (.obj) files
+were once used but the file conversions require a valid X display to
+be running, and are therefore to be avoided since our code server
+does not run such a server. Tgif pdf conversions were also cumbersome.
-Store the .dia, or .obj versions in mercurial, but not the .png or .pdfs.
+Store the .dia versions in mercurial, but not the .png or .pdfs.
If the figure is not available in a vector graphics format, store both
a .png and a .pdf version in this directory.
-If you add a source (.dia, .obj) file here, remember to add it to
+If you add a source (.dia) file here, remember to add it to
the list of figure sources in the Makefile in the directory above
-Note: tgif can convert from .obj to .pdf, but the pdf that results takes
-up a whole page. Instead, we convert to an intermediate .eps step, and
-then run epstopdf.
Binary file doc/manual/figures/internet-node-recv.dia has changed
--- a/doc/manual/figures/internet-node-recv.obj Fri Oct 10 15:24:56 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,380 +0,0 @@
-%TGIF 4.1.43-QPL
-state(0,37,100.000,154,78,0,16,0,9,1,1,0,0,3,0,1,0,'Times-Roman',0,80640,0,3,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
-%
-% @(#)$Header$
-% %W%
-%
-unit("1 pixel/pixel").
-color_info(11,65535,0,[
- "magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
- "red", 65535, 0, 0, 65535, 0, 0, 1,
- "green", 0, 65535, 0, 0, 65535, 0, 1,
- "blue", 0, 0, 65535, 0, 0, 65535, 1,
- "yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
- "pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
- "cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
- "CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
- "white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
- "black", 0, 0, 0, 0, 0, 0, 1,
- "DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
-]).
-script_frac("0.6").
-fg_bg_colors('black','white').
-dont_reencode("FFDingbests:ZapfDingbats").
-page(1,"",1,'').
-group([
-rcbox('black','',161,586,241,634,2,1,1,0,16,125,0,0,0,0,'1',0,[
-]),
-text('black',161,605,1,0,1,72,18,124,13,5,0,0,0,0,2,72,18,0,0,"",0,0,0,0,618,'',[
-minilines(72,18,0,0,0,0,0,[
-mini_line(72,13,5,0,0,0,[
-str_block(0,72,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,72,13,5,0,0,0,0,0,0,0,
- "NetDevice")])
-])
-])])
-],
-141,0,0,[
-]).
-group([
-rcbox('black','',147,77,255,125,2,1,1,0,16,354,0,0,0,0,'1',0,[
-]),
-text('black',163,96,1,0,1,88,18,353,13,5,0,0,0,0,2,88,18,0,0,"",0,0,0,0,109,'',[
-minilines(88,18,0,0,0,0,0,[
-mini_line(88,13,5,0,0,0,[
-str_block(0,88,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,88,13,5,0,0,0,0,0,0,0,
- "Application")])
-])
-])])
-],
-352,0,0,[
-]).
-text('black',202,172,1,1,1,90,17,473,14,3,2,0,0,0,2,90,17,0,0,"",0,0,0,0,186,'',[
-minilines(90,17,0,0,1,0,0,[
-mini_line(90,14,3,0,0,0,[
-str_block(0,90,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,90,14,3,0,0,0,0,0,0,0,
- "UdpSocketImpl")])
-])
-])]).
-rcbox('black','',132,165,269,198,0,1,1,0,16,474,0,0,0,0,'1',0,[
-]).
-text('black',202,241,1,1,1,78,17,475,14,3,2,0,0,0,2,78,17,0,0,"",0,0,0,0,255,'',[
-minilines(78,17,0,0,1,0,0,[
-mini_line(78,14,3,0,0,0,[
-str_block(0,78,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,78,14,3,0,0,0,0,0,0,0,
- "Ipv4EndPoint")])
-])
-])]).
-rcbox('black','',132,234,269,267,0,1,1,0,16,476,0,0,0,0,'1',0,[
-]).
-text('black',202,338,1,1,1,88,17,488,14,3,2,0,0,0,2,88,17,0,0,"",0,0,0,0,352,'',[
-minilines(88,17,0,0,1,0,0,[
-mini_line(88,14,3,0,0,0,[
-str_block(0,88,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,88,14,3,0,0,0,0,0,0,0,
- "UdpL4Protocol")])
-])
-])]).
-rcbox('black','',132,331,269,364,0,1,1,0,16,489,0,0,0,0,'1',0,[
-]).
-text('black',202,434,1,1,1,90,17,490,14,3,2,0,0,0,2,90,17,0,0,"",0,0,0,0,448,'',[
-minilines(90,17,0,0,1,0,0,[
-mini_line(90,14,3,0,0,0,[
-str_block(0,90,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,90,14,3,0,0,0,0,0,0,0,
- "Ipv4L3Protocol")])
-])
-])]).
-rcbox('black','',132,427,269,460,0,1,1,0,16,491,0,0,0,0,'1',0,[
-]).
-text('black',585,11,1,0,1,179,17,496,14,3,0,0,0,0,2,179,17,0,0,"",0,0,0,0,25,'',[
-minilines(179,17,0,0,0,0,0,[
-mini_line(179,14,3,0,0,0,[
-str_block(0,179,14,3,0,-2,0,0,0,[
-str_seg('black','Times-Roman',0,80640,179,14,3,0,-2,1,0,0,0,0,
- "Step in packet receive process:")])
-])
-])]).
-text('black',480,595,1,0,1,408,17,498,14,3,0,0,0,0,2,408,17,0,0,"",0,0,0,0,609,'',[
-minilines(408,17,0,0,0,0,0,[
-mini_line(408,14,3,0,0,0,[
-str_block(0,408,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,408,14,3,0,0,0,0,0,0,0,
- "1. NetDevice calls the function registered at Node::m_receiveCallback")])
-])
-])]).
-text('black',480,572,1,0,1,346,17,520,14,3,0,0,0,0,2,346,17,0,0,"",0,0,0,0,586,'',[
-minilines(346,17,0,0,0,0,0,[
-mini_line(346,14,3,0,0,0,[
-str_block(0,346,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,346,14,3,0,0,0,0,0,0,0,
- "2. This is typically the Node::ReceiveFromDevice() function")])
-])
-])]).
-text('black',479,509,3,0,1,460,51,524,14,3,0,0,0,0,2,460,51,0,0,"",0,0,0,0,523,'',[
-minilines(460,51,0,0,0,0,0,[
-mini_line(426,14,3,0,0,0,[
-str_block(0,426,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,426,14,3,0,-1,0,0,0,0,0,
- "3. Node::ReceiveFromDevice stores a set of callbacks (protocol handlers)")])
-]),
-mini_line(460,14,3,0,0,0,[
-str_block(0,460,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,460,14,3,0,-1,0,0,0,0,0,
- " that are looked up based on protocol number and device. In this case, the lookup")])
-]),
-mini_line(300,14,3,0,0,0,[
-str_block(0,300,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,300,14,3,0,-1,0,0,0,0,0,
- "will result in Ipv4L3Protocol::Receive() being called.")])
-])
-])]).
-text('black',480,425,4,0,1,499,68,531,14,3,0,0,0,0,2,499,68,0,0,"",0,0,0,0,439,'',[
-minilines(499,68,0,0,0,0,0,[
-mini_line(475,14,3,0,0,0,[
-str_block(0,475,14,3,0,-2,0,0,0,[
-str_seg('black','Times-Roman',0,80640,475,14,3,0,-2,0,0,0,0,0,
- "4. Ipv4L3Protocol removes the IP header, checks checksum (if implemented), and ")])
-]),
-mini_line(467,14,3,0,0,0,[
-str_block(0,467,14,3,0,-2,0,0,0,[
-str_seg('black','Times-Roman',0,80640,467,14,3,0,-2,0,0,0,0,0,
- "either Forwards the packet or calls ForwardUp(). ForwardUp() then looks up the ")])
-]),
-mini_line(499,14,3,0,0,0,[
-str_block(0,499,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,499,14,3,0,-1,0,0,0,0,0,
- "IP protocol number in an IPv4L4Demux to obtain a pointer to an Ipv4L4Protocol object,")])
-]),
-mini_line(191,14,3,0,0,0,[
-str_block(0,191,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,191,14,3,0,-1,0,0,0,0,0,
- "and calls the ::Receive() method.")])
-])
-])]).
-text('black',281,548,1,0,1,140,17,541,14,3,2,0,0,0,2,140,17,0,0,"",0,0,0,0,562,'',[
-minilines(140,17,0,0,0,0,0,[
-mini_line(140,14,3,0,0,0,[
-str_block(0,140,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,140,14,3,0,-1,0,0,0,0,0,
- "Node::ProtocolHandlers")])
-])
-])]).
-rcbox('black','',261,541,398,574,0,1,1,2,16,542,0,0,0,0,'1',0,[
-]).
-poly('black','',2,[
- 236,596,327,576],1,1,1,548,0,0,2,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',272,590,1,0,1,112,17,550,14,3,0,0,0,0,2,112,17,0,0,"",0,0,0,0,604,'',[
-minilines(112,17,0,0,0,0,0,[
-mini_line(112,14,3,0,0,0,[
-str_block(0,112,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,112,14,3,0,0,0,0,0,0,0,
- "m_receiveCallback")])
-])
-])]).
-poly('black','',2,[
- 306,541,202,460],1,1,1,555,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-poly('black','',2,[
- 280,447,367,423],3,1,1,566,0,0,3,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',185,499,1,0,1,65,17,575,14,3,0,0,0,0,2,65,17,0,0,"",0,0,0,0,513,'',[
-minilines(65,17,0,0,0,0,0,[
-mini_line(65,14,3,0,0,0,[
-str_block(0,65,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,65,14,3,0,-1,0,0,0,0,0,
- "::Receive()")])
-])
-])]).
-text('black',315,438,1,0,1,135,17,585,14,3,0,0,0,0,2,135,17,0,0,"",0,0,0,0,452,'',[
-minilines(135,17,0,0,0,0,0,[
-mini_line(135,14,3,0,0,0,[
-str_block(0,135,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,135,14,3,0,-1,0,0,0,0,0,
- "::GetProtocol(protocol)")])
-])
-])]).
-poly('black','',2,[
- 201,426,201,366],1,1,1,593,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',211,390,1,0,1,65,17,597,14,3,0,0,0,0,2,65,17,0,0,"",0,0,0,0,404,'',[
-minilines(65,17,0,0,0,0,0,[
-mini_line(65,14,3,0,0,0,[
-str_block(0,65,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,65,14,3,0,-1,0,0,0,0,0,
- "::Receive()")])
-])
-])]).
-text('black',480,291,6,0,1,438,102,612,14,3,0,0,0,0,2,438,102,0,0,"",0,0,0,0,305,'',[
-minilines(438,102,0,0,0,0,0,[
-mini_line(293,14,3,0,0,0,[
-str_block(0,293,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,293,14,3,0,0,0,0,0,0,0,
- "5. UdpL4Protocol is where the socket-independent")])
-]),
-mini_line(428,14,3,0,0,0,[
-str_block(0,428,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,428,14,3,0,0,0,0,0,0,0,
- "protocol logic for UDP is implemented. The Receive() method removes the")])
-]),
-mini_line(420,14,3,0,0,0,[
-str_block(0,420,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,420,14,3,0,0,0,0,0,0,0,
- "UDP header and looks up the per-flow context state, which is one or more")])
-]),
-mini_line(438,14,3,0,0,0,[
-str_block(0,438,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,438,14,3,0,-1,0,0,0,0,0,
- "Ipv4EndPoint objects stored in an Ipv4EndPointDemux (indexed by src addr,")])
-]),
-mini_line(405,14,3,0,0,0,[
-str_block(0,405,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,405,14,3,0,-1,0,0,0,0,0,
- "src port, dest addr, dest port). It then calls Ipv4EndPoint::ForwardUp()")])
-]),
-mini_line(66,14,3,0,0,0,[
-str_block(0,66,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,66,14,3,0,-1,0,0,0,0,0,
- "when done.")])
-])
-])]).
-poly('black','',2,[
- 201,331,201,271],1,1,1,619,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',211,295,1,0,1,85,17,620,14,3,0,0,0,0,2,85,17,0,0,"",0,0,0,0,309,'',[
-minilines(85,17,0,0,0,0,0,[
-mini_line(85,14,3,0,0,0,[
-str_block(0,85,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,85,14,3,0,-1,0,0,0,0,0,
- "::ForwardUp()")])
-])
-])]).
-poly('black','',2,[
- 282,335,369,311],3,1,1,630,0,0,3,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',317,326,1,0,1,62,17,631,14,3,0,0,0,0,2,62,17,0,0,"",0,0,0,0,340,'',[
-minilines(62,17,0,0,0,0,0,[
-mini_line(62,14,3,0,0,0,[
-str_block(0,62,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,62,14,3,0,-1,0,0,0,0,0,
- "::Lookup()")])
-])
-])]).
-text('black',211,208,1,0,1,181,17,650,14,3,0,0,0,0,2,181,17,0,0,"",0,0,0,0,222,'',[
-minilines(181,17,0,0,0,0,0,[
-mini_line(181,14,3,0,0,0,[
-str_block(0,181,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,181,14,3,0,-1,0,0,0,0,0,
- "(m_rxCallback)->ForwardUp()")])
-])
-])]).
-poly('black','',2,[
- 201,233,201,196],1,1,1,652,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',211,138,1,0,1,144,17,656,14,3,0,0,0,0,2,144,17,0,0,"",0,0,0,0,152,'',[
-minilines(144,17,0,0,0,0,0,[
-mini_line(144,14,3,0,0,0,[
-str_block(0,144,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,144,14,3,0,-1,0,0,0,0,0,
- "(m_rxCallback)->Recv()")])
-])
-])]).
-text('black',149,17,1,0,1,321,21,683,17,4,0,0,0,0,2,321,21,0,0,"",0,0,0,0,34,'',[
-minilines(321,21,0,0,0,0,0,[
-mini_line(321,17,4,0,0,0,[
-str_block(0,321,17,4,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,103680,321,17,4,0,0,0,0,0,0,0,
- "Function/object trace for receiving a packet")])
-])
-])]).
-poly('black','',2,[
- 199,163,199,126],1,1,1,691,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-group([
-text('black',311,280,1,0,1,120,17,484,14,3,0,0,0,0,2,120,17,0,0,"",0,0,0,0,294,'',[
-minilines(120,17,0,0,0,0,0,[
-mini_line(120,14,3,0,0,0,[
-str_block(0,120,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,120,14,3,0,0,0,0,0,0,0,
- "Ipv4EndPointDemux")])
-])
-])]),
-polygon('black','',6,[
- 309,276,324,305,419,305,439,277,309,277,309,276],0,1,1,0,485,0,0,0,0,0,'1',0,
- "00",[
-])
-],
-704,0,0,[
-]).
-text('black',480,190,3,0,1,363,51,708,14,3,0,0,0,0,2,363,51,0,0,"",0,0,0,0,204,'',[
-minilines(363,51,0,0,0,0,0,[
-mini_line(363,14,3,0,0,0,[
-str_block(0,363,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,363,14,3,0,-1,0,0,0,0,0,
- "6. Ipv4EndPoint has a callback where a Socket object is able to")])
-]),
-mini_line(304,14,3,0,0,0,[
-str_block(0,304,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,304,14,3,0,-1,0,0,0,0,0,
- "register a receive method. Here, this callback calls to")])
-]),
-mini_line(175,14,3,0,0,0,[
-str_block(0,175,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,175,14,3,0,-1,0,0,0,0,0,
- "UdpSocketImpl::ForwardUp()")])
-])
-])]).
-text('black',480,106,3,0,1,446,51,712,14,3,0,0,0,0,2,446,51,0,0,"",0,0,0,0,120,'',[
-minilines(446,51,0,0,0,0,0,[
-mini_line(407,14,3,0,0,0,[
-str_block(0,407,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,407,14,3,0,0,0,0,0,0,0,
- "7. UdpSocketImpl itself calls the Recv() callback set by the Application")])
-]),
-mini_line(402,14,3,0,0,0,[
-str_block(0,402,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,402,14,3,0,0,0,0,0,0,0,
- "when data is ready to be read. The application can then call the socket")])
-]),
-mini_line(446,14,3,0,0,0,[
-str_block(0,446,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,446,14,3,0,-1,0,0,0,0,0,
- "Recv() or RecvFrom() methods to read data (or dummy data) from the socket.")])
-])
-])]).
-group([
-text('black',308,393,1,0,1,96,17,772,14,3,0,0,0,0,2,96,17,0,0,"",0,0,0,0,407,'',[
-minilines(96,17,0,0,0,0,0,[
-mini_line(96,14,3,0,0,0,[
-str_block(0,96,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,96,14,3,0,0,0,0,0,0,0,
- " Ipv4L4Demux")])
-])
-])]),
-polygon('black','',6,[
- 306,389,321,418,416,418,436,390,306,390,306,389],0,1,1,0,771,0,0,0,0,0,'1',0,
- "00",[
-])
-],
-770,0,0,[
-]).
Binary file doc/manual/figures/internet-node-send.dia has changed
--- a/doc/manual/figures/internet-node-send.obj Fri Oct 10 15:24:56 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,352 +0,0 @@
-%TGIF 4.1.43-QPL
-state(0,37,100.000,83,0,0,16,0,9,1,1,0,0,3,2,1,0,'Times-Roman',0,80640,0,3,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
-%
-% @(#)$Header$
-% %W%
-%
-unit("1 pixel/pixel").
-color_info(11,65535,0,[
- "magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
- "red", 65535, 0, 0, 65535, 0, 0, 1,
- "green", 0, 65535, 0, 0, 65535, 0, 1,
- "blue", 0, 0, 65535, 0, 0, 65535, 1,
- "yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
- "pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
- "cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
- "CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
- "white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
- "black", 0, 0, 0, 0, 0, 0, 1,
- "DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
-]).
-script_frac("0.6").
-fg_bg_colors('black','white').
-dont_reencode("FFDingbests:ZapfDingbats").
-page(1,"",1,'').
-group([
-rcbox('black','',158,451,238,499,2,1,1,0,16,125,0,0,0,0,'1',0,[
-]),
-text('black',158,470,1,0,1,72,18,124,13,5,0,0,0,0,2,72,18,0,0,"",0,0,0,0,483,'',[
-minilines(72,18,0,0,0,0,0,[
-mini_line(72,13,5,0,0,0,[
-str_block(0,72,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,72,13,5,0,0,0,0,0,0,0,
- "NetDevice")])
-])
-])])
-],
-141,0,0,[
-]).
-group([
-rcbox('black','',147,77,255,125,2,1,1,0,16,354,0,0,0,0,'1',0,[
-]),
-text('black',163,96,1,0,1,88,18,353,13,5,0,0,0,0,2,88,18,0,0,"",0,0,0,0,109,'',[
-minilines(88,18,0,0,0,0,0,[
-mini_line(88,13,5,0,0,0,[
-str_block(0,88,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,88,13,5,0,0,0,0,0,0,0,
- "Application")])
-])
-])])
-],
-352,0,0,[
-]).
-text('black',202,172,1,1,1,90,17,473,14,3,2,0,0,0,2,90,17,0,0,"",0,0,0,0,186,'',[
-minilines(90,17,0,0,1,0,0,[
-mini_line(90,14,3,0,0,0,[
-str_block(0,90,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,90,14,3,0,0,0,0,0,0,0,
- "UdpSocketImpl")])
-])
-])]).
-rcbox('black','',132,165,269,198,0,1,1,0,16,474,0,0,0,0,'1',0,[
-]).
-text('black',202,241,1,1,1,88,17,475,14,3,2,0,0,0,2,88,17,0,0,"",0,0,0,0,255,'',[
-minilines(88,17,0,0,1,0,0,[
-mini_line(88,14,3,0,0,0,[
-str_block(0,88,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,88,14,3,0,0,0,0,0,0,0,
- "UdpL4Protocol")])
-])
-])]).
-rcbox('black','',132,234,269,267,0,1,1,0,16,476,0,0,0,0,'1',0,[
-]).
-text('black',201,317,1,1,1,90,17,490,14,3,2,0,0,0,2,90,17,0,0,"",0,0,0,0,331,'',[
-minilines(90,17,0,0,1,0,0,[
-mini_line(90,14,3,0,0,0,[
-str_block(0,90,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,90,14,3,0,0,0,0,0,0,0,
- "Ipv4L3Protocol")])
-])
-])]).
-rcbox('black','',131,310,268,343,0,1,1,0,16,491,0,0,0,0,'1',0,[
-]).
-text('black',540,56,1,0,1,180,17,496,14,3,0,0,0,0,2,180,17,0,0,"",0,0,0,0,70,'',[
-minilines(180,17,0,0,0,0,0,[
-mini_line(180,14,3,0,0,0,[
-str_block(0,180,14,3,0,-2,0,0,0,[
-str_seg('black','Times-Roman',0,80640,180,14,3,0,-2,1,0,0,0,0,
- "Step in packet sending process:")])
-])
-])]).
-text('black',480,420,4,0,1,460,68,524,14,3,0,0,0,0,2,460,68,0,0,"",0,0,0,0,434,'',[
-minilines(460,68,0,0,0,0,0,[
-mini_line(457,14,3,0,0,0,[
-str_block(0,457,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,457,14,3,0,0,0,0,0,0,0,
- "5. Ipv4Interface is an abstract base class; here, we depict the ArpIpv4Interface")])
-]),
-mini_line(460,14,3,0,0,0,[
-str_block(0,460,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,460,14,3,0,-1,0,0,0,0,0,
- "concrete class. This object looks up the MAC address if Arp is supported on this")])
-]),
-mini_line(454,14,3,0,0,0,[
-str_block(0,454,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,454,14,3,0,0,0,0,0,0,0,
- "NetDevice technology, and if there is a cache hit, it sends it to the NetDevice, or")])
-]),
-mini_line(197,14,3,0,0,0,[
-str_block(0,197,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,197,14,3,0,-1,0,0,0,0,0,
- "else it first initiates an Arp request.")])
-])
-])]).
-text('black',479,354,3,0,1,476,51,531,14,3,0,0,0,0,2,476,51,0,0,"",0,0,0,0,368,'',[
-minilines(476,51,0,0,0,0,0,[
-mini_line(469,14,3,0,0,0,[
-str_block(0,469,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,469,14,3,0,0,0,0,0,0,0,
- "4. Ipv4L3Protocol adds the IP header, looks up a route, and sends the packet to an")])
-]),
-mini_line(476,14,3,0,0,0,[
-str_block(0,476,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,476,14,3,0,-1,0,0,0,0,0,
- "appropriate Ipv4Interface instance. In this example, the device is one that supports")])
-]),
-mini_line(322,14,3,0,0,0,[
-str_block(0,322,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,322,14,3,0,-1,0,0,0,0,0,
- "Arp, so the packet is sent to an ArpIpv4Interface object.")])
-])
-])]).
-text('black',478,261,4,0,1,437,68,612,14,3,0,0,0,0,2,437,68,0,0,"",0,0,0,0,275,'',[
-minilines(437,68,0,0,0,0,0,[
-mini_line(293,14,3,0,0,0,[
-str_block(0,293,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,293,14,3,0,0,0,0,0,0,0,
- "3. UdpL4Protocol is where the socket-independent")])
-]),
-mini_line(387,14,3,0,0,0,[
-str_block(0,387,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,387,14,3,0,0,0,0,0,0,0,
- "protocol logic for UDP is implemented. The Send() method adds the")])
-]),
-mini_line(437,14,3,0,0,0,[
-str_block(0,437,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,437,14,3,0,-1,0,0,0,0,0,
- "UDP header, initializes the checksum, and sends the packet to the Ipv4 layer.")])
-]),
-mini_line(431,14,3,0,0,0,[
-str_block(0,431,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,431,14,3,0,-1,0,0,0,0,0,
- "Here, the Ipv4L3Protocol object is queried, and the Send() method is called.")])
-])
-])]).
-poly('black','',2,[
- 201,308,201,271],2,1,1,619,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',208,278,1,0,1,47,17,620,14,3,0,0,0,0,2,47,17,0,0,"",0,0,0,0,292,'',[
-minilines(47,17,0,0,0,0,0,[
-mini_line(47,14,3,0,0,0,[
-str_block(0,47,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,47,14,3,0,-1,0,0,0,0,0,
- "::Send()")])
-])
-])]).
-text('black',211,208,1,0,1,47,17,650,14,3,0,0,0,0,2,47,17,0,0,"",0,0,0,0,222,'',[
-minilines(47,17,0,0,0,0,0,[
-mini_line(47,14,3,0,0,0,[
-str_block(0,47,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,47,14,3,0,-1,0,0,0,0,0,
- "::Send()")])
-])
-])]).
-poly('black','',2,[
- 201,233,201,196],2,1,1,652,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',211,138,1,0,1,87,17,656,14,3,0,0,0,0,2,87,17,0,0,"",0,0,0,0,152,'',[
-minilines(87,17,0,0,0,0,0,[
-mini_line(87,14,3,0,0,0,[
-str_block(0,87,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,87,14,3,0,-1,0,0,0,0,0,
- "Socket::Send()")])
-])
-])]).
-text('black',149,17,1,0,1,310,21,683,17,4,0,0,0,0,2,310,21,0,0,"",0,0,0,0,34,'',[
-minilines(310,21,0,0,0,0,0,[
-mini_line(310,17,4,0,0,0,[
-str_block(0,310,17,4,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,103680,310,17,4,0,0,0,0,0,0,0,
- "Function/object trace for sending a packet")])
-])
-])]).
-poly('black','',2,[
- 199,163,199,126],2,1,1,691,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',480,153,6,0,1,524,102,708,14,3,0,0,0,0,2,524,102,0,0,"",0,0,0,0,167,'',[
-minilines(524,102,0,0,0,0,0,[
-mini_line(399,14,3,0,0,0,[
-str_block(0,399,14,3,0,-2,0,0,0,[
-str_seg('black','Times-Roman',0,80640,399,14,3,0,-2,0,0,0,0,0,
- "2. Socket::Send() forwards to UdpSocketImpl::DoSend() and later to ")])
-]),
-mini_line(173,14,3,0,0,0,[
-str_block(0,173,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,173,14,3,0,-1,0,0,0,0,0,
- "UdpSocketImpl::DoSendTo().")])
-]),
-mini_line(479,14,3,0,0,0,[
-str_block(0,479,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,479,14,3,0,-1,0,0,0,0,0,
- "These functions set the proper source and destination addresses, handle socket calls")])
-]),
-mini_line(524,14,3,0,0,0,[
-str_block(0,524,14,3,0,-2,0,0,0,[
-str_seg('black','Times-Roman',0,80640,524,14,3,0,-2,0,0,0,0,0,
- "such as bind() and connect() and then the UdpL4Protocol::Send() function is called. As in a ")])
-]),
-mini_line(505,14,3,0,0,0,[
-str_block(0,505,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,505,14,3,0,-1,0,0,0,0,0,
- "real implementation, the socket must query the Ipv4 layer to find the right source address")])
-]),
-mini_line(187,14,3,0,0,0,[
-str_block(0,187,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,187,14,3,0,-1,0,0,0,0,0,
- "to match the destination address.")])
-])
-])]).
-text('black',480,106,2,0,1,434,34,712,14,3,0,0,0,0,2,434,34,0,0,"",0,0,0,0,120,'',[
-minilines(434,34,0,0,0,0,0,[
-mini_line(413,14,3,0,0,0,[
-str_block(0,413,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,413,14,3,0,-1,0,0,0,0,0,
- "1. The Application has previously created a socket (here, a UdpSocket).")])
-]),
-mini_line(434,14,3,0,0,0,[
-str_block(0,434,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,434,14,3,0,-1,0,0,0,0,0,
- "It calls Socket::Send(). Either real data or dummy data is passed at the API.")])
-])
-])]).
-text('black',377,315,1,1,1,60,17,774,14,3,2,0,0,0,2,60,17,0,0,"",0,0,0,0,329,'',[
-minilines(60,17,0,0,1,0,0,[
-mini_line(60,14,3,0,0,0,[
-str_block(0,60,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,60,14,3,0,0,0,0,0,0,0,
- "Ipv4Route")])
-])
-])]).
-rcbox('black','',307,308,444,341,0,1,1,0,16,775,0,0,0,0,'1',0,[
-]).
-poly('black','',2,[
- 267,325,304,325],3,1,1,787,0,0,3,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',278,299,1,0,1,62,17,796,14,3,2,0,0,0,2,62,17,0,0,"",0,0,0,0,313,'',[
-minilines(62,17,0,0,0,0,0,[
-mini_line(62,14,3,0,0,0,[
-str_block(0,62,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,62,14,3,0,-1,0,0,0,0,0,
- "::Lookup()")])
-])
-])]).
-text('black',200,385,1,1,1,102,17,803,14,3,2,0,0,0,2,102,17,0,0,"",0,0,0,0,399,'',[
-minilines(102,17,0,0,1,0,0,[
-mini_line(102,14,3,0,0,0,[
-str_block(0,102,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,102,14,3,0,0,0,0,0,0,0,
- "ArpIpv4Interface")])
-])
-])]).
-rcbox('black','',130,378,267,411,0,1,1,0,16,804,0,0,0,0,'1',0,[
-]).
-poly('black','',2,[
- 199,380,199,343],2,1,1,810,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',206,350,1,0,1,47,17,811,14,3,0,0,0,0,2,47,17,0,0,"",0,0,0,0,364,'',[
-minilines(47,17,0,0,0,0,0,[
-mini_line(47,14,3,0,0,0,[
-str_block(0,47,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,47,14,3,0,-1,0,0,0,0,0,
- "::Send()")])
-])
-])]).
-text('black',378,388,1,1,1,71,17,817,14,3,2,0,0,0,2,71,17,0,0,"",0,0,0,0,402,'',[
-minilines(71,17,0,0,1,0,0,[
-mini_line(71,14,3,0,0,0,[
-str_block(0,71,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,71,14,3,0,0,0,0,0,0,0,
- "ArpProtocol")])
-])
-])]).
-rcbox('black','',308,381,445,414,0,1,1,0,16,818,0,0,0,0,'1',0,[
-]).
-poly('black','',2,[
- 268,398,305,398],3,1,1,819,0,0,3,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',279,372,1,0,1,62,17,820,14,3,2,0,0,0,2,62,17,0,0,"",0,0,0,0,386,'',[
-minilines(62,17,0,0,0,0,0,[
-mini_line(62,14,3,0,0,0,[
-str_block(0,62,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,62,14,3,0,-1,0,0,0,0,0,
- "::Lookup()")])
-])
-])]).
-poly('black','',2,[
- 199,448,199,411],2,1,1,837,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',206,418,1,0,1,47,17,838,14,3,0,0,0,0,2,47,17,0,0,"",0,0,0,0,432,'',[
-minilines(47,17,0,0,0,0,0,[
-mini_line(47,14,3,0,0,0,[
-str_block(0,47,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,47,14,3,0,-1,0,0,0,0,0,
- "::Send()")])
-])
-])]).
-text('black',371,173,1,1,1,26,17,842,14,3,2,0,0,0,2,26,17,0,0,"",0,0,0,0,187,'',[
-minilines(26,17,0,0,1,0,0,[
-mini_line(26,14,3,0,0,0,[
-str_block(0,26,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,26,14,3,0,-1,0,0,0,0,0,
- "Ipv4")])
-])
-])]).
-rcbox('black','',301,166,438,199,0,1,1,0,16,843,0,0,0,0,'1',0,[
-]).
-text('black',272,157,1,0,1,148,17,844,14,3,2,0,0,0,2,148,17,0,0,"",0,0,0,0,171,'',[
-minilines(148,17,0,0,0,0,0,[
-mini_line(148,14,3,0,0,0,[
-str_block(0,148,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,148,14,3,0,-1,0,0,0,0,0,
- "::GetAddress(outgoing if)")])
-])
-])]).
-poly('black','',2,[
- 269,182,306,182],3,1,1,846,0,0,3,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
Binary file doc/manual/figures/node.dia has changed
--- a/doc/manual/figures/node.obj Fri Oct 10 15:24:56 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,211 +0,0 @@
-%TGIF 4.1.43-QPL
-state(0,37,100.000,0,0,0,16,0,9,1,1,0,0,3,2,1,0,'Times-Italic',2,80640,0,8,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
-%
-% @(#)$Header$
-% %W%
-%
-unit("1 pixel/pixel").
-color_info(11,65535,0,[
- "magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
- "red", 65535, 0, 0, 65535, 0, 0, 1,
- "green", 0, 65535, 0, 0, 65535, 0, 1,
- "blue", 0, 0, 65535, 0, 0, 65535, 1,
- "yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
- "pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
- "cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
- "CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
- "white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
- "black", 0, 0, 0, 0, 0, 0, 1,
- "DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
-]).
-script_frac("0.6").
-fg_bg_colors('black','white').
-dont_reencode("FFDingbests:ZapfDingbats").
-page(1,"",1,'').
-rcbox('black','',64,64,400,384,0,1,1,0,16,0,0,0,0,0,'1',0,[
-]).
-box('black','',280,432,555,464,0,1,1,17,0,0,0,0,0,'1',0,[
-]).
-text('black',384,435,1,0,1,56,18,18,13,5,0,0,0,0,2,56,18,0,0,"",0,0,0,0,448,'',[
-minilines(56,18,0,0,0,0,0,[
-mini_line(56,13,5,0,0,0,[
-str_block(0,56,13,5,0,-1,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,56,13,5,0,-1,0,0,0,0,0,
- "Channel")])
-])
-])]).
-text('black',76,42,1,0,1,208,18,108,13,5,2,0,0,0,2,208,18,0,0,"",0,0,0,0,55,'',[
-minilines(208,18,0,0,0,0,0,[
-mini_line(208,13,5,0,0,0,[
-str_block(0,208,13,5,0,0,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,208,13,5,0,0,0,0,0,0,0,
- "class Node : public Object")])
-])
-])]).
-group([
-rcbox('black','',112,304,192,352,2,1,1,0,16,134,0,0,0,0,'1',0,[
-]),
-text('black',112,323,1,0,1,72,18,135,13,5,0,0,0,0,2,72,18,0,0,"",0,0,0,0,336,'',[
-minilines(72,18,0,0,0,0,0,[
-mini_line(72,13,5,0,0,0,[
-str_block(0,72,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,72,13,5,0,0,0,0,0,0,0,
- "NetDevice")])
-])
-])])
-],
-138,0,0,[
-]).
-group([
-rcbox('black','',266,304,346,352,2,1,1,0,16,125,0,0,0,0,'1',0,[
-]),
-text('black',266,323,1,0,1,72,18,124,13,5,0,0,0,0,2,72,18,0,0,"",0,0,0,0,336,'',[
-minilines(72,18,0,0,0,0,0,[
-mini_line(72,13,5,0,0,0,[
-str_block(0,72,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,72,13,5,0,0,0,0,0,0,0,
- "NetDevice")])
-])
-])])
-],
-141,0,0,[
-]).
-poly('black','',2,[
- 304,351,304,430],3,1,1,167,0,2,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',219,304,1,0,1,24,37,177,30,7,2,0,0,0,2,24,37,0,0,"",0,0,0,0,334,'',[
-minilines(24,37,0,0,0,0,0,[
-mini_line(24,30,7,0,0,0,[
-str_block(0,24,30,7,0,-2,0,0,0,[
-str_seg('black','Times-Bold',1,195840,24,30,7,0,-2,0,0,0,0,0,
- "...")])
-])
-])]).
-text('black',220,98,1,0,1,24,37,182,30,7,2,0,0,0,2,24,37,0,0,"",0,0,0,0,128,'',[
-minilines(24,37,0,0,0,0,0,[
-mini_line(24,30,7,0,0,0,[
-str_block(0,24,30,7,0,-2,0,0,0,[
-str_seg('black','Times-Bold',1,195840,24,30,7,0,-2,0,0,0,0,0,
- "...")])
-])
-])]).
-text('black',420,116,2,0,1,136,36,183,13,5,2,0,0,0,2,136,36,0,0,"",0,0,0,0,129,'',[
-minilines(136,36,0,0,0,0,0,[
-mini_line(136,13,5,0,0,0,[
-str_block(0,136,13,5,0,0,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,136,13,5,0,0,0,0,0,0,0,
- "Unix-like C-based")])
-]),
-mini_line(80,13,5,0,0,0,[
-str_block(0,80,13,5,0,-1,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,80,13,5,0,-1,0,0,0,0,0,
- "socket API")])
-])
-])]).
-text('black',414,212,3,0,1,232,54,198,13,5,2,0,0,0,2,232,54,0,0,"",0,0,0,0,225,'',[
-minilines(232,54,0,0,0,0,0,[
-mini_line(112,13,5,0,0,0,[
-str_block(0,112,13,5,0,0,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,112,13,5,0,0,0,0,0,0,0,
- "Callback-based")])
-]),
-mini_line(176,13,5,0,0,0,[
-str_block(0,176,13,5,0,0,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,176,13,5,0,0,0,0,0,0,0,
- "protocol demultiplexer")])
-]),
-mini_line(232,13,5,0,0,0,[
-str_block(0,8,13,5,0,-1,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,8,13,5,0,-1,0,0,0,0,0,
- "(")]),
-str_block(0,216,13,3,0,-2,0,0,0,[
-str_seg('black','Courier-Oblique',2,80640,216,13,3,0,-2,0,0,0,0,0,
- "list of ProtocolHandlers")]),
-str_block(0,8,13,5,0,-2,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,8,13,5,0,-2,0,0,0,0,0,
- ")")])
-])
-])]).
-poly('black','',2,[
- 410,231,222,259],1,1,1,200,0,2,2,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-box('black','',56,401,229,433,0,1,1,250,0,0,0,0,0,'1',0,[
-]).
-text('black',119,409,1,0,1,56,18,251,13,5,0,0,0,0,2,56,18,0,0,"",0,0,0,0,422,'',[
-minilines(56,18,0,0,0,0,0,[
-mini_line(56,13,5,0,0,0,[
-str_block(0,56,13,5,0,-1,0,0,0,[
-str_seg('black','Courier-Bold',1,80640,56,13,5,0,-1,0,0,0,0,0,
- "Channel")])
-])
-])]).
-poly('black','',2,[
- 154,353,154,400],3,1,1,254,0,2,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-group([
-rcbox('black','',98,96,206,144,2,1,1,0,16,1,0,0,0,0,'1',0,[
-]),
-text('black',114,115,1,0,1,88,18,2,13,5,0,0,0,0,2,88,18,0,0,"",0,0,0,0,128,'',[
-minilines(88,18,0,0,0,0,0,[
-mini_line(88,13,5,0,0,0,[
-str_block(0,88,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,88,13,5,0,0,0,0,0,0,0,
- "Application")])
-])
-])])
-],
-348,0,0,[
-]).
-group([
-rcbox('black','',257,96,365,144,2,1,1,0,16,354,0,0,0,0,'1',0,[
-]),
-text('black',273,115,1,0,1,88,18,353,13,5,0,0,0,0,2,88,18,0,0,"",0,0,0,0,128,'',[
-minilines(88,18,0,0,0,0,0,[
-mini_line(88,13,5,0,0,0,[
-str_block(0,88,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,88,13,5,0,0,0,0,0,0,0,
- "Application")])
-])
-])])
-],
-352,0,0,[
-]).
-text('black',155,73,1,0,1,110,18,426,14,4,2,0,0,0,2,110,18,0,0,"",0,0,0,0,87,'',[
-minilines(110,18,0,0,0,0,0,[
-mini_line(110,14,4,0,0,0,[
-str_block(0,110,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Italic',2,80640,110,14,4,0,-1,0,0,0,0,0,
- "list of Applications")])
-])
-])]).
-text('black',161,357,1,0,1,106,18,443,14,4,2,0,0,0,2,106,18,0,0,"",0,0,0,0,371,'',[
-minilines(106,18,0,0,0,0,0,[
-mini_line(106,14,4,0,0,0,[
-str_block(0,106,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Italic',2,80640,106,14,4,0,-1,0,0,0,0,0,
- "list of NetDevices")])
-])
-])]).
-text('black',79,194,2,0,1,55,36,482,14,4,2,0,0,0,2,55,36,0,0,"",0,0,0,0,208,'',[
-minilines(55,36,0,0,0,0,0,[
-mini_line(53,14,4,0,0,0,[
-str_block(0,53,14,4,0,0,0,0,0,[
-str_seg('black','Times-Italic',2,80640,53,14,4,0,0,0,0,0,0,0,
- "unique id")])
-]),
-mini_line(55,14,4,0,0,0,[
-str_block(0,55,14,4,0,0,0,0,0,[
-str_seg('black','Times-Italic',2,80640,55,14,4,0,0,0,0,0,0,0,
- "system id")])
-])
-])]).
-polygon('black','',7,[
- 158,271,305,271,288,291,173,291,159,273,160,273,158,271],2,1,1,0,493,8,0,0,0,0,'1',0,
- "00",[
-]).
Binary file doc/manual/figures/packet.dia has changed
--- a/doc/manual/figures/packet.obj Fri Oct 10 15:24:56 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
-%TGIF 4.1.43-QPL
-state(0,37,100.000,0,64,0,32,0,9,1,1,1,0,0,0,1,0,'Courier-Bold',1,103680,0,3,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
-%
-% @(#)$Header$
-% %W%
-%
-unit("1 pixel/pixel").
-color_info(11,65535,0,[
- "magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
- "red", 65535, 0, 0, 65535, 0, 0, 1,
- "green", 0, 65535, 0, 0, 65535, 0, 1,
- "blue", 0, 0, 65535, 0, 0, 65535, 1,
- "yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
- "pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
- "cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
- "CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
- "white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
- "black", 0, 0, 0, 0, 0, 0, 1,
- "DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
-]).
-script_frac("0.6").
-fg_bg_colors('black','white').
-dont_reencode("FFDingbests:ZapfDingbats").
-page(1,"",1,'').
-box('black','',32,48,240,256,0,3,1,0,0,0,0,0,0,'3',0,[
-]).
-text('black',64,10,1,0,1,121,28,3,22,6,0,0,0,0,2,121,28,0,0,"",0,0,0,0,32,'',[
-minilines(121,28,0,0,0,0,0,[
-mini_line(121,22,6,0,0,0,[
-str_block(0,121,22,6,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,138240,121,22,6,0,0,0,0,0,0,0,
- "class Packet")])
-])
-])]).
-text('black',416,100,1,0,1,116,28,15,22,6,0,0,0,0,2,116,28,0,0,"",0,0,0,0,122,'',[
-minilines(116,28,0,0,0,0,0,[
-mini_line(116,22,6,0,0,0,[
-str_block(0,116,22,6,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,138240,116,22,6,0,0,0,0,0,0,0,
- "class Buffer")])
-])
-])]).
-text('black',48,178,4,0,1,83,69,32,14,4,0,0,0,0,2,83,69,0,0,"",0,0,0,0,192,'',[
-minilines(83,69,0,0,0,0,0,[
-mini_line(80,14,4,0,0,0,[
-str_block(0,80,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Bold',1,80640,80,14,4,0,-1,0,0,0,0,0,
- "private data:")])
-]),
-mini_line(59,14,3,0,0,0,[
-str_block(0,59,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,59,14,3,0,0,0,0,0,0,0,
- "- unique id")])
-]),
-mini_line(83,14,3,0,0,0,[
-str_block(0,83,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,83,14,3,0,0,0,0,0,0,0,
- "- Buffer object")])
-]),
-mini_line(76,14,3,0,0,0,[
-str_block(0,76,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,76,14,3,0,0,0,0,0,0,0,
- "- Tags object")])
-])
-])]).
-text('black',112,288,1,0,1,103,28,82,22,6,0,0,0,0,2,103,28,0,0,"",0,0,0,0,310,'',[
-minilines(103,28,0,0,0,0,0,[
-mini_line(103,22,6,0,0,0,[
-str_block(0,103,22,6,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,138240,103,22,6,0,-1,0,0,0,0,0,
- "class Tags")])
-])
-])]).
-text('black',48,50,5,0,1,175,86,176,14,4,0,0,0,0,2,175,86,0,0,"",0,0,0,0,64,'',[
-minilines(175,86,0,0,0,0,0,[
-mini_line(105,14,4,0,0,0,[
-str_block(0,105,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Bold',1,80640,105,14,4,0,-1,0,0,0,0,0,
- "public functions:")])
-]),
-mini_line(80,14,3,0,0,0,[
-str_block(0,80,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,80,14,3,0,-1,0,0,0,0,0,
- "- constructors")])
-]),
-mini_line(175,14,3,0,0,0,[
-str_block(0,175,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,175,14,3,0,-1,0,0,0,0,0,
- "- add/remove/peek at Headers")])
-]),
-mini_line(155,14,3,0,0,0,[
-str_block(0,155,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,155,14,3,0,-1,0,0,0,0,0,
- "- add/remove/peek at Tags")])
-]),
-mini_line(88,14,3,0,0,0,[
-str_block(0,88,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,88,14,3,0,0,0,0,0,0,0,
- "- fragmentation")])
-])
-])]).
-box('black','',384,144,614,352,0,3,1,245,0,0,0,0,0,'3',0,[
-]).
-text('black',400,274,4,0,1,204,69,246,14,4,0,0,0,0,2,204,69,0,0,"",0,0,0,0,288,'',[
-minilines(204,69,0,0,0,0,0,[
-mini_line(80,14,4,0,0,0,[
-str_block(0,80,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Bold',1,80640,80,14,4,0,-1,0,0,0,0,0,
- "private data:")])
-]),
-mini_line(193,14,3,0,0,0,[
-str_block(0,193,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,193,14,3,0,0,0,0,0,0,0,
- "- struct BufferData, a dynamically")])
-]),
-mini_line(160,14,3,0,0,0,[
-str_block(0,160,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,160,14,3,0,0,0,0,0,0,0,
- "varying byte buffer to which")])
-]),
-mini_line(204,14,3,0,0,0,[
-str_block(0,204,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,204,14,3,0,0,0,0,0,0,0,
- "data can be prepended or appended")])
-])
-])]).
-text('black',400,146,5,0,1,188,86,247,14,4,0,0,0,0,2,188,86,0,0,"",0,0,0,0,160,'',[
-minilines(188,86,0,0,0,0,0,[
-mini_line(105,14,4,0,0,0,[
-str_block(0,105,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Bold',1,80640,105,14,4,0,-1,0,0,0,0,0,
- "public functions:")])
-]),
-mini_line(172,14,3,0,0,0,[
-str_block(0,172,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,172,14,3,0,0,0,0,0,0,0,
- "- Iterators to move byte buffer")])
-]),
-mini_line(171,14,3,0,0,0,[
-str_block(0,171,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,171,14,3,0,0,0,0,0,0,0,
- "pointers forward or backward")])
-]),
-mini_line(188,14,3,0,0,0,[
-str_block(0,188,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,188,14,3,0,0,0,0,0,0,0,
- "- functions to read and write data")])
-]),
-mini_line(132,14,3,0,0,0,[
-str_block(0,132,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,132,14,3,0,-1,0,0,0,0,0,
- "of various sized chunks")])
-])
-])]).
-box('black','',96,324,304,532,0,3,1,264,0,0,0,0,0,'3',0,[
-]).
-text('black',112,454,4,0,1,167,69,265,14,4,0,0,0,0,2,167,69,0,0,"",0,0,0,0,468,'',[
-minilines(167,69,0,0,0,0,0,[
-mini_line(80,14,4,0,0,0,[
-str_block(0,80,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Bold',1,80640,80,14,4,0,-1,0,0,0,0,0,
- "private data:")])
-]),
-mini_line(167,14,3,0,0,0,[
-str_block(0,167,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,167,14,3,0,0,0,0,0,0,0,
- "- singly linked-list of TagData")])
-]),
-mini_line(158,14,3,0,0,0,[
-str_block(0,158,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,158,14,3,0,0,0,0,0,0,0,
- "structures, with a reference")])
-]),
-mini_line(32,14,3,0,0,0,[
-str_block(0,32,14,3,0,0,0,0,0,[
-str_seg('black','Times-Roman',0,80640,32,14,3,0,0,0,0,0,0,0,
- "count")])
-])
-])]).
-text('black',112,326,5,0,1,155,86,266,14,4,0,0,0,0,2,155,86,0,0,"",0,0,0,0,340,'',[
-minilines(155,86,0,0,0,0,0,[
-mini_line(105,14,4,0,0,0,[
-str_block(0,105,14,4,0,-1,0,0,0,[
-str_seg('black','Times-Bold',1,80640,105,14,4,0,-1,0,0,0,0,0,
- "public functions:")])
-]),
-mini_line(80,14,3,0,0,0,[
-str_block(0,80,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,80,14,3,0,-1,0,0,0,0,0,
- "- constructors")])
-]),
-mini_line(155,14,3,0,0,0,[
-str_block(0,155,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,155,14,3,0,-1,0,0,0,0,0,
- "- templates to add, remove,")])
-]),
-mini_line(148,14,3,0,0,0,[
-str_block(0,148,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,148,14,3,0,-1,0,0,0,0,0,
- "or peek at Tags of various")])
-]),
-mini_line(31,14,3,0,0,0,[
-str_block(0,31,14,3,0,-1,0,0,0,[
-str_seg('black','Times-Roman',0,80640,31,14,3,0,-1,0,0,0,0,0,
- "types")])
-])
-])]).
-poly('black','',2,[
- 59,245,96,320],0,2,1,272,0,0,3,0,0,0,0,'2',0,0,
- "0","",[
- 0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
-]).
-poly('black','',2,[
- 123,246,288,320],0,2,1,280,0,0,3,0,0,0,0,'2',0,0,
- "0","",[
- 0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
-]).
-poly('black','',2,[
- 141,219,379,147],0,2,1,286,0,0,3,0,0,0,0,'2',0,0,
- "0","",[
- 0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
-]).
-poly('black','',2,[
- 132,226,375,335],0,2,1,287,0,0,3,0,0,0,0,'2',0,0,
- "0","",[
- 0,10,4,0,'10','4','0'],[0,10,4,0,'10','4','0'],[
-]).
--- a/doc/tutorial/Makefile Fri Oct 10 15:24:56 2008 -0700
+++ b/doc/tutorial/Makefile Fri Oct 10 15:26:32 2008 -0700
@@ -1,23 +1,17 @@
TEXI2HTML = texi2html
TEXI2PDF = texi2dvi --pdf
EPSTOPDF = epstopdf
-TGIF = tgif
DIA = dia
CONVERT = convert
CSS = --css-include=tutorial.css
SPLIT = --split section
DIA_SOURCES = pp.dia dumbbell.dia star.dia
-TGIF_SOURCES = helpers.obj
DIA_EPS = ${DIA_SOURCES:.dia=.eps}
DIA_PNG = ${DIA_SOURCES:.dia=.png}
DIA_PDF = ${DIA_SOURCES:.dia=.pdf}
-TGIF_EPS = ${TGIF_SOURCES:.obj=.eps}
-TGIF_PNG = ${TGIF_SOURCES:.obj=.png}
-TGIF_PDF = ${TGIF_SOURCES:.obj=.pdf}
-
all: html split-html pdf
# Note: tgif requires a valid x display to convert from .obj to .png.
@@ -28,9 +22,6 @@
cd figures/; $(DIA) -t png $(DIA_SOURCES)
cd figures/; $(DIA) -t eps $(DIA_SOURCES)
cd figures/; $(foreach FILE,$(DIA_EPS),$(EPSTOPDF) $(FILE);)
- cd figures/; $(TGIF) -print -png $(TGIF_SOURCES)
- cd figures/; $(TGIF) -print -eps $(TGIF_SOURCES)
- cd figures/; $(foreach FILE,$(TGIF_EPS),$(EPSTOPDF) $(FILE);)
html:
$(TEXI2HTML) ${CSS} tutorial.texi
@@ -43,7 +34,6 @@
figures-clean:
cd figures/; rm -rf $(DIA_EPS); rm -rf $(DIA_PNG); rm -rf $(DIA_PDF)
- cd figures/; rm -rf $(TGIF_EPS); rm -rf $(TGIF_PNG); rm -rf $(TGIF_PDF)
clean: # figures-clean
rm -rf tutorial.aux tutorial.cp tutorial.cps tutorial.fn tutorial.ky tutorial.pg tutorial.tp tutorial.vr tutorial.toc tutorial.log tutorial.pdf tutorial.html tutorial/
--- a/doc/tutorial/figures/README Fri Oct 10 15:24:56 2008 -0700
+++ b/doc/tutorial/figures/README Fri Oct 10 15:26:32 2008 -0700
@@ -1,18 +1,18 @@
Please write image files in a vector graphics format, when possible, and
generate the .png and .pdf versions on the fly (see ../Makefile).
-Currently supported tools are dia and tgif. xfig could be added similarly
+The currently supported tool is dia. xfig could be added similarly
if someone wants to add it. The main requirement for adding another format
is that the tool to edit it is freely available and that a cron script can
-autogenerate the pdf and png from the figure source.
+autogenerate the pdf and png from the figure source. Tgif (.obj) files
+were once used but the file conversions require a valid X display to
+be running, and are therefore to be avoided since our code server
+does not run such a server. Tgif pdf conversions were also cumbersome.
-Store the .dia, or .obj versions in mercurial, but not the .png or .pdfs.
+Store the .dia versions in mercurial, but not the .png or .pdfs.
If the figure is not available in a vector graphics format, store both
a .png and a .pdf version in this directory.
-If you add a source (.dia, .obj) file here, remember to add it to
+If you add a source (.dia) file here, remember to add it to
the list of figure sources in the Makefile in the directory above
-Note: tgif can convert from .obj to .pdf, but the pdf that results takes
-up a whole page. Instead, we convert to an intermediate .eps step, and
-then run epstopdf.
Binary file doc/tutorial/figures/helpers.dia has changed
--- a/doc/tutorial/figures/helpers.obj Fri Oct 10 15:24:56 2008 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-%TGIF 4.1.43-QPL
-state(0,37,100.000,0,0,0,32,1,9,1,1,0,0,1,2,1,0,'Courier',0,80640,0,2,0,10,0,0,1,1,0,16,0,0,1,1,1,1,1088,1408,1,0,2880,0).
-%
-% @(#)$Header$
-% %W%
-%
-unit("1 pixel/pixel").
-color_info(11,65535,0,[
- "magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
- "red", 65535, 0, 0, 65535, 0, 0, 1,
- "green", 0, 65535, 0, 0, 65535, 0, 1,
- "blue", 0, 0, 65535, 0, 0, 65535, 1,
- "yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
- "pink", 65535, 49344, 52171, 65535, 49344, 52171, 1,
- "cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
- "CadetBlue", 24415, 40606, 41120, 24415, 40606, 41120, 1,
- "white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
- "black", 0, 0, 0, 0, 0, 0, 1,
- "DarkSlateGray", 12079, 20303, 20303, 12079, 20303, 20303, 1
-]).
-script_frac("0.6").
-fg_bg_colors('black','white').
-dont_reencode("FFDingbests:ZapfDingbats").
-page(1,"",1,'').
-text('black',272,195,2,0,1,248,36,0,13,5,0,0,0,0,2,248,36,0,0,"",0,0,0,0,208,'',[
-minilines(248,36,0,0,0,0,0,[
-mini_line(200,13,5,0,0,0,[
-str_block(0,200,13,5,0,-8,0,0,0,[
-str_seg('black','Courier',0,80640,200,13,5,0,-8,0,0,0,0,0,
- "low-level APIs (all src/ ")])
-]),
-mini_line(248,13,5,0,0,0,[
-str_block(0,248,13,5,0,-2,0,0,0,[
-str_seg('black','Courier',0,80640,248,13,5,0,-2,0,0,0,0,0,
- "directories except src/helper/)")])
-])
-])]).
-rcbox('black','',96,240,384,288,5,1,1,0,16,2,0,0,0,0,'1',0,[
-]).
-text('black',192,259,1,0,1,112,18,3,13,5,2,0,0,0,2,112,18,0,0,"",0,0,0,0,272,'',[
-minilines(112,18,0,0,0,0,0,[
-mini_line(112,13,5,0,0,0,[
-str_block(0,112,13,5,0,0,0,0,0,[
-str_seg('black','Courier',0,80640,112,13,5,0,0,0,0,0,0,0,
- "ns-3 simulator")])
-])
-])]).
-poly('black','',2,[
- 272,208,240,240],0,1,1,17,0,0,2,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-poly('black','',2,[
- 240,176,240,240],1,1,1,18,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-rcbox('black','',176,128,384,176,5,1,1,0,16,25,0,0,0,0,'1',0,[
-]).
-text('black',192,131,2,0,1,120,36,26,13,5,2,0,0,0,2,120,36,0,0,"",0,0,0,0,144,'',[
-minilines(120,36,0,0,0,0,0,[
-mini_line(120,13,5,0,0,0,[
-str_block(0,120,13,5,0,-1,0,0,0,[
-str_seg('black','Courier',0,80640,120,13,5,0,-1,0,0,0,0,0,
- "ns-3 helper API")])
-]),
-mini_line(96,13,5,0,0,0,[
-str_block(0,96,13,5,0,-2,0,0,0,[
-str_seg('black','Courier',0,80640,96,13,5,0,-2,0,0,0,0,0,
- "(src/helper)")])
-])
-])]).
-rcbox('black','',96,16,384,64,0,1,1,0,16,32,0,0,0,0,'1',0,[
-]).
-poly('black','',2,[
- 240,64,240,128],1,1,1,36,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',272,83,2,0,1,200,36,40,13,5,0,0,0,0,2,200,36,0,0,"",0,0,0,0,96,'',[
-minilines(200,36,0,0,0,0,0,[
-mini_line(200,13,5,0,0,0,[
-str_block(0,200,13,5,0,-2,0,0,0,[
-str_seg('black','Courier',0,80640,200,13,5,0,-2,0,0,0,0,0,
- "helper APIs (src/helper/)")])
-]),
-mini_line(192,13,5,0,0,0,[
-str_block(0,192,13,5,0,-1,0,0,0,[
-str_seg('black','Courier',0,80640,192,13,5,0,-1,0,0,0,0,0,
- "call into low-level APIs")])
-])
-])]).
-poly('black','',2,[
- 272,96,240,128],0,1,1,41,0,0,2,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).
-text('black',128,19,2,0,1,232,36,47,13,5,0,0,0,0,2,232,36,0,0,"",0,0,0,0,32,'',[
-minilines(232,36,0,0,0,0,0,[
-mini_line(224,13,5,0,0,0,[
-str_block(0,224,13,5,0,-2,0,0,0,[
-str_seg('black','Courier',0,80640,224,13,5,0,-2,0,0,0,0,0,
- "ns-3 scripts (main programs)")])
-]),
-mini_line(232,13,5,0,0,0,[
-str_block(0,232,13,5,0,-1,0,0,0,[
-str_seg('black','Courier',0,80640,232,13,5,0,-1,0,0,0,0,0,
- "- may use either or both APIs")])
-])
-])]).
-poly('black','',2,[
- 144,64,144,240],1,1,1,50,0,0,0,0,0,0,0,'1',0,0,
- "0","",[
- 0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
-]).