From: John Heffner <jheffner@psc.edu>
To: "Angelo P. Castellani" <angelo.castellani@gmail.com>
Cc: netdev <netdev@vger.kernel.org>,
vacirca@infocom.uniroma1.it,
Andrea Baiocchi <andrea.baiocchi@uniroma1.it>
Subject: Re: [TCP] window reduction fix
Date: Wed, 05 Jul 2006 15:17:23 -0400 [thread overview]
Message-ID: <44AC1043.10603@psc.edu> (raw)
In-Reply-To: <8dd26e70607050924q48954801h8fd4c32efa37929@mail.gmail.com>
Hm, wouldn't that violate the TCP spec?
-John
Angelo P. Castellani wrote:
> I forward the message because it seems hasn't get through to mailing
> list (removing references to a word that seems blocking the message).
>
> The previous message "[TCP] window update during recovery (continuing
> on window reduction)" references this one
>
> Regards,
> Angelo P. Castellani
> ---------- Forwarded message ----------
> From: Angelo P. Castellani <angelo.castellani+lkml@gmail.com>
> Date: 5-lug-2006 16.22
> Subject: [TCP] window reduction fix
> To: netdev <netdev@vger.kernel.org>
> Cc: Francesco Vacirca <francesco@net.infocom.uniroma1.it>, Andrea
> Baiocchi <andrea.baiocchi@uniroma1.it>
>
>
> When the receiver buffer is filling up, it should reduce the allowed
> receive window value piggybacked in the acks, according to the free
> space actually left in the buffer.
>
> So it should send in the tcp acks returning to the sender a window
> field with a value not higher than the space available to store
> incoming segments.
>
> The attached patch addresses this issue, requests to the sender a
> window size not bigger than the free space for incoming data.
>
> Regards,
> Angelo P. Castellani
>
>
> ------------------------------------------------------------------------
>
> diff -urd linux-2.6.16-orig/net/ipv4/tcp_output.c linux-2.6.16-winreduction/net/ipv4/tcp_output.c
> --- linux-2.6.16-orig/net/ipv4/tcp_output.c 2006-05-16 14:53:02.000000000 +0200
> +++ linux-2.6.16-winreduction/net/ipv4/tcp_output.c 2006-07-05 16:35:55.000000000 +0200
> @@ -218,18 +218,15 @@
> u32 cur_win = tcp_receive_window(tp);
> u32 new_win = __tcp_select_window(sk);
>
> - /* Never shrink the offered window */
> - if(new_win < cur_win) {
> - /* Danger Will Robinson!
> - * Don't update rcv_wup/rcv_wnd here or else
> - * we will not be able to advertise a zero
> - * window in time. --DaveM
> - *
> - * Relax Will Robinson.
> - */
> - new_win = cur_win;
> - }
> - tp->rcv_wnd = new_win;
> + /* Danger Will Robinson!
> + * Don't update rcv_wup/rcv_wnd here or else
> + * we will not be able to advertise a zero
> + * window in time. --DaveM
> + *
> + * Relax Will Robinson.
> + */
> + // Anyway let's send the right window reduction to the sender.
> + tp->rcv_wnd = max( new_win, cur_win );
> tp->rcv_wup = tp->rcv_nxt;
>
> /* Make sure we do not exceed the maximum possible
>
>
>
>
next prev parent reply other threads:[~2006-07-05 19:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-05 16:24 [TCP] window reduction fix Angelo P. Castellani
2006-07-05 19:17 ` John Heffner [this message]
2006-07-06 3:50 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44AC1043.10603@psc.edu \
--to=jheffner@psc.edu \
--cc=andrea.baiocchi@uniroma1.it \
--cc=angelo.castellani@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=vacirca@infocom.uniroma1.it \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.