Skip to contentSkip to conversation

MediaTek Inc. MT7601U Wireless Adapter

DISCUSSION poma 5 participants 14 messages Aug 26, 2014 – Oct 28, 2014

lore
Share & tools
lore

poma

author
#0 lore raw

Say, hi fi to everybody!

Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete. MediaTek folks,
please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
Thanks.

These are the results of tests starting with:

$ modinfo mt7601Usta
filename:       /lib/modules/2.6.32-431.23.3.el6.x86_64/updates/mt7601Usta.ko
version:        3.0.0.3
description:    RT2870 Wireless Lan Linux Driver
author:         Paul Lin <[email protected]>
license:        GPL
srcversion:     E3EE381863883B309D682BB
alias:          usb:v148Fp7601d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp6370d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v148Fp7650d*dc*dsc*dp*ic*isc*ip*
depends:        
vermagic:       2.6.32-431.23.3.el6.x86_64 SMP mod_unload modversions 
parm:           mac:rt28xx: wireless mac addr (charp)

and the ending with:

$ modinfo mt7601Usta 
filename:       /lib/modules/3.16.0-1.fc21.x86_64/updates/mt7601Usta.ko
version:        3.0.0.3
description:    RT2870 Wireless Lan Linux Driver
author:         Paul Lin <[email protected]>
license:        GPL
srcversion:     DB56E18D38EF6269211CFA0
alias:          usb:v148Fp7601d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v148Fp6370d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v148Fp7650d*dc*dsc*dp*ic*isc*ip*in*
depends:        
vermagic:       3.16.0-1.fc21.x86_64 SMP mod_unload 
parm:           mac:rt28xx: wireless mac addr (charp)

WORKING:
2.6.32-431.23.3.el6.x86_64
2.6.43.8-2.fc15.x86_64

WORKING - WITH REDUCED THROUGHPUT AND DISCONNECTIONS 3.0.0-1.fc16.x86_64
3.1.0-1.fc16.x86_64
3.2.0-2.fc17.x86_64
3.3.0-1.fc17.x86_64
3.3.8-1.fc16.x86_64

BROKEN - OPERATING SYSTEM CRASHES:
3.4.0-1.fc18.x86_64
3.4.2-4.fc17.x86_64

BROKEN - CANNOT COMPILE - WITH UNOFFICIAL PATCHES OPERATING SYSTEM CRASHES:
3.10.0-123.6.3.el7.x86_64
3.12.10-300.fc20.x86_64
3.15.10-200.fc20.x86_64
3.16.0-1.fc21.x86_64

poma

Ref.
http://forum.ubuntu.org.cn/viewtopic.php?f=116&t=456228
http://www.mediatek.com/en/downloads/
http://www.mediatek.com/en/downloads/mt7610u-usb/
DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2

#1 lore raw
Quoted 7 lines · poma

Say, hi fi to everybody!

Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete. MediaTek folks,
please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
Thanks.

It would be much better if the MediaTek folks would just send us patches for the drivers already in the kernel...

John

Signature · 2 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.
#2 lore raw
Quoted 11 lines · John W. Linville
Quoted 7 lines · poma

Say, hi fi to everybody!

Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete. MediaTek folks,
please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
Thanks.

It would be much better if the MediaTek folks would just send us patches for the drivers already in the kernel...

No. Sorry. The existing rt2800-driver is mostly broken and unusable compared with the original Ralink drivers. Especially the usb drivers are extremely bad. There are huge differences between the ralink usb drivers (rt5572sta e.g.) and the rt2800usb driver. The ralink drivers are working fine with a few additional patches even with kernel 3.15 and with 64bit(!!).

@MediaTek
Please provide own drivers as before as the existing rt2800 drivers should be reworked completely - but from my point of view they are dead since long time now.
It is much better to have one basically good working driver (which must be patched manually to work with newer kernels because newer kernels often aren't downwardly compatible - if they would be, there wouldn't be any problem even with older drivers. But this is a huge problem of Linux at all).

Regards and thanks to Ralink / Mediatek for providing own drivers! Andreas Hartmann

#3 lore raw
Quoted 32 lines · Andreas Hartmann
Quoted 11 lines · John W. Linville
Quoted 7 lines · poma

Say, hi fi to everybody!

Driver "mt7601Usta"(DPO_MT7601U_LinuxSTA_3.0.0.4_20130913.tar.bz2) for the MediaTek MT7601U based wireless adapters - on a sale worldwide, is broken and obsolete. MediaTek folks,
please consider the release of an upgraded version of the driver for the current stable Linux kernel, and the upcoming.
Thanks.

It would be much better if the MediaTek folks would just send us patches for the drivers already in the kernel...

No. Sorry. The existing rt2800-driver is mostly broken and unusable compared with the original Ralink drivers. Especially the usb drivers are extremely bad. There are huge differences between the ralink usb drivers (rt5572sta e.g.) and the rt2800usb driver. The ralink drivers are working fine with a few additional patches even with kernel 3.15 and with 64bit(!!).

@MediaTek
Please provide own drivers as before as the existing rt2800 drivers should be reworked completely - but from my point of view they are dead since long time now.
It is much better to have one basically good working driver (which must be patched manually to work with newer kernels because newer kernels often aren't downwardly compatible - if they would be, there wouldn't be any problem even with older drivers. But this is a huge problem of Linux at all).

Quoted 1 line

Regards and thanks to Ralink / Mediatek for providing own drivers!

No. Sorry. They are doing the wrong thing. If Ralink/MediaTek would cooperate with the community and work through the normal kernel process like everyone else, their hardware would be fully supported out of the box just like hardware from other vendors. Then no one would have to bother with figuring-out how to get the driver "working fine with a few additional patches", whatever that means.

By apologizing for them and degrading the rt2800 driver you are only making things worse. You should demand better behavior from MediaTek.

John

Signature · 2 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.
author
#4 lore raw

A patch[1] is composed partly from the RT3573 source code patched by ashaffer, from Andreas work, some of the ideas are from the beagleboard community, and some of my. :) Debug(trace) is turned off.

Device now works more or less OK but slow, max. 10 Mbit, although connectable is only within the "N" & "N/G" modes. What is important is the system no longer crashes, and disconnection are rare.
Generally better than before.

Tested with kernels:
3.15.10-200.fc20.x86_64
3.16.1-301.fc21.x86_64
3.17.0-0.rc2.git0.1.fc22.x86_64

and with debug kernel:
3.17.0-0.rc2.git1.1.fc22.x86_64
dmesg:
...
mt7601Usta: module verification failed: signature and/or required key missing - tainting kernel rtusb init rt2870 --->
usbcore: registered new interface driver rt2870
0x1300 = 00064300
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.

