iOS Tethering Bottlenecked

Hey, hopefully somebody has insights into this one, but I feel like my tethering connection via USB is getting bottlenecked somehow. So there's a summary of the situation:

  • The router is: Nighthawk® X4S Dual-Band WiFi Router (up to 2.53Gbps) with MU-MIMO
  • The setup consists of: an iPhone 12 tethering to the router via USB 2 cable / into a USB 3 port.
  • a Speedtest on the iPhone 12 yields ~200mbp/s, and tethering via USB (same cable) from the iPhone 12 to my MacBook yields ~150mpbs
  • Using the same USB 2 cable, tethering to the router yields a maximum of 80mbp/s, nearly a 50% decrease. If I can recall correctly, this issue also happened with other linux machine I've tested.

It seems that the USB cable nor the iPhone is being problematic. Although I suppose it's something with the linux firmware perhaps? Unless there's a hardware problem, but I high doubt it, this router has enough processing power for at least 150mbp/s.

From what I can think:

  • Maybe the USB power is being throttled/underdelivered?

Thanks in advance for the help!

If running version 21, have you enabled packet steering?

I'm currently running version 19.07.6, I feel like the issue is from linux's implementation of iOS tethering.

... or iOS implementation of open source compatibility.

Try tethering using WiFi instead, to see if you can get higher speeds.

yep, I did just that, speeds were on the 150mbp/s level if I use the hotspot directly from my phone.

i meant via the router.

A few things to try;

What do the openwrt logs say? From connecting the phone through establishing a session?

Upgrade to 21.02 and try again.

Use a Linux live cd to test tethering direct from a pc. Grab the logs from that session as well.

If desktop Linux is similarly throttled then it is an iOS issue - not exposing required info to allow compatibility to be created. Apple’s implementation is not at all transparent

thanks a lot for the suggestions, i’ll test all of them upon getting home tomorrow! i’m getting a pc soon, so i’ll try tethering via usb there to confirm with linux installed. the previous linux machine i’ve tested this with was a raspberry pi 4b - i suppose tethering speeds above 80mbps was too overwhelming for it too. but from what i’ve seen right now, it seems like linux’s implementation of iOS tethering that is making everything terrible!

The pi 4 is capable of 1gbit routing, so I doubt it.

So, I just upgraded to the most recent OpenWrt version and retested. As I thought, it was USB tethering that was causing the problem all along.

  • I tested tethering wirelessly to the router, and it did get 90 MBP/s - pretty sure this is not within the margin of error since USB Tethering never achieved past 82 MBP/s from hundred of tries. Also, the SpeedTest was on my MacBook, which means the router has to be the receiver and the broadcaster; which could have severely limited it.
  • Updating firmware did not work either, I'm currently on version 21.02.1.

Next thing is uploading the logs and possibly making an issue request on the libimobiledevice GitHub probably since this seems like a linux issue?

It’s most likely an Apple issue, but it can’t hurt to provide the developer with more information.