July 5, 2006
This page contains links to patches which are upgrades to minor
releases or minor fixes over releases.
Installation of patches is straightforward: uncompress the patch
directly on top of where J-Sim is installed and recompile the sources if
necessary.
- These are not really a patch. These are the
Jacl source archives (modified for J-Sim), for those who want to play with the Tcl
interpreter. One should install the archive in the same directory
as the J-Sim package.
- The ANT build file for compiling
the Jacl sources with the J-Sim sources.
- Modified Jacl 1.3.1
sources, 521KB, 02/03/2004. The binary is included in J-Sim v1.3 (as jars/tcl.zip).
This is usable with J-Sim v1.2.1 but the exception handling is not
compatible so it will not show much information of an
exception.
- Modified Jacl 1.2.6
sources, 473KB, 04/25/2003. The binary is already included in
J-Sim release v1.2.1 (as jars/tcl.zip).
- Patches for GUI Editor v0.04
- v0.04-patch1, 46KB,
04/07/2003
- fix a possible deadlock at start-up on some systems.
- Patches for Sensorsim Package
- patch-sensorsim.tgz, 51KB, 01/18/2005
- include a localization protocol and a directed diffusion protocol.
- Class additions and modification are found at here.
- Patches for J-Sim v1.3
- v1.3-patch4, 348KB, 07/05/2006,
includes previous patches, change log
- v1.3-patch3,
207KB, 05/14/2004,
includes previous patches
- drcl.comp.lib.bytestream.ByteStreamPeer: added sendWait(), recvWait(),
sendNotify() and recvNotify() for subclassing for non-simulation thread
- revised code for running real application in simulation threads,
this involved with many classes in different runtime packages:
- drcl.inet.socket.Launcher:
- added static Thread newThread(Runnable)
- added MyRunnable and started application in MyRunnable in simulation
thread
- drcl.inet.socket.JSimSocketImpl: added MyByteStreamPeer to handle
non-simulation thread
- drcl.comp.Task: added a new field "threadGroup"
- drcl.comp.TaskSpecial: added a constructor to accept ThreadGroup as
argument
- drcl.comp.TaskNotify: added a static MARK and assign this to every
instance's threadGroup; this way simulation thread's code of telling
special tasks becomes simple: just test if Task's threadGroup != null
- drcl.comp.ACARuntime: added a new addRunnableAt() to accept
ThreadGroup as argument
- drcl.comp.ARuntime:
- newThread() added ThreadGroup as argument
- added grabOne(ThreadGroup) and immediatelyStart(Task)
- drcl.comp.AWorkerThread: clean up run() and added code to handle
task whose threadGroup is not thread's
- drcl.sim.event.SESimulator:
- newThread() added ThreadGroup as argument
- added grabOne(ThreadGroup) and immediatelyStart(Task)
- drcl.sim.event.SEThread: clean up run() and added code to handle
task whose threadGroup is not thread's
- script/drcl/inet/socket/HelloServer.java: use
drcl.inet.socket.Launcher.newThread() instead of java.lang.Thread
- drcl.inet.contract.DatagramContract:
- add code to implement drcl.net.PacketWrapper and drcl.data.Countable
- updated script/drcl/inet/dvmrp/test_igmp.trace and script/drcl/inet/queue/*.trace
- drcl.inet.mac:
- NodePositionTracker, MobilityModel: added info()
- WirelessPhy: added setBandwidth() and more debug info to the case of
negative gap time; added getEnergyModel()
- NodeChannelContract, MacPhyContract: made Message implement
drcl.data.Countable so that raw bit rate can be collected by
TrafficMonitor
- drcl.inet.protocol.dv.DV:
- _updateNeighbors(): relax the condition on checking route entry to
be distributed by DV
- _routingUpdateHandler(): make it more strict the condition on
checking route entry to be handled by DV (only those created by DV can
be handled by DV later)
- fix a bug in drcl.inet.transport.TCPSink.recv(): may receive a
packet whose seq_ is smaller than rcv_nxt but it contains new bytes due
to retransmission of several small messages in one segment and some of
the messages have been received before
- fix a bug in drcl.comp.lib.bytestream.ByteStreamPeer.handle():
pendingReceive.buffer may be null if caller specifies a null byte array
to receive
- Classes are revised to be compatible with J2SDK1.5:
- drcl.comp: ARuntime, ForkManagerLocal
- drcl.comp.tool: ComponentTester, HistogramPlotter, Plotter
- drcl.inet.tool.routing_msp
- drcl.net.graph.ShortestPathTree
- drcl.net.traffic.tsCDSmooth
- drcl.sim.event.SESimulator
- drcl.intserv.Scheduler
- drcl.intserv.scheduler.admission_PTSP, admission_DCTS, scheduler_SP
- drcl.ruv.Dterm: added minimize() and restore()
- drcl.comp.tool.Plotter: added hide()/hideAll()
- drcl.net.traffic:
- TrafficSourceComponent.info(): add birthTime printout
- tsPacketTrain.info(String): add prefix_ in printout
- drcl.net.traffic.ts*: all TrafficSourceComponent's added
reschedule() to allow the parameters of a traffic source to be changed
online and the next packet (pakcet that has been scheduled) to be
rescheduled accordingly
- drcl.data: added XYDataInterface; made XYData implement it
- drcl.comp.tool: made Plotter and PlotPlan deal with XYDataInterface
- drcl.inet.socket.TCP_socket: add code to do exponential backoff for
SYN retransmissions
-
v1.3-patch2,
82KB, 03/16/2004,
enhancements and a correction over a fix in patch1 (includes patch1)
- drcl.inet.NodeBuilder.loadmap(): add back code to deal with the
option of using default "up" port by specifying "-" as port ID in the
node map
- drcl.comp.lib.bytestream:
- ByteStreamContract: added "STOP" command; also in
ByteStreamConstants
- ByteStreamPeer: interrupt sending when STOP command is received;
added DONT_THROW_EXCEPTION; enclose IO exception thrown in another IO
exception as cause to better locate where these exceptions occur.
- drcl.inet.transport.TCP: move state check from snd_packet() to
timeout(); according to RFC2988, rtxcur_init: changed from 6.0 to 3.0,
smallest rto (in rxt_timer()): changed from 2*t_grain to 1.0 second;
added set/getMaxRetransmissionsAllowed(): when max is reached, TCP sends
a STOP command 0 or negative for unlimited retrans.
- drcl.ruv: Term: added set/getMaxNumberOfLines() for max # of lines
that can be buffered in the terminal; default is 500 lines; Dterm: made
conform to the maxNumberOfLines property
- v1.3-patch1, 53KB, 03/05/2004,
adds a few enhancements and adjustments
- drcl.comp.lib.bytestream.ByteStreamPeer: added
getCurrentReceiveBufferOccupancy()
- drcl.inet.socket: added SocketListener to be notified of byte stream
receiving events; InetSocket: added registerListener(); SocketMaster:
added code for SocketListener callback
- drcl.inet.InetUtil
- added connectNeighbors()
- added traceRoute/traceRouteInObj(Node, Node, long) to allow route
tracing to nodes with multiple addresses
- drcl.inet.NodeBuilder.loadmap(): allow application to be connected
to an arbitrary (non-number) up port of the transport
- drcl.comp.Port._getPeers(): should include ancestor ports
- drcl.inet.TraceRT: remove synchronized call and add code to output
result through output@ port (asynchronously); bookkeep pending requests
in order to calculate pkt traversal time
- drcl.inet.TraceRTPkt: add incomingIf to addHop()
- drcl.inet.Node.traceRoute(): revised accordingly
- drcl.inet.core.PktDispatcher: add incomingIf to TraceRTPkt; for
TraceRTPkt, use the destination field as the source when sending back
response instead of the default node address
- Patches for J-Sim v1.2.1 (JavaSim v1.2.1)
- v1.2.1-patch10, 275KB, 01/14/2004, includes all previous patches
- drcl.inet.socket: (fixes over previous patch)
- TCP_socket: added a PRE_LISTEN state, deal with it for racing
between ACCEPT and SYN packet handling
- TCP_full: when setting up loop-back request and before entering
TCP_socket.dataArriveAtUpPort(), set TCP_socket's state to PRE_LISTEN
- drcl.inet.transport.TCP.info(): add code to deal with "state" out
of STATES's bound
- tested with script/drcl/inet/socket/sockettest4.tcl
- v1.2.1-patch9, 256KB, 11/21/2003, includes all previous patches
- drcl.inet.socket:
- SocketContract/SocketConstants: added LISTEN type and message
construct
- InetSocket/SocketMaster: implemented listen()
- TCP_full:
- HalfTCPKey added "forBuffer"; mapHalfTCP shared by halfTCP and
request buffer
- added setRequestBuffer(...), getRequestBuffer() and related code
to add request to the buffer
- loop back queued request when accept command arrives
- rewrite dataArriveDownPort() to include processing of looped-back
request
- use HashMap instead of Hashtable
- test script: script/drcl/inet/socket/sockettest4.tcl
- drcl.util.queue:
- added FiniteQueue, FiniteQueueImpl, FiniteFIFOQueue
- v1.2.1-patch8, 230KB, 10/16/2003, includes all previous patches
- drcl.net.graph.*: added readers for topologies in the Brite and
ALT formats.
- drcl.inet.InetUtil: added getAdjMatrixFromFile(String) to get
adjMatrix from a topology file
- v1.2.1-patch7, 223KB, 08/26/2003, includes all previous patches
- improved drcl.ruv:
- added TclGateway to access RUV with Tcl commands in other shell
environment such as ShellPython
- added WaitUntil(Shell, String) and modified wait_until in drcl.tcl
to use that, now wait_until has no restriction on whether it is
executed in nested commands
- modified Shell.eval() and alike so that they return Object instead
of String as results
- exception handling is rewrote with ShellEvalException; make Shell
throw appropriate exception when parsing/evaluation error occurs
- added StackTraceFilter (Shell implements) to make stack trace
print-out more compact and relevant
- fixed drcl.inet.InetUtil._setupInterfaceInfo(): modified to use
Port.getAncestors() instead of getPeers()
- v1.2.1-patch6, 32KB, 08/11/2003
- added drcl.data.NumberObj; modified IntObj, LongObj and DoubleObj
- added drcl.comp.tool.Countable,RunningAverage for calculating
running avg
- removed default Random in drcl.net.traffic.TrafficSourceComponent
and
added setSeed(seed) in reset(); subclasses are modified accordingly
including
tsExpOnOff, tsFixedPoints, tsParetoOnOff, tsPeakRate
- fixed a bug in TrafficAssistant where it didn't include package
name when
looking for matching traffic source component
- fixed a bug in drcl.inet.core.ni.DropTailPointopointNI where some
queue length
events were not reported through .q@ port
- added script/drcl/net/mm1.tcl, an example of M/M/1 queue
- v1.2.1-patch5, 34KB, 07/10/2003
(The two bugs below affect the applications that change component
connections at run time.)
- fix a bug in drcl.comp.Component._duplicateIn() and _duplicateOut()
where pclone_'s wires should be disconnected first in case wires exist
before
the duplicate operation.
- fix a bug in drcl.comp.Wire._removeInAll() and _removeOutAll()
that stops
from processing along the port linked list.
(The changes below enhance the APIs for getting port/connection
information)
- added drcl.comp.Component.isDirectlyRelatedTo(Component)
- drcl.comp.Port:
- extending the definition of a shadow port to any "ancestor"
component;
use it to check shadow connection
- several methods are revised: getPeers(), getInPeers(), getOutPeers(),
getShadows(), getInShadows(), getOutShadows()
- added getConceptualInPeers()
- added getAncestors(), getInAncestors(), getOutAncestors()
- drcl.comp.Wire: added getRealPorts(), getRealInPorts(),
getRealOutPorts(),
getShadowPorts(), getShadowInPorts(), getShadowOutPorts(),
getRealPortsExcept(), getShadowPortsExcept()
- v1.2.1-patch-applet, 450KB, 06/02/2003
- (experimental) fix in drcl.ruv.* and tcl.lang.* to make J-Sim
run in applets.
- v1.2.1-patch4, 57KB, 04/30/2003
- fix a bug in drcl.inet.protocol.ospf.OSPF which prevents
neighbor state's transition from "loading" to "full".
- v1.2.1-patch3, 49KB, 02/14/2003
- fix a bug in drcl.sim.event.SEThread.lock() which may cause
NullPointerException when Component.lock() is invoked
- fix a bug in drcl.inet.transport.TCPSink which fails TCP
connection when the receiving buffer is overflowed at the arrival of
last outstanding segment
- add drcl.util.scalar.LongSpace.getLongInterval(int)
- add drcl.util.scalar.IntSpace.getIntInterval(int)
-
v1.2.1-patch2, 28KB, 01/13/2003
-
fix drcl.inet.core.PktDispatcher's VIF checking
-
can be installed independently from v1.2.1-patch1.
-
v1.2.1-patch1, 24KB, 01/08/2003
-
fix minor cases where a disabled component may still be able to receive.
- Patches for J-Sim v1.2 (JavaSim v1.2)
~ END ~
|