CPU: 1 PID: 687 Comm: NetworkManager Tainted: G           OE  3.17.0-0.rc2.git1.1.fc22.x86_64 #1
...
Call Trace:
 [<ffffffff81823d70>] dump_stack+0x4d/0x66
 [<ffffffff8182126b>] register_lock_class.part.25+0x38/0x3c
 [<ffffffff810fc0c9>] __lock_acquire+0x1c79/0x1ca0
 [<ffffffff810e335c>] ? update_curr+0x5c/0x200
 [<ffffffff8102429e>] ? native_sched_clock+0x2e/0xb0
 [<ffffffff810fc9d4>] lock_acquire+0xa4/0x1d0
 [<ffffffff810efa0c>] ? add_wait_queue+0x1c/0x50
 [<ffffffff8182d6d7>] _raw_spin_lock_irqsave+0x57/0xa0
 [<ffffffff810efa0c>] ? add_wait_queue+0x1c/0x50
 [<ffffffff810efa0c>] add_wait_queue+0x1c/0x50
 [<ffffffffa0715d54>] RtmpOsUsbEmptyUrbCheck+0xc4/0x140 [mt7601Usta]
 [<ffffffff810d8820>] ? wake_up_state+0x20/0x20
 [<ffffffffa06dc3bd>] RTMPDrvClose+0x8d/0x150 [mt7601Usta]
 [<ffffffffa0704b52>] rt28xx_close+0x22/0x30 [mt7601Usta]
 [<ffffffffa06e7223>] RTMP_COM_IoctlHandle+0x823/0x890 [mt7601Usta]
 [<ffffffff816f02b8>] ? linkwatch_schedule_work+0x58/0xa0
 [<ffffffff816f0357>] ? linkwatch_fire_event+0x57/0xa0
 [<ffffffffa070498c>] MainVirtualIF_close+0x7c/0xd0 [mt7601Usta]
 [<ffffffffa07050e0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
 [<ffffffffa0704b30>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
 [<ffffffff816d08a5>] __dev_close_many+0xb5/0x120
 [<ffffffff816d0a72>] __dev_close+0x42/0x70
 [<ffffffff816dcc8d>] __dev_change_flags+0x9d/0x160
 [<ffffffff816dcd79>] dev_change_flags+0x29/0x70
 [<ffffffff816ec0a9>] do_setlink+0x409/0xb80
 [<ffffffff810fa887>] ? __lock_acquire+0x437/0x1ca0
 [<ffffffff81422392>] ? nla_parse+0x32/0x120
 [<ffffffff816ee5cd>] rtnl_newlink+0x61d/0x780
 [<ffffffff81377218>] ? security_capable+0x18/0x20
 [<ffffffff810aaeb5>] ? ns_capable+0x35/0x70
 [<ffffffff816eae31>] rtnetlink_rcv_msg+0xa1/0x260
 [<ffffffff816ead6b>] ? rtnetlink_rcv+0x1b/0x40
 [<ffffffff816ead6b>] ? rtnetlink_rcv+0x1b/0x40
 [<ffffffff816ead90>] ? rtnetlink_rcv+0x40/0x40
 [<ffffffff81710e69>] netlink_rcv_skb+0xa9/0xd0
 [<ffffffff816ead7a>] rtnetlink_rcv+0x2a/0x40
 [<ffffffff81710475>] netlink_unicast+0x125/0x1a0
 [<ffffffff8171084f>] netlink_sendmsg+0x35f/0x7c0
 [<ffffffff816b880e>] sock_sendmsg+0x9e/0xe0
 [<ffffffff811fe38e>] ? might_fault+0x5e/0xc0
 [<ffffffff811fe3e9>] ? might_fault+0xb9/0xc0
 [<ffffffff811fe38e>] ? might_fault+0x5e/0xc0
 [<ffffffff816b9848>] ___sys_sendmsg+0x408/0x420
 [<ffffffff8102429e>] ? native_sched_clock+0x2e/0xb0
 [<ffffffff8102429e>] ? native_sched_clock+0x2e/0xb0
 [<ffffffff81024329>] ? sched_clock+0x9/0x10
 [<ffffffff810dc775>] ? local_clock+0x25/0x30
 [<ffffffff8127b54a>] ? __fget+0x12a/0x2f0
 [<ffffffff8127b425>] ? __fget+0x5/0x2f0
 [<ffffffff8127b780>] ? __fget_light+0x30/0x160
 [<ffffffff816ba031>] __sys_sendmsg+0x51/0x90
 [<ffffffff816ba082>] SyS_sendmsg+0x12/0x20
 [<ffffffff8182dbe9>] system_call_fastpath+0x16/0x1b

unlink cmd rsp urb
0x1300 = 00064300
unlink cmd rsp urb
0x1300 = 00064300
unlink cmd rsp urb
0x1300 = 00064300
...

# iwconfig ra0 
ra0       Ralink STA  ESSID:"Geppetto"  Nickname:"MT7601STA"
          Mode:Managed  Frequency=2.462 GHz  Access Point: 00:22:44:66:88:aa   
          Bit Rate=26 Mb/s   
          RTS thr:off   Fragment thr:off
          Encryption key:1111-2222-3333-4444-5555-6666-7777-8888 [2]   Security mode:open
          Link Quality=61/100  Signal level:-72 dBm  Noise level:-87 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

[1] DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0.patch

include/os/rt_linux.h +6 -1
diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/include/os/rt_linux.h DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/include/os/rt_linux.h
@@ -882,9 +882,14 @@
 		
 #define GET_OS_PKT_DATATAIL(_pkt) \
 		(RTPKT_TO_OSPKT(_pkt)->tail)
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+#define SET_OS_PKT_DATATAIL(_pkt, _start, _len)	\
+		((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)(RTPKT_TO_OSPKT(_pkt)->data - (ULONG)(RTPKT_TO_OSPKT(_pkt)->head) + (_len))
+#else
 #define SET_OS_PKT_DATATAIL(_pkt, _start, _len)	\
 		((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len))
-		
+#endif
+
 #define GET_OS_PKT_HEAD(_pkt) \
 		(RTPKT_TO_OSPKT(_pkt)->head)
 
os/linux/config.mk +6 -1
diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/config.mk DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/os/linux/config.mk
@@ -290,7 +290,7 @@
 # config for STA mode
 
 ifeq ($(RT28xx_MODE),STA)
-WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT -DDBG
+WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT
 
 ifeq ($(HAS_XLINK),y)
 WFLAGS += -DXLINK_SUPPORT
@@ -1054,11 +1054,16 @@
 export CFLAGS
 endif
 
+GCCVERSION = $(shell gcc -dumpversion)
+
 ifeq ($(PLATFORM),PC)
     ifneq (,$(findstring 2.4,$(LINUX_SRC)))
 	# Linux 2.4
 	CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include $(LINUX_SRC)/include/linux/modversions.h $(WFLAGS)
 	export CFLAGS
+    else ifneq (,$(findstring 4.9,$(GCCVERSION)))
+	# GCC 4.9
+        EXTRA_CFLAGS := -Wno-error=date-time $(WFLAGS)
     else
 	# Linux 2.6
 	EXTRA_CFLAGS := $(WFLAGS) 
os/linux/rt_linux.c +22 -1
diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/os/linux/rt_linux.c DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/os/linux/rt_linux.c
@@ -27,13 +27,18 @@
 
 #define RTMP_MODULE_OS
 #define RTMP_MODULE_OS_UTIL
-
+#define CONFIG_UIDGID_STRICT_TYPE_CHECKS
+#define NET_SKBUFF_DATA_USES_OFFSET
 
 #include "rtmp_comm.h"
 #include "rtmp_osabl.h"
 #include "rt_os_util.h"
 #include <linux/rtnetlink.h>
 
+#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
+#include <linux/uidgid.h>
+#endif
+
 #if defined(CONFIG_RA_HW_NAT) || defined(CONFIG_RA_HW_NAT_MODULE)
 #include "../../../../../../net/nat/hw_nat/ra_nat.h"
 #include "../../../../../../net/nat/hw_nat/frame_engine.h"
@@ -494,9 +499,15 @@
 		MEM_DBG_PKT_ALLOC_INC(skb);
 
 		skb_reserve(skb, 2);
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+		NdisMoveMemory(skb->data+skb->tail, pHeader802_3, HdrLen);
+		skb_put(skb, HdrLen);
+		NdisMoveMemory(skb->data+skb->tail, pData, DataSize);
+#else
 		NdisMoveMemory(skb->tail, pHeader802_3, HdrLen);
 		skb_put(skb, HdrLen);
 		NdisMoveMemory(skb->tail, pData, DataSize);
+#endif
 		skb_put(skb, DataSize);
 		skb->dev = pNetDev;	/*get_netdev_from_bssid(pAd, FromWhichBSSID); */
 		pPacket = OSPKT_TO_RTPKT(skb);
@@ -692,7 +703,11 @@
 	pOSPkt->dev = pNetDev;
 	pOSPkt->data = pData;
 	pOSPkt->len = DataSize;
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+	pOSPkt->tail = (pOSPkt->data-pOSPkt->head)+pOSPkt->len;
+#else
 	pOSPkt->tail = pOSPkt->data + pOSPkt->len;
+#endif
 
 	/* copy 802.3 header */
 
@@ -1118,9 +1133,15 @@
 		pOSFSInfo->fsgid = current->fsgid;
 		current->fsuid = current->fsgid = 0;
 #else
+#ifdef CONFIG_UIDGID_STRICT_TYPE_CHECKS
+		struct user_namespace *to = current_user_ns();
+		pOSFSInfo->fsuid = from_kuid_munged(to, current_fsuid());
+		pOSFSInfo->fsgid = from_kgid_munged(to, current_fsgid());
+#else
 		pOSFSInfo->fsuid = current_fsuid();
 		pOSFSInfo->fsgid = current_fsgid();
 #endif
+#endif
 		pOSFSInfo->fs = get_fs();
 		set_fs(KERNEL_DS);
 	} else {
sta/sta_cfg.c +2 -0
diff -ur DPO_MT7601U_LinuxSTA_3.0.0.4_20130913/sta/sta_cfg.c DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0/sta/sta_cfg.c
@@ -8274,6 +8274,7 @@
 			RTMPIoctlGetSiteSurvey(pAd, pRequest);
 			break;
 
+#ifdef DBG
 		case CMD_RTPRIV_IOCTL_MAC:
 			RTMPIoctlMAC(pAd, pRequest);
 			break;
@@ -8285,6 +8286,7 @@
 		case CMD_RTPRIV_IOCTL_RF:
 			RTMPIoctlRF(pAd, pRequest);
 			break;
+#endif /* DBG */
 
 		case CMD_RTPRIV_IOCTL_BBP:
 			RTMPIoctlBbp(pAd, pRequest, pData, Data);

poma

author
#5 lore raw

A new patch[1] mainly based on patches at
https://github.com/ashaffer/rt3573sta
and several network throughput tests via the Iperf. Tested with kernels:
- 3.15.10-200.fc20.x86_64
- 3.16.1-301.fc21.x86_64
- 3.17.0-0.rc2.git3.1.fc22.x86_64
- 3.16.1-301.fc21.i686
- 3.17.0-0.rc2.git3.1.fc22.i686

<Proximity>
Wi-Fi <~20cm LOS~> AP(Wi-Fi <-bridge-> 100Mbit switch) <-> Ethernet

<AP>

# iwconfig ra0
ra0       RTWIFI SoftAP  ESSID:"Geppetto"  
          Mode:Managed  Channel=13  Access Point: 00:22:44:66:88:aa   
          Bit Rate=150 Mb/s   
</AP>

<Wi-Fi>

$ iwconfig ra0 
ra0       Ralink STA  ESSID:"Geppetto"  Nickname:"MT7601STA"
          Mode:Managed  Frequency=2.472 GHz  Access Point: 00:22:44:66:88:aa   
          Bit Rate=150 Mb/s   
          RTS thr:off   Fragment thr:off
          Link Quality=100/100  Signal level:-22 dBm  Noise level:-53 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
</Wi-Fi>

<Ethernet>

$ ifconfig bridge0
bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.2  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:12:34:56:78:90  txqueuelen 0  (Ethernet)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
</Ethernet>

<Ethernet-TCP>

$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.2.2 port 5001 connected with 192.168.2.36 port 58536
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  10.6 MBytes  88.9 Mbits/sec
[  4]  1.0- 2.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  2.0- 3.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  3.0- 4.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  4.0- 5.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  5.0- 6.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  6.0- 7.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  7.0- 8.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  8.0- 9.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  9.0-10.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  0.0-10.1 sec   113 MBytes  93.6 Mbits/sec
</Ethernet-TCP>
Quoted 1 line

<Wi-Fi-TCP>

$ iperf -c 192.168.2.2 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.2, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.36 port 58536 connected with 192.168.2.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3]  1.0- 2.0 sec  11.8 MBytes  98.6 Mbits/sec
[  3]  2.0- 3.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3]  3.0- 4.0 sec  11.0 MBytes  92.3 Mbits/sec
[  3]  4.0- 5.0 sec  11.5 MBytes  96.5 Mbits/sec
[  3]  5.0- 6.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3]  6.0- 7.0 sec  11.2 MBytes  94.4 Mbits/sec
[  3]  7.0- 8.0 sec  11.1 MBytes  93.3 Mbits/sec
[  3]  8.0- 9.0 sec  11.5 MBytes  96.5 Mbits/sec
[  3]  9.0-10.0 sec  11.0 MBytes  92.3 Mbits/sec
[  3]  0.0-10.0 sec   113 MBytes  94.4 Mbits/sec
</Wi-Fi-TCP>

