31.2.3.2 Dense Mode

rX [group]join-group & sends graft messages upstream if S,G does not contain any active outgoing slots (, no downstream receivers). If the next hop towards the source is a LAN, icrements a counter of receivers for a particular group for the LAN
[group]leave-group & decrements LAN counters.
[srcID group iface]handle-cache-miss & depending on the value of CacheMissMode calls either handle-cache-miss-pimdm or handle-cache-miss-dvmrp.
[srcID group iface]handle-cache-miss-pimdm & if the packet was received on the correct iif (from the node that is the next hop towards the source), fan out the packet on all oifs except the oif that leads back to the next-hop-neighbor and oifs that are LANs for which this node is not a forwarder. Otherwise, if the interface was incorrect, send a prune back.
[srcID group iface]handle-cache-miss-dvmrp & fans out the packet only to nodes for which this node is a next hop towards the source (parent).
[replicator source group iface]drop & sends a prune message back to the previous hop.
[from source group iface]recv-prune & resets the prune timer if the interface had been pruned previously; otherwise, it starts the prune timer and disables the interface; furthermore, if the outgoing interface list becomes empty, it propagates the prune message upstream.
[from source group iface]recv-graft & cancels any existing prune timer, andre-enables the pruned interface. If the outgoing interface list was previously empty, it forwards the graft upstream.
[srcID group iface]handle-wrong-iif & This is invoked when the multicast classifier drops a packet because it arrived on the wrong interface, and invoked []new-group. This routine is invoked by []mrtObject instproc new-group. When invoked, it sends a prune message back to the source.

Tom Henderson 2011-11-05