From: Nick Bowler <nbowler@elliptictech.com>
To: netdev@vger.kernel.org
Cc: Realtek linux nic maintainers <nic_swsd@realtek.com>,
Francois Romieu <romieu@fr.zoreil.com>
Subject: Bogus frames transmitted with r8169 & fragmentation & large mtu
Date: Wed, 15 Feb 2012 11:37:48 -0500 [thread overview]
Message-ID: <20120215163748.GA3998@elliptictech.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1986 bytes --]
Hi folks,
We were testing IPsec with large mtu sizes (9000 bytes) and noticed the
occasional failure with large datagrams (requiring several fragments,
>=25k bytes or so). Investigating further, I was able to reproduce the
issue without using IPsec at all. Looking at the wireshark capture I
see that one of the fragments transmitted is totally bogus: portions of
the payload data have made it onto the wire as the headers. My test
case was this:
ping -c 1 -s 30000 -p 42 birch
which is split into 4 frames, 3 of which (first, second and last) look
correct but the fourth consists entirely of 0x42 octets, including the
ethernet and IP headers (so the source address is 42:42:42:42:42:42, the
destination address is 42:42:42:42:42:42, ethertype is 0x4242, etc.)
I've attached the wireshark capture (gzipped) since it's small enough.
Nevertheless, the total length is correct for the missing fragment.
It seems to be specific to the particular network chipset on this
machine (using the r8169 driver):
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 03)
because the other machine (which has a Marvell controller) transmits
fine as far as I can tell. I'll see about putting a discrete network
card in this computer to see if that helps any.
It's not entirely consistent in how things fail. Sufficiently small
pings (say, <=20k bytes) seem to work 100% of the time, sufficiently
large pings (say, >= 40k bytes) seem to fail 100% of the time, and in
between most pings fail but the occasional one makes it through.
Everything works at all sizes with 1500 byte MTU.
There are no unusual messages in dmesg and this was all run with latest
Linus' git as of this morning. It occurred with somewhat older kernels
(2.6.39) as well, even though the driver only let me go to 7200 byte mtu
on that version.
Let me know if you need any more info,
--
Nick Bowler, Elliptic Technologies (http://www.elliptictech.com/)
[-- Attachment #2: fragment-9000.cap.gz --]
[-- Type: application/octet-stream, Size: 527 bytes --]
next reply other threads:[~2012-02-15 16:38 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-15 16:37 Nick Bowler [this message]
2012-02-15 19:13 ` Bogus frames transmitted with r8169 & fragmentation & large mtu Eric Dumazet
2012-02-15 19:58 ` Nick Bowler
2012-02-15 20:32 ` Nick Bowler
2012-02-15 23:23 ` Francois Romieu
2012-02-16 6:40 ` hayeswang
2012-02-16 7:46 ` Francois Romieu
2012-02-16 12:04 ` Francois Romieu
2012-02-21 2:58 ` hayeswang
2012-02-21 10:57 ` Francois Romieu
2012-02-15 22:41 ` Francois Romieu
2012-02-15 23:34 ` Nick Bowler
2012-02-16 4:19 ` Eric Dumazet
2012-02-16 16:14 ` Nick Bowler
2012-02-16 10:15 ` joeyli
2012-02-16 12:04 ` Francois Romieu
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=20120215163748.GA3998@elliptictech.com \
--to=nbowler@elliptictech.com \
--cc=netdev@vger.kernel.org \
--cc=nic_swsd@realtek.com \
--cc=romieu@fr.zoreil.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).