12.07.2015 Views

The ns Manual (formerly ns Notes and Documentation)1 - NM Lab at ...

The ns Manual (formerly ns Notes and Documentation)1 - NM Lab at ...

The ns Manual (formerly ns Notes and Documentation)1 - NM Lab at ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CtrMcastComp is the centralised multicast route comput<strong>at</strong>ion agent.reset-mroutes{}compute-mroutes{}compute-tree{source, group}compute-branch{source, group, member}prune-branch{source, group, member}resets all multicast forwarding entries.(re)computes all multicast forwarding entries.computes a multicast tree for one source to reach all the receivers in aspecific group.is executed when a receiver joi<strong>ns</strong> a multicast group. It could also beinvoked by compute-tree{} when it itself is recomputing the multicasttree, <strong>and</strong> has to reparent all receivers. <strong>The</strong> algorithm starts <strong>at</strong> thereceiver, recursively finding successive next hops, until it either reachesthe source or RP, or it reaches a node th<strong>at</strong> is already a part of the relevantmulticast tree. During the process, several new replic<strong>at</strong>ors <strong>and</strong> anoutgoing interface will be i<strong>ns</strong>talled.is similar to compute-branch{} except the outgoing interface is disabled;if the outgoing interface list is empty <strong>at</strong> th<strong>at</strong> node, it will walkup the multicast tree, pruning <strong>at</strong> each of the intermedi<strong>at</strong>e nodes, until itreaches a node th<strong>at</strong> has a non-empty outgoing interface list for the particularmulticast tree.De<strong>ns</strong>e Modejoin-group{group} sends graft messages upstream if 〈S,G〉 does not contain any activeoutgoing slots (i.e., no dow<strong>ns</strong>tream receivers). If the nexthop towards the source is a LAN, icrements a counter of receiversfor a particular group for the LANleave-group{group} decrements LAN counters.h<strong>and</strong>le-cache-miss{srcID group iface} depending on the value of CacheMissModecalls either h<strong>and</strong>le-cache-miss-pimdm orh<strong>and</strong>le-cache-miss-dvmrp.h<strong>and</strong>le-cache-miss-pimdm{srcID group iface} if the packet was received on the correct iif (from the node th<strong>at</strong>is the next hop towards the source), fan out the packet on all oifsexcept the oif th<strong>at</strong> leads back to the next–hop–neighbor <strong>and</strong> oifsth<strong>at</strong> are LANs for which this node is not a forwarder. Otherwise,if the interface was incorrect, send a prune back.h<strong>and</strong>le-cache-miss-dvmrp{srcID group iface} fa<strong>ns</strong> out the packet only to nodes for which this node is a nexthop towards the source (parent).drop{replic<strong>at</strong>or source group iface} sends a prune message back to the previous hop.recv-prune{from source group iface} resets the prune timer if the interface had been pruned previously;otherwise, it starts the prune timer <strong>and</strong> disables the interface; furthermore,if the outgoing interface list becomes empty, it propag<strong>at</strong>esthe prune message upstream.recv-graft{from source group iface} cancels any existing prune timer, <strong>and</strong>re-enables the pruned interface.If the outgoing interface list was previously empty, itforwards the graft upstream.h<strong>and</strong>le-wrong-iif{srcID group iface} This is invoked when the multicast classifier drops apacket because it arrived on the wrong interface, <strong>and</strong>invoked new-group{}. This routine is invoked bymrtObject i<strong>ns</strong>tproc new-group{}. When invoked, itsends a prune message back to the source.270

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!