<Ethernet-UDP>

$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.2 port 5001 connected with 192.168.2.36 port 48479
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec  11.4 MBytes  95.3 Mbits/sec   0.119 ms    0/ 8105 (0%)
[  3]  1.0- 2.0 sec  11.4 MBytes  95.7 Mbits/sec   0.081 ms  480/ 8617 (5.6%)
[  3]  2.0- 3.0 sec  11.4 MBytes  95.7 Mbits/sec   0.098 ms 1200/ 9338 (13%)
[  3]  3.0- 4.0 sec  11.4 MBytes  95.7 Mbits/sec   0.078 ms 1502/ 9640 (16%)
[  3]  4.0- 5.0 sec  11.4 MBytes  95.7 Mbits/sec   0.121 ms 1459/ 9596 (15%)
[  3]  5.0- 6.0 sec  11.4 MBytes  95.7 Mbits/sec   0.084 ms 1488/ 9626 (15%)
[  3]  6.0- 7.0 sec  11.4 MBytes  95.7 Mbits/sec   0.142 ms 1513/ 9651 (16%)
[  3]  7.0- 8.0 sec  11.4 MBytes  95.7 Mbits/sec   0.100 ms 1470/ 9608 (15%)
[  3]  8.0- 9.0 sec  11.4 MBytes  95.7 Mbits/sec   0.095 ms 1526/ 9664 (16%)
[  3]  9.0-10.0 sec  11.4 MBytes  95.7 Mbits/sec   0.076 ms 1415/ 9553 (15%)
[  3]  0.0-10.2 sec   116 MBytes  95.7 Mbits/sec   0.559 ms 12254/94926 (13%)
[  3]  0.0-10.2 sec  1 datagrams received out-of-order
</Ethernet-UDP>
Quoted 1 line

<Wi-Fi-UDP>

$ iperf -c 192.168.2.2 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.2, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.36 port 48479 connected with 192.168.2.2 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  12.4 MBytes   104 Mbits/sec
[  3]  1.0- 2.0 sec  13.2 MBytes   110 Mbits/sec
[  3]  2.0- 3.0 sec  13.2 MBytes   111 Mbits/sec
[  3]  3.0- 4.0 sec  13.6 MBytes   114 Mbits/sec
[  3]  4.0- 5.0 sec  13.5 MBytes   113 Mbits/sec
[  3]  5.0- 6.0 sec  13.4 MBytes   113 Mbits/sec
[  3]  6.0- 7.0 sec  13.5 MBytes   113 Mbits/sec
[  3]  7.0- 8.0 sec  13.6 MBytes   114 Mbits/sec
[  3]  8.0- 9.0 sec  13.5 MBytes   113 Mbits/sec
[  3]  0.0-10.0 sec   133 MBytes   112 Mbits/sec
[  3] Sent 94927 datagrams
[  3] Server Report:
[  3]  0.0-10.2 sec   116 MBytes  95.7 Mbits/sec   0.559 ms 12254/94926 (13%)
[  3]  0.0-10.2 sec  1 datagrams received out-of-order
</Wi-Fi-UDP>

<Wi-Fi-TCP>

$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.2.36 port 5001 connected with 192.168.2.2 port 50371
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  10.2 MBytes  85.4 Mbits/sec
[  4]  1.0- 2.0 sec  9.66 MBytes  81.0 Mbits/sec
[  4]  2.0- 3.0 sec  9.53 MBytes  79.9 Mbits/sec
[  4]  3.0- 4.0 sec  9.28 MBytes  77.8 Mbits/sec
[  4]  4.0- 5.0 sec  8.94 MBytes  75.0 Mbits/sec
[  4]  5.0- 6.0 sec  8.60 MBytes  72.2 Mbits/sec
[  4]  6.0- 7.0 sec  8.24 MBytes  69.1 Mbits/sec
[  4]  7.0- 8.0 sec  8.19 MBytes  68.7 Mbits/sec
[  4]  8.0- 9.0 sec  7.77 MBytes  65.2 Mbits/sec
[  4]  9.0-10.0 sec  7.64 MBytes  64.1 Mbits/sec
[  4]  0.0-10.2 sec  89.2 MBytes  73.6 Mbits/sec
</Wi-Fi-TCP>
Quoted 1 line

