INTERNET DRAFT                                                 S. Biswas
IDMR Working Group                                               B. Cain
draft-ietf-idmr-igmp-mrdisc-00.txt                            March 1998
                                                  Expires September 1998



                     IGMP Multicast Router Discovery
                   <draft-ietf-idmr-igmp-mrdisc-00.txt>


   Status of this Memo

   This document is an Internet-Draft. Internet-Drafts are working
   documents of the Internet Engineering Task Force (IETF), its areas,
   and its working groups. Note that other groups may also distribute
   working documents as Internet-Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time. It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as `'work in progress.''

   To learn the current status of any Internet-Draft, please check the
   `'1id-abstracts.txt'' listing contained in the Internet-Drafts Shadow
   Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
   munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
   ftp.isi.edu (US West Coast).



                                Abstract

   Companies have been proposing "IGMP snooping" type schemes for
   layer-2 bridging devices.  A method for discovery multicast capable
   routers is necessary for these schemes.  An IGMP query message is
   inadequate for discoverying multicast routers as one querier is
   elected.  In order to "discover" multicast routers, we introduce
   two new types of IGMP messages: Multicast Router Advertisement and
   Multicast Router Solicitation.  These two messages can be used by
   any device which listens to IGMP to discovery multicast routers.













Expires September 1998                                         [Page 1]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

1.   Introduction

    Multicast router discovery messages are useful for discovering
    multicast capable routers.  This capability is useful in a layer-2
    bridging domain with "IGMP snooping" type of schemes.  By listening
    to multicast router discovery messages, layer-2 devices can
    determine where to send multicast source data and IGMP Host
    Membership Reports [RFC1112] [IGMPv2].  Multicast source data and
    IGMP Host Membership Reports must be received by all multicast
    routers on a segment.  Using IGMP Host Membership Queries to
    discover multicast routers is not useful because of query
    suppression in IGMP.

    Unlike ICMP router discovery messages [RFC1256], multicast router
    discovery advertisements should not be listened to by hosts.
    Hosts need not know the identity of multicast routers.

    The use of the multicast router advertisement is not precluded
    from being used for other purposes.  Extensible options have been
    included in the advertisement message for future enhancements.

    The following are justifications for inventing another router
    discovery protocol:

       1. Using ICMP router discovery is not an appropriate solution
          for multicast router discovery because: 1.) It may confuse
          hosts listening to ICMP router advertisements; unicast and
          multicast topologies may not be congruent.  2.) It is
          desirable to have advertisements sent to the all-multicast
          routers group address.  3.) There is no way to tell from a
          ICMP router advertisementif a router is running a multicast
          routing protocol.
       2. By making multicast router discovery messages extensible
          and sending messages to the all-routers group, future
          enhancements can be made.
       3. By inventing a generic IP layer message, multiple type of
          messages per link layer are not needed (i.e. including this
          functionality as part of IP is better than inventing N
          discovery protocols for N layer-2 technologies).

1.1  Protocol Overview

    IGMP Multicast Router Discovery consists of two messages for
    discovering multicast routers.  The Multicast Router Advertisement
    is sent by routers to advertise IP multicast forwarding enabled
    on an interface.  The Multicast Router Solicitation is used by
    routers to solicit Multicast Router Advertisements.

    Multicast routers send Multicast Router Advertisements (hereafter
    called advertisements) periodically on all interfaces on which
    multicast forwarding is enabled.  These messages are sent to the
    All-Routers multicast group.

Expires September 1998                                         [Page 2]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

    Multicast Router Advertisements are also sent in response to
    Multicast Router Solicitations (hereafter called solicitations).
    These are sent to solicit a response of Multicast Router
    Advertisements from all multicast routers.  Solicitations are sent
    to the All-Routers multicast group.

    Multicast Router Solicitations are sent whenever a router wishes
    to discover multicast routers on a directly attached subnet.
    Solicitations are sent to the All-Routers multicast group.

    All IGMP Multicast Router Discovery messages are sent with an
    IP TLL of 1 and contain the IP Router Alert Option [RFC2113] in
    their IP header.


