>>>>> On Fri, 17 Nov 2000 16:28:00 -0800 (PST), 
>>>>> Erik Nordmark <[EMAIL PROTECTED]> said:

> This is what I've edited together so far.

Thanks for the quick revise. Here are some comments:

> 11.2.  Sending without fragmentation

We might have to clarify what happens if the application disables
fragmentation, but sends a larger packet than the MTU of the outgoing
interface. For example, just return an EMSGSIZE error, return an
IPV6_PATHMTU ancillary data item (if the application sets
IPV6_RECVPATHMTU beforehand), or both...

> 11.3.  Path MTU Discovery and UDP

>    UDP and raw socket applications need to be able to  determine the
>    "maximum send transport-message size" (Section 5.1 of [RFC-1981]) to
>    a given destination so that those applications can participate in
>    path MTU discovery.  This lets those applications send smaller
>    datagrams to the destination, avoiding fragmentation.

>    This is accomplished using a new ancillary data item (IPV6_PATHMTU)
>    which is delivered to recvmsg() without any actual data.  The
>    application enable the receipt of IPV6_PATHMTU ancillary data items
>    by enabing IPV6_RECVPATHMTU.

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

>    By default, this socket option is disabled.  Setting the value to 0
>    also disables the option.

>    When the application is sending packets too big for the path MTU
>    recvmsg will return zero (indicating no data) but there will be a
>    cmsghdr with cmsg_type set to IPV6_PATHMTU, and cmsg_len will
>    indicate that cmsg_data is 4 bytes long.  CMSG_DATA will point to a

Now we define and use struct ip6_mtuinfo, thus the size of cmsg_data
is not 4 bytes, but (at least) sizeof(struct ip6_mtuinfo).

>    struct ip6_ carrying the path MTU to use together with the IPv6

"mtuinfo" is missed after "ip6_".

>    destination address.

>        struct ip6_mtuinfo {
>          struct sockaddr_in6 ip6m_addr;    /* dst IPv6 address including scope
> */
>          unsigned int        ip6m_mtu;     /* path MTU in host byte order */

Is "unsigned int" appropriate here (I'm just wondering, not sure on
this)?

>        };

And, as I said in a pervious message, the draft should clearly state
that this ancillary data should be passed to every socket that wants,
even if the socket is non-connected. I'd propsose the following
paragraph to be added.

   This cmsghdr will be passed to every socket that sets the
   IPV6_RECVPATHMTU socket option, even if the socket is
   non-connected. Note that this also means an application that sets
   the option may get the ancillary data upon a too big message sent
   from other applications to the same destination. An implementation
   may skip to deliver the data to sockets that connect a different
   foreign address from the destination address of the corresponding
   ip6_mtuinfo strucutre.

This is based on the behavior of our implementation, but I don't stick
to minor details (e.g. the last sentence).

>    XXX What about more complex paths e.g. when using a routing header?

How about the following text?

  When an application sends packet with a routing header, the final
  destination stored in the ip6m_addr member does not necessarily
  contain complete information of the entire path. Thus, an
  implementation may append an additional data structure after
  ip6_mtuinfo to tell the application precise information of the
  entire path. This definition of the additinaol structure is beyond
  the scope of this document.

                                        JINMEI, Tatuya
                                        Communication Platform Lab.
                                        Corporate R&D Center, Toshiba Corp.
                                        [EMAIL PROTECTED]
--------------------------------------------------------------------
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