From: Raimonds Cicans <ray@apollo.lv>
To: Ben Hutchings <bhutchings@solarflare.com>
Cc: romieu@fr.zoreil.com, netdev@vger.kernel.org
Subject: Re: r8169: fix driver drop incoming packets >= 1515 if MTU is set between 1515 and 1536
Date: Wed, 11 Nov 2009 22:05:35 +0200 [thread overview]
Message-ID: <4AFB190F.2020009@apollo.lv> (raw)
In-Reply-To: <1257964419.2839.58.camel@achroite.uk.solarflarecom.com>
Ben Hutchings:
> On Wed, 2009-11-11 at 20:20 +0200, Raimonds Cicans wrote:
>> Driver drop incoming packets >= 1515(1) if MTU is set between 1515(1) and 1536.
>>
>> 1) exact number depends on some factors:
>> - VLAN tagged or not
>> - patch "r8169: Fix card drop incoming VLAN tagged MTU byte large jumbo frames"
>> applied or not
> [...]
>
> MTU is a limit on transmission; it is not required to limit received
> frames.
???
In r8169 driver MTU is used to calculate receive buffer size.
Receive buffer size is used to configure hardware incoming packet filter.
For jumbo frames:
Receive buffer size = Max frame size = MTU + 14 (ethernet header) + 4
(vlan header) + 4 (ethernet checksum) = MTU + 22
Bug:
driver for all MTU up to 1536 use receive buffer size 1536
As you can see from formula, this mean all IP packets > 1536 - 22
(for vlan tagged, 1536 - 18 for not tagged) are dropped by hardware
filter.
Example:
host_good> ifconfig eth0 mtu 1536
host_r8169> ifconfig eth0 mtu 1536
host_good> ping host_r8169
Ok
host_good> ping -s 1500 host_r8169
Fail
host_good> ifconfig eth0 mtu 7000
host_r8169> ifconfig eth0 mtu 7000
host_good> ping -s 1500 host_r8169
Ok
Raimonds Cicans
next prev parent reply other threads:[~2009-11-11 20:05 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-11 18:20 r8169: fix driver drop incoming packets >= 1515 if MTU is set between 1515 and 1536 Raimonds Cicans
2009-11-11 18:33 ` Ben Hutchings
2009-11-11 20:05 ` Raimonds Cicans [this message]
2009-11-11 20:15 ` Ben Hutchings
2009-11-11 22:36 ` Raimonds Cicans
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=4AFB190F.2020009@apollo.lv \
--to=ray@apollo.lv \
--cc=bhutchings@solarflare.com \
--cc=netdev@vger.kernel.org \
--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 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.