ns: Change History
ns-2.35 Released on Nov 4, 2011
- [mweigle] Fri Aug 26 15:50:00 EDT 2011:
Provide fixes to the Tmix traffic generator, mainly to the one-way
TCP implementation, but some changes to the Full-TCP version as well. Tmix
with one-way TCP now performs comparably to Tmix with Full-TCP (albeit
with longer running times and higher memory consumption). Includes
contributions from David Hayes and DongXia Xu at
Swinburne and relevant updates to the
documentation and tests. More information is available at
http://www.cs.odu.edu/inets/Tmix/.
- [tomh] Sun May 9 18:28:00 EDT 2010:
Add Marcello Caleffi's Multi-path Dynamic Address RouTing (M-DART)
protocol.
- [tomh] Tue Apr 6 01:09:01 EDT 2010:
Add Sidney Doria's Datagram Congestion Control Protocol (DCCP)
implementation.
- [tomh] Sat Apr 3 16:40:13 EDT 2010:
Added the SYN_immediate_ack flag so that a DelAckSink agent will
immediately ACK the first (SYN) packet sent by a TcpAgent. The patch contains
changes to tcp-sink.{cc,h}, ns-default.tcl, and affected validation tests.
All validation tests that use the syn_ in TcpAgent were set to
SYN_immediate_ack = false except for the delayed test in test-suite-simple.tcl.
Patch from Michele Weigle.
- [tomh] Fri Apr 2 19:22:43 EDT 2010:
During long simulations (30-60 minutes), ns would sometimes abort with the
message "TcpAgent: negative RTO!". The problem was that TcpAgent::t_backoff
_ was overflowing and becoming negative, since it was doubled each time a b
ackoff was triggered but maxrto_ prevented the time between doublings from
growing beyond 60 seconds. Patch from Michele Weigle.
- [tomh] Fri Apr 2 15:58:25 EDT 2010:
This patch adds support for using one-way TcpAgents with the Tmix traffic g
enerator, which previously only worked with FullTcp agents.
This patch also includes the relevant updates to documentation (doc/tmix.te
x), examples (tcl/ex/tmix/text-tmix-oneway.tcl), and tests
(tcl/test/test-suite-tmix.tcl; tcl/test/test-output/tmix/).
- [tomh] Fri Apr 2 15:53:56 EDT 2010:
Protocol for Unified Multicasting Through Announcements (PUMA)
has been added. PUMA is a distributed, receiver initiated, mesh based
multicast routing protocol. It is documented in the "Mobile Networking in ns"
chapter in the ns-2 manual. From Sidney Doria.
- [tomh] Sun Nov 15 21:50:00 2009:
A new SCTP patch from Nasif Ekiz and the University of Delaware team.
- added support for Non-Renegable Selective Acknowledgements (NR-SACK).
To enable NR-SACKs, set useNonRenegSacks_ tcl bindable variable to 1 at
both the data sender and the data receiver.
- Concurrent Multipath Transfer with Potentially Failed(CMT-PF) extension
is default now. To use CMT, set useCmtPF tcl bindable variable to 0
at the data sender.
- added new feature to support a limited size send buffer at the data
receiver. Send buffer size can be specified by setting initialSwnd_ tcl
bindable variable to desired value. By default, the variable is set to
0 which means there is no constraint on the send buffer.
- congestion window (cwnd) updates are now done as specified at Section 7.2.1,
7.2.2 and 7.2.3 of RFC4960. Also the number of missing reports to trigger
fast retransmits is reduced to three as specified in RFC4960.
- bug fix. A bug discovered by Eduardo Ribeiro and Igor Gavriloff regarding
to memory deallocation is fixed.
- new validation tests for NR-SACKs and limited send buffer size are added to
the test suite.
ns-2.34 Released on June 17, 2009
- [tomh] Sun Jun 14 10:30:00 2009:
bugfix for 802.11Ext model (from Felix-Schmidt-Eisenlohr and team)
- mac/wirelessPhyExt:
- the power monitor class is responsible to continously track the sum of all reception power values of all frames arriving in parallel and of the noise floor. In the earlier implementation this cumulated power was only decreased in situations where no packet arrived. Otherwise, powers were always further summed up, leading to a wrong setting of this variable, and in consequence, a wrong behavior of physical packet reception calculations. Furthermore, the busy/idle signalling was not correct.
- [tomh] Wed Jan 14 22:20:00 2009:
Add AOMDV (On-demand Multipath Distance Vector Routing in Ad Hoc Networks) implementation from Marcello Caleffi
- [tomh] Fri Jan 2 13:50:00 PST 2009:
Collection of bug fixes for 802.11Ext model (from Felix-Schmidt-Eisenlohr and team)
- mac/mac-802.11Ext:
- feedback to higher layers on transmission failure: xmit_failure_data_ is delivered when a unicast packet was finally not sent successfully- corrected NAV update: in case a NAV is active and a new NAV is advertised an updated only occurs in case the new NAV takes longer than the one already running - bugfix: corrected backoff handling when 0 backoff slots are selected:- bugfix: resolved memory leak on broadcast packet transmission- duplicate suppression support: reactivate the feature of duplicate detection on MAC layer as it was done in earlier versions
- code cleanup: removed TxTimer_t class
- bugfix: ACK frames: explicitly set basic modulation scheme
- mac/wirelessPhyExt:
- update of modulation table: new threshold values are taken for the different modulation schemes due to newer measurements
- bugfix: resched() instead of sched() in PowerMonitor::expire()
- code cleanup: removed friend class PowerTimer
- code cleanup: updated comment in recordPowerLevel()
- new implementation of PowerMonitor (PowerTimer class now obsolete)
- clarification of CSThresh variable (see below)
- mac/channel.cc: for wirelessPhyExt only: correct calculation of distCST, using PowerMonitorThresh_ as the critical borderline power and including antenna gains.
- tools/ranvar.cc: - bugfix: resolved memory leak in Erlang distribution
- [tomh] Sat Dec 13 15:20:00 PST 2008:
Bug fixes for 802.11 infrastructure code, posted by Ilango Purushothaman.
- Patches for better memory management - use standard C++ lists to maintain AP and client tables, memory leaks fixed in AP scheduling queue
- Triggering of handoff in Ad-hoc mode - Bug reported by Mayur - Resolved by adding an if condition for checking the 802.11 mode.
- Note: The following traces changed as a result of this, but were verified by Ilango: ./test-all-wireless-infra ./test-all-wireless-infra-mobility ./test-all-wireless-shadowing ./test-all-wireless-lan-aodv ./test-all-wireless-gridkeeper ./test-all-wireless-lan-newnode
- [mweigle] Thu Oct 09 11:40:00 EDT 2008:
Import Tmix synthetic Internet traffic generation tool
- [tomh] Sun Sep 14 10:49:00 PST 2008:
Disable string literal warning for gcc version > 4.2
ns-2.33 Released on March 31, 2008
- [tomh]Tue Feb 19 21:00:00 PST 2008:
Wireless shadowing bug fix; originally reported by Marcello Caleffi;
suggestion from Nicola Baldo applied
(http://mailman.isi.edu/pipermail/ns-developers/2008-January/003731.html)
- [tomh]Tue Feb 19 21:00:00 PST 2008:
AODV bug fix from Marco Fiore
(http://mailman.isi.edu/pipermail/ns-developers/2008-January/003703.html)
- [tomh]Sun Feb 17 19:40:00 PST 2008:
Add dynamic libraries patch from SIGNET group, University of Padova
- Patch for adding dynamically loadable modules (for platforms supporting
gnu ld and --export-dynamic flag): http://mailman.isi.edu/pipermail/ns-developers/2007-October/003419.html
New files: common/main-modular.cc, common/main-monolithic.cc
- [tomh]Fri Feb 1 13:30:00 PST 2008:
Add 80211Ext models from Mercedes-Benz/Karlsruhe team.
- Structured design of MAC functionality modules: transmission, reception, transmission coordination, reception coordination, backoff manager, and channel state monitor
- Cumulative SINR computation
- MAC frame capture capabbilities
- Multiple modulation scheme support
- Packet drop tracing at the PHY layer
- Nakagami fading model
New files: mac/mac-802_11Ext.{cc,h}, mac/wireless-phyExt.{cc,h}, mobile/nakagami.{cc,h}, apps/pbc.{cc,h}, plus examples in the tcl/ex/802.11 directory.
- [tomh]Wed Jan 23 17:41:00 PST 2008:
Add Ilango Purushothaman's 802.11 infrastructure mode support.
- passive and active scanning
- authentication
- association
- inter-AP communication
- mobility support (handoff)
Changes to the MAC header as part of this patch have required updates to the validation output for the following tests: ./test-all-diffusion3 ./test-all-wireless-shadowing ./test-all-wireless-lan-aodv ./test-all-wireless-gridkeeper ./test-all-wireless-diffusion ./test-all-wireless-lan-newnode ./test-all-WLtutorial ./test-all-wireless-infra ./test-all-wireless-infra-mobility ./test-all-tagged-trace ./test-all-energy ./test-all-wireless-tdma
- [David Wei]:
Add ns-2 TCP Linux patch and calendar scheduler improvements.
ns-2.32 Released on Sep 3, 2007
- [tomh]Tue Aug 14 22:49:00 PDT 2007:
Enable Tk for ns-2. Patches contributed by Pedro Vale Estrela:
Pedro's
debugging page
- [tomh]Sun Jun 17 14:30:00 PDT 2007:
Several changes to SCTP module, contributed by Nasif Ekiz and Protocol
Engineering Lab at the University of Delaware (see sctp.CHANGES release 3.7
release notes)
- [tomh]Mon Jun 11 00:51:15 PDT 2007:
Change validation compression to gzip
ns-2.31 Released on Mar 10, 2007
- [tomh]Mon Jan 29 21:00:00 EST 2007:
Several changes to WPAN module, contributed by Iyappan Ramachanran.
- Ability to put a WPAN node to sleep has been added with appropriate actions to decrement energy in sleep state and in transitions. Appropriate code has been added to enable node sleep at any time that the user wishes from the tcl interface.
- The earlier implementation was indefinitely attempting transimission of a packet. This has been fixed; after backing of macMaxCSMABackoffs, a node just reports access failure to the upper layer.
- Owing to the lack of a detailed-enough PHY layer, CCA has to be done at one instant (the end of the 8th symbol, in the earlier implementation) instead of integration over 8 symbols. As this was leading to unrealistic behavior, CCA has been modified to be done at the end of the 4th symbol but reported to MAC at the end of the 8th.
- Code has been added to decrement appropritate energy in the carrier sensing process.
- The WirelessChannel::sendUp() function call by Phy802 15 4::PD DATA indication() causes receive energy to be decremented twice and has been fixed.
- Several other smaller bugs have been fixed.
Files changed:
wireles-phy.cc, wireless-phy.h, ns-lib.tcl, ns-mobilenode.tcl
wpan.Z, p802_15_4const.h, p802_15_4csmaca.cc, p802_15_4csmaca.h,
p802_15_4def.h, p802_15_4mac.cc, p802_15_4mac.h, p802_15_4phy.cc
p802_15_4phy.h, p802_15_4timer.cc, p802_15_4timer.h
- [mweigle]Sun Dec 17 10:07:18 EST 2006:
Several changes to allow ns to compile on Solaris with the Sun C compiler. Fixes contributed by Emil Mikulic from RMIT University. Files change:
Makefile.in, config.h, configure.in, configure,
baytcp/tcp-full-bay.cc,
common/tcpAppInit.cc,
indep-utils/webtrace-conv/wcb/utils.cc,
queue/gk.cc, jobs.h, pi.cc, red.cc, rem.cc, rio.cc, rq.cc,
sctp/sctp.cc, sctp.h, sctp-cmt.cc,
tcp/scoreboard-rq.cc, tfrc-sink.cc,
tools/random.cc,
wpan/p802_15_4mac.cc
- [mweigle]Mon Nov 20 16:12:19 EST 2006:
Significant change to PackMime-HTTP HTTP/1.1 behavior. This change
adds more flexibility in setting HTTP/1.1 behavior by separating out
random variables that control the number of pages per connection, the
number of objects per page, the time between objects, the time between
pages, etc. Full details of the additions have been added to the ns
Manual chapter on PackMime-HTTP.
Note: Results with HTTP/1.1 will change, but those with HTTP/1.0
will not.
ns-2.30 Released on Sept 26, 2006
- [tomh]Fri June 23 07:25:00 PDT 2006:
Updated SCTP implementation; patch contributed by
Janardhan Iyengar:
The Concurrent Multipath Transfer (CMT) extension to SCTP has been added.
To use CMT, set useCmtReordering, useCmtCwnd and useCmtDelAck 1 at the
sender, and useCmtDelAck and useDelayedSacks to 1 at the receiver. You can
turn OFF the DAC algorithm by setting useCmtDelAck to 0 at both the sender
and the receiver. These variables will (hopefully) get consolidated by the
next release.
- [pradkin] Tue May 30 14:32:21 PDT 2006
Followup fix for baytcp (corrected sendpacket() signature).
- [pradkin] Tue May 30 13:29:08 PDT 2006
Major XCP cleanup:
- XCP plumbing changed to derive from tcp-classes instead of
duplicating the code.
- XCP header changed to using "X" (idealized inter-packet time)
instead of source rate (throughput) to match NODIV-spec better.
- XCP plugged into full-tcp (thanks, Amit!).
- XCP: removed clutter of experimental mode spread_bytes_.
- XCP: Removed clutter of experimental mode xcp_sparse_.
Modified test-suite-xcp.tcl to test XCP in full-tcp; disabled two
previously done tests; re-generated test output.
Minor changes to TCP:
- Added extra parameter to FullTcpAgent::sendpacket() and made it virtual.
- Made XcpEndsys friend of TcpAgent.
- Made XcpSink friend of TcpSink.
- Made ~TcpAgent() virtual as a matter of style.
- A handful small changes to make compile.
- [floyd] Tue Mar 14 20:44:56 PST 2006
TFRC change #1: Added idleFix_, default true, so that when the
sender has been datalimited, the sender now doesn't let the
receive rate limit it to a sending rate less than the initial rate.
This applies during slow-start, during regular increases in the
sending rate, and after an idle period.
TFRC change #2: Incorporated RFC3390 initial windows in more
places, when RFC3390 initial sending rates are enabled.
If RFC3390 initial sending rates are enabled, then when reducing
the sending rate after an idle period, don't reduce the sending
rate below the initial sending rate.
TFRC change #3: Changed slowstart so that when the initial rate
in pkts/RTT is greater than 1, the receive rate in the second report
is not used to limit the sending rate. (This report is not of an
entire RTT of data.)
- [mweigle] Thu Feb 2 12:54:05 EST 2006:
Adding DelayBox and PackMimeHTTP modules. DelayBox provides
per-flow loss, delay, and/or bottleneck speed emulation for TCP
(one-way or FullTcp) flows. PackMimeHTTP is an HTTP/1.0 and HTTP/1.1
(persistent, but non-pipelined) traffic generator that uses FullTcp and
is based on the PackMime
Internet traffic model developed at Bell Labs. Note:: Both of these
modules use STL.
Documentation has been added for both of these to the ns-manual,
validation scripts are in tcl/test/test-all-delaybox and
tcl/test/test-all-packmime and example scripts are in tcl/ex/delaybox/
and tcl/ex/packmime/
In support of these modules, the following existing files have
been changed:
- common/packet.h - add the packet type PT_BLTRACE for the
open-loop version of PackMime
- tcp/tcp-full.{cc,h} - add closed_ = 0; close_on_empty_ = FALSE;
to FullTcpAgent::reset() and moved reset() from protected to public
to facilitate the re-use of TCP agents
- tools/rng.h - add declarations for several random variables that
are defined in packmime/packmime_HTTP_rng.cc. These are along the
lines of lognormal(), pareto(), etc. that are already in rng.h. We
may want to move the definitions to rng.cc (like the others) at some
point in the future.
- tools/ranvar.{cc,h} - added the Weibull Random Variable
(RandomVariable/Weibull)
- [mweigle] Mon Jan 30 16:19:41 EST 2006:
Applied the bug fix for Mac/802_11 when RTS/CTS is not used, as
described in detail at
http://www.dei.unipd.it/wdyn/?IDsezione=2435. This bug
fix is applied by default, but can be ignored with Mac/802_11
set bugFix_timer_ false
- [floyd] Mon Jan 23 15:34:13 PST 2006:
Changed the default for TCP's precisionReduce_ to true,
for float rather than integer reductions in TCP's window.
- [floyd] Mon Jan 23 15:34:13 PST 2006:
Changed the default for TCP's rtxcur_init_ from 6 seconds to 3 seconds,
to match RFC 2988.
- [floyd] Fri Dec 2 21:34:26 PST 2005;
Added a parameter (use_mark_p_) to RED so that mark_p_ can be used
to explicitly control whether a packet is marked or dropped, even
when the average queue size exceeds maxthresh.
- [floyd] Fri Dec 2 21:34:26 PST 2005;
Added a parameter (ecn_syn_) to TCP to allow SYN/ACK packets to be
ECN-Capable. From a paper by Aleksandar Kuxmanovic.
ns-2.29 Released on Oct 19, 2005
- [tomh]Thu Oct 6 22:58:30 PDT 2005:
Updated SCTP implementation; patch contributed by
Armando Caro:
- Added/Deleted new extensions:
- added MfrTimestamp - combines MultipleFastRtx & Timestamp extensions
- added MfrHbAfterRto - combines MultipleFastRtx & HbAfterRto extensions
- deleted NewReno - the sctp-newreno extensions has been merged
into the core SCTP code since the "newreno" changes are now in the
SCTP implementer's guide
- New Features:
- added new retransmission policy for sending fast retransmissions
to the same destination and timeout retransmissions to an alternate
destination
- added experimental feature: changePrimaryThresh_ sets a threshold
for when the primary destination is changed automatically
- added the ability to specify one of three dormant state actions
- added the ability to track the number of times fast retransmit,
multiple fast retransmit, and timeouts are invoked
- new TCL bindable variables: initial RTO, min RTO, max RTO, fast
rtx trigger, and sack delay
- Bug Fixes:
- TCL bindable initial cwnd now
- fixed a flaw in the implementation of Karn's algorithm
- modified heartbeat interval calculation based on fix in implementer's guide
- modified the way state is maintained for chunks marked for
retransmission, so that failure detection is not unnecessarily
delayed.
- fast recovery was not exiting properly
- HbAfterRto algorithm now does not send a heartbeat if the timeout
retransmission is being sent to the same destination as the original
transmission
- now anytime a tsn is newly acked (either by new cumack or
GapAck), the error counter is cleared for that TSN's destination
- Max.Burst mechanism now counting control chunks correctly
- RTO timer is now restarted for an alternate destination when a
retransmission sent becomes the lowest outstanding on that destination
- peer rwnd calculation bug fix
- [tomh]Sun Sep 18 16:33:00 PDT 2005
64-bit patch for ns-2. From Mathieu Lacage:
http://mailman.isi.edu/pipermail/ns-developers/2005-September/001874.html
Validate still passes on 32 bit arch, but not yet on x86-64.
- [tomh]Thu Sep 15 20:06:00 PDT 2005
Last batch of ISI relicensing
- [tomh]Wed Sep 14 22:00:00 PDT 2005
SCTP fixes for 64-bit machines. Contributed by Armando Caro
- [tomh]Fri Sep 2 15:53:00 PDT 2005
Remove X dependency on ns-2. One more patch to fix a -Wall -O3.
Contributed by Mathieu Lacage.
- [tomh]Sun Aug 28 16:20:00 PDT 2005
Fixes for asserts and compiling with -Wall -Werror (contributed
by Mathieu Lacage)
- [tomh]Thu Aug 25 22:00:00 PDT 2005
Check in license change to PARC-licensed files, per permission of
Dan Curtis (dan.curtis_at_parc.com)
- [tomh]Sun Aug 21 22:00:00 PDT 2005
Finished patches for gcc 4.0.1 (contributed by Mathieu Lacage)
See for details:
http://mailman.isi.edu/pipermail/ns-developers/2005-July/001804.html
Also, checked in the following minor change to the OTcl code:
http://mailman.isi.edu/pipermail/ns-developers/2005-August/001829.html
- [tomh]Tue Jul 26 17:30:00 PDT 2005
Patches for gcc 4.0.1 (contributed by Mathieu Lacage)
See for details:
http://mailman.isi.edu/pipermail/ns-developers/2005-July/001804.html
- [tomh]Wed Jul 20 21:05:00 PDT 2005
Backed out -Wall and -Werror by default in Makefile.in-- instead,
added to "enable-devel" switch in configure and the autoconf
(was -Wall, now is -Wall -Werror).
- [tomh]Tue Jul 12 20:52:00 PDT 2005
Turned on -Wall and -Werror in Makefile.in, and fixed some bugs
and warnings. Contributed by Mathieu Lacage. Details are at:
http://mailman.isi.edu/pipermail/ns-developers/2005-July/001780.html
- [haldar]Tue Jun 14 12:32:45 PDT 2005
Changes made to mac-tdma to allow use of newer energy model. Also
mac-tdma accesses radio interface thru wireless-phy instead of energy model.
test-suite-wireless-tdma updated for newer APIs.
- [haldar]Mon Jun 13 10:51:02 PDT 2005
Added extension of energy module contributed by Vijat Kakadia that
accounts for power used by nodes in sleep state and during state
transition. This energy module can now be used by SMAC. The wireless phy
now keeps sleep/idle/busy states instead of the mac layer. The updated
trace format shows the values of sleep/transition power etc.
Files changed:
- wireless-phy{.cc,.h}
- energy-model{.cc,.h}
- smac.cc, cmu-trace.cc
- ns-lib.tcl,ns-mobilenode.tcl
- [haldar]Tue May 25 14:18:16 PDT 2005
Added the full-duplex mode for simple-mac that allows sending and
recving at the same time (use diff. channels for sending and recving)
- [haldar]Tue May 24 14:56:16 PDT 2005
Added selective repeat retransmit mode for HDLC/ARQ transmission.
- [haldar]Tue Apr 26 11:47:06 PDT 2005
Bug fix for simple-mac. Added function restart that reschedules the
mac timer incase the timer is still pending.
Another bug fix for errmodel. If a callback event (to the queue
above) is already scheduled, it doesn't schedule another one, until that
earlier event had triggered.
- [haldar]Tue Apr 26 11:47:06 PDT 2005
Added first cut of HDLC protocl specifically implementing the ARQ
feature. Changes include
HDLC protocol implementing ARQ Go BACK 'N.
new pkt hdr for HDLC
support for tracing of HDLC pkt headers
- [haldar]Mon Mar 21 10:41:15 PST 2005
Added 2 error models ( a 2-state markov model that changes state based on
time and a more complex markov model consisting of two 2-states running
in parallel) that models a mobile terminal experiencing channel blockage
as it moves thru urban and rural areas. These models are to be used for
performance evaluation of XCP simulations using HDLC (ARQ) at the link
layer.
Also added XCP to mobilenode to allow wireless sims for XCP.
ns-2.28 Released on Feb 3, 2005
-
[johnh] Thu Nov 9 10:53:42
PST 2000
ns-2.1b7a released by Haobo Yu, Ya Xu, and John Heidemann. This release
is exactly what was in ns-2.1b7 with these bug fixes/enhancements:
-
a bug in gen-map is fixed
-
a heap scheduler memory leak is fixed
-
nse should now build on FreeBSD and Linux
-
the allinone release should build cleanly on Solaris machines
-
allinone information about modifying PATH and LD_LIBRARY_PATH is now clarified
-
[yaxu] Mon Oct 16 21:01:42
PDT 2000
ns 2.1b7 released
-
[weiye] Fri Oct 13
11:51:06 PDT 2000
(1) Added a new chapter in ns Manual: radio propagation models.
(2) Changed a separate program ~ns/indep-utils/propagation/threshold.cc
for compute receiving threshold for a specified communication range for
all available propagation models in ns.
-
[kclan]Mon Oct 2 20:00:00 PDT
2000
Creation of Real Audio traffic model:
-
create source file realaudio.cc
-
create example script ramodel.tcl in ~ns/tcl/ex/realaudio
-
create testsuite for realaudio model in ~ns/tcl/test/test-output-realaudio
-
[johnh] Fri Oct 6 11:43:29
PDT 2000
Changes from eval to evalc wherever eval'ing constant strings with
embedded subcommands (with []). This construct crashes tcl-8.3 (that modifies
strings) when used with compilers that don't properly match against eval(const
char*) (like apparently egcs-2.91.66).
-
[weiye] Mon Oct
9 16:39:46 PDT 2000
Test suite for the shadowing propagation model is added.
-
[weiye] Mon Oct
2 13:39:46 PDT 2000
Modifications of the propagation models: (1) The Friis free space model
is added in propagation.{h, cc}. Users can directly use it in their simulations.
(2) Thanks to Leonard Miller's suggestion, we modified the equations in
the two-ray ground model. The system loss L is taken out from the calculation
of the cross-over distance, and it is added in the calculation of the received
power.
-
[haoboy]Thu Sep 14 11:01:49
PDT 2000
Partially completely node restructuring:
-
A node can be considered as a collection of classifiers and routing modules.
An important function that Node should provide is how to interface classifiers
to routing modules. There are two aspects to this: (1) what is the organization
of these classifiers, and (2) when there is a routing change, which classifiers
should be notified and how.
-
Hierarchical routing, manual routing, virtual classifier, MPLS have been
converted to the new scheme.
-
Multicast code is partially converted, in that the hookup of switch_ is
done via RtModule/Mcast, however, existing mcast code is not changed to
be wrapped entired in this module; it is still in the forms of a bunch
of Simulator and Node instprocs.
-
Mobile node and satellite node are not converted. Mobile code in itself
needs to be cleaned up. For instance, MobileNode partially duplicates the
functionality of MIP, however it does not entirely replace old Node/MIPBS
and Node/MIPMH. The conversion of these two modules to the new scheme also
requires changing their c++ code, which is not trivial.
Other changes include:
-
Move AddrParams class to a singleton split object class. Most of its parameters
are now stored in c++ space.
-
Created a wrapper hierarchical classifier to present a single classifier
interface to node configuration. This allows us to avoid those gazillions
of if [Simulator set EnableHierRt_] ... that were all over the
place.
-
[haoboy]Tue Sep 12 20:01:53
PDT 2000
Added 'lsort -dictionary' to DV routing code so its results will not
change as the shadow object names of nodes change due to addition of new
objects. This paves the way to modular node configuration as some new node
routing modules would be added during the construction of each node. Also
changed is [array names] code in web cache, a lsort -dictionary will enhance
its validation stability.
BTW I think SplitObjectCompare in tclcl/tcl-object.tcl is obsolete
now since 'lsort -dictionary' does the same job but it's built in hence
should be faster than an outside command.
-
[haoboy]Thu Aug 31 13:34:25
PDT 2000
-
Added procedures into ns-packet.tcl to help customizing packet headers
in simulation. (Packet header chapter in ns manual has been updated; please
read it for more information.) This may lead to big savings in packet-intensive
applications. For instance, currently all protocol headers add up to about
2KB per packet, but including only the common header, IP header and TCP
header takes only about 100 bytes. This may mean a lot of savings for,
say, large-scale web traffic simulation. But I've not tested it.
-
Get rid of all off_[hdr]_ stuff from all source files. Now ns-packet.tcl
does not create these offset variables at all. This saves two bounded variables
per NsObject.
-
Move static packet header declaration from encap.h to encap.cc. A variable
_instantiation_ should not reside in a header file.
-
[haoboy] Thu Aug
31 12:55:49 PDT 2000
-
Node cleanup: move all energy-related variables and methods in the base
Node into EnergyModel. Note that node_on_ may be moved back later, but
for now its handler is closely tied to wireless routing.
-
Added dependency of tcl/mobility/dsdv.tcl into Makefile.in
-
Moved tcl/lib/rtProtoLS.tcl into tcl/rtglib, where all routing protocols
stay.
-
Added a line about link state into unicast.tex, and labeled link state
and MPLS as undocumented.
-
[haoboy] Tue Aug
29 17:03:43 PDT 2000
Node cleanup: (1) moved nam tracing hookup to the base Node, so we
do not need to keep namtraceAllFile_ in Node, which duplicates that in
Simulator, nor do we need to keep a namDefined_ flag. (2) Removed and commented
out unused otcl instprocs in Node which are masked (through inheritance)
by those in MobileNode.
-
[haoboy] Thu Aug
24 14:25:08 PDT 2000
-
Added MPLS package originally written by Gaeil
Ahn. It was modified to reduce the amount of otcl calls, and moved
to use node-config instead of creating a new Node subclass. However, there
is still a long way to go when a new routing module can be introduced into
a Node without interfering with other routing modules. Please see TODO.html
for more information.
-
Fixed bugs in assert{} usage: what follows must be quotes instead of braces,
the latter does not perform substitution and variables in the expression
won't be visible inside assert{}.
-
Cosmetic changes in ns-node.tcl and ns-route.tcl. Commented out unused
code, including Simulator::compute-routes-mobilenodes{}, Node::*TcpSession{}.
Commented code resides at the end of its corresponding file.
-
Changed tcl/test/test-all-template1 to use case instead of if(s) to redirect
stdout to temp.rands.
-
[floyd]Sun Aug 20 22:17:11
PDT 2000
A change to setting the pipe_ variable in Sack TCP when entering in
Fast Recovery for the non-ECN case, to make the performance the same as
the ECN case. Motivated by a suggestion from Mark Allman. Set oldCode_
to true to use the old code. Validated in "./test-all-tcp underutilized_100ms_control_Sack".
-
[haoboy] Thu Aug
17 22:16:32 PDT 2000
-
Autoconf support for checking compatibility of compiler's STL support.
Basically it tries to see if template inheritance is supported, which some
earlier gcc does not seem so.
Currently this is used only for the link state routing protocol module,
which uses STL extensively. However, this mechanism can be easily extended
to enhance the modularity of ns, in the sense that the user may actively
choose which module to compile into her/his ns binary, thus save memory/disk
space/initialization time/etc.
IMPORTANT: validate is now moved to validate.in, because link
state module may or may not be present depending on availability of STL.
-
Removed numerous ... set off_*_ 0 in tcl/*/*.tcl. Although off_[hdr]_
is an obsolete way to access packet headers, it is still used in much existing
code. These offsets MUST be set through the code in tcl/lib/ns-packet.tcl.
Explicitly setting it to 0 will result in accessing packet header in the
wrong place. However, this is a very treachrous bug, because ns packet
header is 'sparse' in that much of the space is not used in a simulation.
Therefore, most of the time this bug will not lead to segmentation fault
or incorrect functionality. Usually it only results in mysterious segmentation
faults in completely irrerelevant places.
The most significant bug related to this problem is off_arp_
and off_sr_. The former results in the crash of wireless3
test in WLtutorial test suite. The latter results in incorrect
output of CMUTrace in dsr-related tests in wireless-lan,
wireless-lan-newnode,
and wireless-tdma test suites.
-
Merged all the delay_parse, time_parse, bw_parse
in tcl/*/*.tcl. There exists at least 3 versions of these codes with slightly
different implementations. Now they all converge to John's time_parse
and bw_parse in tcl/lib/ns-lib.tcl.
-
test-output-wireless-lan/dsr.Z was truncated at the end because test-suite-wireless-lan.tcl
(and -lan-newnode.tcl) did not flush the trace file before rewriting it.
-
Removed dmalloc 3.* support because their headers do not carry version
information.
-
Removed unused iostream.h in various files.
-
[haoboy] Wed Aug
16 16:59:15 PDT 2000
Moved list.h to lib/bsd-list.h to prepare for STL support, since list.h
conflicts with STL's list.h
-
[johnh] Tue Aug 1 15:30:30
PDT 2000
Patches to allow ns to build with tcl-8.3 (still must specify --with-tcl-version=8.3
and --with-tk-version=8.3 in the configure). Validation tests VC and monitor
still fail (segfault in tcl code)---this is work in progress.
-
[floyd]Sun Aug 13 09:48:15
PDT 2000
Added code (on July 18) for correctly tracing early packet drops from
RED when flow monitors are attached. Code from Ratul Mahajan.
-
[floyd]Sun Aug 13 09:48:15
PDT 2000
Added the following options to the one-way TCP, over the last few weeks:
-
Added noFastRetransmit_ for Tahoe TCP without Fast Retransmit. Validated
in "./test-all-testReno". (July 8)
-
Added fixes to the scoreboard and TCP/Sack1 code, fixes contributed by
Ethan Blanton. The scoreboard did not properly advance the left edge of
the SACK window during Fast Recovery *unless* the processed packet contained
a SACK block. (July 9)
-
Added code contributed by Ethan Blanton, so that the Sack1 TCP sender checks
if duplicate acknowledgements acknowledge the receipt of new data, for
the one-way Sack1 TCP. Validated in "test-all-ecn ecn_noBugfix_sack". (July
22)
-
Added precisionReduce_ for non-integer reductions of the TCP congestion
window. Code contributed with Deepak Bansal. This is for use with TCP with
non-standard values for the window increase and decrease parameters, and
is validated in "./test-all-aimd". (August 7)
-
Added "k_parameter_" and "l_parameter_" for binomial congestion control,
used with wnd_option_ == 6. Code contributed by Deepak Bansal. Validated
in "./test-all-aimd". (August 9)
-
Removing all uses of the defined constant NUMDUPACKS, replacing it with
the use of the added variable numdupacks_ instead. Code from Ethan Blanton.
Validated in "./test-all-tcpOptions". (August 12)
-
[johnh] Tue Aug 1 15:30:30
PDT 2000
Nam section of the documentation started with details about how to
make animated gifs.
-
[haoboy]Wed Jul 26 18:11:09
PDT 2000
-
Added link state routing code contributed by Mingzhou
Sun.
-
Remove conditional directive NAM_TRACE.
-
Added further explaination to Classifier::no-slot{} error messages in tcl/lib/ns-lib.tcl
-
[haoboy]Tue Jul 25 14:59:09
PDT 2000
PLM code contributed by Arnaud Legout at EURECOM.
-
[xuanc] Sat Jul 22 16:58:54
PDT 2000
(1)New API (channel) added to node-config in ns-lib.tcl to support
multiple interfaces for wireless node. A demo tcl script also included.
(2)The URLs in README and CHANGES.html are fixed.
-
[weiye] Fri Jul 21
13:20:59 PDT 2000
(1)A new radio propagation model, the shadowing model, is added. It
uses the path-loss model to predict mean received signal power for certain
T/R distance. Then a random variable, called log-normal shadowing, is added
to the mean value. Different parameters of the path-loss exponent and the
shadowing deviation represent different propagation environments. This
statistical model is applicable to both outdoor and indoor. (2) A bug fixed
in wireless-phy.cc. The bug disabled setting values of bound variables
from Tcl.
-
[intanago] Mon
Jul 10 7:31:37 PDT 2000
(1) Checked in directed diffusion, flooding, and omnicient multicast
modules including codes, test suits, scenarios, and examples. (2) Added
more supports on idle energy consumption. (3) Fixed some bugs of energy
consumption in transmission and reception.
-
[floyd] Sun Jul 9 09:38:26
PDT 2000
Added "first_reset_" to red.{h,cc} so that "queue-in-bytes_" works
correctly for RED when reset() is called multiple times. Bug report from
Wen Shushan. The option "queue-in-bytes_" had been working correctly in
the validation test in "./test-all-red red_twowaybytes", but in other scripts
REDQueue::reset() can be called twice, and in this case "queue-in-bytes_"
had not been working correctly.
-
[floyd] Fri Jul 7 17:02:16
PDT 2000
Added the TCP Rate-Halving code to NS. This is contributed code from
Matt Mathis, Jeff Semke, Jamshid Mahdavi, and Kevin Lahey, from the web
page ``http://www.psc.edu/networking/ftp/papers/draft-ratehalving.txt''.
This is partially validated in the validation test "./test-all-tcpVariants",
for example in "./test-all-tcpVariants/fourdrops_sackRH".
-
[floyd] Mon Jun 26
20:07:50 PDT 2000
First pass at adding RIO code to NS. This RIO code is from Yun Wang,
based on the code used by Wenjia Fang, and was ported to ns-2.1b6 by J.
Scott.
-
[tomh] Tue Jun
21 17:44:10 PDT 2000
Changes to support Lloyd
Wood's improved perl scripts for the satellite code.
-
[Kun-chan Lan] Tue Jun 21 11:12:54
PDT 2000
Fix to full-tcp reassembly from Matt Sanders and George Riley of Georgia
Tech.
-
[xuanc] Mon Jun 12 17:13:45
PDT 2000
A single hop, preamble based TDMA mac layer (Mac/Tdma) was added. It
can be used in wireless / sensor net simulations in the place of 802.11
mac layer.
-
[johnh] Thu Jun 1 13:55:39
PDT 2000
Code added from William Metzenthen's floating point library (at http://www.linuxsupportline.com/~billm/faq.html)
to make ns run with 56-bit FP precision on Linux. (All test suites should
now pass there.)
-
[floyd] Sat May 27
16:59:07 PDT 2000
Added new validation test "./test-all-links" to illustrate dynamically
changing link delay and bandwidth.
-
[floyd] Mon May 15
22:58:15 PDT 2000
Added bug-fixes to tcp.cc for the case with ECN when cwnd < 1. The
first fix is not to reset the retransmit timer when a new ack arrives and
cwnd < 1. The second fix is, when the retransmit timer expires and cwnd
< 1, to reset cwnd to 1. The first bug was reported by Yin Zhang. I
also added four new ECN validation tests to test these bugfixes, ./test-all-ecn
ecn_secondpkt1Ecn_tahoe, ecn_smallwin1Ecn_tahoe, ecn_smallwin2Ecn_tahoe,
and ecn_smallwin3Ecn_tahoe.
-
[floyd] Fri May 12
16:26:02 PDT 2000
Added bug fix for the initial slow-start in TFRC, and changed the default
value for Agent/TFRC/InitRate_ for greater compatibility with TCP. Also
added two new validation tests, manyDrops and twoDrops, to test-all-friendly
to validate the bug fix. Fix from Jitendra Padhye.
-
[floyd] Fri Apr 14
21:01:25 PDT 2000
Added RFC2581_immediate_ack_ for TCP Delayed-Ack sinks, to generate
ACKs immediately for data that fills a gap in the sequence space. This
gives RFC2581-compliance for delayed ack receivers. Bug report from Changhee
Joo, with fix from Changhee Joo and Lloyd Wood.
-
[floyd] Mon Apr 10
16:55:44 PDT 2000
Smaller initial rate for Agent/TFRC, to correct overly-aggressive behavior
with very low bandwidth paths. Fix from Jitendra Padhye.
-
[haoboy] Fri Mar 24 11:36:59
PST 2000
-
NsObject::debug(), a generic way to write verbose debug messages.
-
Richard Mortier's fix
for TcpFull::gensack().
-
[Ya] Thu Mar 9 17:07:08
PST 2000
(1) New energy model to support idle time energy dissipation (2) BECA
and AFECA algorithms used in the paper "Adaptive Energy-Conserving Routing
protocols for multihop ad hoc wireless network", submitted to mobicom2000
(3) Pending commit: examples and validation test suite.
-
[PH] Mon Feb 14 17:48:06
CET 2000
Bug fix for DV (Dynamic Distance Vector) Routing
Update test output for example3 (using DV) in test-suite-greis.tcl
Bug report and fix from Guo Liang [email protected] and patches from Cheng
Tak Cheung [email protected]
-
[floyd] Fri Jan 14
16:16:15 PST 2000
Bug fix for rare, inappropriate cancelling of the TCP retransmit timer.
Bug report and fix from Mark Allman, [email protected].
-
[kclan] Fri Jan 9 20:00:15
PST 2000
Add an API to support visualization of energy depletion of wireless
node in nam .
SYNTAX: $ns_ energy-color-change [level1] [level2]
-
[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, [email protected].
[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 [email protected].
-
[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 <[email protected]>).
-
[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
-
[padma] Tue Jan 29
15:33:49 PST 1998
ns-2.1b2 release.
-
[padma] Tue Jan 29
15:33:49 PST 1998
The mcast test suite removed from the validation tests for now, to
proceed with the ns release; mcast tests seem to be failing due to change
in the order of the outputs in trace files while the output values by themselves
are valid.
-
[johnh] Wed Jan 28 16:06:49
PST 1998
Configure now looks for tclsh (hopefully fixing the ``Simulator not
found'' bugs which were due to empty gen/ns_tcl.cc files).
-
[KVa] Wed Jan 28 14:05:09
PST 1998
Typo in srm-adaptive.tcl:121, Agent/SRM/Adaptive::recompute-request-params{}
pointed out by "Roger \"WOJA\" Kermode"
<[email protected]>
-
[johnh] Tue Jan 27 10:47:24
PST 1998
There were two ``default'' random number streams, one in Random and
one in RNG. They're now unified. Test suites updated accordingly.
-
[SR] Mon Jan 26 16:46:57
PST 1998
-
Added srm-topo.cc,h in main directory for large-scale simulations of the
SRM timer algorithm
-
Also added example tcl scripts tcl/session/scaling-*.tcl.
-
[TLT] Fri Jan 23 11:26:01
PST 1998 Fixes some problems with otcl namespaces in tcl 8.
-
proc class defined in ns-compat.tcl not found in global scope. This is
because a procedure defined within an otcl instproc (or proc) becomes a
procedure in ::otcl and NOT ::. The fix is to define the procedure as proc
::class.
-
info proc SplitObjectCompare not found. The info command finds only procedures
in the *current* namespace. I added a second check for ::SplitObjectCompare
before bailing out.
-
[KF] Wed Jan 22
23:20:58 PST 1998
Fix up test-suite-full.tcl to deal with quiet option. Check in test
output for test-all-full.
-
[KF] Wed Jan 21
22:20:58 PST 1998
Change to tcp to record time in rtt_ts for rtt_update calls when not
using actual timestamps. A number of changes to tcp-full to make the simul-close
test work (esp. handling of fins and retransmitted fins).
-
[johnh] and [visweswa]Wed
Jan 21 14:37:07 PST 1998
tcp-rbp was being too conservative in transmission after pacing ends.
Also, the rbp test suite failed to honor QUIET (although it worked for
the softer quiet). RBP saved tests updated.
-
[johnh] Wed Jan 21 14:16:12
PST 1998
test-suite-vegas-v1.tcl now supports a quiet option; rbp and vegas-v1
re-added to the validate script.
-
[johnh] Fri Jan 9 13:51:57
PST 1998
RBP test suite updated.
-
[KF] Tue Jan 5
18:02:59 PST 1998
Move emulation related files into emulate subdirectory, fix Makefile.in
Also, mention full-tcp fixes (over last n weeks) here
-
[KVa] Tue Dec 30 16:55:59
PST 1997
-
SRM base class...more functions are now virtual to support cleaner extensions.
Files affected: ~ns/srm.{cc,h}
-
TTLchecker can be made to decrement ticks other than 1. Also, options to
make it shut up about ttl exceeded.
Files affected: ~ns/ttl.cc
-
Classifier adjacents return format is now reversed. The key is now the
slot, the value is the object in that slot.
Files affected: ~ns/tcl/lib/ns-lib.tcl
NB:This breaks the multipath routing capability available in
dynamic unicast routing. I think I fixed it but I haven't tested it out
yet. If you are using this, drop me a line.
Files affected: ~ns/tcl/lib/ns-node.tcl
-
Some pretty printing procs, f-time and f-node (*gag*)
Files affected: ~ns/tcl/lib/ns-trace.tcl
-
The rtglib routines now use their own random number generator sequence.
Files affected: ~ns/tcl/rtglib/route-proto.tcl, ~ns/tcl/rtglib/dynamics.tcl.
-
The Tcl level random number generator procedures use the defaultRNG directly.
Fiels affected: ~ns/tcl/lib/ns-random.tcl.
-
[johnh] Tue Dec 30 12:44:23
PST 1997
CBR changes (finish method) reinstalled (they were accidently removed).
-
[VNP] Thu
Dec 25 13:23:35 PST 1997
-
Added the "corrected" timestamp echo algorithm mentioned in TCP/IP Illustrated,
Vol. 2, page 870. This algorithm is enabled only if ts_echo_bugfix_ is
true (it is disabled by default).
-
Files modified: tcp-sink.{cc,h}, tcp-asym-sink.cc tcl/lib/ns-default.tcl
-
[VNP] Wed
Dec 24 16:59:44 PST 1997
-
Added tcp-session.{cc,h} (which implement TcpSessionAgent).
-
Restructured IntTcpAgent to be a bare-bones TCP that only implements an
ordered data stream abstraction. Congestion control and loss detection/recovery
are done by TcpSessionAgent with the help of CorresHost.
-
Added some test files for tcp-fs, tcp-asym, tcp-asym-fs and tcp-int to
tcl/ex/tcp-fs. These still need to be cleaned up.
-
[johnh] Fri Dec 19 16:14:20
PST 1997
A rate-based pacing test suite.
-
[SB]Fri Dec 19 12:09:25 PST
1997
-
Changed ns-node.tcl and classifier.cc so that the classifier slot-table
can be reused
-
Added default shift/mask in tcl/lib/ns-default.tcl and config.h which would
make it easier to configure a simulation with a different kind of addressing.
-
Added ns at-now functionality in ns-lib.tcl
-
Added a code line to fill up ch->timestamp in the function allocpkt in
agent.cc
-
Changed declaration of gettimeofday in rng.cc to make it work on Solaris
-
Added warning messages in timer-handler.cc before abort() in functions
cancel and sched
-
[SM]Sun Aug 10 15:11:27
PDT 1997
-
Added doc-hdr.html for otcldoc. This html stub is included at the top of
index.html from the otcldoc output. We still need to create a Makefile
rule for running otcldoc, but in the meantime you can run it manually as
follows:
../tclcl/otcldoc -h doc-hdr.html tcl/*/*.tcl tcl/*/*/*.tcl
Fixed up some of the formatting in this change history.
[EA] Fri Nov 28 19:13:31
PST 1997
-
Fixed up scuba demos to work with new nam.
-
Fixed bug in namsupp where queues weren't being outputed.
[johnh] Sun Dec 7 16:44:39
PST 1997
A first cut at the Vegas test suite. Tests are very similar to ns-1.4
(after recv_newack_helper breakage was repaired), but are not quite identical
(probably because of retransmit timer changes).
[johnh] Fri Dec 5 17:41:15
PST 1997
CBR advance and advanceby commands and the done method added and documented.
Their usage is analogous to Tcp's.
Also session-rtp.tcl's bw_parse now handles more cases like tclcl's
atof_bw and added a time_parse.
[VNP] Wed
Nov 26 21:57:26 PST 1997
-
Added a new member function REDQueue::pickPacketForECN() which is called
when the RED algorithm decides to send an ECN notification. By default,
this function picks the incoming packet.
-
SemanticREDQueue calls the pickPacketForECN() function defined in SemanticPacketQueue,
which picks a packet uniformly at random.
-
Replaced the check $type == "RED" in ns-lib.tcl with one that just looks
for the string "RED" in $type. This is to accomodate derived classes of
REDQueue such as SemanticREDQueue.
[hari] Tue Nov
18 17:22:12 PST 1997
-
Multi-state error models and restructuring of OTcl support code in tcl/ex/ns-errmodel.tcl
(ns-ber.tcl now obsolete).
-
Some changes to LAN support code; in particular added code to have different
types of LL protocols on the same LAN.
Files: errmodel.{cc,h}, ns-errmodel.tcl, ns-lan.tcl, ns-default.tcl, ns-lib.tcl,
snoop.tcl, (removed) ns-ber.tcl
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 <[email protected]> and Haobo
Yu <[email protected]>.
-
[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, [email protected].
-
[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.
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.
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 <http://www.isi.edu/lsam/publications/rate_based_pacing/index.html>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.)
-
[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
-
[SM] Added trace.h
to FILES.
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.
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
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.
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Fixed bug
in ftp source compat code introduced by last rev. Prevented test suite
from running.
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.
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.
Snapshot to VINT collaborators
and CS268 students.
-
[SM] Omitted connector.cc
and connector.h from distribution; now added. Reported by
WeeSan
Lee.
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.
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.
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).
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.
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 ([email protected]) and Jamshid Mahdavi ([email protected]).
-
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 ([email protected]).
-
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 ([email protected]).
-
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.