<Ethernet-TCP>

$ iperf -c 192.168.2.36 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.36, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.2 port 50371 connected with 192.168.2.36 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  10.9 MBytes  91.2 Mbits/sec
[  3]  1.0- 2.0 sec  10.2 MBytes  86.0 Mbits/sec
[  3]  2.0- 3.0 sec  9.50 MBytes  79.7 Mbits/sec
[  3]  3.0- 4.0 sec  9.12 MBytes  76.5 Mbits/sec
[  3]  4.0- 5.0 sec  9.12 MBytes  76.5 Mbits/sec
[  3]  5.0- 6.0 sec  8.38 MBytes  70.3 Mbits/sec
[  3]  6.0- 7.0 sec  8.25 MBytes  69.2 Mbits/sec
[  3]  7.0- 8.0 sec  8.12 MBytes  68.2 Mbits/sec
[  3]  8.0- 9.0 sec  7.75 MBytes  65.0 Mbits/sec
[  3]  9.0-10.0 sec  7.75 MBytes  65.0 Mbits/sec
[  3]  0.0-10.0 sec  89.2 MBytes  74.7 Mbits/sec
</Ethernet-TCP>

<Wi-Fi-UDP>

$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.36 port 5001 connected with 192.168.2.2 port 55274
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec  10.5 MBytes  88.3 Mbits/sec   0.251 ms    1/ 7513 (0.013%)
[  3]  1.0- 2.0 sec  11.1 MBytes  93.0 Mbits/sec   0.276 ms  240/ 8149 (2.9%)
[  3]  2.0- 3.0 sec  10.8 MBytes  90.5 Mbits/sec   0.340 ms  400/ 8099 (4.9%)
[  3]  3.0- 4.0 sec  11.0 MBytes  92.1 Mbits/sec   0.127 ms  267/ 8101 (3.3%)
[  3]  4.0- 5.0 sec  10.6 MBytes  89.1 Mbits/sec   0.230 ms  524/ 8104 (6.5%)
[  3]  5.0- 6.0 sec  10.5 MBytes  88.3 Mbits/sec   0.141 ms  636/ 8145 (7.8%)
[  3]  6.0- 7.0 sec  10.4 MBytes  87.4 Mbits/sec   0.126 ms  639/ 8071 (7.9%)
[  3]  7.0- 8.0 sec  10.6 MBytes  89.2 Mbits/sec   0.163 ms  621/ 8207 (7.6%)
[  3]  8.0- 9.0 sec  10.5 MBytes  88.2 Mbits/sec   0.141 ms  537/ 8035 (6.7%)
[  3]  9.0-10.0 sec  10.3 MBytes  86.8 Mbits/sec   0.206 ms  765/ 8145 (9.4%)
[  3]  0.0-10.1 sec   107 MBytes  89.3 Mbits/sec   0.445 ms 4699/81305 (5.8%)
[  3]  0.0-10.1 sec  1 datagrams received out-of-order
</Wi-Fi-UDP>
Quoted 1 line

<Ethernet-UDP>

$ iperf -c 192.168.2.36 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.36, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.2 port 55274 connected with 192.168.2.36 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  11.5 MBytes  96.6 Mbits/sec
[  3]  1.0- 2.0 sec  11.4 MBytes  95.2 Mbits/sec
[  3]  2.0- 3.0 sec  11.4 MBytes  95.5 Mbits/sec
[  3]  3.0- 4.0 sec  11.4 MBytes  95.7 Mbits/sec
[  3]  4.0- 5.0 sec  11.4 MBytes  95.6 Mbits/sec
[  3]  5.0- 6.0 sec  11.4 MBytes  95.6 Mbits/sec
[  3]  6.0- 7.0 sec  11.3 MBytes  95.1 Mbits/sec
[  3]  7.0- 8.0 sec  11.4 MBytes  95.6 Mbits/sec
[  3]  8.0- 9.0 sec  11.4 MBytes  95.7 Mbits/sec
[  3]  9.0-10.0 sec  11.4 MBytes  95.5 Mbits/sec
[  3]  0.0-10.0 sec   114 MBytes  95.6 Mbits/sec
[  3] Sent 81306 datagrams
[  3] Server Report:
[  3]  0.0-10.1 sec   107 MBytes  89.3 Mbits/sec   0.444 ms 4699/81305 (5.8%)
[  3]  0.0-10.1 sec  1 datagrams received out-of-order
</Ethernet-UDP>
</Proximity>
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

<Refraction>
Wi-Fi <~10m NLOS~> AP(Wi-Fi <-bridge-> 100Mbit switch) <-> Ethernet

<AP>

# iwconfig ra0
ra0       RTWIFI SoftAP  ESSID:"Geppetto"  
          Mode:Managed  Channel=13  Access Point: 00:22:44:66:88:aa   
          Bit Rate=150 Mb/s   
</AP>

<Wi-Fi>

$ iwconfig ra0 
ra0       Ralink STA  ESSID:"Geppetto"  Nickname:"MT7601STA"
          Mode:Managed  Frequency=2.472 GHz  Access Point: 00:22:44:66:88:aa   
          Bit Rate=27 Mb/s   
          RTS thr:off   Fragment thr:off
          Link Quality=60/100  Signal level:-80 dBm  Noise level:-90 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
</Wi-Fi>

<Ethernet>

$ ifconfig enp0s4f1u4
enp0s4f1u4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.5  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:12:34:56:78:20  txqueuelen 1000  (Ethernet)
        RX errors 0  dropped 84  overruns 0  frame 0
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
</Ethernet>

<Wi-Fi-TCP>

$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.2.36 port 5001 connected with 192.168.2.5 port 59063
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  1.81 MBytes  15.2 Mbits/sec
[  4]  1.0- 2.0 sec  2.24 MBytes  18.8 Mbits/sec
[  4]  2.0- 3.0 sec  2.25 MBytes  18.8 Mbits/sec
[  4]  3.0- 4.0 sec  2.26 MBytes  19.0 Mbits/sec
[  4]  4.0- 5.0 sec  2.12 MBytes  17.8 Mbits/sec
[  4]  5.0- 6.0 sec  1.60 MBytes  13.4 Mbits/sec
[  4]  6.0- 7.0 sec  2.20 MBytes  18.5 Mbits/sec
[  4]  7.0- 8.0 sec  2.23 MBytes  18.7 Mbits/sec
[  4]  8.0- 9.0 sec  1.41 MBytes  11.8 Mbits/sec
[  4]  9.0-10.0 sec  2.83 MBytes  23.7 Mbits/sec
[  4]  0.0-10.6 sec  22.0 MBytes  17.4 Mbits/sec
</Wi-Fi-TCP>
Quoted 1 line

<Ethernet-TCP>

$ iperf -c 192.168.2.36 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.36, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.5 port 59063 connected with 192.168.2.36 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  2.00 MBytes  16.8 Mbits/sec
[  3]  1.0- 2.0 sec  2.50 MBytes  21.0 Mbits/sec
[  3]  2.0- 3.0 sec  2.38 MBytes  19.9 Mbits/sec
[  3]  3.0- 4.0 sec  2.25 MBytes  18.9 Mbits/sec
[  3]  4.0- 5.0 sec  2.50 MBytes  21.0 Mbits/sec
[  3]  5.0- 6.0 sec  1.88 MBytes  15.7 Mbits/sec
[  3]  6.0- 7.0 sec  2.00 MBytes  16.8 Mbits/sec
[  3]  7.0- 8.0 sec  2.38 MBytes  19.9 Mbits/sec
[  3]  8.0- 9.0 sec  1.38 MBytes  11.5 Mbits/sec
[  3]  9.0-10.0 sec  2.62 MBytes  22.0 Mbits/sec
[  3]  0.0-10.0 sec  22.0 MBytes  18.4 Mbits/sec
</Ethernet-TCP>

<Wi-Fi-UDP>

