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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to