class MMG


Inheritance:


Public Fields

MMG instvar ctrl_
MMG instvar debug_
MMG instvar env_
MMG instvar h_nlost
MMG instvar h_npkts
MMG instvar join_ts_
MMG instvar layer_
MMG instvar layers_
MMG instvar maxlevel_
MMG instvar pending_ts_
MMG instvar state_
MMG instvar subscription_
MMG instvar TD
MMG instvar TDVAR

Public Methods

MMG instproc add-layer {}
MMG instproc backoff n
MMG instproc backoff-one { n alpha }
MMG instproc check-equilibrium {}
MMG instproc current_layer_getting_packets {}
MMG instproc debug { msg }
MMG instproc drop-layer {}
MMG instproc dumpLevel {}
MMG instproc enter_D {}
MMG instproc enter_H {}
MMG instproc enter_M {}
MMG instproc exceed_loss_thresh {}
MMG instproc highest_level_pending {}
MMG instproc init { levels }
MMG instproc is-recent { ts }
MMG instproc level_pending n
MMG instproc level_recently_joined n
MMG instproc local-join {}
MMG instproc log-loss {}
MMG instproc mmg_loss {}
MMG instproc mmg_pkts {}
MMG instproc our_level_recently_added {}
MMG instproc pending_inferior_jexps {}
MMG instproc recv-ctrl msg
MMG instproc relax_TJ {}
MMG instproc rlm_update_D D
MMG instproc set-state s
MMG instproc set_TD_timer_conservative {}
MMG instproc set_TD_timer_wait {}
MMG instproc set_TJ_timer {}
MMG instproc trigger_TD {}
MMG instproc trigger_TJ {}

Documentation

The MMG (Multiple Multicast Groups) class implements the RLM protocol (Receiver-driven Layered Multicast). See <a href=http://www.cs.berkeley.edu/~mccanne/phd-work/>McCanne's thesis</a> for a detailed description of RLM.<p>

This class implements only the basic protocol machinery, it does not know anything about either ns or mash. MMG is an abstract class -- you should not instantiate it directly. Instead, to use RLM a subclass needs to be created that actually joins and leaves groups, makes upcalls on packet losses, etc...<p>

Two such subclasses are implemented at the moment, one for ns and one for mash. Note that since all code in the MMG base class is shared between ns and mash, you should not change anything in this file without being certain that the changes will work properly in both ns and mash.<p>

See documentation for the appropriate subclass (i.e., MMG/ns or MMG/mash) for details about RLM in different environments.

MMG instproc init { levels }

MMG instvar debug_

MMG instvar env_

MMG instvar maxlevel_

MMG instvar TD

MMG instvar TDVAR

MMG instvar state_

MMG instvar subscription_

MMG instvar layer_

MMG instvar layers_

MMG instproc set-state s

MMG instproc drop-layer {}

MMG instproc add-layer {}

MMG instproc current_layer_getting_packets {}

MMG instproc mmg_loss {}
return the amount of loss across all the groups of the given mmg

MMG instproc mmg_pkts {}
return the number of packets received across all the groups of the given mmg

MMG instproc check-equilibrium {}
XXX what is this for? deleted some code that didn't seem to be used...

MMG instproc backoff-one { n alpha }

MMG instproc backoff n

MMG instproc highest_level_pending {}

MMG instproc rlm_update_D D

MMG instproc exceed_loss_thresh {}

MMG instvar h_npkts

MMG instvar h_nlost

MMG instproc enter_M {}

MMG instproc enter_D {}

MMG instproc enter_H {}

MMG instproc log-loss {}

MMG instvar pending_ts_

MMG instproc relax_TJ {}

MMG instproc trigger_TD {}

MMG instproc set_TJ_timer {}

MMG instproc set_TD_timer_conservative {}

MMG instproc set_TD_timer_wait {}

MMG instproc is-recent { ts }
Return true iff the time given by $ts is recent enough such that any action taken since then is likely to influence the present or future

MMG instproc level_pending n

MMG instproc level_recently_joined n

MMG instvar join_ts_

MMG instproc pending_inferior_jexps {}

MMG instproc trigger_TJ {}
join the next higher layer when in /S

MMG instvar ctrl_

MMG instproc our_level_recently_added {}

MMG instproc recv-ctrl msg

MMG instproc local-join {}

MMG instproc debug { msg }

MMG instproc dumpLevel {}
XXX


Direct child classes:
MMG/ns

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

Adapted for the NS documentation page

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de