$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.36 port 5001 connected with 192.168.2.5 port 55884
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec  1.94 MBytes  16.3 Mbits/sec   1.198 ms 2902/ 4284 (68%)
[  3]  1.0- 2.0 sec  1.79 MBytes  15.0 Mbits/sec   1.282 ms 6990/ 8269 (85%)
[  3]  2.0- 3.0 sec  2.27 MBytes  19.0 Mbits/sec   0.722 ms 6875/ 8492 (81%)
[  3]  3.0- 4.0 sec  2.30 MBytes  19.3 Mbits/sec   0.970 ms 6538/ 8176 (80%)
[  3]  4.0- 5.0 sec  2.27 MBytes  19.0 Mbits/sec   0.994 ms 6387/ 8006 (80%)
[  3]  5.0- 6.0 sec  2.22 MBytes  18.6 Mbits/sec   1.724 ms 6557/ 8140 (81%)
[  3]  6.0- 7.0 sec  1.96 MBytes  16.4 Mbits/sec   1.001 ms 6799/ 8195 (83%)
[  3]  7.0- 8.0 sec  2.28 MBytes  19.1 Mbits/sec   0.699 ms 6556/ 8181 (80%)
[  3]  8.0- 9.0 sec  2.32 MBytes  19.5 Mbits/sec   1.065 ms 6259/ 7916 (79%)
[  3]  9.0-10.0 sec  2.31 MBytes  19.4 Mbits/sec   1.043 ms 6443/ 8092 (80%)
[  3]  0.0-10.4 sec  22.5 MBytes  18.2 Mbits/sec   1.554 ms 64724/80784 (80%)
</Wi-Fi-UDP>
Quoted 1 line

<Ethernet-UDP>

$ iperf -c 192.168.2.36 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.36, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.5 port 55884 connected with 192.168.2.36 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  11.4 MBytes  95.7 Mbits/sec
[  3]  1.0- 2.0 sec  11.3 MBytes  95.1 Mbits/sec
[  3]  2.0- 3.0 sec  11.3 MBytes  95.0 Mbits/sec
[  3]  3.0- 4.0 sec  11.3 MBytes  94.6 Mbits/sec
[  3]  4.0- 5.0 sec  11.4 MBytes  95.3 Mbits/sec
[  3]  5.0- 6.0 sec  11.3 MBytes  95.0 Mbits/sec
[  3]  6.0- 7.0 sec  11.3 MBytes  94.5 Mbits/sec
[  3]  7.0- 8.0 sec  11.3 MBytes  95.0 Mbits/sec
[  3]  8.0- 9.0 sec  11.3 MBytes  94.9 Mbits/sec
[  3]  9.0-10.0 sec  11.4 MBytes  95.4 Mbits/sec
[  3]  0.0-10.0 sec   113 MBytes  95.0 Mbits/sec
[  3] Sent 80820 datagrams
[  3] Server Report:
[  3]  0.0-10.4 sec  22.5 MBytes  18.2 Mbits/sec   1.554 ms 64724/80784 (80%)
</Ethernet-UDP>

<Ethernet-TCP>

$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.2.5 port 5001 connected with 192.168.2.36 port 49506
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  1.78 MBytes  15.0 Mbits/sec
[  4]  1.0- 2.0 sec  1.71 MBytes  14.3 Mbits/sec
[  4]  2.0- 3.0 sec  1.75 MBytes  14.7 Mbits/sec
[  4]  3.0- 4.0 sec  1.73 MBytes  14.5 Mbits/sec
[  4]  4.0- 5.0 sec  1.76 MBytes  14.7 Mbits/sec
[  4]  5.0- 6.0 sec  1.62 MBytes  13.6 Mbits/sec
[  4]  6.0- 7.0 sec  1.70 MBytes  14.3 Mbits/sec
[  4]  7.0- 8.0 sec  1.52 MBytes  12.7 Mbits/sec
[  4]  8.0- 9.0 sec  1.55 MBytes  13.0 Mbits/sec
[  4]  9.0-10.0 sec  1.64 MBytes  13.7 Mbits/sec
[  4]  0.0-10.5 sec  17.6 MBytes  14.1 Mbits/sec
</Ethernet-TCP>
Quoted 1 line

<Wi-Fi-TCP>

$ iperf -c 192.168.2.5 -i 1
------------------------------------------------------------
Client connecting to 192.168.2.5, TCP port 5001
TCP window size: 85.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.36 port 49506 connected with 192.168.2.5 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  2.00 MBytes  16.8 Mbits/sec
[  3]  1.0- 2.0 sec  1.75 MBytes  14.7 Mbits/sec
[  3]  2.0- 3.0 sec  1.88 MBytes  15.7 Mbits/sec
[  3]  3.0- 4.0 sec  1.62 MBytes  13.6 Mbits/sec
[  3]  4.0- 5.0 sec  2.00 MBytes  16.8 Mbits/sec
[  3]  5.0- 6.0 sec  1.50 MBytes  12.6 Mbits/sec
[  3]  6.0- 7.0 sec  1.88 MBytes  15.7 Mbits/sec
[  3]  7.0- 8.0 sec  1.50 MBytes  12.6 Mbits/sec
[  3]  8.0- 9.0 sec  1.50 MBytes  12.6 Mbits/sec
[  3]  9.0-10.0 sec  1.88 MBytes  15.7 Mbits/sec
[  3]  0.0-10.1 sec  17.6 MBytes  14.6 Mbits/sec
</Wi-Fi-TCP>

<Ethernet-UDP>

$ iperf -s -i 1 -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.5 port 5001 connected with 192.168.2.36 port 32801
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0- 1.0 sec  2.02 MBytes  17.0 Mbits/sec   0.370 ms    0/ 1442 (0%)
[  3]  1.0- 2.0 sec  2.63 MBytes  22.1 Mbits/sec   0.623 ms    0/ 1876 (0%)
[  3]  2.0- 3.0 sec  2.77 MBytes  23.2 Mbits/sec   0.423 ms    0/ 1974 (0%)
[  3]  3.0- 4.0 sec  2.48 MBytes  20.8 Mbits/sec   1.137 ms    0/ 1769 (0%)
[  3]  4.0- 5.0 sec  2.18 MBytes  18.3 Mbits/sec   0.398 ms    0/ 1558 (0%)
[  3]  5.0- 6.0 sec  2.26 MBytes  18.9 Mbits/sec   0.846 ms    0/ 1609 (0%)
[  3]  6.0- 7.0 sec  2.37 MBytes  19.9 Mbits/sec   0.500 ms    0/ 1690 (0%)
[  3]  7.0- 8.0 sec  2.33 MBytes  19.6 Mbits/sec   0.782 ms    0/ 1663 (0%)
[  3]  8.0- 9.0 sec  2.44 MBytes  20.5 Mbits/sec   0.707 ms    0/ 1741 (0%)
[  3]  9.0-10.0 sec  2.58 MBytes  21.7 Mbits/sec   1.300 ms    0/ 1842 (0%)
[  3]  0.0-10.1 sec  24.2 MBytes  20.2 Mbits/sec   2.782 ms    0/17256 (0%)
[  3]  0.0-10.1 sec  1 datagrams received out-of-order
</Ethernet-UDP>
Quoted 1 line

<Wi-Fi-UDP>

$ iperf -c 192.168.2.5 -i 1 -u -b 300M
------------------------------------------------------------
Client connecting to 192.168.2.5, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.2.36 port 32801 connected with 192.168.2.5 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec  2.23 MBytes  18.7 Mbits/sec
[  3]  1.0- 2.0 sec  2.59 MBytes  21.7 Mbits/sec
[  3]  2.0- 3.0 sec  2.76 MBytes  23.1 Mbits/sec
[  3]  3.0- 4.0 sec  2.59 MBytes  21.8 Mbits/sec
[  3]  4.0- 5.0 sec  2.15 MBytes  18.0 Mbits/sec
[  3]  5.0- 6.0 sec  2.14 MBytes  17.9 Mbits/sec
[  3]  6.0- 7.0 sec  2.44 MBytes  20.5 Mbits/sec
[  3]  7.0- 8.0 sec  2.42 MBytes  20.3 Mbits/sec
[  3]  8.0- 9.0 sec  2.43 MBytes  20.4 Mbits/sec
[  3]  9.0-10.0 sec  2.45 MBytes  20.5 Mbits/sec
[  3]  0.0-10.0 sec  24.2 MBytes  20.3 Mbits/sec
[  3] Sent 17257 datagrams
[  3] Server Report:
[  3]  0.0-10.1 sec  24.2 MBytes  20.2 Mbits/sec   2.782 ms    0/17256 (0%)
[  3]  0.0-10.1 sec  1 datagrams received out-of-order
</Wi-Fi-UDP>
</Refraction>

