Subject: Re: dumping options TCP_COMPAT_42
To: der Mouse <mouse@Rodents.Montreal.QC.CA>
From: Perry E. Metzger <>
List: tech-net
Date: 11/12/2006 22:00:16
der Mouse <mouse@Rodents.Montreal.QC.CA> writes:
>> You seem to believe there are pure 4.2 stacks still out there, but
>> there aren't.
> I don't believe you have the evidence to back that up.  I don't believe
> anyone can.

I'll put this another way:

I think it would be very hard to find someone who can claim that
they've actually needed to turn on TCP_COMPAT_42 since NetBSD
started. I don't count turning on the option out of curiosity or for
debugging -- I mean someone who needed to turn it on out of a need to
communicate with box running a 4.2 stack.

Note that's not just "I don't think anyone claims to use it now",
that's "I don't think anyone has used it EVER". The option was in
serious use in the pre-NetBSD era because some prerelease 4.4BSD and
4.2BSD machines co-existed, but I would not be surprised to discover
it has never been turned on for real under *NetBSD* in the entire
existence of our project.

If someone comes forward and says "no, I've used it and I'm still
using it" I think it is fine to leave the option in place. Among other
things, that person could attest to the fact that the code still
works. However, as it stands, beyond code inspection, how do we even
know the code hasn't rotted? It is entirely possible that it has
*never* been tested in real use. Sure, it "looks" okay, but do we
really know it is bug compatible with real 4.2 stacks when no one has
seen an unpatched 4.2 stack in this long?

It is possible that I'm wrong and someone out there is using the thing
regularly, but I strongly suspect otherwise. I posted in order to find
out if anyone would come out of the woodwork. So far, what we've
gotten is a couple of people protesting that someone might use it, but
no one has actually claimed that they themselves have used it let
alone that they still use it.

> If you don't want backward compatbaility, you know where to not find
> it.

I like backwards compatibility. I don't think there is anything in
this case for us to still be backwards compatible *with*. Sure, we can
speculate that out there somewhere there's a guy who uses an old
Pyramid he found in a dumpster in 1989 for running the sump pump in
his basement and desperately depends on a NetBSD machine to
communicate with it, but it seems a trifle unlikely. If that person
exists, well, we can keep the code for their benefit.

One amusing side note: I looked recently at the Open Solaris
sources. They still have a #define for TCP_COMPAT_42 but they have no
code that is conditionalized on it. This is what happens when you
leave stuff to rot for decades.

Perry E. Metzger