From: Robert Evans <robert.evans@nasdaqomx.com>
To: "'netdev@vger.kernel.org'" <netdev@vger.kernel.org>
Subject: tcp_shift_skb_data uses wrong mss in non-gso case?
Date: Tue, 17 Aug 2010 18:35:45 -0400 [thread overview]
Message-ID: <D3B72A8DFCA0A8418CB61D1E9E310A99E5F35219@US01XMB01.org.nasdaqomx.com> (raw)
Hello all,
In reading through the latest SACK code introduced by 832d11c, I have noticed
that for the in_sack case tcp_shift_skb will take mss = tcp_skb_seglen(skb).
This seems to be wrong since the queue might contain small packets (f.e.
TCP_NODELAY). If the collapse succeeds, the resulting skb will have an
arbitrarily small gso_size equal to the original skb length.
8ed88d4:net/ipv4/tcp_input.c
1506 in_sack = !after(start_seq, TCP_SKB_CB(skb)->seq) &&
1507 !before(end_seq, TCP_SKB_CB(skb)->end_seq);
1508
1509 if (in_sack) {
1510 len = skb->len;
1511 pcount = tcp_skb_pcount(skb);
1512 mss = tcp_skb_seglen(skb); /* possibly wrong? */
1513
1514 /* TODO: Fix DSACKs to not fragment already SACKed and w
1514 e can
1515 * drop this restriction as unnecessary
1516 */
1517 if (mss != tcp_skb_seglen(prev))
1518 goto fallback;
1519 } else {
This ends up being troublesome if the segment is later retransmitted and the
device driver has trouble with very small gso_size (e1000e seems to be an
example).
Is the small gso_size the correct and/or desired behavior? Or am I missing
something else that prevents this from being a problem?
-Bob Evans
next reply other threads:[~2010-08-17 22:45 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-17 22:35 Robert Evans [this message]
2010-08-23 22:34 ` tcp_shift_skb_data uses wrong mss in non-gso case? Jesse Brandeburg
2010-08-24 7:46 ` Herbert Xu
2010-08-24 8:59 ` Ilpo Järvinen
2010-08-25 14:43 ` Robert Evans
2010-08-25 23:43 ` 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=D3B72A8DFCA0A8418CB61D1E9E310A99E5F35219@US01XMB01.org.nasdaqomx.com \
--to=robert.evans@nasdaqomx.com \
--cc=netdev@vger.kernel.org \
/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.