[1] DPO_MT7601U_LinuxSTA_3.0.0.4_20130913-Linux-3.17.0-v2.patch

common/crypt_aes.c +2 -2
diff -ur a/common/crypt_aes.c b/common/crypt_aes.c
@@ -1456,7 +1456,7 @@
 /*    if ((pResult = (UINT8 *) kmalloc(sizeof(UINT8)*PlainTextLength, GFP_ATOMIC)) == NULL) {
 */
     if (pResult == NULL) {
-    	DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Wrap: allocate %d bytes memory failure.\n", sizeof(UINT8)*PlainTextLength));
+    	DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Wrap: allocate %d bytes memory failure.\n", (UINT)(sizeof(UINT8)*PlainTextLength)));
         return -2;
     } /* End of if */
 
@@ -1551,7 +1551,7 @@
 /*    if ((pResult = (UINT8 *) kmalloc(sizeof(UINT8)*PlainLength, GFP_ATOMIC)) == NULL) {
 */
     if (pResult == NULL) {
-    	DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Unwrap: allocate %d bytes memory failure.\n", sizeof(UINT8)*PlainLength));
+    	DBGPRINT(RT_DEBUG_ERROR, ("AES_Key_Unwrap: allocate %d bytes memory failure.\n", (UINT)(sizeof(UINT8)*PlainLength)));
         return -2;
     } /* End of if */
 
common/mlme.c +2 -2
diff -ur a/common/mlme.c b/common/mlme.c
@@ -541,8 +541,8 @@
 #endif /* RALINK_ATE */
 		/* for performace enchanement */
 		NdisZeroMemory(&pAd->RalinkCounters,
-						(UINT32)&pAd->RalinkCounters.OneSecEnd -
-						(UINT32)&pAd->RalinkCounters.OneSecStart);
+						(ULONG)&pAd->RalinkCounters.OneSecEnd -
+						(ULONG)&pAd->RalinkCounters.OneSecStart);
 
 	return;
 }
common/rtmp_init_inf.c +2 -0
diff -ur a/common/rtmp_init_inf.c b/common/rtmp_init_inf.c
@@ -665,7 +665,9 @@
 	{
 	UINT32 reg = 0;
 	RTMP_IO_READ32(pAd, 0x1300, &reg);  /* clear garbage interrupts*/
+#ifdef DBG
 	printk("0x1300 = %08x\n", reg);
+#endif /* DBG */
 	}
 
 	{
common/rtusb_bulk.c +2 -0
diff -ur a/common/rtusb_bulk.c b/common/rtusb_bulk.c
@@ -1585,7 +1585,9 @@
 
 	if (pCmdRspEventContext->IRPPending == TRUE)
 	{
+#ifdef DBG
 		printk("unlink cmd rsp urb\n");
+#endif /* DBG */
 		RTUSB_UNLINK_URB(pCmdRspEventContext->pUrb);
 		pCmdRspEventContext->IRPPending = FALSE;
 		pCmdRspEventContext->InUse = FALSE;
common/spectrum.c +1 -1
diff -ur a/common/spectrum.c b/common/spectrum.c
@@ -1969,7 +1969,7 @@
 /*	if ((pMeasureReportInfo = kmalloc(sizeof(MEASURE_RPI_REPORT), GFP_ATOMIC)) == NULL)*/
 	if (pMeasureReportInfo == NULL)
 	{
-		DBGPRINT(RT_DEBUG_ERROR, ("%s unable to alloc memory for measure report buffer (size=%d).\n", __FUNCTION__, sizeof(MEASURE_RPI_REPORT)));
+		DBGPRINT(RT_DEBUG_ERROR, ("%s unable to alloc memory for measure report buffer (size=%d).\n", __FUNCTION__, (UINT)sizeof(MEASURE_RPI_REPORT)));
 		return;
 	}
 
include/os/rt_linux.h +10 -3
diff -ur a/include/os/rt_linux.h b/include/os/rt_linux.h
@@ -879,12 +879,19 @@
 		(RTPKT_TO_OSPKT(_pkt)->len)
 #define SET_OS_PKT_LEN(_pkt, _len)	\
 		(RTPKT_TO_OSPKT(_pkt)->len) = (_len)
-		
+
+#ifdef NET_SKBUFF_DATA_USES_OFFSET
+#define GET_OS_PKT_DATATAIL(_pkt) \
+        (RTPKT_TO_OSPKT(_pkt)->head + (ULONG)RTPKT_TO_OSPKT(_pkt)->tail)
+#define SET_OS_PKT_DATATAIL(_pkt, _start, _len)	\
+		((RTPKT_TO_OSPKT(_pkt))->tail) = (ULONG)_start - (ULONG)(RTPKT_TO_OSPKT(_pkt)->head) + (_len)
+#else
 #define GET_OS_PKT_DATATAIL(_pkt) \
-		(RTPKT_TO_OSPKT(_pkt)->tail)
+        (RTPKT_TO_OSPKT(_pkt)->tail)
 #define SET_OS_PKT_DATATAIL(_pkt, _start, _len)	\
 		((RTPKT_TO_OSPKT(_pkt))->tail) = (PUCHAR)((_start) + (_len))
-		
+#endif
+
 #define GET_OS_PKT_HEAD(_pkt) \
 		(RTPKT_TO_OSPKT(_pkt)->head)
 
os/linux/config.mk +7 -2
diff -ur a/os/linux/config.mk b/os/linux/config.mk
@@ -150,7 +150,7 @@
 HAS_BGFP_OPEN_SUPPORT=n
 
 # Support HOSTAPD function
-HAS_HOSTAPD_SUPPORT=n
+HAS_HOSTAPD_SUPPORT=y
 
 #Support GreenAP function
 HAS_GREENAP_SUPPORT=n
@@ -290,7 +290,7 @@
 # config for STA mode
 
 ifeq ($(RT28xx_MODE),STA)
-WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT -DDBG
+WFLAGS += -DCONFIG_STA_SUPPORT -DSCAN_SUPPORT
 
 ifeq ($(HAS_XLINK),y)
 WFLAGS += -DXLINK_SUPPORT
@@ -1054,11 +1054,16 @@
 export CFLAGS
 endif
 
+GCCVERSION = $(shell gcc -dumpversion)
+
 ifeq ($(PLATFORM),PC)
     ifneq (,$(findstring 2.4,$(LINUX_SRC)))
 	# Linux 2.4
 	CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -march=i686 -DMODULE -DMODVERSIONS -include $(LINUX_SRC)/include/linux/modversions.h $(WFLAGS)
 	export CFLAGS
+    else ifneq (,$(findstring 4.9,$(GCCVERSION)))
+	# GCC 4.9
+        EXTRA_CFLAGS := -Wno-error=date-time $(WFLAGS)
     else
 	# Linux 2.6
 	EXTRA_CFLAGS := $(WFLAGS) 
os/linux/rt_linux.c +11 -4
diff -ur a/os/linux/rt_linux.c b/os/linux/rt_linux.c
@@ -494,9 +494,11 @@
 		MEM_DBG_PKT_ALLOC_INC(skb);
 
 		skb_reserve(skb, 2);
-		NdisMoveMemory(skb->tail, pHeader802_3, HdrLen);
+
+		NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pHeader802_3, HdrLen);
 		skb_put(skb, HdrLen);
-		NdisMoveMemory(skb->tail, pData, DataSize);
+		NdisMoveMemory(GET_OS_PKT_DATATAIL(skb), pData, DataSize);
+
 		skb_put(skb, DataSize);
 		skb->dev = pNetDev;	/*get_netdev_from_bssid(pAd, FromWhichBSSID); */
 		pPacket = OSPKT_TO_RTPKT(skb);
@@ -647,7 +649,7 @@
 		pClonedPkt->dev = pRxPkt->dev;
 		pClonedPkt->data = pData;
 		pClonedPkt->len = DataSize;
-		pClonedPkt->tail = pClonedPkt->data + pClonedPkt->len;
+		SET_OS_PKT_DATATAIL(pClonedPkt, pClonedPkt->data, pClonedPkt->len);
 		ASSERT(DataSize < 1530);
 	}
 	return pClonedPkt;
