TCP window size issues

Andre Oppermann oppermann at pipeline.ch
Fri Oct 17 15:29:40 PDT 2003


Andre Oppermann wrote:
> 
> Carl Mascott wrote:
> >
> > Actually I have just fixed it in my copy of 4.8-R.  I have a document
> > that describes the problem and my solution.  I could send you that
> > and/or a set of patches.  You might want to sketch out your own
> > solution before you look at mine, though.  Also, I'm not done
> > testing mine yet.
> 
> The patch in PR11966 has already been applied. It does not fix it.
> I've fixed it by redoing this check in tcp_input.c::tcp_mss():
> 
>  if ((bufsize = rt->rt_rmx.rmx_sendpipe) == 0)
>         bufsize = so->sn_snd.sb_hiwat;
> 
> to:
> 
>  if ((so->so_snd.sb_hiwat == tcp_sendspace) && rt->rt_rmx.rmx_sendpipe)
>         bufsize = rt->rt_rmx.rmx_sendpipe;
>  else
>         bufsize = so->so_snd.sb_hiwat;
> 
> The theory goes that with default buffers so_snd.sb_hiwat and
> tcp_sendspace have the same size. If that is actually the case,
> we use whatever we've got from the metrics. If not, the user
> did some changes and we take that and ignore the metrics value.
> This is not yet tested in reality... just theoretical ;-)

Just confirmed that it works.

-- 
Andre


More information about the freebsd-net mailing list