After each protocol has computed its individual routes []rtObject::intf-changed invokes []compute-routes to possibly install new routes. If new routes were installed in the node, []rtObject::compute-routes will invoke []send-updates for each of the protocols operating at the node. The procedure will also flag the multicast route object../ns-2/route-proto.tclrtObject::flag-multicast of the route changes at the node, indicating the number of changes that have been executed. []rtObject::flag-multicast will, in turn, notify the multicast route object to take appropriate action.
The one exception to the interface between unicast and multicast routing is the interaction between dynamic dense mode multicast and detailed unicast routing. This dynamicDM implementation in ns assumes neighbor nodes will send an implicit update whenever their routes change, without actually sending the update. It then uses this implicit information to compute appropriate parent-child relationships for the multicast spanning trees. Therefore, detailed unicast routing will invoke rtObject_ flag-multicast 1 whenever it receives a route update as well, even if that update does not result in any change in its own routing tables.
Tom Henderson 2011-11-05