2.   Multicast Router Advertisement

2.1  Overview

    Multicast Router Advertisements are sent periodically on all router
    interfaces on which multicast forwarding is enabled.  They are also
    sent in response to Multicast Router Solicitations.

    Router advertisements are sent upon expiration of a periodic
    timer, when a router starts up, and when a router interface (that
    has IP multicast forwarding enabled) initializes/restarts.
    Advertisements are sent as IGMP messages to the All-Routers
    multicast address (224.0.0.2) and should be rate-limited.

    Router advertisements may contain any number of options.  Two
    options are defined in this document and MUST be supported by any
    implementation of IGMP multicast router discovery.  These options
    are described in Section 5.  Additional options may be defined as
    needed by future work.

2.2  IP Header Fields

2.2.1  Source Address

    An IP address belonging to the interface from which this message is
    sent.  If multiple source addresses are configured on an interface,
    then the one chosen is implementation dependent.

2.2.1  Destination Address

    Router Advertisements are sent to the All-Routers multicast
    address (224.0.0.2).

2.2.2  Time-to-Live

    The Time-to-Live field MUST be 1.

Expires September 1998                                         [Page 3]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

2.2.3  Protocol

    The protocol field is set to IGMP (2).

2.3  Multicast Router Advertisement Message Format

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      | Ad. Interval  |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Unused            |     Number of Options (N)     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Option [1] (TLV encoded)                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Option [...] (TLV encoded)              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                       Option [N] (TLV encoded)                |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

2.3.1  Type Field

    The type field is set to 0x24.

2.3.2  Advertisement Interval

    This specifies the periodic time interval at which Multicast Router
    Advertisements are sent in units of seconds.  This value is set to
    the configured MaxAdvertisementInterval variable.

2.3.3  Checksum

    The 16-bit one's complement of the one's complement sum of the IGMP
    message, starting with the IGMP type.  For computing the checksum,
    the Checksum field is set to 0.

2.3.4  Number of Options (N)

    The number of options contained in the router advertisement. If no
    options are sent this field MUST be set to 0.

2.3.5  Option[1..N]

    Options are encoded as TLV in the following manner:

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |    Length     |           Value               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    If the Number of Options field is not zero, all options MUST be
    examined by a receiver.  No strict ordering of options is enforced.

Expires September 1998                                         [Page 4]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

    Type: Set to option type being advertised

    Length: Length in bytes of Value field

    Value: Option dependent value

2.4  Sending Multicast Router Advertisements

    Router Advertisements are sent when the following events occur:

      1.  When the a periodic advertisement interval timer expires.
          Note that it is not strictly periodic because the
          advertisement interval is a random number between
          MaxAdvertisementInterval and  MinAdvertisementInterval.
          (Default Value: 7-10 seconds).

      2.  After waiting for a random delay less than
          MaxInitialAdvertisementInterval when an interface first
          comes up, is (re)initialized, or IGMP Multicast Router
          Discovery is enabled.  A router may send up to a maximum of
          MaxInitialAdvertisements advertisements, waiting for a random
          delay less than MaxInitialAdvertisementInterval between each
          successive advertisement.

          This is to prevent an implosion of router advertisements.  An
          example of this occuring would be when many routers are
          powered on at the same time.

      3.  When a solicitation is received, a router advertisement is
          sent in response with a random delay less than
          MAX_RESPONSE_DELAY.  If a solicitation is received while
          an advertisement is pending (because of a recent
          solicitation), that solicitation will be ignored.

    Whenever an advertisement is sent, the periodic advertisement
    interval timer may be reset.

2.5  Receiving Multicast Router Advertisements

    Upon receiving a router advertisement, routers will validate the
    message by the following criteria:

       1.  Verifying that the IGMP type is 0x24
       2.  Verifying the IGMP checksum
       3.  IP Destination Address = All-Routers multicast address

    A router advertisement not meeting the validity requirements will
    be silently discarded. Routers MUST process all options, discarding
    options that are not recognized.