@@ -692,7 +694,7 @@
 	pOSPkt->dev = pNetDev;
 	pOSPkt->data = pData;
 	pOSPkt->len = DataSize;
-	pOSPkt->tail = pOSPkt->data + pOSPkt->len;
+	SET_OS_PKT_DATATAIL(pOSPkt, pOSPkt->data, pOSPkt->len);
 
 	/* copy 802.3 header */
 
@@ -1117,6 +1119,11 @@
 		pOSFSInfo->fsuid = current->fsuid;
 		pOSFSInfo->fsgid = current->fsgid;
 		current->fsuid = current->fsgid = 0;
+
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3,15,10)
+      pOSFSInfo->fsuid = current_fsuid().val;
+      pOSFSInfo->fsgid = current_fsgid().val;
+
 #else
 		pOSFSInfo->fsuid = current_fsuid();
 		pOSFSInfo->fsgid = current_fsgid();
os/linux/rt_main_dev.c +2 -0
diff -ur a/os/linux/rt_main_dev.c b/os/linux/rt_main_dev.c
@@ -746,7 +746,9 @@
 	/* Unregister network device */
 	if (net_dev != NULL)
 	{
+#ifdef DBG
 		printk("RtmpOSNetDevDetach(): RtmpOSNetDeviceDetach(), dev->name=%s!\n", net_dev->name);
+#endif /* DBG */
 		RtmpOSNetDevDetach(net_dev);
 	}
 
os/linux/rt_profile.c +1 -1
diff -ur a/os/linux/rt_profile.c b/os/linux/rt_profile.c
@@ -396,7 +396,7 @@
 
     if (pRxBlk->DataSize + sizeof(wlan_ng_prism2_header) > RX_BUFFER_AGGRESIZE)
     {
-        DBGPRINT(RT_DEBUG_ERROR, ("%s : Size is too large! (%d)\n", __FUNCTION__, pRxBlk->DataSize + sizeof(wlan_ng_prism2_header)));
+        DBGPRINT(RT_DEBUG_ERROR, ("%s : Size is too large! (%d)\n", __FUNCTION__, pRxBlk->DataSize + (UINT)sizeof(wlan_ng_prism2_header)));
 		goto err_free_sk_buff;
     }
 
os/linux/usb_main_dev.c +4 -0
diff -ur a/os/linux/usb_main_dev.c b/os/linux/usb_main_dev.c
@@ -516,7 +516,9 @@
 /* Init driver module */
 INT __init rtusb_init(void)
 {
+#ifdef DBG
 	printk("rtusb init %s --->\n", RTMP_DRV_NAME);
+#endif /* DBG */
 	return usb_register(&rtusb_driver);
 }
 
@@ -524,7 +526,9 @@
 VOID __exit rtusb_exit(void)
 {
 	usb_deregister(&rtusb_driver);	
+#ifdef DBG
 	printk("<--- rtusb exit\n");
+#endif /* DBG */
 }
 
 module_init(rtusb_init);
sta/sta_cfg.c +2 -0
diff -ur a/sta/sta_cfg.c b/sta/sta_cfg.c
@@ -8274,6 +8274,7 @@
 			RTMPIoctlGetSiteSurvey(pAd, pRequest);
 			break;
 
+#ifdef DBG
 		case CMD_RTPRIV_IOCTL_MAC:
 			RTMPIoctlMAC(pAd, pRequest);
 			break;
@@ -8285,6 +8286,7 @@
 		case CMD_RTPRIV_IOCTL_RF:
 			RTMPIoctlRF(pAd, pRequest);
 			break;
+#endif /* DBG */
 
 		case CMD_RTPRIV_IOCTL_BBP:
 			RTMPIoctlBbp(pAd, pRequest, pData, Data);

poma

#6 lore raw
Quoted 53 lines · poma

A new patch[1] mainly based on patches at
https://github.com/ashaffer/rt3573sta
and several network throughput tests via the Iperf. Tested with kernels:
- 3.15.10-200.fc20.x86_64
- 3.16.1-301.fc21.x86_64
- 3.17.0-0.rc2.git3.1.fc22.x86_64
- 3.16.1-301.fc21.i686
- 3.17.0-0.rc2.git3.1.fc22.i686

<Proximity>
Wi-Fi <~20cm LOS~> AP(Wi-Fi <-bridge-> 100Mbit switch) <-> Ethernet

<AP>

# iwconfig ra0
ra0       RTWIFI SoftAP  ESSID:"Geppetto"  
          Mode:Managed  Channel=13  Access Point: 00:22:44:66:88:aa   
          Bit Rate=150 Mb/s   
</AP>

<Wi-Fi>

$ iwconfig ra0 
ra0       Ralink STA  ESSID:"Geppetto"  Nickname:"MT7601STA"
          Mode:Managed  Frequency=2.472 GHz  Access Point: 00:22:44:66:88:aa   
          Bit Rate=150 Mb/s   
          RTS thr:off   Fragment thr:off
          Link Quality=100/100  Signal level:-22 dBm  Noise level:-53 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
</Wi-Fi>

<Ethernet>

$ ifconfig bridge0
bridge0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.2  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:12:34:56:78:90  txqueuelen 0  (Ethernet)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
</Ethernet>

<Ethernet-TCP>

$ iperf -s -i 1
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.2.2 port 5001 connected with 192.168.2.36 port 58536
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0- 1.0 sec  10.6 MBytes  88.9 Mbits/sec
[  4]  1.0- 2.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  2.0- 3.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  3.0- 4.0 sec  11.2 MBytes  94.1 Mbits/sec
Quoted 8 lines
[  4]  4.0- 5.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  5.0- 6.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  6.0- 7.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  7.0- 8.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  8.0- 9.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  9.0-10.0 sec  11.2 MBytes  94.1 Mbits/sec
[  4]  0.0-10.1 sec   113 MBytes  93.6 Mbits/sec
</Ethernet-TCP>

...

Thanks for providing test results. With respect to the bottleneck fast ethernet switch in between and that it is most probably a 1x1:1 mimo config according[1], they are fine!

The 64bit patch you attached is fine for use with tunneling, like vxlan, too!

Regards,
Andreas

[1] (one line)
https://wikidevi.com/wiki/Special:Ask?title=Special:Ask&q=[[Chip1+model::~MT7601U*]]&po=?Interface%250D%250A?Form+factor=FF%250D%250A?Interface+connector+type=USB+conn.%250D%250A?FCC+ID%250D%250A?Manuf%250D%250A?Manuf+product+model=Manuf.+mdl%250D%250A?Vendor+ID%250D%250A?Device+ID%250D%250A?Chip1+model%250D%250A?Supported+802dot11+protocols=PHY+modes%250D%250A?MIMO+config%250D%250A?OUI%250D%250A?Estimated+year+of+release=Est.+year&eq=yes&p[format]=broadtable&order[0]=ASC&sort_num=&order_num=ASC&p[limit]=500&p[offset]=&p[link]=all&p[sort]=&p[headers]=show&p[mainlabel]=&p[intro]=&p[outro]=&p[searchlabel]=…+further+results&p[default]=&p[class]=sortable+wikitable+smwtable

