Centralized Multicast

The centralized multicast is a sparse mode implementation of multicast similar to PIM-SM [9]. A Rendezvous Point (RP) rooted shared tree is built for a multicast group. The actual sending of prune, join messages etc. to set up state at the nodes is not simulated. A centralized computation agent is used to compute the forwarding trees and set up multicast forwarding state, S, G at the relevant nodes as new receivers join a group. Data packets from the senders to a group are unicast to the RP. Note that data packets from the senders are unicast to the RP even if there are no receivers for the group.

The method of enabling centralised multicast routing in a simulation is:

        set mproto CtrMcast    # set multicast protocol;
        set mrthandle [$ns mrtproto $mproto]
The command procedure []mrtproto returns a handle to the multicast protocol object. This handle can be used to control the RP and the boot-strap-router (BSR), switch tree-types for a particular group, from shared trees to source specific trees, and recompute multicast routes.
        $mrthandle set_c_rp $node0 $node1          # set the RPs;
        $mrthandle set_c_bsr $node0:0 $node1:1     # set the BSR, specified as list of node:priority;

        $mrthandle get_c_rp $node0 $group          # get the current RP ???;
        $mrthandle get_c_bsr $node0                # get the current BSR;

        $mrthandle switch-treetype $group         # to source specific or shared tree;

        $mrthandle compute-mroutes       # recompute routes. usually invoked automatically as needed;

Note that whenever network dynamics occur or unicast routing changes, []compute-mroutes could be invoked to recompute the multicast routes. The instantaneous re-computation feature of centralised algorithms may result in causality violations during the transient periods.

Tom Henderson 2011-11-05