NAME
pktSrc - Packet Source Object
SYNOPSIS
pktSrc prefix ?options?
DESCRIPTION
The pktSrc command creates a new packet source object, used
to transmit data using the cyclic-UDP protocl. For a
detailed description of the protocol, which is useful in
understanding the various configuration slots and how they
affect the behavior of the packet objects, see [Smith 94].
The name of the new object (which is created by appending a
unique suffix to prefix) is returned. This name is also the
name of a Tcl command that can be used with the following
options.
OPTIONS
object destroy
Destroys the packet source named object.
object configure ?-options?
Sets configuration parameters for the packet source named
object. Valid options are:
-state
The current state of object. It may be either
idle, sending, eoc, or partition, depending on
what the object is currently doing.
-cycleId
The number of the current cycle.
-pktSize
The size of the packets that the data is broken in
to for sending, in bytes.
-burstSize
Ideal size of each burst, in bytes. The packet
source will try to send this much data at each
burst, sleeping between bursts.
-maxBurstSize
The maximum amount of data to send in one burst,
in bytes. The packet source will always sleep
after sending this much data in one burst.
-targetDelayMsec
Target end-to-end delay between the packet source
and packet dest, in milliseconds.
-xpctdDrpRate
The expected percentage of UDP packets that will
be dropped on a scale of 0-255 where 0 = 0% and
255 = 100%.
-maxBW
The maximum bandwidth required, in bytes per
second.
-minBW
The minimum bandwidth required, in bytes per
second.
-skewMsec
Estimate of the skew between the clocks on the
sending and receiving machines, in milliseconds.
-ltBW
Long term estimate of the bandwidth available
between sender and receiever, in bytes per second.
-epochDuration
Duration of each epoch, in milliseconds.
-estBW
Estimated bandwidth available bewteen sender and
receiver, in bytes per second.
-dest
Where to find the corresponding packet dest object
to send the data to. This option, unlike the oth-
ers, takes two arguments, a hostname and a port
number.
-priorityGroup
Specifies the priority group this object is part
of. This is usually one of tk, audio, or video.
By default, an object is part of the tk priority
group.
object newCycle
Starts a new cycle. Any data from the previous cycle that
did not get through is discarded (the buffers are detached).
Any buffers added with the addBuffers command become part of
the new cycle which begins when startCycle is called.
object addBuffers scatter-buffer-list
Adds a list of scatter buffers to the active list of buffers
to be sent as part of the current cycle.
object startCycle
Starts sending the data that is part of the current cycle.
If object is already sending data, the command is ignored.
DATA PASSING
The packet source object obeys the CMT semantics for passing
data between objects. To summarize, you can set the output
function of another object to be the string @object.accept
where object is the name of a packet source object. Then
data produced by the other object will automatically be
handed to the packet source and send to the packet dest.
Essentially, the new cycle, add buffers, and start cycle
commands are all called immediately.
KEYWORDS
packet, network
SEE ALSO
pktSrc(l), buffer(l), cmt(l), cmwish(1), cmx(1)
REFERENCES
[Smith94] Brian C. Smith, "Implementation Techniques for
Continuous Media Systems and Applications," Ph. D. Disserta-
tion, University of California, Berkeley, CA., Sept 1994
AUTHORS
Andrew Swan (aswan@CS.Berkeley.EDU)
Brian Smith (bsmith@cs.cornell.edu)