Subject: mboned: definition of MSF APIs for -lite version

From: Hitoshi Asaeda <[email-masked]>
Date: Tue, 12 Sep 2006 12:17:08 +0900 (JST)

I'd like to take one more discussion, which is related to the
definition of MSF APIs for IGMPv3/MLDv2-lite version hosts.

Multicast Source Filter (MSF) APIs (RFC3678) defines (1) IPv4 Basic
MSF API, (2) IPv4 Advanced MSF API, (3) Protocol-Independent Basic MSF
API, and (4) Protocol-Independent Advanced MSF API.
Since IP_ADD(DROP)_MEMBERSHIP with setsockopt() is the most common
operation for join and leave an IPv4 multicast session, (1) should be
implemented with IGMPv3 on an SSM-capable receiver host. Regarding the
operation for an IPv6 multicast session, (3) should be implemented
with MLDv2.

On the other hand, the MSF Advanced APIs ((2) and (4)) are very
powerful for specifying interesting sessions, because they support to
specify multiple source addresss for a single session. Moreover,
an application using the MSF Advanced APIs can make any kind of
operation (e.g. filter mode change) without leaving the previously
joined channels.
However, the kernel implementation for the MSF Advanced APIs are
fairly tough. Furthermore, these Advanced APIs wouldn't be needed in
ordinary SSM applications, especially on top of dumb hosts.
And in fact, BSD (KAME) fully supports (1) to (4) and Linux has been
trying to implement all of them as well, yet I heard WinXP only
supports (1). I don't know about Vista. Maybe (1) and (3)?

According to my these thoughts, I'd like to propose clarification of
the following specification for an IGMPv3/MLDv2-lite version host:

  According to the Multicast Source Filter (MSF) APIs (RFC3678), an
  IGMPv3-lite version host should implement IPv4 Basic MSF API and an
  MLDv2-lite version host should implement Protocol-Independent Basic
  MSF. Other APIs, IPv4 Advanced MSF API and Protocol-Independent
  Advanced MSF API, are optional to implement in IGMPv3-lite and
  MLDv2-lite version host.

Any comments?
--
Hitoshi Asaeda
_______________________________________________________________
user interface: http://darkwing.uoregon.edu/~llynch/mboned.html
web archive:  http://darkwing.uoregon.edu/~llynch/mboned/