#
# $XORP: xorp/mld6igmp/TODO,v 1.20 2007/03/14 01:52:03 pavlin Exp $
#

* Implement RFC 3590 "Source Address Selection for the
  Multicast Listener Discovery (MLD) Protocol".

* Implement graceful stopping of node and/or a vif. I.e., perform
  protocol-related operations to inform other nodes that
  this node/vif is stopping operations (if there are such operations).

* Add vif manager config similar to PIM.

* Add Mld6igmpConfig class to Mld6igmpNode.

* Add Mld6igmpNode::pending_down() and Mld6igmpVif::pending_down()
  similar to PIM.

* When a protocol registers with MLD6IGMP, that protocol should try
  periodically the registration if MLD6IGMP has not been started yet
  (applies to PIM as well).
  Similarly, protocols that register with MFEA should retry the
  registration if the MFEA is not UP yet (applies to MLD6IGMP, PIM)

* When adding a protocol (for membership info), the return messages
  should use vif_name instead of vif_index. Also, check that
  in add/delete_protocol, the vif_name and vif_index match.
  Similar match check should be applied for all XRLs in MFEA, MLD6IGMP and PIM

* The "State" in "show igmp interface" should be "Up/Down" instead
  of "UP/DOWN" ?? (for consistency with Juniper??)

* Change all (Foo *)casting to static_cast<>

* Replace all proto_family with family ?
  (in all mcast-related directories)

* The return XrlCmdError values in mld6igmp_proto_access.hh are probably
  bogus.

* Initialize/setup mld6igmp_vif::vif_index() and vif_name().

* Instead of using Join/Prune in the context of IGMP/MLD6, use
  Join/Leave instead?

* The IGMP spec must say that the Group Address in Membership Report
  and Leave Group messages must be a valid multicast address.

* In mld6igmp_recv(), if the mld6igmp_vif interface is NULL, e.g.
  the interface is not configured, then print a warning or at least a message??
  Currently, the program will crash (XLOG_UNREACHABLE()).
