-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO.html
513 lines (444 loc) · 17.7 KB
/
TODO.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>ns TODO list</TITLE>
<!-- Changed by: Sandeep Bajaj, 24-Apr-1998 -->
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (X11; U; SunOS 4.1.3_U1 sun4m) [Netscape]">
</HEAD>
<BODY>
<P><!-- @(#) $Header: /cvsroot/nsnam/ns-2/TODO.html,v 1.32 2003/08/06 18:21:53 haldar Exp $--><!-- Changed by: Sandeep Bajaj, 31-Mar-1997 --></P>
<H1>ns: TODO list</H1>
<P><!--
This ChangeLog is updated in the reverse order
with the most recent changes coming first.
--></P>
<p><i>
The person who recommends the todo work does not necessarily do them
by him/herself.
<p></i>
<p>
List of topics:
Using hash classifier in hierarchical nodes
introduction,
code cleanup,
interfaces,
queueing,
full-tcp,
validation,
documentation,
research results,
release,
logging,
test suite for error models
<hr>
<ul>
<hr>
<p>
<li>
<b>introduction</b>
Here's the format: a boldface set of keywords about what
part of ns is relevant,
text describing what's going on,
then a signature and date.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Thu Jun 17 18:04:37 PDT 1999)</em>
<hr>
<!-----add stuff AFTER here----------------------------->
<p><li>
<b>Tcp-int</b>
<br>Need to fix tcp-int. see tcp-int.tcl under tcl/ex. Also need to add a test-suite for same. Currently no testcase which is not good for code that got merged into ns way back in '97.
<p><li>
<b>Documentation</b>
<br>Add doc for event-tracing.
<br>Convert README file in PGM into doc for PGM for ns-manual.
<em>(<a href="http://www.isi.edu/~haldar">[haldar]</a>
Mon Jul 22 11:51:54 PDT 2002</em>
<p><li>
<b>wireless code</b>
<br> Cleanup of wireless code; move out from ns-lib into under mobility.
move aodv.tcl from ~ns/aodv to tcl/mobility. cleanup for rtg-module much in the same way it 's been done for wired nodes. remove redundant codes in ns-mobilenode.tcl.
<em>(<a href="http://www.isi.edu/~haldar">[haldar]</a>
Wed Jun 12 09:08:41 PDT 2002</em>
<p><li>
<B>Port mac/null</B>
<BR>Look at the <A HREF="http://www.isi.edu/nsnam/archive/ns-users/webarch/2000/msg05314.html">mailing list archive</A> for porting information. Basically the code needs to be added to the current ns version and a test script needs to be written for it.
<EM>(<A HREF="mailto:mehringe@isi.edu">[John Mehringer]</A>
Thu Nov 9 17:27:57 EST 2000)
</EM>
<p><li>
<b>Node Structure:</b>
<ul>
<li> New node structure should be documented.
<li> For this purpose, Node::*[nodetype_] instprocs
should be cleaned up: the base Node should provide a set of
customization interfaces, and each add-on routing module
be an independent object which uses these interfaces to
customize classifier settings inside the node;
<br>
Also, numerous Simulator condition checks should be moved to
the initialization process of individual modules instead of
staying in the Simulator;
<li> We should get rid of all wireless code that is _really_
for backward compatibility only, and move them to a separate
directory instead of polluting tcl/lib and so on.
</ul>
<em>(<a href="http://catarina.usc.edu/~haoboy/">[haoboy]</a>
Thu Aug 24 14:25:08 PDT 2000)</em>
<p>
<li>
<b>Queueing:</b>
Change the Drop-Tail queue size so that it includes the
packet currently being transmitted, and add a
backward-compatibility mode so that we don't break all of the
validation tests. This will result in Drop-Tail and RED
queues having the same size in packets (now they are off by one
packet).
<em> (<a href="http://www.aciri.org/floyd/">[floyd]</a>
Tue Jul 4 15:13:34 PDT 2000</em>
<p>
<li>
<b> Test suite for error models</b>: Currently we have 8+ different
error models in ns. They seem to be used frequently but there is no
test suite to guarantee that they function correctly in every release.
What's more, there is little documentation about their expected behavior,
especially for the newer error models, e.g. two state. What we need is
first a test suite for all error models, then a fairly detailed doc on
their expected behavior. This will save users' time and help them
customize
these models for their own purpose.
<em>(<a href="http://www.isi.edu/~haoboy">[haoboy]</a>
Mon Nov 29 16:31:59 PST 1999)</em>
<p>
<li>
<b>Using hash classifier in hierarchical node</b>
The classifier cannot be used because of some strange problem
with the hash table. It seems like there is either a bug
with the Tcl hash function or the way we use it.
<em>(<a href="http://www.isi.edu/~salehi/">[salehi]</a>
Thu Sep 30 15:30:37 PDT 1999)</em>
<p>
<p>
<li>
<b>gen-map update</b>
$ns gen-map needs a cleanup + adding lan support.
<em>(<a href="mailto:yuri@isi.edu">[yuri]</a>
Thu Sep 9 12:13:41 PDT 1999)</em>
<p>
<li>
<b>This looks like a bug to look into</b>
After I edited mobility/scene/cbr-50-20-4-512 to replace all
<pre>
$cbr_(xx) set packetSize_ 512
</pre>
with
<pre>
$cbr_(xx) set packetSize_ 210
</pre>
and tried to re-run the test-suite-wireless-gridkeeper/dsdv,
ns got into a dead loop in DSDV_Agent::processUpdate() right
where the XXX-ed comment says it might:
<pre>
while ((queued_p = rte.q->deque()))
// XXX possible loop here
// while ((queued_p = rte.q->deque()))
// Only retry once to avoid looping
// for (int jj = 0; jj < rte.q->length(); jj++){
// queued_p = rte.q->deque();
recv(queued_p, 0); // give the packets to ourselves to forward
// }
delete rte.q;
rte.q = 0;
table_->AddEntry(rte); // record the now zero'd queue
</pre>
Yet it works with packetSize_ set to 512.
<em>(<a href="mailto:yuri@isi.edu">[yuri]</a>
Thu Aug 5 15:58:36 PDT 1999)</em>
<p>
<li> <strong>code cleanup, interfaces</strong>
<b>Aligning bound variable names</b>
[ns3?]
Aligning bound variable names in OTcl and C++, where possible
(change the C++ name, not the OTcl name).
<em>(<a href="http://www.cs.berkeley.edu/~tomh">[tomh]</a>
Jul 1 19:19:00 PDT 1999)</em>
<p>
<li>
<b>queueing</b>
Adding FRED, from the contributed code web page, into the
main NS distribution.
<em>(<a href="http://www.aciri.org/floyd/">[floyd]</a>
Thu May 13 14:34:00 PDT 1999)</em>
<p>
<li>
<b>queueuing?</b>
Adding RIO into the main NS distribution. (The original authors
of RIO did many simulations in NS, so I would assume that they
have an implementation somewhere...)
<em>(<a href="http://www.aciri.org/floyd/">[floyd]</a>
Thu May 13 14:34:00 PDT 1999)</em>
<p>
<li>
<b>one-way-tcp, full-tcp</b>
Implement the "careful" variant of bug-fix as
described in rfc2582.
See ns-users messages subject "Bug in TCPReno ?..."
posted September 1999.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Fri Sep 24 10:00:10 PDT 1999)</em>
<p>
<li>
<b>full-tcp, validation</b>
Validating ECN functionality for full-TCP (and, in the process,
updating full-TCP to make sure that ECN functions the same in full-TCP
as in one-way TCP).
<em>(<a href="http://www.aciri.org/floyd/">[floyd]</a>
Thu May 13 14:34:00 PDT 1999)</em>
<p>
<li>
<b>full-tcp, validation</b>
Replicating all of the TCP validation tests to make sure that
they work as we would like with full-TCP also. (There are a number
of things that are tested in the one-way validation tests, but that
are not verified in two-way (i.e., full-TCP) validation tests.
<em>(<a href="http://www.aciri.org/floyd/">[floyd]</a>
Thu May 13 14:34:00 PDT 1999)</em>
<p>
<li>
<b>validation</b>
Adding either short *.txt files, or longer documents, for each
validation test that does not now have one, so that users can
tell reasonably easily what is and is not tested in each validation
test.
<em>(<a href="http://www.aciri.org/floyd/">[floyd]</a>
Thu May 13 14:34:00 PDT 1999)</em>
<p>
<li>
<b>documentation, validation</b>
Standardize documentation for valdation tests.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Thu Jun 17 18:04:37 PDT 1999)</em>
<p>
<li>
<b>validation</b>
Expanding the validation tests for all of the various scheduling
algorithms.
<em>(<a href="http://www.aciri.org/floyd/">[floyd]</a>
Thu May 13 14:34:00 PDT 1999)</em>
<p>
<li>
<b>research results, validation</b>
More simulation scripts on-line somewhere. (Has everyone in the
VINT project made all of the simulation scripts for all of the
simulations that they have writted papers about publically available,
so that readers can easily reproduce those simulations themselves?)
<em>(<a href="http://www.aciri.org/floyd/">[floyd]</a>
Thu May 13 14:34:00 PDT 1999)</em>
<p>
<li>
<b>documentation</b>
Better document trace file format
(both ns output trace)
and the 32-bit integer thing.
(A very FAQ.)
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Thu Jun 17 18:04:37 PDT 1999)</em>
<p>
<li>
<b>documentation</b>
Describe the ns programming model (event driven and the IO model).
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>Wed Sep 8 13:38:19 PDT 1999)</em>
<p>
<li>
<b>release, allinone</b>
Allinone should add tcl-debug
and update dmalloc.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>Thu Nov 9 10:01:41 PST 2000)</em>
<p>
<li>
<b>logging</b>
Trace output is a mess. There are currently two different formats
(wired and wireless), neither of which is easily extnesible.
Switching to something like what nam uses seems like a win.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>Fri Aug 27 17:24:44 PDT 1999)</em>
<p>
<li>
<b>full-tcp, application APIs</b>
We need to compare the ns full-tcp with the south-bay full-tcp
in terms of corner cases and APIs (i.e., with the cisco http models).
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>Mon Aug 30 15:17:59 PDT 1999)</em>
<p>
<li>
<b>queueing</b>
Make sure that all ns constructs (1-way and full-tcp, queueing protocols)
have both packet and byte-oriented modes and that they are selected consistently.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>Mon Aug 30 15:20:00 PDT 1999)</em>
<p>
<li>
<b>emulation</b>
merge nse into ns, have emulation controled by a configure option
(--with-emulation or something).
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>Thu Oct 14 10:25:47 PDT 1999)</em>
<p>
<li>
<b>debugging</b>
Insure that gen-map works correctly with lans and wireless.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Fri Sep 3 21:26:38 PDT 1999)</em>
<p>
<li>
<b>test suites, error models</b>
Create tests suites for the error models.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Wed Nov 24 13:20:55 PST 1999)</em>
<p>
<li>
<b>routing</b>
Add source routing to ns.
Suggested by several people, including ashish.
Could possibly start with MPLS contributed code?
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Mon Dec 20 15:57:11 PST 1999)</em>
<p>
<li>
<b>optimization, routing, classifiers</b>
An optimization in classifier sizing:
When Polly mentioned that Classifiers just double their routing
tables when the currently allocated space is exceeded, I thought it
was a bug: Classifiers normally are populated when all nodes are
created, which means that we know what the routing size will be and
can give Classifiers a hint, so we don't need to double.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Tue Dec 21 10:25:56 PST 1999
)</em>
<p>
<li>
<b>topology generation</b>
Contributed topology generators to possibly integrate
from Graham Phillips <graham@ISI.EDU>:
I've written some topology generator programs that the ns
community is more than welcome to use. These programs are
reasonably mature and I've used them over the past year
while preparing a sigcomm paper about multicast trees.
<p>
The programs essentially create and manipulate Standford Graph
Base topology files, but there are also programs for converting from
1) tiers to SGB, and
2) ISI's mbone collection format to SGB.
Obviously the ns community would use the existing SGB to ns
converter to create the appropriate ns topologies.
<p>
The basic idea was to widen the range of real and artificial
topologies that might be constructed. All utilities and
documentation are available
from <a href="http://www-scf.usc.edu/~grahamph/contrib/index.html">http://www-scf.usc.edu/~grahamph/contrib/index.html</a>.
<p>
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Tue Dec 21 10:30:47 PST 1999)</em>
<p>
<li>
<b>tracing, visualization</b>
Need to review MAC-layer tracing, support tracing at multiple levels.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Tue Dec 21 10:50:34 PST 1999)</em>
<p>
<li>
<b>binding</b> [ns3?]
We need to clean up inconsistent binding of variables
(but this is hard to do while keeping backwards compatibility).
<pre>
Date: Fri, 23 Jul 1999 17:37:04 +0100 (BST)
From: Lloyd Wood <L.Wood@surrey.ac.uk>
In:
http://www-mash.cs.berkeley.edu/dist/archive/ns-users/9906/0304.html
http://www-mash.cs.berkeley.edu/dist/archive/ns-users/9906/0313.html
I grumbled about consistent use of bind, so that OTcl and C++ users
can talk about the same variables and you don't have to go hunting for
the bind statement to see what maps to what when you're working across
the divide.
The thing is, once you start going a bit deeper into the ns code,
however reluctantly, there's a second level of confusion. A search on
'return ' in headers for member functions returning variables produces
rather similar results for bind; almost all are obvious and sensibly
mapped: blah() to blah_, but the odd thing like:
tcp.h: int& flags() { return (tcp_flags_); }
rtp.h: u_int16_t& flags() { return (flags_); }
(or
ip.h: int& flowid() { return (fid_); }
address.h: inline int portshift() {return PortShift_;}
address.h: inline int portmask() {return PortMask_;}
packet.h: inline double& timestamp() { return (ts_); } )
can really throw you for a loop and complicate digging up responsible
bits of code affected by changes.
</pre>
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Tue Jan 4 10:55:56 PST 2000)</em>
<p>
<li>
<b>routing, scaling</b>
Should reimplement algorithm routing solely in C++.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Wed Jan 19 07:42:32 PST 2000)</em>
<p>
<li>
<b>mixed-mode, scaling</b>
Should check, change code so that packets can stay completely
in C++ when being forwarded between regions in mixed-model simulations.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Wed Jan 19 07:46:49 PST 2000)</em>
<p>
<li> <b>TCP</b> Check the TCP reset function.
From email with "Subject: Re: TCP reset bug" and
"Subject: question about TCPAgent reset()" on the
ns-users mailing list.
<em> (<a href="http://www.aciri.org/floyd/">[floyd]</a>
Fri Feb 25 09:06:59 PST 2000) </em>
<p>
<li> <b>one-way TCP</b> Deal with the issue of segment size vs.
header size. From email on the ns-users mailing list.
<em> (<a href="http://www.aciri.org/floyd/">[floyd]</a>
Fri Feb 25 09:06:59 PST 2000) </em>
<p>
<li> <b>documentation</b> Make sure that documentation includes
all variables in ns-default.tcl.
<em> (<a href="http://www.aciri.org/floyd/">[floyd]</a>
Fri Feb 25 09:06:59 PST 2000) </em>
<p>
<li> <b>validation</b> Suppress "using backward
compatibility mode" message during *-v1.tcl validation tests?
Correct procedures for V1 validation tests that are not run:
e.g., test cbqForOld in "./test-all-cbq-v1".
From email on "Subject: Re: a validation question" on the ns-users
mailing list.
<em> (<a href="http://www.aciri.org/floyd/">[floyd]</a>
Fri Feb 25 09:06:59 PST 2000) </em>
<p>
<li> <b>probability distributions</b> Add validation tests.
<em> (<a href="http://www.aciri.org/floyd/">[floyd]</a>
Fri Feb 25 09:06:59 PST 2000) </em>
<p>
<li>
<b>LANs</b>
Make LAN nodes be generated with [$ns node] and node-config
rather than special APIs.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Tue Jun 20 17:19:27 PDT 2000)</em>
<p>
<li>
<b>SRM/event tracing</b>
SRM's tcl tracing code should use real event tracing
(which should include tcl support),
not the current hack (see srm.tcl for commands "$self evTrace Q NTIMER").
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Wed Jul 24 10:41:06 PDT 2002)</em>
</ul>
<H1>DONE list</H1>
These things have been completed:
<ul>
<p>
<li>
<b>hier addressing</b>
str2addr in address.cc should do some error checking
to insure that fields are not larger than they should be.
<em>(<a href="http://www.isi.edu/~johnh/">[johnh]</a>
Mon Oct 30 22:52:32 PST 2000); completed by Padma in 2001</em>
</ul>