Expires September 1998                                         [Page 5]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

    If a router advertisement is not received for a particular neighbor
    within NeighborDeadInterval time interval, then the neigbor is
    considered to be unreachable.

2.6  Multicast Router Advertisement Configuration Variables

    A router that implements multicast router discovery MUST allow for
    the following variables to be configured by system management;
    default values are specified so as to make it unnecessary to
    configure any of these variables in many cases.

    For each interface the following configurable variables are
    defined:

2.6.1  MaxAdvertisementInterval

    The maximum time allowed between sending router advertisements from
    the interface, in seconds. Must be no less than 4 seconds and no
    greater than 1800 seconds.

    Default: 600 seconds.

2.6.2  MinAdvertisementInterval

    The minimum time allowed between sending unsolicited router
    advertisements from the interface, in seconds. Must be no less
    than 3 seconds and no greater than MaxAdvertisementInterval.

    Default: 0.75 * MaxAdvertisementInterval

    Note: The default value will cause an the periodic interval to be
          set to a period of 450-600 seconds.

2.6.3  MaxInitialAdvertisementInterval

    The first router advertisement out of an interface is sent after
    waiting for a random interval less than this variable. This will
    prevent a flood of router advertisements when many routers start up
    at the same time.

    Default: 10 seconds

2.6.4  MaxInitialAdvertisement

    The maximum number of router advertisements that will be sent
    per event sending event.

    Default: 3


Expires September 1998                                         [Page 6]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

2.6.5  NeighborDeadInterval

    The maximum time allowed before declaring that a neighbor can
    can be declared "dead".  This variable is defined in seconds.
    In order for all routers to have a consistent state, it is
    necessary for the MaxAdvertisementInterval to be configured the
    same on all routers per subnet.

    Default: 3 * MaxAdvertisementInterval


3.   Multicast Router Solicitation

3.1  Overview

    Multicast Router Solitications are used to solicit Multicast Router
    Advertisements.  These messages are used when a router (or other
    device) wishes to discover multicast routers.  Upon receiving a
    solicitation on an interface with IP multicast forwarding enabled,
    router will respond with an advertisement.

    Router solicitations may be sent when a router starts up, when
    a router interface (re)initializes, or when IGMP Multicast Router
    Discovery is enabled.  Solicitations are sent as IGMP messages to
    the All-Routers multicast address (224.0.0.2) and should be
    rate-limited.

3.2  IP Header Fields

3.2.1  Source Address

    An IP address belonging to the interface from which this message is
    sent.  If multiple source addresses are configured on an interface,
    then the one chosen is implementation dependent.

3.2.2  Destination Address

    Solicitation messages are sent to the All-Routers multicast
    address (224.0.0.2).

3.2.3  Time-to-Live

    The time-to-live field MUST be 1.

3.2.4  Protocol

    The protocol field is set to IGMP (2).




Expires September 1998                                         [Page 7]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

3.3  Multicast Router Solicitation Message Format

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |     Type      |   Reserved    |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

3.3.1  Type Field

    The type field is set to 0x25.

3.3.2  Reserved Field

    Sent as 0; ignored on reception.

3.3.3  Checksum

    The 16-bit one's complement of the one's complement sum of the IGMP
    message, starting with the IGMP type.  For computing the checksum,
    the Checksum field is set to 0.

3.4  Sending Multicast Router Solicitations

    Router solicitations are sent when the following events occur:

      1.  After waiting for a random delay less than
          SOLICITATION_INTERVAL when an interface first comes up, is
          (re)initialized, or IGMP Multicast Router Discovery is
          enabled.  A router may send up to a maximum of
          MAX_SOLICITATIONS, waiting for a random delay less than
          SOLICITATION_INTERVAL between each successive solicitation.
      2.  Optionally, for an implementation specific event.
          Solicitations MUST be rate-limited; no more than
          MAX_SOLICITATIONS MUST be sent in SOLICITATION_INTERVAL
          seconds.