author
#7 lore raw
BUG: unable to handle kernel paging request at ffffc9000277c070
IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
Oops: 0000 [#1] SMP 
CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G           OE  3.17.0-1.fc21.x86_64 #1
task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
RIP: 0010:[<ffffffff8165272c>]  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
RSP: 0018:ffff8800beddfcd8  EFLAGS: 00010202
RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
FS:  00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
Stack:
 ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
 ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
 0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
Call Trace:
 [<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
 [<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
 [<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
 [<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
 [<ffffffff8163135e>] __dev_open+0xce/0x150
 [<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
 [<ffffffff81631779>] dev_change_flags+0x29/0x70
 [<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
 [<ffffffff816a6d05>] inet_ioctl+0x65/0x90
 [<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
 [<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
 [<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
 [<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
 [<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
 [<ffffffff81743469>] system_call_fastpath+0x16/0x1b
Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0 
RIP  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
 RSP <ffff8800beddfcd8>
CR2: ffffc9000277c070
---[ end trace 97a7adc75a3f40f8 ]---
#8 lore raw

You probably shold be sending this to MediaTek. The driver you are using is not part of the upstream Linux kernel.

John

Quoted 49 lines · poma
BUG: unable to handle kernel paging request at ffffc9000277c070
IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
Oops: 0000 [#1] SMP 
CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G           OE  3.17.0-1.fc21.x86_64 #1
task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
RIP: 0010:[<ffffffff8165272c>]  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
RSP: 0018:ffff8800beddfcd8  EFLAGS: 00010202
RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
FS:  00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
Stack:
 ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
 ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
 0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
Call Trace:
 [<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
 [<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
 [<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
 [<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
 [<ffffffff8163135e>] __dev_open+0xce/0x150
 [<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
 [<ffffffff81631779>] dev_change_flags+0x29/0x70
 [<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
 [<ffffffff816a6d05>] inet_ioctl+0x65/0x90
 [<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
 [<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
 [<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
 [<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
 [<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
 [<ffffffff81743469>] system_call_fastpath+0x16/0x1b
Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0 
RIP  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
 RSP <ffff8800beddfcd8>
CR2: ffffc9000277c070
---[ end trace 97a7adc75a3f40f8 ]---

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

Signature · 2 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.
author
#9 lore raw
Quoted 5 lines · John W. Linville

You probably shold be sending this to MediaTek. The driver you are using is not part of the upstream Linux kernel.

John

No problemos!

Quoted 51 lines · poma
Quoted 49 lines
BUG: unable to handle kernel paging request at ffffc9000277c070
IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
Oops: 0000 [#1] SMP 
CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G           OE  3.17.0-1.fc21.x86_64 #1
task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
RIP: 0010:[<ffffffff8165272c>]  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
RSP: 0018:ffff8800beddfcd8  EFLAGS: 00010202
RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
FS:  00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
Stack:
 ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
 ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
 0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
Call Trace:
 [<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
 [<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
 [<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
 [<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
 [<ffffffff8163135e>] __dev_open+0xce/0x150
 [<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
 [<ffffffff81631779>] dev_change_flags+0x29/0x70
 [<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
 [<ffffffff816a6d05>] inet_ioctl+0x65/0x90
 [<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
 [<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
 [<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
 [<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
 [<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
 [<ffffffff81743469>] system_call_fastpath+0x16/0x1b
Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0 
RIP  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
 RSP <ffff8800beddfcd8>
CR2: ffffc9000277c070
---[ end trace 97a7adc75a3f40f8 ]---

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

author
#10 lore raw
Quoted 10 lines · poma
Quoted 5 lines · John W. Linville

You probably shold be sending this to MediaTek. The driver you are using is not part of the upstream Linux kernel.

John

No problemos!

BTW, pán Gruszka, when will these devices be supported as a part of the upstream Linux kernel?

poma

Quoted 52 lines
Quoted 51 lines · poma
Quoted 49 lines
BUG: unable to handle kernel paging request at ffffc9000277c070
IP: [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
PGD 12b01c067 PUD 12b01d067 PMD 1295e8067 PTE 0
Oops: 0000 [#1] SMP 
CPU: 3 PID: 1497 Comm: wpa_supplicant Tainted: G           OE  3.17.0-1.fc21.x86_64 #1
task: ffff88007ec44e80 ti: ffff8800beddc000 task.ti: ffff8800beddc000
RIP: 0010:[<ffffffff8165272c>]  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
RSP: 0018:ffff8800beddfcd8  EFLAGS: 00010202
RAX: ffffc9000277c000 RBX: ffff8800caa3c000 RCX: ffff8800ca22a948
RDX: 0000000000000000 RSI: 0000000000000005 RDI: ffff8800caa3c000
RBP: ffff8800beddfce8 R08: 0000000000000000 R09: 0000000000000208
R10: 0000000000000400 R11: 0000000000000010 R12: 0000000000000000
R13: ffffc9000277c000 R14: 0000000000000000 R15: 0000000000000001
FS:  00007fce557aa800(0000) GS:ffff88012fcc0000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: ffffc9000277c070 CR3: 000000007eeed000 CR4: 00000000000007e0
Stack:
 ffffffff816527e8 ffff8800caa3c000 ffff8800beddfd20 ffffffffa05e4655
 ffffffffa05e4ab0 ffffffffa05e4510 000000005abd5236 ffff8800caa3c000
 0000000000001003 ffff8800beddfd58 ffffffff8163135e ffff8800caa3c000
Call Trace:
 [<ffffffff816527e8>] ? netif_carrier_on+0x48/0x50
 [<ffffffffa05e4655>] MainVirtualIF_open+0x85/0xe0 [mt7601Usta]
 [<ffffffffa05e4ab0>] ? RtmpOSIRQRequest+0x60/0x60 [mt7601Usta]
 [<ffffffffa05e4510>] ? RT28xx_get_ether_stats+0x150/0x150 [mt7601Usta]
 [<ffffffff8163135e>] __dev_open+0xce/0x150
 [<ffffffff8163168d>] __dev_change_flags+0x9d/0x160
 [<ffffffff81631779>] dev_change_flags+0x29/0x70
 [<ffffffff816a5bac>] devinet_ioctl+0x63c/0x710
 [<ffffffff816a6d05>] inet_ioctl+0x65/0x90
 [<ffffffff816105d5>] sock_do_ioctl+0x25/0x50
 [<ffffffff81610b30>] sock_ioctl+0x1f0/0x2c0
 [<ffffffff81220340>] do_vfs_ioctl+0x2d0/0x4b0
 [<ffffffff812205a1>] SyS_ioctl+0x81/0xa0
 [<ffffffff81135a16>] ? __audit_syscall_exit+0x1f6/0x2a0
 [<ffffffff81743469>] system_call_fastpath+0x16/0x1b
Code: 9b 48 a4 ff c6 05 bd 12 6b 00 01 48 8b 45 d8 e9 09 ff ff ff 66 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 48 8b 87 e8 01 00 00 <48> 83 78 70 00 74 41 55 48 89 e5 53 48 63 87 c0 03 00 00 85 c0 
RIP  [<ffffffff8165272c>] __netdev_watchdog_up+0xc/0x80
 RSP <ffff8800beddfcd8>
CR2: ffffc9000277c070
---[ end trace 97a7adc75a3f40f8 ]---

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html

#11 lore raw
Quoted 1 line · poma

BTW, pán Gruszka, when will these devices be supported as a part of the upstream Linux kernel?

I'm not an oracle :-)

Larry declared to work on some mt76xx chip support, I'm cc him.

I can also work on new chips for rt2x00, but wanted to finish some other work before.

Stanislaw

author
#12 lore raw
Quoted 12 lines · Stanislaw Gruszka
Quoted 1 line · poma

BTW, pán Gruszka, when will these devices be supported as a part of the upstream Linux kernel?

I'm not an oracle :-)

Larry declared to work on some mt76xx chip support, I'm cc him.

I can also work on new chips for rt2x00, but wanted to finish some other work before.

Stanislaw

Even better pán Gruszka, MediaTek has spoken. :) I hope that they really support further development here.

Toodooloo

#13 lore raw
Quoted 8 lines · poma
Quoted 7 lines · Stanislaw Gruszka
Quoted 1 line · poma

BTW, pán Gruszka, when will these devices be supported as a part of the upstream Linux kernel?

I'm not an oracle :-)

Larry declared to work on some mt76xx chip support, I'm cc him.

Quoted 8 lines
Quoted 5 lines

I can also work on new chips for rt2x00, but wanted to finish some other work before.

Stanislaw

Even better pán Gruszka, MediaTek has spoken. :) I hope that they really support further development here.

Me too.

Stanislaw