Search Linux Wireless

Re: RTL8188EU (LogiLink WL0151A) - Malformed packets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 16/04/2023 16:45, Artem Makhutov wrote:
> Hello,
> 
> I am not sure if it is ok to write to you directly but I could not find a place where to open a ticket about the rtl8xxxu driver.
> 
> I am having issues with the RTL8188EU (LogiLink WL0151A) where I get truncated packets when sending large packets. It's easy to reproduce with ping:
> 
> ping -s 1430 10.10.0.1
> PING 10.10.0.1 (10.10.0.1) 1430(1458) bytes of data.
> 1438 bytes from 10.10.0.1 <http://10.10.0.1>: icmp_seq=5 ttl=64 time=19.9 ms
> 1438 bytes from 10.10.0.1 <http://10.10.0.1>: icmp_seq=8 ttl=64 time=250 ms
> 1438 bytes from 10.10.0.1 <http://10.10.0.1>: icmp_seq=9 ttl=64 time=5.59 ms
> 1438 bytes from 10.10.0.1 <http://10.10.0.1>: icmp_seq=10 ttl=64 time=1.94 ms
> 1438 bytes from 10.10.0.1 <http://10.10.0.1>: icmp_seq=11 ttl=64 time=3.40 ms
> 1438 bytes from 10.10.0.1 <http://10.10.0.1>: icmp_seq=12 ttl=64 time=1.94 ms
> 1438 bytes from 10.10.0.1 <http://10.10.0.1>: icmp_seq=13 ttl=64 time=1.89 ms
> [...]
> 15 packets transmitted, 7 received, 53.3333% packet loss, time 14345ms
> rtt min/avg/max/mdev = 1.885/40.654/249.918/85.640 ms
> 
> With tcpdump I see logs like this on the wireless interface. Some parts of the packets seem to be broken...
> 
> 13:16:54.448318 IP 10.10.0.111 > 10.10.0.1 <http://10.10.0.1>: ICMP echo request, id 63056, seq 14, length 1438
> 13:16:54.450391 IP truncated-ip - 4 bytes missing! 10.10.0.1 > 10.10.0.111 <http://10.10.0.111>: ICMP echo reply, id 63056, seq 14, length 1438
> 
> Can you assist me to fix this issue?
> 
> Thanks, Artem

Hi!

Adding linux-wireless because that's the place to report bugs.
Also bugzilla.kernel.org, but that's more dead.

Unfortunately my TP-Link TL-WN725N is fine even with bigger packets:

PING 192.168.1.7 (192.168.1.7) 2300(2328) bytes of data.
[1681659077.535489] 2308 bytes from 192.168.1.7: icmp_seq=1 ttl=64 time=7.93 ms
[1681659078.536313] 2308 bytes from 192.168.1.7: icmp_seq=2 ttl=64 time=6.24 ms
...
--- 192.168.1.7 ping statistics ---
24 packets transmitted, 24 received, 0% packet loss, time 23033ms
rtt min/avg/max/mdev = 6.210/8.375/22.621/3.633 ms

(The router wouldn't reply to anything more than "-s 1472" but
another computer on the network did.)


What version of the kernel/driver are you running? On what kind
of computer?

Did you use any module parameters?

Do you know if the other computer is receiving correct packets
from your RTL8188EU?

What's the biggest packet size which still works correctly?

Did you test any other driver, like this one:
https://github.com/lwfinger/rtl8188eu/tree/v5.2.2.4
or this one:
https://github.com/aircrack-ng/rtl8188eus
?


If the other computer is receiving correct packets, try this untested
patch to see what rtl8xxxu is actually receiving:

diff --git a/rtl8xxxu_core.c b/rtl8xxxu_core.c
index c158137..5bec979 100644
--- a/rtl8xxxu_core.c
+++ b/rtl8xxxu_core.c
@@ -6142,6 +6147,8 @@ int rtl8xxxu_parse_rxdesc16(struct rtl8xxxu_priv *priv, struct sk_buff *skb)
 		return RX_TYPE_ERROR;
 	}
 
+	pr_warn("urb_len %d\n", urb_len);
+
 	do {
 		rx_desc = (struct rtl8xxxu_rxdesc16 *)skb->data;
 		_rx_desc_le = (__le32 *)skb->data;
@@ -6164,6 +6171,11 @@ int rtl8xxxu_parse_rxdesc16(struct rtl8xxxu_priv *priv, struct sk_buff *skb)
 		pkt_offset = roundup(pkt_len + drvinfo_sz + desc_shift +
 				     sizeof(struct rtl8xxxu_rxdesc16), 128);
 
+		pr_warn("  pkt_cnt %d pkt_len %d drvinfo_sz %d desc_shift %d\n", pkt_cnt, pkt_len, drvinfo_sz, desc_shift);
+
+		print_hex_dump(KERN_WARNING, "  ", DUMP_PREFIX_OFFSET, 32, 4,
+		       skb->data, skb->len, EFUSE_MAP_LEN, true);
+
 		/*
 		 * Only clone the skb if there's enough data at the end to
 		 * at least cover the rx descriptor



[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux