Subject: RE: IPv6 Address Architecture update question

From: "Bound, Jim" <[email-masked]>
Date: Wed, 2 Feb 2005 09:24:49 -0500

Using AF_INET6 as only socket and handling both v4 and v6 can only be done well if the implementation supports a hybrid v4-v6 stack.  A pure dual stack (code path for v4 and code path for v6 see URL pdf below) is not friendly to use v4-mapped and I will assume all understand that on this list.  Basic examples that benefit from v4mapped are any app that runs via inetd (e.g. ftp, telnet) and for more complex applications like Netscape browser and Mozilla example removes the need for if and test conditions for address types.  Clearly if a vendor platform does not support a hybrid stack and thus not optimal for v4mapped it creaates an engineering trade-off.  The market should not be driven by a few implementations in any scenario is my hope. Most all implementations support the use and option of v4mapped.  We shall see how the application market develops and in progress now.  Another example is a large database application vendor can use AF_INET6 to support both v4 and v6 as one release and it reduces that part of the code path length to deal with both address types and the user would be transparent to how v4 or v6 is used by the application.

See the IPv6 porting explanation at the URL below:

http://gsyc.escet.urjc.es/~eva/IPv6-web/ipv6.html

Good slides depicting the use of both IPv6-ONLY and v4mapped

http://www.usipv6.com/2003arlington/presents/Eva_Castro.pdf

/jim

> -----Original Message-----
> From: Colm MacCarthaigh [mailto:[email-masked]] 
> Sent: Wednesday, February 02, 2005 5:13 AM
> To: Jeroen Massar
> Cc: Bound, Jim; IPv6 WG
> Subject: Re: IPv6 Address Architecture update question
> 
> On Wed, Feb 02, 2005 at 10:41:08AM +0100, Jeroen Massar wrote:
> > We still have a chance IPv4 mapped to at least _deprecate_, that is 
> > what I mentioned in my other message, the usage of these 
> addresses and 
> > to note that implementors should really be using separate sockets, 
> > which is also what getaddrinfo() tells one to do.
> 
> RFC3493 solves this by having IPV6_V6ONLY. We just need to 
> wait for all platforms to implement it :)
> 
> > What has Netscape to do with Apache? Or am I really missing 
> something?
> > Then again I don't follow corporate takeovers and such, got better 
> > things to do; Netscape do have some influence with 
> Mozilla/Firefox et 
> > al, and they also had a lot of problems with this, they actually 
> > almost refused to do a Windows IPv6 version because they didn't 
> > understand the concept of a separate IPv6 and IPv4 socket. Also see:
> > https://bugzilla.mozilla.org/show_bug.cgi?id=175340
> 
> Just to clear things up, I wrote a lot of the code that deals 
> with it in Apache httpd, and apr. And I've never worked for 
> Netscape. I think Jim may be implying that Netscape took a 
> different (possibly superiour) approach.  I know not :)
> 
> > There are many more examples of code out on the internet that 
> > demonstrate that having the v4-mapped addresses only gives a lot of 
> > issues. You haven't named one application though that does 
> not have it.
> 
> In fairness, this does not matter. mapped-addresses are 
> useful from a certain perspective anyway. If there is some 
> in-house trivial application that only needs to run on Linux, 
> there is no good reason why mapped-addresses should not be 
> used as an easy migration.
> 
> Whether or not the portability problems outweigh this kind of 
> limited benefit is a subjective judegment call - and one on 
> which consensus is unlikely to ever be reached.
> 
> RFC3493 encourages vendors to implement the IPV6_V6ONLY 
> option (something neither 2133 nor 2553 had), so that's the 
> nod that's needed on this front.
> 
> Really the only remaining portability issue is the default 
> behaviour of
> bind(::) (without any specific options set). 
> 
> So in summary, my mind has been changed a little on mapped-addresses
> - in that although I wouldn't use them, they have a use in limited
>   circumstances - but some kind of encouragement to vendors 
> to consolidate a standard behavior for a bind/listen call 
> could be desirable.
> 
> -- 
> Colm MacCárthaigh                        Public Key: 
> [email-masked]
> 

--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email-masked]
Administrative Requests: https://www1.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

---

From: Jeroen Massar <[email-masked]>
Date: Wed, 02 Feb 2005 16:02:05 +0100

On Wed, 2005-02-02 at 09:24 -0500, Bound, Jim wrote:
> Using AF_INET6 as only socket and handling both v4 and v6 can only be done
> well if the implementation supports a hybrid v4-v6 stack.
> A pure dual stack (code path for v4 and code path for v6 see URL pdf
> below) is not friendly to use v4-mapped and I will assume all
> understand that on this list.

Apparently you don't understand this, because this is exactly what a
number of people have been trying to explain to you already.

Maybe it now has popped into your mind, can you then also be so nice and
to at least acknowledge that you have been trying to spread a lot of
nonsense on this subject, not even speaking about the weird stuff you
are trying to push into my face.

> Basic examples that benefit from v4mapped are any app that runs via inetd
> (e.g. ftp, telnet) and for more complex applications like Netscape browser
> and Mozilla example removes the need for if and test conditions for address types. 

Wrong, as mentioned before, which is why I brought up the example,
Mozilla is exactly one of the apps that has a problem:

They had the issue that binding twice, which is what one is supposed to
do would cause issues on a Linux box, as they default to v4-mapped, but
on any other platform it would work.

> Clearly if a vendor platform does not support a hybrid stack and thus
> not optimal for v4mapped it creaates an engineering trade-off.

As mentioned before, Windows does not have a hybrid stack, and the
current KAME code also has it turned off. Thus most* of the deployed
base has a non-hybrid stack.

* That is under the assumption that Windows + KAME + Linux together are
'most', which could quite well be true with the number of XP's out there
on the market and the fact that KAME is in all the BSD's and a big part
of Linux.

>   The market should not be driven by a few implementations in any scenario is my hope.

Thus you agree that v4-mapped is bad because it does not exist on most
deployed implementations? And thus that we could at least put a note on
it

>  Most all implementations support the use and option of v4mapped.

See my note above, Window+KAME+Linux. Unless you have a hidden OS
somewhere that has ten millions of users.

> We shall see how the application market develops and in progress now.
> Another example is a large database application vendor can use AF_INET6
> to support both v4 and v6 as one release and it reduces that part of the
> code path length to deal with both address types and the user would be
> transparent to how v4 or v6 is used by the application.

That is absolutely true, unless you try to run the code on a different
platform, which does not have this. Thus having you to modify the code
anyway, then finding out that it does not work the same everywhere, as
one would expect and thus causing a lot of problems which are totally
unnecessary.

A simple addition to the doc saying: do not use it unless you do not
want to be portable. Is enough.

> http://gsyc.escet.urjc.es/~eva/IPv6-web/ipv6.html

Which I mailed to the mailinglist before exactly because of the above,
which underlines the issues which we are discussing. Yes, discussing
again, because it was 'forgotten' the last time.

Do note also that all Eva's examples use getaddrinfo(). On hybrid stack
boxes this will thus fail the second bind to 0.0.0.0. Thus the first
iteration will bind to "::", the second

Maybe if you would read the above and the other messages I sent you
would have actually understood this before.

Sorry that I am not an native American speaker, maybe that is the issue,
nevertheless I am really wondering what the _real_ problem is.

On Wed, 2005-02-02 at 09:30 -0500, Bound, Jim wrote: 
> > 
> > >   I emphatically disagree
> > > with Itojun, cmetz, et al referenced and we had this debate
> > many years
> > > ago, then again had the debate, and that view lost and we
> > should not
> > > revisit it again.
> > 
> > You mean some people shoved the arguments away without having any 
> > background in the subject?
> 
> Your statement above was the insult.

The insult is against all the people who are being ignored, like me,
which is what I pointed you to. See your own message above, for a
perfectly good example of this, you most likely did not even read the
URL of Eva's site, which I put on the list before mentioning that is the
way that it should be done and is being done and is causing problems,
see above.

The fact that you don't ever say _why_ you disagree doesn't help a bit
btw. If you would at least once mention that, instead of trying to curse
at people, maybe I could find out what you don't get of my messages and
try to put it in another form.

>  We can discuss offline this is now
> not an IETF issue but until we resolve this privately it is best you and
> I not talk further in this forum.

This more sounds like a "you shut up" than anything else. If you want to
do any communications on this subject to me, don't forget to CC at least
the IPv6 WG chairs + IAD's, then they can follow the subject and see
what kind of weird things you will bring up next against me. Apparently
you do not want to discuss this in public, I wonder why actually. It is
about how the IETF works, thus it is certainly IETF related. I for sure
have no personal relation with you and with the way you are trying to
treat me, I am actually very inclined to not even think of doing that at
all.

If there is anybody who needs to feel insulted it is me, but with that
attitude of yours and the messages you are sending I can not even feel
far from insulted, only wondering a lot why you are acting in this way.

Greets,
 Jeroen

---

From: YOSHIFUJI Hideaki / 吉藤英明<[email-masked]>
Date: Thu, 03 Feb 2005 00:38:22 +0900 (JST)

> on the market and the fact that KAME is in all the BSD's and a big part

KAME is only for BSDs and it is NOT in Linux.

-- 
Hideaki YOSHIFUJI @ USAGI Project <[email-masked]>
GPG FP: 9022 65EB 1ECF 3AD1 0BDF  80D8 4807 F894 E062 0EEA