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).
$link head
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
link.
$link link
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.
$link queue
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>.
$link cost?
Returns the cost value for the link. Default cost of link is set to 1.
$link if-label?
Returns the network interfaces associated with the link (for multicast routing).
$link up
This sets the link status to "up". This command is a part of network
dynamics support in ns.
$link down
Similar to up, this command marks the link status as "down".
$link up?
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),
ns/tcl/mcast/(McastMonitor.tcl, ns-mcast.tcl),
ns/tcl/session/session.tcl.
Tom Henderson
2011-11-05