2.4.3 tcp window id causes problems talking to windows clients

Kevin Stone (kstone@trivergent.net)
Fri, 06 Apr 2001 15:11:38 -0400


From linux/include/net/ip.h (2.4.3):

static inline void ip_select_ident(struct iphdr *iph, struct dst_entry *dst)
{
if (iph->frag_off&__constant_htons(IP_DF))
iph->id = 0;
else
__ip_select_ident(iph, dst);
}

This sets the id on the packet to zero if don't fragment is set.
Windows however is broken and under certain cirumstances (I think this
was identified on the list several weeks ago as dialup+compressed
headers), windows doesn't ack the packets.... The result for the client
is terrible-- it's like there's no connectivity at all-- web pages
never load.. etc.

This problem is fixed in the ac series, but didn't make it into Linus's
2.4.3. We're running 2.4.2ac11 right now across the board, and it seems
to be working quite well (except for the lack of swap reclamation-- I
appreciate the reasoning, but it makes upgrading older machines very
difficult.) However, I would rather, for maintenance and sanity
reasons, run a stock kernel on production machines. There are also a
lot of differences between the ac and stock series-- binfmt_misc as
filesystem vs. proc, ram filesystem (ex: tmpfs on ac), etc. which we
use. (We use binfmt_misc+suexec to run php on webservers.)

Is there any plan to include the zerocopy patches into the stock kernel?
The win2k dial-up/window id problem is really a showstopper but hasn't
generated much traffic on lkml or the digests.

Thanks!
Kevin

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/