6.4 Commands at a glance
Following is a list of common link commands used in simulation scripts:
$ns_ simplex-link node1 node2 bw delay qtype args
This command creates an unidirectional link between node1 and node2 with
specified bandwidth (BW) and delay characteristics. The link uses a queue
type of <qtype> and depending on the queue type different arguments are
passed through <args>.
$ns_ duplex-link node1 node2 bw delay qtype args
This creates a bi-directional link between node1 and node2. This procedure
essentially creates a duplex-link from two simplex links, one from node1
to node2 and the other from node2 to node1. The syntax for duplex-link is
same as that of simplex-link described above.
$ns_ duplex-intserv-link n1 n2 bw dly sched signal adc args
This creates a duplex-link between n1 and n2 with queue type of intserv, with
specified BW and delay. This type of queue implements a scheduler with two
level services priority. The type of intserv queue is given by <sched>, with
admission control unit type of <adc> and signal module of type <signal>.
$ns_ simplex-link-op n1 n2 op args
This is used to set attributes for a simplex link. The attributes may be
the orientation, color, label, or queue-position.
$ns_ duplex-link-op n1 n2 op args
This command is used to set link attributes (like orientation of the links,
color, label, or queue-position) for duplex links.
$ns_ link-lossmodel lossobj from to
This function generates losses (using the loss model <lossobj> inserted in
the link between <from> node and <to> node) in the link that can be
visualized by nam.
$ns_ lossmodel lossobj from to
This is used to insert a loss module in regular links.
Following is a list of internal link-related procedures:
$ns_ register-nam-linkconfig link
This is an internal procedure used by "$link orient" to
register/update the order in which links should be created in nam.
$ns_ remove-nam-linkconfig id1 id2
This procedure is used to remove any duplicate links (duplicate links may be
created by GT-ITM topology generator).
Returns the instance variable head_ for the link. The head_ is
the entry pont to the link and it points to the first object in the link.
$link add-to-head connector
This allows the <connector> object to be now pointed by the head_
element in the link, i.e, <connector> now becomes the first object in the
Returns the instance variable link_. The link_ is the element
in the link that actually models the link in terms of delay and bandwidth
characteristics of the link.
Returns the instance variable queue_. queue_ is queue element
in the link. There may be one or more queue elements in a particular link.
$link cost c
This sets a link cost of <c>.
Returns the cost value for the link. Default cost of link is set to 1.
Returns the network interfaces associated with the link (for multicast routing).
This sets the link status to "up". This command is a part of network
dynamics support in ns.
Similar to up, this command marks the link status as "down".
Returns the link status. The status is always "up" as default, if link
dynamics is not enabled.
$link all-connectors op
This command applies the specified operation <op> to all connectors in the
link. Like, $link all-connectors reset or
$link all-connectors isDynamic.
$link install-error errmodel
This installs an error module after the link_ element.
In addition to the Link and link-related commands listed above, there are
other procedures to support the specific requirements of different types of
links derived from the base class "Link" like simple-link (SimpleLink),
integrated service (IntServLink), class-based queue (CBQLink), fair queue
(FQLink) and procedures to support multicast routing, sessionsim, nam etc.
These and the above procedures may be found in ns/tcl/lib(ns-lib.tcl,
ns-link.tcl, ns-intserv.tcl, ns-namsupp.tcl, ns-queue.tcl),