From: Larry Finger <Larry.Finger@lwfinger.net>
To: Alan Fisher <acf@unixcube.org>, linux-wireless@vger.kernel.org
Subject: Re: PROBLEM: rtlwifi drops most IPv6 packets
Date: Mon, 16 Feb 2015 10:57:27 -0600 [thread overview]
Message-ID: <54E22177.6050105@lwfinger.net> (raw)
In-Reply-To: <54E19DD6.9050704@unixcube.org>
On 02/16/2015 01:35 AM, Alan Fisher wrote:
> Hello!
>
> I have a machine with a Realtek RTL8188 wireless card. This card is handled by
> the rtl8192 driver. The driver in kernel 3.16.0-4 causes most sent ARP packets
> to be dropped. ARP packets appear to get through with the driver in kernel 3.19,
> but IPv6 packets suffer instead. I have reproduced this when connected to
> multiple access points.
>
> I think I have traced this issue to some code in the rtlwifi driver that does
> special handling on "special" packets. The function rtl_is_special_data() in
> base.c determines whether a packet is considered special. In the 3.16 kernel,
> this includes ARP packets, wireless encryption packets, and DHCP/BOOTP packets.
> IPv6 appears to have been added to this list as of kernel 3.19.
>
> It seems the idea is that certain important packets should be transmitted at the
> lowest possible 802.11 rate. The rtl_is_special_data() function is used to
> determine which packets to handle this way. Not treating any packets as special,
> by adding a "return false;" at the beginning of rtl_is_special_data(), seems to
> fix the problems with lost packets with both kernels.
>
> I would guess that some good reason exists for this special handling, but I
> can't determine what it is. I couldn't find anything similar in iwlwifi. Either
> way, it seems like a bug to send all IPv6 traffic at the lowest possible rate,
> successful or not.
When you specify a card number, please include the letters after the numbers.
You say you have an RTL8188, but there are RTL8188EE, RTL8188CU, and RTL8188CE
devices. There are drivers rtl8192cu, and rtl8192ce, as well as rtl8192de,
rtl8192ee, and rtl8192se. I am guessing that you have an RTL8188CE, which uses
rtl8192ce. If this is wrong, please let me know.
The purpose of rtl_is_special_data() is to ensure that management packets have
the highest probability of being successfully transmitted by sending them at a
low rate. This routine should never cause any packets to be dropped, only force
them to be transmitted slowly. Obviously, there is a problem with the current
implementation, and I will need to consult with the Realtek engineers. It also
occurs to me that mac80211 probably handles this function, and that it may be
possible to remove this routine, which is essentially what your workaround does.
Larry
next prev parent reply other threads:[~2015-02-16 16:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-16 7:35 PROBLEM: rtlwifi drops most IPv6 packets Alan Fisher
2015-02-16 16:57 ` Larry Finger [this message]
2015-02-16 18:26 ` Larry Finger
2015-02-17 8:29 ` Alan Fisher
2015-02-17 16:43 ` Larry Finger
2015-02-22 22:49 ` Alan Fisher
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=54E22177.6050105@lwfinger.net \
--to=larry.finger@lwfinger.net \
--cc=acf@unixcube.org \
--cc=linux-wireless@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 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).