32.3 Commands at a glance

Following is a list of commands used for multicast simulations:

set ns [new Simulator -mcast on]
This turns the multicast flag on for the the given simulation, at the time of creation of the simulator object.

ns_ multicast
This like the command above turns the multicast flag on.

ns_ multicast?
This returns true if multicast flag has been turned on for the simulation and returns false if multicast is not turned on.

$ns_ mrtproto mproto optional:nodelist
This command specifies the type of multicast protocol <mproto> to be used like DM, CtrMcast etc. As an additional argument, the list of nodes <nodelist> that will run an instance of detailed routing protocol (other than centralised mcast) can also be passed.

$ns_ mrtproto-iifs mproto node iifs
This command allows a finer control than mrtproto. Since multiple mcast protocols can be run at a node, this command specifies which mcast protocol <mproto> to run at which of the incoming interfaces given by <iifs> in the <node>.

Node allocaddr
This returns a new/unused multicast address that may be used to assign a multicast address to a group.

Node expandaddr
THIS COMMAND IS OBSOLETE NOW This command expands the address space from 16 bits to 30 bits. However this command has been replaced by "ns_ set-address-format-expanded".

$node_ join-group agent grp
This command is used when the <agent> at the node joins a particular group <grp>.

$node_ leave-group agent grp
This is used when the <agent> at the nodes decides to leave the group <grp>.

Internal methods:

$ns_ run-mcast
This command starts multicast routing at all nodes.

$ns_ clear-mcast
This stopd mcast routing at all nodes.

$node_ enable-mcast sim
This allows special mcast supporting mechanisms (like a mcast classifier) to be added to the mcast-enabled node. <sim> is the a handle to the simulator object.

In addition to the internal methods listed here there are other methods specific to protocols like centralized mcast (CtrMcast), dense mode (DM), shared tree mode (ST) or bi-directional shared tree mode (BST), Node and Link class methods and NetworkInterface and Multicast classifier methods specific to multicast routing. All mcast related files may be found under ns/tcl/mcast directory.
Centralised Multicast
A handle to the CtrMcastComp object is returned when the protocol is specified as `CtrMcast' in mrtproto. Ctrmcast methods are:

$ctrmcastcomp switch-treetype group-addr
Switch from the Rendezvous Point rooted shared tree to source-specific trees for the group specified by group-addr. Note that this method cannot be used to switch from source-specific trees back to a shared tree for a multicast group.

$ctrmcastcomp set_c_rp node-list
This sets the RPs.

$ctrmcastcomp set_c_bsr node0:0 node1:1
This sets the BSR, specified as list of node:priority.

$ctrmcastcomp get_c_rp node group
Returns the RP for the group as seen by the node node for the multicast group with address group-addr. Note that different nodes may see different RPs for the group if the network is partitioned as the nodes might be in different partitions.

$ctrmcastcomp get_c_bsr node
Returns the current BSR for the group.

$ctrmcastcomp compute-mroutes
This recomputes multicast routes in the event of network dynamics or a change in unicast routes.

Dense Mode
The dense mode (DM) protocol can be run as PIM-DM (default) or DVMRP depending on the class variable CacheMissMode. There are no methods specific to this mcast protocol object. Class variables are:
PruneTimeout
Timeout value for prune state at nodes. defaults to 0.5sec.
CacheMissMode
Used to set PIM-DM or DVMRP type forwarding rules.

Shared Tree
There are no methods for this class. Variables are:
RP_
RP_ indexed by group determines which node is the RP for a particular group.

Bidirectional Shared Tree
There are no methods for this class. Variable is same as that of Shared Tree described above.

Tom Henderson 2014-12-17