Actions at the individual nodes

Following any change in the topology, the network dynamics models will first invoke []rtObject::intf-changed../ns-2/route-proto.tclrtObject:;intf-changed at each of the affected nodes. For each of the unicast routing protocols operating at that node, []rtObject::intf-changed will invoke each individual protocol's instance procedure, []intf-changed, followed by that protocol's []compute-routes.

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