3.5  Receiving Multicast Router Solicitations

    Upon receiving a router solicitation, routers will validate the
    message by:

       1.  Verifying that the IGMP type is 0x25
       2.  Verifying the IGMP checksum
       3.  IP Destination Address = All-Routers multicast address

   A router solicitation not meeting the validity requirements will be
   silently discarded.




Expires September 1998                                         [Page 8]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

3.6  Multicast Router Solicitation Configuration Variables

   There are no configurable variables with respect to router
   solicitations.


4.   Multicast Router Discovery Protocol Constants

   MAX_INITIAL_ADVERT_INTERVAL          10 seconds

   MAX_INITIAL_ADVERTISEMENTS           3 transmissions

   MAX_RESPONSE_DELAY                   2 seconds

   MAX_SOLICITATION_DELAY               1 second

   SOLICITATION_INTERVAL                3 seconds

   MAX_SOLICITATIONS                    3 transmissions


5.   Mandatory Advertisement Options

5.1  Overview of Options

    The following options MUST be supported by an implementation of
    IGMP Multicast Router Disovery: Query Interval Advertisement
    Option and Robustness Variable Advertisement Option.  These options
    advertise specific IGMP variables and are sent in an advertisement
    depending on the version of IGMP enabled on an interface.  Although
    no requirements exist for multicast routers at this time, it is
    assumed that all multicast routers support the IGMP protocol.

5.1  Query Interval Advertisement Option

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type=1      |  Length=2     |      IGMP Query Interval      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    If a multicast router has any version of IGMP [RFC1112] enabled on
    an interface on which IGMP Multicast Router Discovery is also
    enabled, it MUST send all advertisements with the Query Interval
    Advertisement Option.  This option contains the IGMP "Query
    Interval" configured on the interface on which advertisements are
    sent.

    This option is sent regardless of whether the router is currently
    the IGMP querier for the subnet.  This option is sent regardless of
    what version of IGMP the router is running.

Expires September 1998                                         [Page 9]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

    IGMP Query Interval field is equal (in seconds) to the configured
    IGMP "query interval" on the interface from which the advertisement
    was sent.

5.2  Robustness Variable Advertisement Option

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Type=2      |  Length=2     |     Robustness Variable       |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    If a multicast router has IGMPv2 [IGMPv2] or IGMPv3 [IGMPv3]
    enabled on an interface on which IGMP Multicast Router Discovery
    is also enabled, it MUST send all advertisements with the
    Robustness Variable Advertisement Option.  This option contains
    the IGMP "Robustness Variable" configured on the interface on
    which advertisements are sent.

    This option is sent regardless of whether the router is currently
    the IGMP querier for the subnet.  This option may be omitted if
    IGMPv1 is enabled on the interface.

    Robustness Variable is an integer which MUST not be zero [IGMPv2]
    and is equal to the IGMPv2 robustness variable.


6.   Acknowledgements

    ICMP Router Discovery [RFC1256] was used as a general model for
    IGMP Multicast Router Discovery.


7.   References

[RFC1256]  Deering, S., "ICMP Router Discovery Messages", RFC 1256,
           September 1991.

[RFC1112]  Deering, S., "Host Extensions for IP Multicasting", RFC 1112,
           August 1989.

[IGMPv2]   Fenner, W., "Internet Group Management Protocol, Version 2",
           Internet-Draft, November 1997.

[IGMPv3]   Cain, B., Deering, S., Thyagarajan, A., "Internet Group
           Management Protocol, Version 3", Internet-Draft, November
           1997.

[RFC2113]  Katz, D., "IP Router Alert Option," RFC 2113, April 1996.


Expires September 1998                                         [Page 10]


INTERNET-DRAFT        IGMP Multicast Router Discovery        March 1998

8.   Authors' Addresses

    Shantam Biswas
    Bay Networks
    600 Technology Park Drive
    Billerica, MA 01821
    EMail: sbiswas@baynetworks.com
    Phone: 1-978-916-8048

    Brad Cain
    Bay Networks
    3 Federal Street
    Billerica, MA 01821
    EMail: bcain@baynetworks.com
    Phone: 1-978-916-1316





































Expires September 1998                                         [Page 11]