>>>>> On Thu, 11 Apr 2002 18:26:32 +0200 (CEST), 
>>>>> Erik Nordmark <[EMAIL PROTECTED]> said:

> Is there a middle ground where the API can be made more clear
> than using "-1" without having to replace IPV6_USE_MIN_MTU?

> We already have IPV6_option and IPV6_MULTICAST_option in some cases.
> Thus would it make sense to 
>  1) declare the IPV6_USE_MIN_MTU only applies to unicast.
>  2) define a new IPV6_MULTICAST_USE_MIN_MTU whose default would be "true".

This is essentially the same idea of the original proposal...the
problem of this approach is that programmers would wonder "why
does IPV6_USE_MIN_MTU not contain "UNICAST" but the use of it is
limited to unicast?".  I don't think this makes the API "more clear".
Either way we'll need to describe the background and its limitation
clearly, and if so, I'd prefer to keep the number of options.

Actually I can make a compromise with either approach *if we can make
a quick consensus*.  To make the approach I proposed clearer, I've
attached concrete text for the revised version of IPV6_USE_MIN_MTU
according to my proposal.  If we can live with this (though you may
prefer the other one), please let us go.

Thanks,

                                        JINMEI, Tatuya
                                        Communication Platform Lab.
                                        Corporate R&D Center, Toshiba Corp.
                                        [EMAIL PROTECTED]

===
 11.1.  Sending with the Minimum MTU

   Unicast applications should usually let the kernel to perform path
   MTU discovery, as long as the kernel support it, and should not
   care about the path MTU.  Some applications, however, might not
   want to incur the overhead of path MTU discovery, especially if the
   applications only send a single datagram to a destination.  A
   potential example is a DNS server.

   Also, path MTU discovery for multicast has severe scalability
   limitations and should thus be avoided.

   This specification defines a mechanism to avoid path MTU discovery by
   sending at the minimum IPv6 MTU [RFC-2460].  If the packet is larger
   than the minimum MTU and this feature has been enabled the IP layer
   will fragment to the minimum MTU.  To control the policy about path
   MTU discovery, applications can use the IPV6_USE_MIN_MTU socket
   option.

   As described above, the default policy should depend on whether the
   destination is unicast or multicast.  For unicast destinations path
   MTU discovery should be performed by default.  For multicast
   destinations path MTU discovery should be disabled by default.
   This option thus takes the following three types of integer
   arguments,

     x == -1: use kernel default.  That is, perform path MTU discovery
              for unicast, and disable it for multicast.
     x ==  0: always perform path MTU discovery.
     x >=  1: always disable path MTU discovery and send packets at
              the minimum MTU.
     (values less than -1 are invalid.)

   For example, if a unicast application intentionally wants to
   disable path MTU discovery, it will add the following lines:

       int  on = 1;
       setsockopt(fd, IPPROTO_IPV6, IPV6_USE_MIN_MTU, &on, sizeof(on));

   This option can also be sent as ancillary data.  In the cmsghdr
   structure containing this ancillary data, the cmsg_level member
   will be IPPROTO_IPV6, the cmsg_type member will be
   IPV6_USE_MIN_MTU, and the first byte of cmsg_data[] will be the
   first byte of the integer.
--------------------------------------------------------------------
IETF IPng Working Group Mailing List
IPng Home Page:                      http://playground.sun.com/ipng
FTP archive:                      ftp://playground.sun.com/pub/ipng
Direct all administrative requests to [EMAIL PROTECTED]
--------------------------------------------------------------------

Reply via email to