ns: Change History
- [salehi]
Mon Mar 15 17:10:30 PST 1999
The following files/directories were removed since they are
either superseded by other test or no longer supported:
- tcl/mcast/detailedDM.tcl
- tcl/pim
- tcl/lan/ns-lan.tcl
- tcl/lan/ns-mlink.tcl
- [haoboy]
Sun Mar 14 13:08:12 PST 1999
Changed process.{h,cc} to ns-process.{h,cc}, so as to avoid
name conflicts on some OS (e.g. WIN32). Removed
indep-utils/cmu-trace/setdest/Makefile.
- [haoboy]
Fri Mar 12 19:48:42 PST 1999
Various cosmetic changes to make it compile on windoze,
patches courtesy of
Christian Joensson.
- [yaxu]
Thu March 9 15:20:00 PDT 1999
Re-implement wiredLAN(802.3) by porting cmu's 802.3 module,
and make wiredLAN work again. Highlights:
(1) All 802.3 features including contention detection
are implemented in mac layer. (Old wiredLAN uses
channel to detect contention)
(2) Channel broadcasts packets to every nodes attached to
the wiredLAN except the sender. It is up to mac layer
to decide whether it receives or drops the packet
according to the destination mac address of the packet.
(In old wiredLAN, channel does unicast by default)
(3) WiredLAN uses the same structure as wireless LAN (from
bottom up, channel, phy, mac, ifq, ll, arp). These modules
have the same function definition.
(4) csma.cc is fully replaced by mac-802_3.cc
(5) The reference output of wiredlan test suite have been
changed
(6) The nam packet flow of wiredlan test suite does not
exactly reflect the packet sequences under ll. It is
due to (a) no trace object is inserted below ll; (b) nam
is not in the good position so far to animate LAN behavior
below ll. We put it into TODO list.
- [haoboy]
Mon Mar 8 21:11:47 PST 1999
Changed default HTTP invalidation packet size, so that both
unicast and multicast invalidations have the same
base size. Also changed the type of unicast (TCP) invalidation
packet types from tcp/ack to httpInval.
Updated affected test suite outputs (those related
to multicast invalidations).
- [haoboy]
Fri Mar 5 18:09:31 PST 1999
Previous ErrorModel won't work with ECN turned on if it is
situated after the QUEUE module. It's because ECN doesn't drop
the packet, but an event is scheduled to resume the handler
from inside the ErrorModel instead of from DelayLink. Added a
check to avoid this.
This will only affect scripts using
SimpleLink::insert-linkloss{} or Simulator::link-lossmodel{}.
- [floyd]
Fri Mar 5 10:47:07 PST 1999
Modified tcp-sink.cc and tcp-sink.h to fix an ECN bug for
TCP with delayed-ack sinks. In particular, the ECN field was
not being handled correctly for a packet for which the
acknowledgement was being delayed. The bug report and bug fix
are both from Mark Allman, mallman@grc.nasa.gov.
- [haoboy]
Wed Mar 3 18:16:53 PST 1999
Added a separate set of error model insertion
procedures. Updated SRM's test suite output (the previous one
does not contain packet drop events). Changed the name of
AppConnector to Process, and make it a subclass of
TclObject. Make Application a subclass of Process. Added
three new send() methods to Agent so that it supports sending
user-level data.
- [haoboy]
Tue Mar 2 12:37:37 PST 1999
Add a fix to generate nam traces correctly for packets
dropped by error models.
- [johnh]
Fri Feb 26 14:37:31 PST 1999
Applied a memory leak fix to sessin-rtp.cc, fix contributed
from Lidia Yamamoto, Christoph Haenle, and Randa.
- [haoboy]
Tue Feb 23 17:46:08 PST 1999
Added a directory indep-utils/ which contains my proxy trace
converteres and CMU's mobile scenario generator. Replaced
the big scenario files under tcl/mobility with smaller
files. If necessary, big scenarios can be generated using the
CMU generator.
- [YP]
Fri Feb 19 18:04:57 PST 1999
Modified implementation of
PacketQueue. Method tail()
now returns the last packet in the queue; meaning of
PacketQueue::tail_
is also changed.
- [YP]
Wed Feb 17 19:10:00 PST 1999
Added enumeration for packet types instead of sequence of
#defines. New class p_info binds numeric
packet types with their string values.
- [haoboy]
Mon Feb 8 14:29:43 PST 1999
Add a unique type int64_t for 64-bit integers. Now it doesn't
check for quad_t or "long long" in different platforms.
Requires new tclcl.
- [YX]
Thu Feb 4 15:20:00 PDT 1999
Add mobileIP support (porting from Sun) with
an example called miptest.tcl
- [YP]
Thu Jan 28 15:20:00 PDT 1999
Changed Calendar and Heap schedulers not to re-order
simultaneous events. All three schedulers now
produce the same result. Added a simple test
test-suite-simultaneous for checking ordering of
simultaneous events. Commented out "use-scheduler"
lines from all test suites which had it so that they all
use Calendar as default. Re-generated failing test-outputs.
- [haoboy]
Tue Jan 26 10:18:47 PST 1999
- Improvements for webcache: (1) support non-cacheable
pages; (2) allow cache push to be either selective push or
always push, adjustable from a tcl command; (3) new ways to
compute staleness time for pages (lower bound RTT/2)
- Added a type 'int' for many register var declarations.
- Added 64-bit integer support for FreeBSD (quad_t) and
Solaris 2.x (long long). A ns-specific tcl function
ns-add64
is provided to add/substract these
64-bit integers.
- [johnh]
Thu Jan 21 18:07:18 PST 1999
Changed autoconf handling of perl,
added support in tcl to keep track of the good perl
we find
and use it in the test suites.
The proper way to invoke a perl program from within ns
is { global PERL; exec $PERL path/to/script.pl args; }.
For examples in context, see test-suite-tcp.tcl.
- [YP]
Thu Jan 21 15:53:07 PDT 1999
Changed ns configure to support tcldebug v1.9. Upgraded NS
and NAM config.guess and config.sub.
- [haldar]
Mon Jan 4 14:20:34 PST 1999
Committed changes to integrate the lower layer stacks for cmu and ns
code versions. Changes made : LL, Mac & Channel interfaces and
functionalities changed. added PHY layer;
Mac/csma/cd not supported currently.
- [PH]
Thu Dec 24 14:55:09 PST 1998
Moved reference count related code in scheduler.{cc,h} to
sessionhelper.cc
- [haoboy]
Wed Dec 16 13:33:16 PST 1998
Bug fix for web cache code, mainly: (1) disconnect{} between servers
and caches; (2) sending 0 bytes in TcpApp
Added support for trace (web server/proxy log) driven web
simulation. Added tests to include that part. Added a simple
introductory script tcl/ex/simple-webcache-trace.tcl. Updated
other outputs of webcache test suite after bug fixes.
- [PH]
Wed Dec 16 12:59:46 PST 1998
Integrated recent change on
StarBurst MFTP code from
Christoph Haenle.
-
Tue Dec 15 09:23:55 PST 1998
Added support for Mobile networking in current version of ns;
Mostly cmu's version of mobility implementation -- integrated
into ns.
- [johnh]
Thu Dec 3 14:56:47 PST 1998
Re-arranged some of the mftp/StarBurst code.
- [PH]
Thu Nov 12 15:40:35 PST 1998
added mix-mode, algorithmic routing, and virtual classifier test suite
changed McastMonitor structure
- [PH]
Thu Nov 5 18:37:59 PST 1998
added mix-mode (first-cut)
example scripts at tcl/ex/newmcast/mix-mode*.tcl
- [YP]
Tue Oct 15 13:11:39 PDT 1998
Modified and cleaned LAN architecture: tcl/lan/vlan.tcl
- [PH]
Wed Oct 14 13:24:46 PDT 1998
added virtual classifier; example: tcl/ex/virtual-classifier.tcl
- [haldar]
Wed Oct 7 15:35:01 PDT 1998
Added counter for routing table size for each node. support for
rtg table size to be used as label for nam visualizations.
- [PH]
Mon Oct 5 16:43:03 PDT 1998
Added algorithmic routing support for detailed simulator:
example script: tcl/ex/newmcast/detailed-algo.tcl
Added Multi-field filter, expanded from single field filter,
Filter/Field
- [haldar]
Mon Sep 28 12:29:21 PDT 1998
Bug fix that now allows hierarchical routing to be used for single
level of hierarchy.
- [PH]
Mon Sep 21 13:53:48 PDT 1998
Added algorithmic routing (API: $ns rtproto Algorithmic):
a space consumption O(n) routing mechanism, currently
working with SessionSim only
Added Pareto distribution the second kind (aka. Lomax distribution)
into the random distribution collection
- [johnh]
Mon Sep 14 20:51:55 PDT 1998
Re-autoconf'ed; several version numbers bumped
(suggested by Lloyd Wood).
- [PH]
Thu Sep 10 15:45:01 PDT 1998
changed session test suite output to avoid namtrace-all
re-enabled session suite in the validation test
- [johnh]
Mon Aug 31 15:26:17 PDT 1998
Re-autoconf'ed.
Getrusage/sbrk are now detected in autoconf.
- [SF]
Sat Aug 29 16:50:06 PDT 1998
Included validation test for NewReno: test-all-newreno.
This includes a new option, newreno_changes1_, that forces a
slow-start when many packets are dropped from a window of data.
- [VNP] Sat Aug 22 11:59:47 PDT 1998
- tcp-asym-sink.cc: call to acker_->update() in recv() had
incorrectly been ifdef'd out by someone. Restored the call.
- mac.cc, ll.cc: replaced call to offset() with one to
bind_offset()
- chost.{cc,h}, tcp-session.cc: added disableIntLossRecov_ to
selectively disable integrated loss recovery.
- [TH]
Fri Aug 14 13:30:00 PDT 1998
Removed CBR_Agent; use Application/Traffic/CBR over Agent/UDP now.
Packet type for trace file is now settable from application.
Source changes: agent.h, app.h, cbr_traffic.cc, errmodel.cc, expoo.cc,
ivs.cc, packet.h, pareto.cc, rtp.cc, sa.cc,sa.h,scheduler.cc, telnet.cc,
telnet.h, trace.cc, traffictrace.cc, trafgen.cc, udp.h, udp.cc,
tcl/lib/ns-default.tcl, tcl/lib/ns-intserv.tcl, tcl/lib/ns-source.tcl.
Removed cbr.h and cbr.cc.
- [johnh]
Tue Aug 11 13:04:40 PDT 1998
Portability fixes for HPUX from
Ketil Danielsen Ketil.Danielsen@hiMolde.no.
- [haldar]
Tue Aug 11 11:31:33 PDT 1998
Included validation test-suites for hierarchical routing:
test-suite-hier-routing.tcl- runs 4 tests
hier-simple, -cmcast, -deDM and -session.
- [haldar]
Thu Aug 6 11:39:02 PDT 1998
Added scenario-generation library (~ns/tcl/scen-generation/
scen-lib) containing 3 congestion control scenario test cases
(ref: Mark Handley's RM congestion control schemes).
- [johnh]
Tue Aug 4 17:00:54 PDT 1998
Re-wrote mem-trace.h to isolate the unportable code.
Portions commented out for Windows platform based on
feedback from John Vicente.
- [haldar]
Wed Jul 29 17:20:08 PDT 1998
Created a holder for all traffic models and added
many_tcp traffic model (~ns/tcl/lib/ns-trafficgen.tcl) as a
part of ns/lib
- [LB]
Tue Jul 28 16:41:29 PDT 1998
Added a validation test for the admission control algorithms
and related intserv functionality.
- [LB]
Thu Jul 23 15:50:14 PDT 1998
With Haobo Yu, fixed a bug in the Calendar Scheduler which
only appeared to be a problem with very long running simulations.
- [haldar]
Fri Jul 17 14:21:25 PDT 1998
Added topology semantics for agent distribution to
scenario-generator -
allows placement of agents on designated src and dest
stub/locations for transit-stub topologies.
Added hierarchical addressing support to topology generator.
- [PH]
Mon Jul 13 18:23:53 PDT 1998
added hierarchical routing support for session sim
example: tcl/ex/newmcast/session-hier.tcl
- [XY]
July 11 15:15:00 PDT 1998
ns-2.1b3 Release.
- [PH]
Fri Jul 10 17:54:49 PDT 1998
added session simulator validation test
tcl/test/test-all-session
- [johnh]
Thu Jul 9 14:02:19 PDT 1998
tclclassinstvars turned on by default.
- [KVa]
Thu Jul 9 11:33:28 PDT 1998
- Changed Connector instproc-like: dynamic to be isDynamic.
This permits running the topology dynamics code in
compatibility mode.
- [SF]
Thu Jul 9 11:30:54 PDT 1998
With Kevin Fall, added validation tests for Tahoe, Reno, NewReno,
and SACK TCP to tcl/test/test-all-tcpVariants.
- [TH]
Tue Jul 7 15:50:00 PKT 1998
Added generic CBR traffic generator that can run on top of UDP agent.
Added new API methods to existing CBR_Agent. New file: cbr_traffic.cc
- [johnh]
Mon Jul 6 13:44:12 PDT 1998
./test-all (and related files) moved to tcl/test/test-all-simple.
- [johnh]
Mon Jun 29 16:55:51 PDT 1998
Manual routing test suite added; many_tcp fixed (due to chane in classifier-hash.cc)
- [TH, GN]
Fri Jun 26 18:30:00 PKT 1998
Revised API between Agents and Applications. Added new base class
Application for all Sources and Traffic Generators. Added generic agent
callback functions to base class Application. Added generic "socket-like"
functions to base class Agent.
- [AH]
Wed Jun 17 19:00:00 PKT 1998
- Checked in the routing generator and the agent
generator components of the scneario generator, at
tcl/ex/{route,agent}-gen.tcl. For use, source these files and type
'routing -h' or 'agents -h' for more help.
The agent generator currently supports TCP and SRM types (and their
variants, attached sources, sinks and traffic models), in addition
to a random distribution of the start/end times of tcp sessions and
join/start times of SRM members/sources.
- Modified the topology generator to add API that returns
the number of nodes in a topology.
- An example script that uses the scenario generator is
under tcl/ex/agent-gen-script.tcl.
- [kfall]
Mon Jun 15 17:58:06 PDT 1998
- change error module so that if markecn_ is turned out, you
do not also drop the packet if drop_ is set
- changes to full-tcp (and support in bin directory), adding
tracing of the congestion action bit which is now on all
the time, even if ecn is not turned on
- changes to full-tcp so that the slow-start due to long send idle
periods aren't triggered if you are sending just acks
- Tahoe and NewReno support for full-tcp (a few days back)
- [johnh]
Wed Jun 10 17:58:06 PDT 1998
- enabled MEMDEBUG_SIMULATIONS by default (in config.h)
- added support for delayed binding (see tclcl's CHANGES for details)
This is only enabled if you configure --enable-tclcl-classinstvar.
(Only added support in Agent and NsObject.)
- Fixed compiler warnings in cbq.cc, errmodel.cc, queue.h (meet gcc 2.7.2.3). Queue.h was an actual bug!
- re-autoconf'ed
- added memory tracing to many_tcp.tcl
- [johnh]
Wed May 27 11:46:01 PDT 1998
tcl/ex/many_tcp.tcl demonstrates large numbers of TCP flows
using Manual routing.
Run it with the -? option to see a description of its options
and limitations.
- [floyd]
Wed May 27 17:28:46 PDT 1998
Added test-all-ecn to validate. I also added a "-a" option
to bin/raw2xg for displaying the ECN flags.
- [kfall]
Wed May 27 13:57:31 PDT 1998
Bug-fix to tcp.cc to allow for doing "advance" to a number
below curseq_. Bug-fix to List ErrorModel to fix up handling
of "droplist" strings that contain extraneous spaces and
white space.
- [johnh]
Wed May 27 11:46:01 PDT 1998
- "make tcl/lib/TAGS" now generates {o,}tcl tags.
- tcl-expand.tcl now includes tags about what the files are
- Simulator::node now generates nodes indirectly through
Simulator::node_factory_
- Node::mk-default-classifier is new node-specific code
to create its classifiers
- Manual routing is now possible (new Agent/rtProto/Manual, ManualRtNode)
- DestHashClassifier exists
- Classifiers can now be resized
- more error checking added to classifier's installNext
- [AH]
Sat May 23 22:24:00 PDT 1998
- Checked in first cut of the topology generator part of
the scenario generator package. It currently supports
random and transit stub topologies generated by the GATech
ITM generator. Check tcl/ex/topo-gen.tcl.
- Checked in a topology viewer script, to enable viewing
generated topologies before running the simulations, in
tcl/ex/topo-view.tcl.
- An example script for using the checked code is in
tcl/ex/topo-gen-script.tcl, and the readme file is
tcl/ex/topo-gen.txt.
- [johnh]
Fri May 22 11:17:00 PDT 1998
- Agent/TCP advance/advanceby/done commands are now documented
in the man page.
- Hierarchical routing renames:
Simulator instproc {hier-,}node,
HierNode instproc {hier-,}enable-mcast
- Classifier instproc dump
- SessionSim {bw,delay}_parse moved to Simulator
- Simulator instproc nodes-to-link
and Simulator instproc nodes-to-link?
provide an abstract way to get link_($n1id:$n2id)
- [floyd]
Wed May 20 17:37:59 PDT 1998
Changes to one-way tcp implementations so that the TCP
receiver sends the ECN-Echo packet to the TCP sender on
multiple ACK packets. This approach is described in
"http://www-nrg.ee.lbl.gov/floyd/ECN-TCP.txt". The
change includes a new flag in the packet header,
"cong_action_", a.k.a. Congestion Action, for the TCP
sender to notify the TCP receiver that it has responded to
congestion.
- [aswan]
Mon May 18 15:31:45 PDT 1998
Reworked RLM implementation. A single implementation
is now shared between mash and ns. A subclass handles
ns-specific RLM operation. See the documentation for
the MMG class in otcldoc for further details.
- [kfall]
Wed May 13 19:02:31 PDT 1998
Many changes to FullTcp, including fixes to timestamps, re-
structuring of dupack actions, fix an off-by-1 problem for
window deflation. Also, changes for ECN [not yet
fully tested] and addition of 5 new tests to test-suite-full.tcl.
- [floyd]
Wed May 13 18:35:31 PDT 1998
Changes to tcp-newreno.cc to make corrections in the
interactions between Fast Retransmit and ECN. I also
added a new validation test, "test-all-tcpVariants", to
the ns "validate" test. It tests Tahoe, Reno, NewReno,
and Sack TCP with one, two, three, and four packet drops.
The validation test for ECN, "test-all-ecn", is still in
progress.
- [floyd]
Mon May 11 19:05:50 PDT 1998
Changes to tcp.cc, tcp-reno.cc, tcp-sack1.cc, and tcp.h,
to make small corrections in the interactions between
Fast Retransmit and ECN, to avoid some unnecessary reductions
of the congestion window. The ECN validation test
"test-all-ecn" now documents the correct functioning
of the Tahoe, Reno, and Sack1 ECN code. In addition, the
Fast Retransmit code has been restructured, for readability.
This is joint work with Kevin Fall.
- [kfall]
Wed May 6 18:52:37 PDT 1998
Changes to tcp.cc for ECN. ErrorModule now has "default"
function which says what to do with packets that shouldn't
be handled specially. Classifiers now have "findslot" fn
which tells the slot# an object is in. Periodic Error Model
now has 'burstlen' parameter that provides for bursty
periodic losses, rather than just 1 pkt loss per period.
- [LB]
Mon May 4 11:22:02 PDT 1998
Added nam trace functionality to admission control modules.
- [haldar]
Wed Apr 29 10:25:45 PDT 1998
- Revised the addressing format for ns as follows:
Added API's for allocating bits to address fields. Default
value being 8 bits for port (2^8 agents) and 7 bits for node address
(2^7 nodes in a topology and 1 bit for mcast.
The API allows to set address for multilevel hierarchy (for
hierarchical routing), and expand the port bits to allow higher number
of agents in a node. For details see ~ns/tcl/lib/ns-address.tcl
- Added support for hierarchical routing.Currently
hierarchical routing supports upto 3 levels of hierarchy.
The gt-itm to hierarchical converter - sgb2hierns, is available from
topology generation webpage for ns. Example scripts for hierarchical
routing are available in ~ns/ex/hier-rtg-10.tcl and hier-rtg-100.tcl
- [SB]
Tue Apr 28 14:30:08 PDT 1998
Added some patches so that ns-compiles with gcc version 2.8.1
- [floyd]
Fri Apr 24 21:36:47 PDT 1998
Modified the tcp-init-win validation test, and added
tcp-init-win to validate.
- [SB]
Fri Apr 24 17:29:46 PDT 1998
Added support for 2 kinds of delay-adaptive receivers
- [johnh]
Tue Apr 21 09:58:22 PDT 1998
README is now up-to-date, html directory gotten rid of
(it was quite old).
- [kfall]
Thu Apr 20 19:40:37 PDT 1998
Re-arrange some of Sally's changes to the various tcp's in
support of initial window investigations.
Update to tcl/rtmechanisms/rtm_reclass so you don't
have to specify a topo in order to specify enable/disable.
- [floyd]
Wed Apr 20 1998
Added TCP variables "syn_", "windowInitOption_", and
"tcpip_base_hdr_size_" for experimenting with the
proposal for modified TCP initial windows in the
internet-draft on "Increasing TCP's Initial Window".
- [johnh]
Thu Apr 16 10:45:37 PDT 1998
Configure now finds tcl/tk on Debian Linux
(patch submitted by Jeffrey Austen <jausten@tntech.edu>).
- [SB]
Mon Apr 13 10:52:51 PDT 1998
tcl/lib/ns-random.tcl : Added support to generate a normal
distribution.
- [AH]
Fri Apr 10 18:40:20 PST 1998
- Added support for trace driven packet loss. Modified errmodel.h,cc
to support TraceErrorModel and MrouteErrorModel.
- Added support for exhaustive selective packet loss over lans.
Modified tcl/mcast/ns-mlink.tcl and
tcl/mcast/ex/newmcast/loss.tcl,types.awk.
- Added an example of selective loss over lan test suite. Added
tcl/ex/newmcast/pim-loss.tcl,pim-no-loss.tcl.
- [AMC]
Wed Mar 25 20:23:42 GMT 1998
- tcl/lib/ns-random.tcl: Bug fix, and exponential now takes
optional argument mu.
- config.h: int8_t would break under Solaris 2.6 (it's still
a mess)
- Makefile.in: Now tells you if you need to re-run configure.
- [SB]
Wed Mar 18 12:03:35 PST 1998
Added token bucket filter support
- [PH]
Fri Feb 25 7:13:54 PST 1998
Fixed minor bugs in sessionhelper.cc
Added Packet Reference Count for SessionSim (more than 50% memory save
for sim with large amount of trees, widely spanned trees, and high source
rate.
- [SB]
Fri Feb 20 12:13:58 PST 1998
Added support for RLM
- [hari] Mon Feb 16 12:41:50 PST 1998
- Lots of additions and mods for snoop version 2
and Explicit Loss Notifications (ELN).
- Empirical wireless error models from real traces.
- Restructured wireless link layer stuff.
- Various changes for Win32 (actually checked in a few days
ago (in 2.1b3) but unfortunately forgot to check in
CHANGES.html then)
- [VNP] Wed Feb 11 19:55:34 PST 1998
- Can invoke "configure" with --libdir=DIR to add to the
library search path (changed Makefile.in).
- Bunch of changes to {tcp-session,chost,tcp-int).{cc,h},
including the combination of fast start and TCP sessions.
- [SB]
Mon Feb 9 13:00:14 PST 1998
Added support for measurement based admission control for controlled load
service.
Release to make ns compatible with tcl/tk8.0p2 and to
incorporate changes in nam-1.0a4 (version 1.0a3 was skipped). This release is CVS tagged with NS_2_1B2
ns-2.1b1 November 11, 1997
Release to incorporate tracing features for nam-1.0a2. This release is CVS tagged with NS_2_1B1
- [SK]
Tue Nov 11 18:29:44 PST 1997
validate now runs only v2 tests.
There's a new script validate-v1 to run v1 tests.
- [KVa]
Tue Nov 11 12:40:44 PST 1997
Minor updates:
- Fix Simulator constructor to invoke parent constructor last,
Also invoke use-scheduler instead of creating one directly,
- Fix use-scheduler to be more careful about instance variables,
- Add scheme for SRM agents to send log-scaled session messages
based on groupsize, rather than fixed periodic messages,
Use by setting
``Agent/SRM set sessionFunction_ "SRM/session/log-scaled"''
- [kfall]
Mon Nov 10 16:54:52 PST 1997
Update to ns-lib to have an intf to allocating and attaching flow
monitors. Add this to the red test suite so that it may now re-
produce what it did for ns1.
Finish the v2 CBQ test suite. Validated output is still lacking.
- [johnh]
Mon Nov 10 15:54:54 PST 1997
Configuration for tcl/tk changed to search for tcl/tk-8.0
and fall-back on 7.6/4.2.
The builder is responsible to make sure that the same
tcl/tk is used to build otcl, tclcl, and ns.
If you have both versions and want to force the old one,
configure --with-tcl-ver=7.6 and --with-tk-ver=4.2
(or --with-tcl=/full/path/to/tcl7.6 etc.).
- [hari]
Wed Nov 5 20:44:32 PST 1997
- Massive changes to error model structures and error generation to make
it work correctly. Three kinds of error models -- packet-based,
byte-based, and time-based. Support code is in ns-ber.tcl (some common
error models).
Files: errmodel.cc, errmodel.h
- Mods to snoop protocol incl. very preliminary first cut at
congestion vs. corruption losses. Updated example script in
tcl/ex/snoop.tcl (also uses util.tcl in the same directory).
- [SK]
Wed Nov 5 19:07:12 PST 1997
Major bug fixes made to detailedDM multicast routing protocol
implementation.
Added example scripts and documentation.
Files affected: tcl/mcast/{detailedDM.tcl, timer.tcl}
Files added: tcl/ex/newmcast/{detailedDM1.tcl,
detailedDM1-nam.tcl, detailedDM2.tcl, detailedDM2-nam.tcl}
- [johnh]
Wed Nov 5 19:03:00 PST 1997
Validate changed to detect and report failed tests.
- [johnh]
Wed Nov 5 18:29:13 PST 1997
Agent/TCP set restart_bugfix_ is back to true by default
(but not in v1-mode).
./test-all::telnet and ./test-all-red::red_twowaybytes:
both changed (very slightly) and were updated.
- [PH]
Mon Nov 3 15:59:56 PST 1997
Checked in the codes to improve SessionSim scalibility and to enable
multiple loss modules per tree.
Files changed: sessionhelper.cc, tcl/session/session.tcl,
tcl/ex/newmcast/session3.tcl
- [SK]
Wed Oct 29 23:22:24 PST 1997
Checked in new multicast code that adapts to network dynamics
and supports LAN topologies
Files added: tcl/mcast/{detailedDM.tcl, timer.tcl}
(Copied tcl/ex/timer.tcl to tcl/mcast/timer.tcl)
- [johnh]
Tue Oct 28 15:04:32 PST 1997
Some test suite work:
- validate: a new program in the top directory which runs
all known test suites.
- bin/fix_flow_id: sets flow-id to source/dest, or min
of the two.
The program raw2xg graphs trace output,
optionally putting different flows into ``bands''
(when invoked with -s 0.01 -m 90).
It wasn't clear what the definition of a ``flow'' was:
was it the flow-id or the source?
Kannan changed raw2xg to use flow-id (the Right Thing---that's
why we have flow-id, isn't it?).
This program (fix_flow_id) is the glue needed to map
source or destination into flow id for those
scripts that prefer banding based on sources.
- test-suite-tcp.tcl was fixed to use fix_flow_id,
making it work (it had been broken since 22-Oct-97).
- [johnh]
Mon Oct 27 18:52:25 PST 1997
Agent/TCP set restart_bugfix_ => false
(temporarily).
- [hari]
Sat Oct 25 23:24:56 PDT 1997
Several changes, including some bug fixes:
- Added a drop-from-front packet-drop policy to the RED and
DropTail queue classes. DropTail now has 2 kinds of dropping policies
(drop-tail, of course; and drop-front_) and RED has 3 (drop-tail_,
which is the default; drop-rand_; and drop-front_).
Files: drop-tail.{cc,h}, red.{cc,h}
- TCP updates RTT from an ack only if no_ts_ flags is NOT
set in packet header (it's usually not set, unless there's an ack reconstructor en route, see below). Also added TCP trace format
control from Tcl, and derived TCP classes can define their own trace function.
Files: tcp.{cc,h}
- Added ack-recons.{cc,h} as a TCP ack reconstructor object (first cut). Sits on other end of constrained reverse link and intersperses (reconstructs) acks to the TCP source. Typically used in conjunction with schemes like ack filtering for asymmet
ric networks.
Files: ack-recons.{cc,h}, tcl/lib/ns-queue.tcl
- Tracing tcp-asym-specific variables; controlling parameters from Tcl, fix for ACC to work with ECN. Added new test script with many changes from the previous version.
Files: tcp-asym.cc, tcp-asym-sink.cc, tcl/ex/asym/asym.tcl, tcl/ex/asym/util.tcl
- Modified output of telnet test to warn about irreproducibility. Modified test suite to reflect config changes of RED gateways.
Files: test-all, test-suite.tcl
- Some bug fixes and other changes in Mac/Multihop code.
Files: mac-multihop.{cc,h}, tcl/lan/ns-mac.tcl
- Semantic packet queues: various bug fixes, memory leak fixes, mods for ack reconstructors, random drops, other configurational changes (control from Tcl).
Files: semantic-packetqueue.{cc,h}, queue.cc
- [KVa]
Thu Oct 23 13:09:11 PDT 1997
SRM fixes, from Christoph Haenle <christoph@starburst.com> and
Haobo Yu <haoboy@isi.edu>.
- [johnh]
Wed Oct 22 21:20:57 PDT 1997
Some ns TcpAgent changes:
- restart_bugfix_ is on by default
(and turned off in ns-compat)
- finish_ command is been replaced by the done method
(which is now documented in the man page)
This saves 100 bytes of memory per TCP object.
- there are now macros T_{RTT,SRTT,RTTVAR}_BITS which symbolically say
how these fixed point values are represented
(if someone thinks C++ constants would be better,
I'd love to see them changed)
(I only checked tcp.cc for these magic numbers.)
- [johnh]
Wed Oct 22 21:18:33 PDT 1997
tcp-rbp bug fixes for Agent/TCP/Reno/RBP:
prevent bursting after pacing,
properly compute pacing interval.
New rbp_demo.tcl.
- [KVa]
Wed Oct 22 13:58:15 PDT 1997
Minor cleanup following the crash.
- [KF]
Mon Oct 20 19:56:51 PDT 1997
- The tcp-full.cc is updated to incorporate some of (but not yet all of)
the changes from Kathie Nichols/Van.
- the test-suite-full.tcl uses misc.tcl and topologies.tcl
- test-suite-full.tcl also uses 2 new tcl programs:
bin/tcpfull-summarize.tcl
bin/cplot.tcl
The first file grinds on {for now} full tcp traces and produces generic
output files containing traces of segments, acks w data, pure acks, and
drops.
The cplot.tcl file is more generic, and takes a set of pairs of
plot_file_names/labels, plus a type of graphics program, and a title.
It produces graphics using either gnuplot or xgraph, where this
decision is based on the assignment of the "NSOUT" envariable.
So, if you say "setenv NSOUT xgraph" and run test-all-full
(or do some other invocation of ./ns test-suite-full.tcl xxx), you
will get xgraph windows. If you set NSOUT to gnuplot, you will get
x11 gnuplots in front of you. Eventually I will extend this to
produce postscript for inclusion in documents; as it was sort of
put together with extensibility in mind.
- [SK]
Sun Oct 19 23:56:51 PDT 1997
Checked in multicast validation tests.
Files added: test-all-mcast, test-all-template-mcast,
test-suite-mcast.tcl, test-output-mcast/{CtrMcast1.Z, DM1.Z, DM2.Z,
DM3.Z, DM4.Z}
- [johnh]
Sat Oct 18 20:28:37 PDT 1997
Random number seed starts at 1;
RBP now uses srtt rather than rtt;
configure now checks for perl.
- [SF]
Sat Oct 18 14:39:35 PDT 1997
- Made a bugfix so that maxburst now works correctly with
SACK1 TCP.
- Automatic validation tests in tcl/test now include
the following: test-all-red, test-all-sack, test-all-schedule,
test-all-tcp, test-all-red-v1, test-all-cbq-v1, test-all-sack-v1,
and test-all-v1.
- [KF]
Fri Oct 17 11:29:10 PDT 1997
First cut at changing the fullTCP test suite over to the
"simplified" version (using tcl/test/misc.tcl).
- [SF]
Fri Oct 10 19:29:10 PDT 1997
A few more small changes to code for retransmit timers.
Added new configuration variables for setting initial values
for retransmit timers. (The CVS log for these changes
and other changes made after Oct. 2 was wiped out in the
disk crash of Oct. 10.)
- [SF]
Wed Oct 8 21:16:36 PDT 1997
- Added tracing of number of transmitted and retransmitted packets
to TCP,
and added a new variable for window initialization after a timeout,
for research on TCP window initialization, both based on
code contributed by Kathie Nichols and Van Jacobson.
- With Kevin Fall, made the following changes to
TCP's retransmit timers: The default is now that average
roundtrip times are recomputed once a window, not once every
packet; changed initial values of retransmit timers; brought
the functionality more in line with that of actual implementations.
- [PH]
Wed Oct 8 17:22:44 PDT 1997
Added simple queue and ttl checker modules for SessionSim
- [SF]
Mon Oct 6 13:48:10 PDT 1997
Bug fix for ns-compatibility mode for CBQ.
Code contributed by Greg Minshall, minshall@acm.org.
- [mjh]
Fri Oct 3 12:59:37 EDT 1997
Changed nam tracefile code to generate more Tcl-like format
- [johnh]
Thu Oct 2 13:46:29 PDT 1997
Default scheduler changed to List in backwards compatibilty mode.
- [SF]
Wed Oct 1 14:41:13 PDT 1997
Changed the default RED behavior when queue is full from random-drop
to drop-tail.
- [SF]
Mon Sep 29 16:51:33 PDT 1997
Added an ECN-Capable flag to the packet header (ecn_capable_), and
modified tcp.cc and red.cc to set and check it.
- [PH] Fri Sep 19 15:19:08 PDT 1997
- modified SRM example scripts, tcl/ex/srm-*.tcl, to use error model instead of rtmodel.
- added equivalent SRM example scripts using session level simulator. tcl/ex/srm-*-session.tcl
- made changes to errmodel.cc to add specific error model for the SRM scripts.
- made changes to tcl/session/session.tcl so it parses link bandwidth and delay in various units.
- (previously done)fixed a bug between rtmodel and DM multicast.
- (previously done)fixed API in the multicast example scripts.
ns-2.0
Sep 10, 1997
Release for the SIGCOMM tutorial.
- [haoboy]
Thu Sep 11 18:35:24 PDT 1997
Support for Mark's new nam trace file format. All events except routing are
supported. It requires updates of Tcl.cc, which is already checked in. The
document of new trace file format is
here. An
example script is at tcl/ex/nam-example.tcl
Also minor changes to nam-1 to make down link more visible.
- [johnh]
and [haoboy]
Wed Sep 10 22:51:33 PDT 1997
2.0 release.
- [KVa] Tue Sep 9 23:48:19 PDT 1997
Moved drophead_ to the base simplelink class.
Added $link ttl-drop-trace, linkfail-drop-trace, and transit-drop-trace.
usage is as:
$link ttl-drop-trace [FilePointer]
If FilePointer is not specified, it defaults to using the drophead_
Also made ttl.cc, delay.cc and dynalink.cc use drop-targets uniformly
- [VNP] Wed Sep 10 00:58:35 PDT 1997
tcp-newreno.cc: moved the code in recv() that handles the case of partial new acks
into a separate function called partialnewack_helper(). This allows derived classes,
such as tcp-fs, to do redefine this function to do additional processing upon
receiving a partial new ack. Files affected are tcp-newreno.cc, tcp-fs.cc and
tcp.h.
- [KVa] Tue Sep 9 23:48:19 PDT 1997
Minor updates to rtglib, moved things into rightful places.
cleanedup the binaries.
- [johnh] Mon Sep 8 14:54:58 PDT 1997
Changed default scheduler from List to Calendar.
Many test suites changed in minor ways due to different
scheduling of packets with identical timestamps.
Test outputs updated:
bug, delayed, no_bug, phase, phase1, reno2, reno3, reno5, renoA, stats, tahoe3, tahoe4, telnet, timers.
- [johnh] Mon Sep 8 14:06:47 PDT 1997
Changed default random number generator to internal rng
(rather than external srand/random).
Updated test-output/{telnet,reno4,reno4a,phase2}.
Random number generation should now be consistent on all platforms.
- [PH] Mon Sep 8 12:45:09 PDT 1997
Check in the entire automatic loss dependency insertion module. See
tcl/ex/newmcast/session3.tcl for an example.
Files changed: tcl/session/session.tcl, errmodel.cc, tcl/ex/newmast/session3.tcl
- [johnh] Mon Sep 8 11:16:53 PDT 1997
Updated test-output/{phase1,reno2,reno3,reno5,timers}
wrt Kevin's timeout change from Monday, August 25.
- [PH] Fri Sep 5 21:21:11 PDT 1997
- Ported Scalable Session Messages(SRM-SSM) codes from Puneet Sharam
- Also ported selective error models for SRM-SSM test scripts.
Files changed: errmodel.[cc,h]
- Added helper functions to trace memory consumption in stack
and heap area. Users need to compile ns with -DMEMDEBUG_SIMULATIONS
in Makefine DEFINE field. Example script:tcl/ex/newmcast/cmcast-50.tcl
Files added: mem-trace.h. Files changed: tclAppInit.cc scheduler.cc ns-lib.tcl
- Fixed a minor dense mode multicast bug
- Changed duplex-link-of-interfaces in tcl/ex/newmcast scripts to
duplex-link
- [johnh] Fri Sep 5 13:25:45 PDT 1997
Converted --with-Tcl to --with-TclCL
(incompatible change wtih 2.0b17).
- [hari] Thu Aug 28 11:43:13 PDT 1997
Mainly 2 bug fixes:
1. Accounting of ack_count in filteracks
2. Big memory leak because packets weren't being freed correctly in filter.
Files affected: semantic-packetqueue.{cc,h}
- [VNP] Mon Aug 25 20:52:30 PDT 1997
- Added tcp-fs.cc: TCP enhanced with "fast start" to enable a connection to quickly
resume after an idle period. A more detailed description can be found in the
source file itself.
- Added semantic-red.cc: a version of RED that allows certain operations
(at present, pickPacketToDrop()) to be dependent on higher-layer semantics.
- tcp{,-fack}.cc: Added a new case ("3") to the switch in closecwnd() that
resets cwnd_ to 1 but leaves ssthresh_ unchanged. This is invoked by the
TCP timeout code if there is no outstanding data and if restart_bugfix_
is set.
- tcp.cc: If we are just coming out from an idle period, rtx timer is forced
to be set again in output().
- tcp(,-reno,-newreno}.cc: moved code that handles non-rtx timeout events into
a new function timeout_nonrtx(). This enables derived classes to make additions
or modifications to the handling of non-rtx timeouts without being forced to
duplicate the rtx timeout code.
- tcp-fack.cc: fack_ is updated in oldack() as well.
- [Kevin Fall] Mon Aug 25 13:27:11 PDT 1997
Change timeout initialization in tcp.cc:rtt_timeout().
Old code:
((srtt>>3)+rttvar)*tick
new code
((srtt>>3)+rttvar+1)*tick
Fix contributed by Kathie Nichols w/Van.
- [hari] Sun Aug 24 18:10:50 PDT 1997
TCP with integrated congestion control and loss recovery.
This helps to perform congestion control and loss recovery
between communicating hosts on a per-host, rather than per-connection, basis.
This is beneficial for Web-like workloads and in other situations
where multiple, logically different TCP transfers may be in progress
between two hosts simultaneously. With IntTcpAgent, these logically
different connections would share the same cwnd, srtt, etc. for better
congestion control; in addition, data-driven loss recovery is improved
as well. Support for "proxy" hosts, acting on behalf of many users,
is also included.
Files: tcp-int.{cc ,h} : Integrated TCP agent.
chost.{cc,h} : Per-host congestion control and loss recovery.
The relevant TCP control block variables are
maintained on w.r.t. each "Corresponding Host".
nilist.{cc,h} : Generic linked list routines.
- [johnh] Tue Aug 19 15:27:11 PDT 1997
Initialization bugs in Vegas fixed.
Code contributed by
Lars Eggert.
- [johnh] Tue Aug 19 13:26:32 PDT 1997
configure.in.Tcl -> configure.in.TclCL
- [johnh] and [LB] Fri Aug 15 16:18:39 PDT 1997
New random number generator (rng.{cc,h}).
Code to use the RNG is in Random.{cc,h} but currently ifdef'ed out.
- [EA]
Thu Aug 14 11:19:36 PDT 1997
Added 'flash_annotate t d m' helper function that flashes
a session level message m in the nam window starting at time t for duration d.
- [TH] Wed Aug 13 17:20:00 PDT 1997
Unified the way that timers are implemented in ns, by using
the abstract timer base class defined in timer-handler.h. This simplifies
the Agent base class by removing the timer methods there.
Files affected: agent.h, agent.cc, tcp.h, tcp.cc, tcp-sink.h, tcp-sink.cc,
tcp-sack1.cc, tcp-asym.cc, tcp-asym-sink.cc, tcp-fack.cc, tcp-vegas.cc,
tcp-full.h, tcp-full.cc, cbr.h, cbr.cc, udp.h, udp.cc, rtcp.cc, rtp.cc.
- [johnh] Tue Aug 12 10:30:26 PDT 1997
class Samples now has a newpoint tcl command (code contributed by Ted Faber )
- [johnh] Tue Aug 12 16:19:51 PDT 1997
Links now have a (documented!) trace-callback option to trace to a callback function.
- [KF]
Mon Aug 11 14:00:27 PDT 1997
- Fixed (yet another) problem with sack/tcp-sink where the # of sack blocks
initialized properly. (reported by Venkat Padmanabhan).
- Changed CBQ so that maxidle_ can be automatically determined, as in ns-1
- Fixed buffer overflow bug in flow monitor, caused by using
tcl.resultf("%s", ptr) instead of tcl.result(ptr), where ptr
points to a big string.
- [SM]
Sun Aug 10 15:11:27 PDT 1997
- Fixed up PacketManager initialization code (in ns/lib/ns-packet.tcl)
so that modules that define packet header classes
can be safely ommitted from
the build. Previously, an error would occur if the corresponding
class didn't exist. This new structure catches
the case where the tcl code is out of date with respect to
a packet header defined in C++. As a result, two new bugs were
found and fixed: the ``aSRM'' and ``Tap'' packet header classes
previously did not have the appropriate initialization code in
ns-packet.tcl.
- [AH] Sun Aug 10 02:05:12 PDT 1997
- Major changes and fixes to the pim-sm code in tcl/pim; pim-init.tcl
added trace functions, pim-messagers.tcl tracing for protocol actions,
pim-mrt.tcl updates, pim-recvr/sender.tcl support for asserts and
prune-overrides (for LAN operation), pim-vifs.tcl added joining
source-group pairs for source-specific trees (leave fix, also).
- Added a first test-suite for pim-sm in
tcl/ex/newmcast/pim-test-suite-1.tcl. This covers 6 basic scenarios for
the pim protocol behavior to stress pim. [note: pim1.tcl does not work
due to the way CBR source allocates packets, and interaction with pim
encapsulation].
- Added functions for clearing mcast forwarding caches in
classifier-mcast.cc.
- Major change to tcl/mcast/McastProto.tcl to support well-known-groups
for local multicast on LANs. Also changes to ns-mcast.tcl for various
fixes and source-group-joins.
- [SM] Sat
Aug 09 11:49:33 PDT 1997
- First cut at port to win32 API (should work under both Windows 95 and NT).
-
This version still limps ... the new Windows makefile
(makefile.vc) needs much more work.
- This rev requires
the latest TclCL (new name for libTcl) since several changes
were required by the fact that Windows file names are case insensitive.
- [PH] Thu Aug 7 19:53:17 PDT 1997
- Added delay models for session level packet distribution.
Files added: delaymodel.[cc,h]
- Modified structure of 'virtual links'. Loss and delay modules
can be inserted flexibly. Example script to insert loss module:
tcl/ex/newmcast/session3.tcl.
- Added helper functions to monitor packets in transit. Example script:
tcl/ex/newmcast/pktintran.tcl
- [TH] Thu Aug 7 12:47:34 PDT 1997
Redid tcp-full.cc timers to conform to the C++ timers defined in
timer-handler.cc.
- [PH] Mon Aug 4 17:59:32 PDT 1997
- Added session level packet distribution(1st pass).
Files added: sessionhelper.cc, tcl/session/session.tcl, and example
scripts tcl/ex/newmcast/session*.tcl.
- Modified tcl/ex/mcast.tcl and tcl/ex/newmcast/*.tcl example scripts
to be consistent with the current API.
- [KF] Thu Jul 31 12:09:34 PDT 1997
- add a max bound on the TCP rto (maxrto_), default is 64 sec (like bsd)
- modifications to the compat library to allow constructs of the
form "set ns_foo(bar) 3" to change global defaults.
- add a (hacky) way to support the ns-1 style of creating cbq
classes (i.e. "[new class]") which OTcl really doesn't like much.
- increase wrk_ array in the flow monitor and check bounds on it
- [KF] Tue Jul 29 15:56:34 PDT 1997
Fixed bug in TCP Sack sink which made the initialization of
max_sack_blocks unpredictable (changed tcp-sink.{cc,h}). Also, removed
redundant default for this variable in ns-default.tcl.
- [LB] Tue Jul 29 14:31:34
PDT 1997
ported ability to limit the amount of data sent by a CBR source
(maxpkts_) from ns-1 to ns-2. Files changed: cbr.cc, cbr.h.
ns-2.0b17
Fri, 25 Jul 1997 22:50:34 -0700
Release for the ns retreat.
This release is CVS-tagged with ``NS_2_0B17''.
- [johnh] and [KF]
Fri Jul 25 17:29:12 PDT 1997
ns-compat now catches access to old default variables (like ns_tcp(window)).
This approach is a stop-gap, eventually we could map the old reads/writes
to the new variables if we think we must.
- [johnh] Fri Jul 25 17:00:00
PDT 1997
Configure now checks for libTcl-1.0b2.
- [SK] Fri Jul 25 12:49:36
PDT 1997
Made modifications to remove MultiSim and MultiNode. Files affected:
ns-lib.tcl, ns-node.tcl, ns-mcast.tcl, CtrMcast.tcl
- [SF] Fri
Jul 25 11:18:16 PDT 1997
- Changed tcp-sack1.cc to correctly use the receiver's advertised window
during Fast Recovery.
- [VNP] Fri
Jul 25 02:32:43 PDT 1997
- Added semantic-packetqueue.{cc,h}: a derived class of PacketQueue that
understands higher-layer (e.g., TCP) semantics. To enable the creation
and configuration of a PacketQueue/Semantic object in Tcl, PacketQueue
is now derived from TclObject.
- tcp*.{cc,h}: Got rid of the return-by-reference functions for the traced
member variables of TcpAgent.
- [LB] Thu Jul
24 16:02:27 PDT 1997
Ported telnet source from ns-1 to ns-2. new files: telnet.{cc,h}. Changed
files: tcp.{cc,h}, ns-agent.tcl, ns-source.tcl, ns-default.tcl
- [VNP] Thu
Jul 24 02:08:31 PDT 1997
- tcp.{cc,h}: Got rid of the old-style tracing and replaced it with Giao's
TracedVar stuff. It is no longer necessary to use the return-by-reference
functions to refer to the traced variables (e.g., cwnd() instead of cwnd_),
but this will still work for now.
- [VNP] Tue
Jul 22 02:13:12 PDT 1997
- tcp.cc: finish() is called whenever there is no unacknowledged data
- tcp{,-reno,-newreno,-fack}.cc:
- rtx timer is NOT backed off at the time of fast retransmission
- during fast recovery mode, we compare new ack with recover_ only if
recover_cause_==1
- tcp-fack.h: separate file for definition of FackTcpAgent to enable
derived classes
- tcp-nonfifo.cc: added support for priority drop
- red.cc: moved code that picks drop victim into pickPacketToDrop().
This allows derived classes to use a different algorithm for this.
- queue-monitor.{cc,h}: option to exactly trace queue length (rather
than just sample it)
- [KVa] Thu Jul 17
08:16:16 PDT 1997
- srm.cc/srmAgent::recv() did not free packets appropriately, causing
wastage of memory for large simulations. (Noted by Puneet)
- streamlined bin/raw2gp to attempt to unify the raw2* programs.
- [KVa] Tue Jul 15
14:44:19 PDT 1997
Minor bug fixes in rtglib, and raw2xg.
- [TH] Mon Jul
14 15:05:09 PDT 1997
Ported fulltcp.cc, fulltcp.h, and test-suite-fulltcp.tcl. New files:
tcp-full.cc, tcp-full.h, and tcl/test/test-suite-full.tcl. Changed files:
trace.h, trace.cc, tcp.h, ns-compat.tcl, ns-default.tcl, ns-source.tcl.
- [KVa] Fri Jul 11
09:53:33 PDT 1997
Major Updates: SRM
- Adaptive Timers as described in [Floyd
etal. sigcomm '95]
Files Affected: tcl/mcast/srm-adaptive.tcl (new), srm.cc, srm.h,
tcl/ex/srm-adapt-req.tcl (new), tcl/ex/srm-adapt-rep.tcl (new)
- Cleanup of the tracing in srm.tcl
- Added tcl/mcast/srm-nam.tcl, so that, if sourced, will separate SRM
packets based on the type of packet. Data messages will have flowId_ 0,
session, request and repair messages have flow ids 40, 41, and 42 respectively.
The start number is specified by the global variable, ctrlFid_.
- Cleanup of the example scripts in tcl/ex. See tcl/mcast/srm.txt for
details.
- [KVa] Fri Jul 11
09:53:33 PDT 1997
Minor mods
- Hooks for DelayLink object to have a drop-target. Currently no OTcl
support yet. Should be there when I get around to it... someday... maybe...
Files Affected: delay.cc, delay.h
- Cleanup compile time errors in scheduler.cc, scheduler.h.
- The default static routing now takes a cost parameter; it is now possible
to do asymetric paths by configuring link costs appropriately.
Files Affected: route.cc, tcl/lib/ns-lib.tcl
- Bug fixes to proc gen-map() in tcl/lib/ns-trace.tcl.
- Fix multicast-rtglib interaction API.
Files Affected: tcl/mcast/McastProto.tcl, tcl/mcast/ns-mcast.tcl, tcl/mcast/dynamicDM.tcl,
tcl/rtglib/route-proto.tcl.
- Bug fix to proc all-connectors() in rtglib. Routine did not instance
the appropriate variable. Hence, links did not drop packets in flight when
a link fails (hey, this may be a feature... :-)
Files Affected: tcl/rtglib/dynamics.tcl.
- Created a *hacky* loss module to fake periodic loss of
packets. (maybe I can sneak it in if I use real small print, and hope no
one notices...).
- [johnh] Wed Jul 9 15:16:42
PDT 1997
RBP updates, including Agent/TCP/Reno/RBP.
- [LB] Thu Jul
3 12:37:09 PDT 1997
Created RandomVariable class, a pure virtual class for random variables,
and derived classes for Uniform, Constant, Pareto, Exponential and HyperExponential
distributions. New files: ranvar.{h,cc}, tcl/ex/ranvar.{tcl,txt}. Changed
files: ns-random.tcl, ns-default.tcl.
- [KF] Wed Jul 2 20:37:33
PDT 1997
Add the "flowmon" module and update supporting scripts in
tcl/rtmechanisms. This module is able to keep per-flow state. A flow is
defined by creating a classifier (typically of the classifier-hash variety)
and giving it to the flowmon. Examples are to be found in the rtmechanisms
directory. Files affected:
- flowmon.cc -> new functionality
- tcl/lib/ns-default.tcl -> defaults for Flow and Flowmon
- tcl/lib/ns-queue.tcl -> rework the way CBQ handles drops
- tcl/lib/ns-lib.tcl -> add hack to allow specification of a classifier
object with a CBQ or CBQ/WRR queue type when creating a "simplex-link"
- Makefile.in -> include flowmon.o
- FILES -> add flowmon.cc + rtm stuff
- [PH] Fri Jun 27 20:13:23
PDT 1997
- Added a general mcast control message agent(a 1st pass) to make tracing
easier: prune.[h, cc]
- Fixed minor bugs in dynamicDM and pimDM
- [PH] Wed Jun 25 18:19:07
PDT 1997
- Added dynamic DVMRP and PIM-DM multicast: tcl/mcast/[dynamic, pim]DM.tcl
- Cleaned up mulicast API(1st pass): tcl/ex/newmcast/mcast[1,2].tcl
- [SK] Mon Jun 23 13:19:15
PDT 1997
Added man page for ns-2.
- [johnh] Thu Jun 19 20:03:35
PDT 1997
tcp-rbp and friends added. Rate-based pacing is an experimental addition
to TCP to address the slow-start restart problem. See for
details.
- [johnh] Thu Jun 19 20:00:51
PDT 1997
raw2xg updated with more features (better usage and -qs:m: options).
- [johnh] Thu Jun 19 20:00:28
PDT 1997
agent-timer.{h,cc} implements timers for agents with classes (rather
than pending_[] and timer_[]).
- [GN] Thursday,
Jun 19 16:03:23 PDT 1997
Minor enhancement to scheduler to make debugging easier by using the
uid_ field of each event: positive uid_: inside the scheduling queue negative
uid_: NOT in the scheduling queue
- [johnh] Mon Jun 16 17:18:46
PDT 1997
Added TCP Vegas (ported from Ted Kuo's implementation for ns-v1). Changed
TcpAgent::send to TcpAgent::send_much.
- [EA] Mon Jun
16 11:15:45 PDT 1997
Added simple simulation-level annotation (ns-trace.tcl, trace.cc).
- [GN] Friday, Jun
13 19:03:23 PDT 1997
Daedalus Research Group
extensions by: Giao Nguyen,
Hari Balakrishnan, Venkata
Padmanabhan.
- LAN and wireless networks:
- Link-layer protocols:
simple stop-and-wait protocol
TCP-aware snoop protocol
- Scheduling algorithms at LAN interface queues
- MAC protocols:
CSMA/CD (10 Mbps Ethernet)
CSMA/CA (WaveLAN)
IEEE 802.11
Metricom's Ricochet MAC
- Shared channel with wireless error models
- TCP router enhancements for asymmetric networks
- Tracing of TCP variables
- [johnh] Fri Jun 13 18:06:33
PDT 1997
Added slow_start_restart option to TcpAgent.
- [EA] Fri Jun
13 17:18:13 PDT 1997
Added SCUBA protocol module in tcl/rtp. Added some demos in ex/scuba.
- [KF] Thu Jun
12 12:32:31 PDT 1997
Small change to conf/config.head.in to look for socket() rather than
poll() when searching for the -lsocket library. Also a new version of the
configure script based on this.
- [SM] Wed
Jun 11 11:49:28 PDT 1997
Bug fixes to emulation rig. Previous version didn't properly account
for the fact that external events (i.e., packet arrivals) could come before
the next future event. Now, the scheduler sets a tcl timer to advance time
(instead of waiting in a null select) and the tap-agent sync's simulation
time to real time when an external packet arrives.
- [PH] Wed Jun 11 09:34:33
PDT 1997
Changed centralized mcast test files to use MultiNode expandaddr option,
provided by Lee Breslau. It
solves the limitation that MultiSim only allow 128 unicast nodes. Also,
made minor changes to reduce memory used in simulations File changed: tcl/ex/newmcast/cmcast-[50,100,150,200,250].tcl.
- [PH] Mon Jun 9 15:59:01
PDT 1997
Bug fix: Changed CtrMcastComp:compute-branch() to work in source =
RP case for RPT. File changed: tcl/ctr-mcast/CtrMcastComp.tcl.
- [TH] Mon Jun 9
15:00:34 PDT 1997
Bug fix: Changed Newreno::recv() static variables acked, new_ssthresh,
ack2, ack3, and basertt to be class member variables. File changed: tcp-newreno.cc.
- [LB] Sun Jun
8 14:09:16 PDT 1997
Provided a fix so that more than 127 nodes can exist in a simulation
that uses both unicast and multicast transport. Also added a proc to allocate
unique multicast addresses. File changed: tcl/mcast/ns-mcast.tcl
- [TH] Fri Jun 6
17:30:16 PDT 1997
Ported tcp-fack.cc from ns-1 to ns-2. File added: tcp-fack.cc.
- [KVa] Thu Jun 5
09:24:50 PDT 1997
ktest-all will stored compress files in test-output-raw, to save space.
minor mods to srm test suite, documentation in srm.txt.
minor bug fixes in srm.
- [KVa] Tue Jun 3
14:08:45 PDT 1997
Major mods SRM for ns
Currently, some of the fixed timer functions have been implemented.
The adaptive functions, as well as local recovery mechanisms will be coming
along soon.
An earlier almost entirely C++-based version (ported from the ns-1 implementation)
is also checked in, tagged, and overwritten. It can be accessed by vint
members should they want to take a look at it later.
Files affected: new files: srm.cc, srm.h, srm-state.h, tcl/mcast/srm.tcl,
tcl/mcast/srm-debug.tcl, tcl/mcast/srm-debug++.tcl, tcl/ex/simple-srm.tcl,
tcl/ex/srm2.tcl, tcl/ex/srm_star.tcl, tcl/ex/simple-srm-nam.tcl, tcl/ex/srm2-nam.tcl,
tcl/ex/srm_star-nam.tcl. Also modified: Makefile.in, trace.h, tcl/lib/ns-packet.tcl.
- [KVa] Tue Jun 3
14:08:45 PDT 1997
Bug fixes in rtglib:
- dynamics.tcl: rtModel/Manual did not work. Fixed, and tested. This
code is now used in tcl/ex/srm2.tcl and tcl/ex/srm_star.tcl to create ``interesting''
single packet drops.
- route-proto, RouteLogic::lookup would return OIDs when dynamic routing
is enabled, which breaks the multicast. (It now breaks when equal cost
multipath routing is used, which needs to be fixed, to make multicast happy).
- The new interfaces code defines additional instance variables to point
to nodes. Link dynamics wants to reset most everything (except nodes).
Resetting nodes can do bad thigns to agents.
- [KVa] Tue Jun 3
14:08:45 PDT 1997
minor fixes:
- In C++, Stoustrup [sic] recommands that array storage should be freed
as "delete[] variable", instead of simply "delete
variable". Changes made to AtHandler::handle(), Scheduler::command(),
and RouteLogic::compute_routes().
- Fixed annoying compiler warnings when used with -Wall in gcc.
- "member initializers for <member1> and <member2> will
be re-ordered to march declaration order." warnings fixed in packet.h,
classifier-hash.cc, trace.cc, and queue-monitor.h.
- "control reaches end of non-void function" fixed in Replicator::classify(Packet*)
and QueueMonitor::command(int, const char*const*)
- "suggest parentheses around assignment used as truth value"
fixed in delay.h
- configure.in.head should not set -O2 if the .devel file is present.
Furthermore, as Johnh noted, -O2 is only relevant for gcc, so we really
should fix this better.
- RouteLogic now only works in the context of a Simulator. Fix route-test
to instantiate a dummy Simulator.
- Test Suites Modified misc.tcl and topologies.tcl to add hooks for a
multicast test suite.
ns-trace.tcl:gen-map did not show enough information within a node, for
example inside a MultiNode.
- Changed simplex-link, duplex-link to directly generate interfaces when
told. Use by
Simulator set NumberInterfaces_ 1
- [johnh] Thu May 30 1997
Added support for dmalloc for memory debugging. Configure using --with-dmalloc.
- [johnh] Thu May 27 1997
Revised configure scripts to eliminiate code duplication.
- [TH] Tues May 27
19:00:00 PDT 1997
- Renamed test-suite-v2.tcl and test-all-v2 to test-suite.tcl and test-all,
respectively. These files were also aligned with Kannan's tests in the
tcl/test directory.
- Moved existing test-suite.tcl to tcl/test, renaming it as test-suite-v1.tcl.
Moved existing test-all to tcl/test/test-all-v1.
- Moved test-suite-cbq.tcl, test-suite-red.tcl, and test-suite-sack.tcl
to tcl/test and appended them with "-v1" suffix. Made similar
moves for test-all-cbq, test-all-red, test-sack, and test-all-sack.
- [TH] Tues May 27
16:45:00 PDT 1997
Fixed bug in tcp-newreno.cc which was causing TcpAgent::recv to be
called instead of NewRenoTcpAgent::recv. This bug has been present since
the initial revision of ns-2.
- [LB] Fri May
23 15:46:16 PDT 1997
Fixed a bug in CalendarScheduler::cancel() that corrupted the calendar
data structure and caused the simulator to crash. Also improved the efficiency
of that function. File changed: scheduler.cc
- [PH] Thu May
22 18:03:36 PDT 1997
- Added larger scale test files. tcl/ex/newmcast/cmcast-[100,150,200,250].tcl,
tcl/ex/newmcast/cmcast-big.txt
- [PH] Thu May
22 13:33:56 PDT 1997
- Moved agents that handles IP mcast packet encapsulation and decapsulation
to C++.
- Added a centralized mcast example that uses only source specific trees.
tcl/ex/newmcast/cmcast-spt.tcl
- Added prune propagation for dense mode mcast. Patch provided by Isidor
Kouvelas and Lorenzo Vicisano
(actually this change was committed two days ago)
- Files added: ctrMcast.cc, ctrMcast.h, tcl/ex/newmcast/cmcast-spt.tcl
- Files changed:tcl/ctr-mcast/CtrMcast.tcl, tcl/ctr-mcast/CtrMcastComp.tcl,
tcl/lib/ns-packet.tcl, trace.h tcl/mcast/ns-mcast.tcl, tcl/mcast/DM.tcl,
Makefile.in, FILES, CHANGES.html tcl/ex/newmcast/*.tcl
- [TH] Wed May 21
18:57:00 PDT 1997
Ported bug fixes from ns-1 for tcp.cc, tcp-newreno.cc, tcp-reno.cc.
This also affected ns-default.tcl
Added reset functions to Acker and TcpSink in tcp-sink.cc so that tcp sinks
can be reset and reused in a simulation (Sack sinks also are covered)
- [LB] Wed May
21 17:02:52 PDT 1997
Added variable length portion to Packet class to handle non-fixed length
stuff (e.g., data). Changed files: packet.h, agent.h, agent.cc
- [KVa] Tue May 13
23:37:08 PDT 1997
Added equal cost multi-path routing. Usage is shown in two examples
in tcl/ex/simple-eqp.tcl and simple-eqp1.tcl.
As a side effect, added the instproc-like, installNext to classifier.cc,
to install a TclObject in the next available slot. All, added instprocs
install, clear, and installNext to track slots filled. These are then used
by the instproc adjacents, to return information about adjacent TclObjects
in the slot.
Files affected: classifier-mpath.cc (new), tcl/ex/simple-eqp.tcl
(new), tcl/ex/simple-eqp1.tcl (new), tcp/ex/simple-eqp-nam.tcl
(new), tcl/ex/simple-eqp1-nam.tcl (new), tcl/rtglib/route-proto.tcl.
- [KVa] Tue May 13
23:37:08 PDT 1997
Trace manipulation tools:
- raw2xg and raw2gp take the -a option, to trace acks as well, if trace
information about them is present.
- getrc will extract trace information about a single node or link. Usage
is
getrc [-o output file] [-b] -s node1 [-d node2] [trace file...]
Typically, all traffic from node1 is extracted. If -b is specified,
then all information to node1 is extracted as well. If both node1 and node2
are specified, then all traffic on the link between node1 and node2 is
extracted. Specifying the -b option will extract traffic in both directions
on that link.
See also tcl/test/README for a relatively more comprehensive writeup.
[KVa] Tue May 13
23:37:08 PDT 1997
Cleaned up heap.h and dynalink.cc to elide compiler warnings seen with
-Wall.
[KVa] Tue May 13
23:37:08 PDT 1997
The route dynamics code si cleaned up. Route Models are only setup
just prior to initiating routing. This eliminiates some unwanted side effects
when initiating tracing on links that are dynamic.
Files affected: tcl/lib/ns-lib.tcl, tcl/lib/ns-link.tcl, tcl/rtglib/dynamics.tcl.
[KVa] Fri May 16
00:48:14 PDT 1997
New route model for one shot route dynamics. It should now be possible
to say
$ns_ rtmodel-at $time $op $node1 [$node2]
to take $node1 (or the link $node1-$node2) up (or down, as specified
by $op) at a particular time. It is done by creating a one-shot route model,
rtModel/Manual. (It is currently untested, though no problems are anticipated
by this author...hah!)
[SM] Tue
May 13 17:44:34 PDT 1997
- Made changes to the scheduler (added RealTimeScheduler) to support
real-time simulation for emulated network envinroments. This real-time
extension works just like the normal scheduler but events are delayed until
real-time catches up. In particular, the scheduler "now" method
returns the current simulated time rather than the current real time so
any simulation CPU overhead is not reflected in event timing calculations.
- Added objects to interface to external networks. net.h, net.cc, and
net-ip.cc modules came from mash/mbone tools.
- Added hook in ns-lib.tcl to create tap header only if real-time scheduler
is specified. This avoids unnecessary waste of memory when not using tap
agents. We assume that taps and real-time schedulers are used in tandem
but haven't added any code to verify this.
[PH] Tue May
13 15:30:00 PDT 1997
- Seperated multicast protocol functionalities from MultiNode. Moved
original multicast code tcl/lib/ns-mcast.tcl to tcl/mcast/*.tcl.
- Added multi-access link module (tcl/lan/) and interface support (tcl/interface/
and net-interface.cc).
- Added detailed PIM code (tcl/pim in progress). The above are codes
ported from Ahmed A-G Helmy's
development on top of ns-2.0a3.
- Added centralized multicast tree computation modules (tcl/ctr-mcast).
[LB] Fri May
2 15:09:32 PDT 1997
Updated the tcl script demonstrating the use of traffic generation
modules. It now includes a simple nam demo. Changed files: tg.tcl, tg.txt.
New files: tg-nam.tcl
[SM] Fri
May 2 12:09:53 PDT 1997
Updated FILES. Also, set up a nighly cron job to snapshot the current
cvs snapshot into a publicly accessible "ns-current" release.
[KVa] Mon Apr 28
09:08:26 PDT 1997
Moved up? and down? to base Class Link,
instead of being in the derived Class SimpleLink. The procedures
work for simple p2p links. Other types of media such as LANs that must
provide similar features may have to redefine them appropriately.
[KVa] Mon Apr 28
09:08:26 PDT 1997
Leveraged of the v2 test suites to construct routing test suites. The
list of mods are:
- A new test-suite driver, called ktest-all is in the bin directory.
The invocation
ktest-all [<suite> [<test> [<topology>]]]
executes:
ns tcl/test/test-suite-<suite>.tcl <test> <topology>
If no test is specified, it runs all the tests in that suite. If no
topology is specified, it runs the specified test against all topologies
defined in the topologies file.
- Any single test-suite file is now in three parts: (1) tcl/test/topologies.tcl
contains a library of topologies, and variants for netowrk dynamics. Currently
four topologies are defined. (2) tcl/test/misc.tcl contains the basic housekeeping
routines, such as openTrace, finish etc. (3) Individual tests are in tcl/test/test-suite-<suite>.tcl
files.
- The procedure finish in tcl/test/misc.tcl no longer directly
invokes xgraph. Instead, it simply writes out out.tr, closes all trace
files, and exists.
- ktest-all will invoke xgraph if the DISPLAY environment is defined;
otherwise, it will save the out.tr file as is in test-output-raw for later
comparison; in the latter case, it will also use gnuplot to generate a
postscript file that is placed in the ps-files directory.
- The bin directory also contains raw2xg and raw2gp, two programs to
convert trace files into output for xgraph or gnuplot. Convenient ways
of invoking either are:
% raw2xg out.tr , xgraph -bb -tk -nl -m -x time -y packets
% raw2gp out.tr > out.gp ; gnuplot
load "out.gp"
...other gnuplot commands ...
exit
%
There will be additional cleanup as I work on the test-suites some more.
Comments and suggestions are welcome.
[KVa] Mon Apr 28
09:08:26 PDT 1997
Makefile (and Makefile.in) for ns.dyn does not include tclAppInit.o.
[KVa] Wed Apr 23
16:50:15 PDT 1997
SACK crashes when it is not in fast recovery mode, and receives acks
out of order. For now, we just ignore such acks.
[KVa] Wed Apr 23
16:50:15 PDT 1997
tcl/ex/simple-*.tcl examples should close output files before further
processing in order to ensure that all data gets properly flushed.
In addition, added tracing route dynamics events to stdout.
Files affected: tcl/ex/simple-dyn.tcl, tcl/ex/simple-rtg.tcl, tcl/ex/simple-heap.tcl,
[KVa] Wed Apr 23
16:50:15 PDT 1997
Bugs in rtglib. delay.cc, delay.h did not calculate packet transmission
time correctly.
Routing code had bugs in how routes were calculated, and route updates
distributed.
Files affected: delay.cc, delay.h, tcl/rtglib/route-proto.tcl, tcl/rtglib/dynamics.tcl
[KVa] Mon Apr 14
12:06:35 PDT 1997
abort(), when called, breaks of the trace abruptly. Trap the
call with cpp hacks, invoke [[Simulator instance] flush-trace] and then
abort.
Files affected: Makefile.in, tclAppInit.cc, tkAppInit.cc
[KVa] Thu Apr 10
16:21:25 PDT 1997
Added functions to dump the simulation objects that comprise the topology,
as an aid to debugging. Use by specifying
[Simulator instance] gen-map
to see the dump on stderr.
Files affected: tcl/lib/ns-trace.tcl
[LB] Fri Apr
25 14:26:12 PDT 1997
- Added traffic generation modules to implement on/off sources with exponentially
and pareto distributed on and off times, and a traffic generation module
that is driven by a trace file. New files: trafgen.h, pareto.cc, expoo.cc,
traffictrace.cc, traffictrace.h, udp.cc, udp.h.
- To support the pareto on/off source, added the function Random::pareto()
to random.h.
[KF] Wed Apr
23 22:00:21 PDT 1997
- CBQ is now part of the simulator
Generally works.
- ALL default queue sizes are now 50 [per ns-1 defaults]
- QueueMonitors now know the difference between
drops, arrivals, and departures and can monitor these
- new class called 'Samples' which collects samples
points of something and can provide a mean and variance of the points (see
integrator.cc)
- Queues can be flow controlled
by forcing them to be blocked or unblocked as needed. Also it's possible
to make it so that when they send a packet they become blocked rather than
unblocked.
- common packet header
contains a timestamp field; this is used to compute queueing delay for
individual packets at queues
- classifier-hash
a classifier to identify 'flows' ... still in development, but presently
used by cbq
- bug fixes/mintor changes to red.cc, test-suite-red.tcl
- test-suite.tcl updated to ns-1 version (stats test minor change)
[SB]
Thu Apr 17 17:57:53 PDT 1997
Fixed tcp-simple.cc and random.cc so that test-suites work for solaris
as well.
[TH] Wed Apr
9 16:24:25 PDT 1997
Fixed busy-wait condition in tcp-sack1.cc that resulted from incorrectly
setting the overhead parameter.
[KVa] Tue Apr 8
16:33:49 PDT 1997
Added Distance Vector dynamic routing to ns; As a side effect,
created the C++ random functions in tcl/lib/ns-random.tcl.
At some point, a test-suite-routed.tcl will be provided to show examples
of routing.
Files affected: rtProtoDV.cc (new), rtProtoDV.h (new), trace.h,
tcl/lib/ns-lib.tcl, tcl/lib/ns-random.tcl (new), tcl/rtglib/route-proto.tcl.
[KVa] Tue Apr 8
16:33:49 PDT 1997
Created a AgentClass, dervied from TclClass. Removed NullAgentClass,
and moved Agent/Null into tcl/lib/ns-agent.tcl
Files affected: agent.cc, Makefile.in, tcl/lib/ns-lib.tcl, tcl/lib/ns-agent.tcl
(new).
[KVa] Tue Apr 8
16:33:49 PDT 1997
Added TCL debugger capabilities to ns.
To use, reconfigure ns with tcl-debug
5.20. In your script, add `debug 1' at the location you want to start
debugging.
More details about the Tcl debugger are in Don
Libes' paper.
Files affected: tclAppInit.cc, configure.in, tcl/lib/ns-lib.tcl, conf/configure.in.tcldebug
(new).
[KVa] Tue Apr 8
16:33:49 PDT 1997
Moved class Delay/Link to class DelayLink.
Files affected: delay.cc, tcl/ex/fq-cbr.tcl, tcl/ex/fq.tcl, tcl/lib/ns-default.tcl,
tcl/lib/ns-link.tcl.
[SB]
Mon Mar 31 17:46:04 PST 1997
Added deficit round robin scheduling (drr.cc)
[SM] Fri
Mar 28 20:45:40 PST 1997
Update
[TH]'s scoreboard
changes with respect to this afternoon's packet format changes.
[SM] Fri
Mar 28 20:32:24 PST 1997
First cut at integration of nam into ns code base. Basically just ported
the pieces verbatim so that nam can now be run as a script interpreted
by nsx. In this crude initial version, you can run "../nsx srm-demo-nam.tcl
-name nam" from the nam directory.
[TH] Fri Mar
28 18:45:00 PST 1997
Brought scoreboard.cc and scoreboard.h up to date with the latest versions
that were in ns-1 (9/96 PSC version: UpdateScoreBoard, CheckSndNxt, MarkRetran
modified for fack). Now most of test-suite-sack test cases work correctly.
[SM] Fri
Mar 28 17:33:43 PST 1997
A number of additional changes to the packet format. Eliminated the
"Header" classes altogether. Now we have a simple template header-class
template that just defines the header size. Most of the packet-manager
functionality moved into ns-packet.tcl. Factored the flags field out of
ip6 into a separate hdr_flags struct. Eliminated old commented-out code
in a number of places. Created a "common" header (hdr_cmn) and
moved the size field from the ip header to the new common header. Also
put the uid here. Changed hdr_ipv6 to hdr_ip for consistency.
[KF] Fri Mar
28 13:36:58 PST 1997
Updates to make RED gateways work. Includes mods to red.cc and RED's
default parameter names, some additions to the compat library, and a change
so that when the simulator begins all queues have a "reset" method
called (previously, only nodes and agents had this done to them, but RED
and probably some other queue types need to be reset to compute functions
of their Otcl-linked variables before the sim starts).
[TH] Fri Mar
28 12:50:02 PST 1997
Added test-suite-v2.tcl to the repository (port of "test-suite.tcl").
Added two new instprocs to ns-lib.tcl which help to set up tcp connections.
Moved the "Agent instproc dst-port" from ns-compat.tcl to ns-lib.tcl
since it can also be used in ns-2.
[SM] Fri
Mar 28 12:23:58 PST 1997
Another cut at packet format reorg. Eliminated the need for static
variables. Moved the accessor methods from the "Header" classes
into the "hdr" structs. This rearrangement allowed us to alter
a minimal amount of code in each module that ref'd a packet header (i.e.,
only needed to change the pointer type of the variable that pointed at
the packet header.)
ns-2.0a16
Fri Mar 28 00:56:48 PST 1997
- [SM] Thu
Mar 27 23:49:57 PST 1997
Added some new modules in tcl/ex for CS268 homework 3.
- [SM] Thu
Mar 27 23:49:57 PST 1997
Put back seqno's in cbr agents.
- [SM] Thu
Mar 27 17:19:42 PST 1997
Added a simple fair queuing module that uses flow id's (aka classes)
to differentiate flows. Added an example script: tcl/ex/fq.tcl. Some of
the code in fq.tcl should migrate into the built-in library.
- [SM] Thu
Mar 27 00:11:31 PST 1997
Added a make rule for "nsx", which is just like ns but is
a wish interpreter instead of a tclsh. Retired ns_tclsh.cc and replaced
with tclAppInit.cc and tkAppInit.cc. Also added -ldl for bsdi-3.
- [EA] Wed Mar
26 22:49:30 PST 1997
Fixed up Session/RTP to work with latest version. Added a rate_change()
method to RTPAgent to allow correct behavior when changing transmission
rates. See code in rtp.cc for details.
- [KF] Wed Mar
26 17:11:17 PST 1997
Replace test-suite.tcl with test-suite.tcl from ns-1.
- [KVa] Wed Mar 26
15:24:24 PST 1997
The test suites break with the dynamics, because they want to acquire
an instance of the Simulator. However, the test-suites operate in compatibility
mode, and hence only create an instance of OldSim, a subclass of Simulator.
So, wrote a `Simulator instance' procedure that returns the current instance
of the simulator.
Files affected: tcl/lib/ns-lib.tcl, tcl/lib/ns-trace.tcl, tcl/rtglib/dynamics.tcl,
tcl/rtglib/route-proto.tcl
ns-2.0a15
Tue Mar 25 14:56:39 PST 1997
- [SM] Added
trace.h to FILES.
ns-2.0a14
Tue Mar 25 14:00:35 PST 1997
Snapshot for alpha testers.
- [KVa] Tue Mar 25
09:16:33 PST 1997
Fix auto configuration so that libotcl.a is found when the directory
is explicitly specified using --with-otcl.
Files affected: conf/configure.in.otcl, configure
- [KVa] Tue Mar 25
09:16:33 PST 1997
Change Tracing so that trace elements can be created and used entirely
via OTcl if the tracing is unrelated to packet activity.
See rtModel::init, rtModel::trace, and rtModel::log-dynamic in tcl/rtglib/dynamics.tcl
for how to use.
Files affected: Makefile.in, trace.cc, tcl/lib/ns-lib.tcl, tcl/lib/ns-trace.tcl
(new)
- [KVa] Tue Mar 25
09:16:33 PST 1997
Add dynamics to links and nodes so that portions of the topology can
be made to fail and recover. The failure and recovery can be controlled
through distributions.
Usage:
set ns [new Simulator]
$ns rtmodel <Distribution> {<up-time> <down-time>} <node1> [<node2>]
A distribution (Distribution) can be specified either to a single node
(node1) or to a single link (between node1 and node2). The up-time (down-time)
is a parameter for the distribution to specify how long the specified node/link
will be up (down) before changing state to being down (up).
Files affected: Makefile.in, connector.cc, delay.cc, dynalink.cc (new),
queue.cc, queue.h, tcl/lib/ns-lib.tcl, tcl/lib/ns-node.tcl, tcl/rtglib/dynamics.tcl
(new), tcl/ex/simple-dyn.tcl (new), tcl/ex/dynamic-nam.tcl(new),
tcl/nam-demo/nstonam.awk.
[KVa] Tue Mar 25
09:16:33 PST 1997
Add dynamic routing to deal with topology changes (work in progress).
Currently, the basic all-pairs-spf routing has been modified to fit a more
uniform API. Also complete is a session-level routing, (i.e., the
all-pairs-spf static routing used to precompute routes prior to starting
the simulation, and run everytime the topology changes).
Usage:
set ns [new Simulator]
$ns run [Static|Session]
Note: Additional more detailed configuration hooks will soon become
available, as well as other routing protocols.
Files affected: Makefile.in, tcl/lib/ns-lib.tcl, tcl/rtglib/route-proto.tcl
(new), tcl/ex/simple-rtg.tcl (new).
[SM] Added
heap.h to FILES.
ns-2.0a13
Fri Mar 21 09:08:05 PST 1997
Snapshot for alpha testers.
set ns [new Simulator]
$ns use-scheduler Calendar
[SM] Tue
Mar 18 15:32:01 PST 1997
Added a simple, completely contrived script to generate SRM-like sample
paths to illustrate SRM in EECS colloquium (see tcl/ex/srm-demo.tcl).
[SM] Tue
Mar 18 15:32:01 PST 1997
Fixed bug in Packet::copy. "*p = *this" was bogus because
bits are now allocated in a separate buffer and this was smashing the current
packet's bits buffer to point to the old one, which was both leaking memory
and causing unwanted sharing of private buffers.
[SM] First
cut at agent detaching code. Suggested by Emile
Sahouria.
[SM] Fixed
bug pointed out by Emile
Sahouria, Giao Nguyen,
and Tom Henderson, where
node port demuxer was created in wrong place. Moved this code from compute-routes
to Node::attach (i.e., should install locate route to port demuxer first
time the demuxer is created, not when compute-routes is run, becase in
latter case port demuxer might not yet exist).
[KF] Arrange for
dynamic linking to be the default instead of static. Static linking is
performed if '.devel' exists in the build directory.
[SM] Fix up
tcl/ex/simple.tcl for v2.
[SM] Set flow-id
in tcp ack agent just as we used to set the class-id.
[SM] Arrange
for tcl variable "class_" to be bound to flow-id field so that
scripts impacted by Kevin's recent packet header changes continue to work.
[SM] Added
a new TCPSimple that does minimal Go-back-N (no slow-start, no fast restransmit,
etc) for a CS268 homework.
[KF] Change to
ns-source.tcl to incorporate Source/FTP "produce" function, needed
by some of the ns-1 conformance tests. Added "agent" instproc
to node to return the agent with the specified port ID. Fixed up some typedef
and other type conflicts in packet.h and with respect to srandom() and
gettimeofday() on suns.
[KF] Support for
new packet format. Fix bug relating to header double-word alignment, happens
on suns.
[KVa] Add support
for heap schedulers. Use as:
set ns [new Simulator]
$ns use-scheduler Heap
ns-2.0a12
Sat Feb 22 22:09:51 PST 1997
Snapshot to VINT collaborators
and CS268 students.
- [SM] Bug fix
from Mark Handley. Reno tcp agent had
wrong prototype for recv method and thus was not overriding the default
virtual.
- [SM] Added
several
changes from Curtis Villamizar,
including a simple stochastic fair queuing module and a simple change to
the tcp agent to emulate persistent connections.
- [SM] Regenerated
configure using Kevin Fall's
latest fixes to our conf module.
- [SM] Changed
drop-trace method to drop-target. This should only affect the internal
APIs and shouldn't break any scripts.
- [SM] Bumped
size of max message in packet structure to 80 bytes. This limit eventually
must be removed.
- [SM] Eliminated
C++ statically defined default drop-target and changed link building code
to point a queue's drop-target to a null-agent.
- [SM] Added
first cut for queue-size monitoring agents (add integrator.cc). Cleaned
up approach for splicing objects into Link pipeline. Added ttl field to
packets and TTLChecker object to update ttl and throw out ttl-expired packets
(and ttl.cc).
- [SM] Fixed
long-standing bug in static routing code; problem found by, and fix supplied
by, Andrew Swan. Went
undetected for so long because bug occurs only for simplex links.
ns-2.0a11
Thu Feb 13 11:28:35 PST 1997
Snapshot to VINT collaborators
and CS268 students.
- [SM] Fixed
bug in ftp source compat code introduced by last rev. Prevented test suite
from running.
ns-2.0a10
Mon Feb 3 13:14:48 PST 1997
Snapshot to VINT collaborators
and CS268 students.
- [SM] Made
a number of small changes to help out with homework
1 for CS268.
- [SM] Fixed
missing-return bug introduced in last rev. Thanks to WeeSan
Lee.
- [SM] Changed
Agent/Message callback name from handle to recv.
ns-2.0a9
Thu Jan 30 21:11:34 PST 1997
Snapshot to VINT collaborators
and CS268 students.
- [SM] Fixed
inconsistent declaration of random() and problem with binding of "maxSackBlocks_".
Reported by WeeSan Lee.
- [SM] Restructured
the way agents are reset. Moved from node "attach time" to simulation
"run time". Otherwise, state variables that change between attach
and run-time aren't consistent with the reset operation. This fix prompted
by Tom Henderson, who noticed
that delayed-ACK TCP output was inconsistent with that of ns-1.
ns-2.0a8
Mon Jan 27 19:26:17 PST 1997
Snapshot to VINT collaborators
and CS268 students.
- [SM] Omitted
connector.cc and connector.h from distribution; now added. Reported by
WeeSan Lee.
ns-2.0a7
Mon Jan 27 18:09:02 PST 1997
Snapshot to VINT collaborators
and CS268 students.
- [SM] Added
Dante De Lucia's
generic, reusable logging module. (See log.cc.) But have not compiled it
in yet because of xmalloc references.
- [SM] Fixed
bugs in compat code that prevented SACK code from being properly configured.
Reported by Tom Henderson.
- [SM] Changed
instance variable naming conventions to append underscore to all names,
e.g., Agent::dst is now Agent::dst_.
- [SM] Changed
class naming conventions to use consistent mixed case, e.g., Agent/TCP
instead of agent/tcp.
- [SM] Eliminated
Node class since splitting NsObject and Node into no longer makes any sense.
Also, "Node" was a bad name because it implies something about
topology and at this level it is toplogically independent.
ns-2.0a6
Tue Dec 31 18:55:39 PST 1996
Snapshot to VINT collaborators.
- [EA] Fixed up
RTCP Timer bug. Added srctab and srcids to RTP Sessions.
- [EA] Added very
first rough draft of NamSimulator that produces a nam_config for automatic
layout.
- [EA] Added RTP
Session class along with RTP and RTCP agents.
ns-2.0a4
Sun Nov 10 11:06:46 PST 1996
Snapshot to VINT collaborators.
- [SM] Removed
re-parenting hooks from ns-lib.tcl since TclClass now automatically
makes all the classes in a class path name.
- [SM] Ported
partially completed ivs module from ns-1.
- [SM] Fix from
Ahmed A-G Helmy to omit unecessary
code in MultiNode::init.
- [SM] Coalesce
multiple sources into a single graft message to avoid dropped grafts with
a large number of messages would otherwise blast into the first hop and
overflow the queue (grafts are not yet sent reliably).
ns-2.0a3
Sun Nov 10 11:06:46 PST 1996
Snapshot to VINT collaborators.
- [SM] Implemented
simple RPF style flood and prune multicast (see tcl/lib/ns-mcast.tcl).
Multicast routing object is build from a number of classifier objects (e.g.,
the primary classifier routes the packet either to a multicast or to a
unicast classifier based on the multicast bit in the in the destination
address). Multicast routes are computed statically from unicast routes.
Prune timers are not yet implemented and grafts are currently sent unreliably.
- [SM] Created
Node and Link classes to clean up Simulator class
and allow these objects to be more easily abstracted into composite object.
E.g., a multicast-node is composed of a number of sub-objects.
- [SM] Use re-parenting
trick across a lot more classes in ns-lib.tcl. Created source
base class for source/ftp, source/telnet, etc.
- [SM] Modified
tcp-sink module to avoid virtual multiple inheritance (this causes too
many problems with non-compliant C++ compilers). Created Acker and Sacker
classes that are instanced in the sink classes.
- [SM] Type-cast
bug fixes from Ahmed A-G Helmy.
Snapshot to VINT collaborators.
- [SM] First
cut at multicast router from fine-grained objects.
- [SM] Add missing
files to FILES.
- [SM] Implemented
replicator and classifier/mcast objects as first step toward
supporting multicast routers and broadcast LANs.
- [SM] Clean
up class interface. Created Simulator OTcl class as uniform API
for manipulating simulator. Moved almost all of the ns-1 backward compatability
code into a new class called OldSim.
ns-2.0a1
Wed Nov 6 13:57:31 PST 1996
Pre-release to VINT collaborators.
- [SM] Major
architectural changes. Object are now finer grained. We have developed
a more cleanly defined Tcl API so that developers can change the back-end
while more easily maintaining backward compatibility. The simulator is
now based entirely MIT's Object
Tcl. The TclClass C++ base class replaces the old Matcher class. An
OTcl class is created in C++ by statically declaring a derived subclass
of TclClass. OTcl makes it easy to extend a class with new methods either
on the C++ side or the Tcl side.
v1.0 Tue Jul 23 11:27:17 PDT 1996
- Added a hook to dump a stack trace and exit when a background error
is encounter (i.e., an error in a proc scheduled with ns-at). This makes
it MUCH easier to debug simulator scripts that have syntax erros and what
not in scheduled tcl stubs.
- Removed sack-tcp.cc from distribution. This leaves tcp-sack1.cc as
the only SACK TCP implementation distributed with ns.
- Put back hook to source "~/.ns.tcl" since people rely on
this. Fix provided by John Wroclawski.
v1.0b4 Mon May 6 22:22:31 PDT 1996
- Corrected fix to TCP's window decrease algorithm in v1.0b2. Now, after
a Reno Fast Retransmit, the window decreases to min(cwnd_, wnd_)/2, not
to cwnd_/2 (before v1.0b2) or to min(cwnd_ + dupwnd_, wnd_)/2 (as in v1.0b2,3).
- Corrected calculation of congestion window for NewReno TCP for the
case when multiple packets are dropped from a single window of data.
- Fixed bug in tcp-sink.cc that allowed an infinite loop under some circumstances
when the number of outstanding packets in TCP was exactly MWS-1. Also added
a note to the man page about MWS and other constants in ns. Thanks to Bernhard
Suter for the bug report and fix.
- In TCP, changed the constant TCP_TICK to the variable tcp_tick_, with
the default set in ns_default.tcl.
v1.0b3 Mon Apr 29 19:10:33 PDT 1996
- Ported to Tcl v7.5. Changed trace objects to use new Tcl_Channel abstraction
(for O/S indepedence). ns will NOT compile with earlier versions
of Tcl.
- Added the parameter "maxcwnd", for the maximum congestion
window, and corrected the use of "window", the receiver's advertised
window, in the reno and sack implementations of TCP.
- Changed some of the *.tcl scripts to take into account the corrected
use of the receiver's advertised window, and to use "maxcwnd".
v1.0b2 Fri Mar 29 16:40:25 PST 1996
- Changed interpreter to not source ".ns.tcl" since tcl no
longer uses the tcl_RcFileName C variable.
- Fixed a couple more SunPro C++ compiler problems. Patcjes from Michael
Pearce.
- Corrected TCP's window decrease algorithm from "cwnd_ /= 2;"
to "cwnd_ = window() / 2;". Thanks to Thomas
Ziegler for the bug report.
v1.0b1 Sun Mar 3 1996
- Fixed bug in tcp.cc that caused the retransmit timeout backoff behavior
never to reset. Thanks to Jamshid Mahdavi
for reporting both the bug and the fix.
- Fixed bug in tcplib telnet module. Random number generator was being
seeded on each call (from the system clock) rather than once at start-up.
Replaced calls to random number routines with calls to Random::uniform.
Thanks to Werner Vogels for
reporting this bug.
- Added local explicit-join notification for experimentation with RLM.
- Added a "message" agent that allows abibtrary message packets
to be sent and received using tcl.
- Moved type-specific packet fields into a "body" union. Eliminated
"reason" field (rather than move it to tcp body) since we should
have just used the "flags" field to begin with.
- Added tracing functionality to loss-monitor agents (e.g., so we can
compute sliding window loss statistics using an external tool).
- Changed ns-now to use 17 digits of precision. Otherwise, truncation
could cause certain algorithms (e.g., RLM) to try to schedule events into
the past.
- Added "random" attribute to cbr sources to cause them to
generate a Poisson rather than fixed-rate packet stream.
- Fixed bug in RED initialization that could cause (almost-) infinite
loop at start up.
- Incorporated patches from Michael
Pearce to compile with SunPro C++ v3.0.1.
- Fixed bug that caused memory corruption when using class ID's larger
than 10.
v1.0a17 Thu Dec 27 1995
- Finished port of "tcp-sack1" and "sack1-tcp-sink",
a second format for selective acks.
- Added "bursty" source for tcp connections.
- Added new loss policies for drop-tail links, "lossy-uniform"
and "lossy-det". [Kevin Fall].
- Added more test files to the distribution: test-all-cbq, test-all-red,
test-all-sack, and test-sack, in addition to test-all.
v1.0a16 Tue Dec 12 19:05:56 PST 1995
- Added source code for sack-tcp.cc.
v1.0a15 Tue Dec 12 17:52:32 PST 1995
- First cut at adding code for "tcp-sack1" and "sack1-tcp-sink",
from Matt Mathis (mathis@zippy.psc.edu) and Jamshid Mahdavi (mahdavi@psc.edu).
- Changed format of window and RTT reports sent from tcp.cc to the trace
file.
- Added "maxpkts" for ftp and telnet sources.
v1.0a14 Fri Dec 1 10:35:30 PST 1995
- Finished port of TCP with selective acks, along with SACK acceptance
tests in "test-sack".
- Added a modified version of Reno TCP, tcp-newreno.cc, for research
purposes.
- Have not yet added tcp-sack or tcp-newreno to the man page.
v1.0a13 Wed Nov 22 15:14:50 PST 1995
- Finished port of cbq code from tcpsim (with contributions from Michael
Speer), and added cbq simulator tests.
- Added unique ID to each event in scheduler queue and added hook to
lookup an event by using this ID.
- Added hook for deleting at callbacks.
- Fixed bugs in multicast delivery where agent could modify routing desstructors
during the callback.
- First cut at port of TCP with selective acks.
v1.0a12 Sun Nov 5 21:19
- Added config.h and loss-monitor.cc to FILES so they get included in
tar.
v1.0a11 Sun Nov 5 21:19
- Added loss-monitor agent, which is the same as a null-sink but calls
a tcl proc whenever there is a gap in the received sequence space. Will
expand functionality as necessary for MMG experiments.
- Integrated more mature tcl/c++ architecture from vic/vat. This has
a major impact on the way ns objects are created and deleted, but we maintain
backward compatibility with previous versions. The "ns" command
is no longer implemented in C++, but rather as a library function (in ns_default.tcl)
that provides glue between the old commands and the new "new/delete"
interface.
- First cut at port of cbq code from tcpsim.
v1.0a10 Fri Oct 27 17:44:39 PDT 1995
- Added "flush" method to trace objects so that output can
be flushed before exiting.
- Added link-level src/dst fields to Packet class so node can tell which
"interface" a packet arrived on.
- Added support for dense-mode PIM style flooding with prune/graft machinery.
v1.0a10 Fri Oct 27 17:44:39 PDT 1995
- Fixed test-suite.tcl so that old awk works. Problem reported by Kannan
Varadhan.
- Fixed Makefile.in to use V_LIB_TCL, as intended. Fix supplied by Kannan
Varadhan.
v1.0a9 Wed Oct 11 16:58:00 PDT 1995
- Fixed solaris compilation problems.
- Changed configure to use "-mv8 -msupersparc" only for gcc.
v1.0a8 Fri Sep 29 15:11:04 PDT 1995
- Fixed more for-stmt scope bugs.
- Fixed compilation problems with Sun and DEC compilers. Problem reported
by Thierry Turletti.
v1.0a7 Wed Sep 27 19:55:23 PDT 1995
- First public (alpha) release.
- Included man page to FILES so it goes in tar.
- Updated README.
v1.0a6 Sep 21 09:24 PDT 1995
- Added "bug-fix" hook to tcp reno.
- Ported to tcl-7.4.
- Include Matt Mathis' test-all script.
- Changed "for" statement conventions to adhere to the proposed
ANSI standard
change which re-defines the lexical scope semantics of the initializer
statement. In order to be compatible with both the old and new semantics,
we have changed all instances of
- for (int i = ... ) ...
- use(i);
to
- int i;
- for (i = ... ) ...
- use(i);
v1.0a4
- Fixed bug in xgraph output: new version of xgraph doesn't understand
FileorDev because it now uses the PRINTER environment variable. Bug fix
from Matt Mathis (mathis@psc.edu).
- Added a 'test-all' sh script to distribution, which runs whole suite
of regression tests and compares them against a reference output. Thanks
to Matt Mathis (mathis@psc.edu).
- Don't include tk.h from Tcl.cc.
v1.0a1 Mon Jul 31 16:05:08 PDT 1995
- Changed all references to random() to use Random class so we can easily
change our pseudo-random number generator.
- Added convention to object names so we can derive their type from their
name.
- Changed nodes to be first class objects like rest of objects.
- Changed trace syntax to use tcl files rather than it's own open/close.
For example,
- set f1 [open out.hop w]
- $trace attach $f1
- Changed '-' and 'd' trace records to have same format as '+' and 'h'
trace records.
- Incoporate vic's "matcher" abstraction into agent and link
models.
- Major hacking to port tcpsim to tcl framework.