>So, I'd like to hear others' opinions. Is it a good idea to introduce
>IPV6_USEMTU (instead of IPV6_USE_MIN_MTU)?
I tried to come up with three scenarios, with different availability
of standards. hope it is correct.
discussion points would be:
- can we assume that the kernel will always fragment outgoing
datagrams? i believe there's no clear wording in spec so far.
i do remember there was some discussion in the past, about
if path MTU discovery works for UDP or not.
- IPV6_USE_MTU changes situation very little, while it require
certain amount of user code to take advantage of it. is it really
worthwhile?
- do we need to inform of new path MTU value, with IPV6_RECVPATHMTU?
(depends on the 2nd bullet)
itojun
in the world with IPV6_USE_MIN_MTU only:
- to avoid path MTU discovery, user application will use MTU of 1280, by
IPV6_USE_MIN_MTU.
- otherwise, kernel will automatically fragment the packet (it is assumed).
- for L4 without retransmit (UDP), user application needs to resend the packet.
however, there's no notification even when we need a retransmission.
in the world with IPV6_USE_MIN_MTU + IPV6_RECVPATHMTU:
- to avoid path MTU discovery, user application will use MTU of 1280, by
IPV6_USE_MIN_MTU.
- otherwise, kernel will automatically fragment the packet (it is assumed).
- for L4 without retransmit (UDP), user application needs to resend the packet.
with IPV6_RECVPATHMTU, user application can know when it needs to resend.
- do we need to include current path MTU information to IPV6_RECVPATHMTU?
it depends on application. (1) can use the information, (2) cannot.
(1) if the application can use arbitrary packet size, it can adapt to the
current path MTU, and try to use path MTU > 1280 effectively.
(2) if the applicaiton cannot use arbitrary packet size (like NFS/DNS), it
will need to rely upon kernel fragmentation, or need to fragment to 1280.
in the world with IPV6_USE_MIN_MTU + IPV6_RECVPATHMTU + IPV6_USE_MTU:
- to avoid path MTU discovery, user application will use MTU of 1280, by
IPV6_USE_MIN_MTU.
- otherwise, kernel will automatically fragment the packet. even if
the kernel does not fragment it, we can fragment it by IPV6_USE_MTU.
- for L4 without retransmit (UDP), user application needs to resend the packet.
with IPV6_RECVPATHMTU, user application can know when it needs to resend.
- do we need to include current path MTU information to IPV6_RECVPATHMTU?
it depends on application. (1) and (2c) can take advantage of it, others
cannot.
(1) if the application can use arbitrary packet size, it can adapt to the
current path MTU, and try to use path MTU > 1280 effectively.
(2) if the applicaiton cannot use arbitrary packet size (like NFS/DNS), it
has three options:
(2a) rely upon kernel fragmentation,
(2b) fragment to 1280, or
(2c) specify fragmentation size with IPV6_USE_MTU.
--------------------------------------------------------------------
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]
--------------------------------------------------------------------