Subject: RE: [Ipoverib] Bit number of IP address in MGID

From: "Larsen, Roy K" <[email-masked]>
Date: Tue, 5 Feb 2002 10:39:45 -0800

Koji,

For Linux, this is not problem.  The upper layer software is link device
independent.  When a link specific operation needs to be performed, like
mapping a multicast address to a link multicast filter, it performs a
switch-case on the link device type.

So, for IPv4, there is a arp_mc_map() function which contains a switch-case
that is currently sensitive to Ethernet, FDDI, IEEE802, and Token Ring.  To
fit into this infrastructure, I'll need to add a case for IPoIB.  I grant
you that this does require a source code change, but the source is freely
available and the infrastructure is setup to add new link types.  We'll be
working with the Linux community to accept IBA as a supported link in future
Linux releases.

I thought DLPI was also link independent.  Why is passing in an Ethernet
address?  Can SVR4/Solaris only support Ethernet link types?

Roy

-----Original Message-----
From: [email-masked] [mailto:[email-masked]]
Sent: Monday, February 04, 2002 6:54 PM
To: [email-masked]
Subject: [Ipoverib] Bit number of IP address in MGID

I want to change the bit number of IP multicast address included in MGID.
My proposal is written at the last of this mail.

Vivek and Jerry state the following in
draft-ietf-ipoib-link-multicast-00.txt.
----From draft-ietf-ipoib-link-multicast-00.txt ----
   |   8    |  4 |  4 |     16 bits     | 16 bits |      80 bits       |
   +------ -+----+----+-----------------+---------+--------------------+
   |11111111|0001|scop|<IPoIB signature>|< P_Key >|      group ID      |
   +--------+----+----+-----------------+---------+--------------------+
             :
             :
   An IP multicast address is used together with a given IPoIB link
   P_Key to form the MGID of the IB multicast group. For IPv6 the lower
   80-bit of the group ID is used directly in the lower 80-bit of the
   MGID. For IPv4, the group ID is only 28-bit long and the rest of the
   80 bits are filled with 0.
----

On the other hand, in the world of SVR4 UNIX,
we follow the following standard.
   Open Group Technical Standard Data Link Provider Interface(DLPI), 
   Version 2, January 2000

And the DLPI driver has to create multicast group 
when it accepts DL_ENABMULTI_REQ from the upper-layer. 

In Solaris, the address passed by DL_ENABMULTI_REQ is 
Ethernet multicast address.

About the Ethernet multicast address for IPv6, RFC2464 says the following.
----From RFC2464 ----
    An IPv6 packet with a multicast destination address DST, consisting
    of the sixteen octets DST[1] through DST[16], is transmitted to the
    Ethernet multicast address whose first two octets are the value 3333
    hexadecimal and whose last four octets are the last four octets of
    DST.
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |0 0 1 1 0 0 1 1|0 0 1 1 0 0 1 1|
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |   DST[13]     |   DST[14]     |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                  |   DST[15]     |   DST[16]     |
                  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
----

About the Ethernet multicast address for IPv4, RFC1112 says the following.
----From RFC1112 ----
    An IP host group address is mapped to an Ethernet multicast address
    by placing the low-order 23-bits of the IP address into the low-order
    23 bits of the Ethernet multicast address 01-00-5E-00-00-00 (hex).
----

So the DLPI driver in Solaris can get only
the lower 32-bit of the multicast IPv6 address and
the lower 23-bit of the multicast IPv4 address.

Does the other OS have the same problem ?

Would you change of the bit number of IP multicast address 
included in MGID as follows to solve the above problem ?
  (IPv6)  80-bit --> 32-bit
  (IPv4)  28-bit --> 23-bit
_______________________________________________________________
Koji Takahara  Email: [email-masked]
Development Dept.5,  Infrastructure Systems division,
Computer Group, Fujitsu Limitted

_______________________________________________
IPoverIB mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ipoverib

_______________________________________________
IPoverIB mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ipoverib

---

From: [email-masked] (Koji Takahara)
Date: Wed, 6 Feb 2002 15:43:44 +0900 (JST)

Vivek, Roy,

What is the merit of 80bits for IPv6 and 28bits for IPv4 ? 
I think 32bits for IPv6 and 23bits for IPv4 are enough. 

If we use 32bits for IPv6 and 23bits for IPv4,
the lower bits of the multicast address which are used by ipoib driver
become compatible with Ethernet.
I think if an interface can be compatible with the current one,
it is better to be so.

Koji

> Koji,
> 
>         DL_ENABMULTI_REQ primitive includes the multicast address
>         length. Your implementation needs to be modified as needed for
>         the IPoIB link.
> 
>         As far as I know the complete multicast address (and therefore
>         dependent on the link) needs to be passed to the driver. So
>         reducing the number of the bits in the mapping really has no
>         effect anyway.
> 
> Vivek