Say I am in a hotel room and have only my Windows laptop but want nice and low latency. Can I somehow run the CAKE algorithm from my windows laptop?
In this situation can I run a virtual OpenWrt router that has my same settings with adaptive CAKE and WireGuard though which I get my hotel connection?
I do not know a Windows driver that implements any of the openWRT SQM shaping algorithms.
Killer network cards have a dull shaping included in their proprietary Windows driver. Dell occasionally had some Laptops bundled with Killer network cards. But foremost Killer is strong marketing. If I would be mean, I would say, that their shaping is mostly based on prioritizing Killer-equiped systems over non-Killer systems in the same LAN (Hail to all people that still run a Linksys WRT32X with stock firmware)
Then there is the „cFosSpeed“ driver which also has traffic shaping. Gigabyte used to bundle cfos with some systems in the past (white labeled). Might be that your Laptop manufacturer offers similar options. Then there seems to be more: e.g. trafficshaper XP, netbalancer and netlimiter, all of which I do not know. But I guess none is based on Linux/openWRT SQM shaping code.
You could though run a full virtual OpenWRT e.g. in a locally hosted docker or VM (using an OpenWRT x86 image) and set that as local gateway of the laptop. That should do fine for shaping your local app traffic. But the overall hotel WiFi and hotel WAN could still likely suck in cross-guest shaping.
Interestingly enough my Dell XPS 13 9320 came with a WiFi 6 killer card. Reports >1Gbit connection rates with my RT3200. I haven't yet tested with iperf3 to see actual rates but I'm guessing 800Mbit/s or so.
So with the docker idea would I pass the killer card to the OpenWrt x86 instance, set that to connect to hotel WiFi as wan, and then create a virtual ethernet driver in Windows that is to talk to my virtual OpenWrt router?
I would favor HyperV or Oracle VirtualPC over docker, might be easier to setup and has software defined network stuff as click-and-point config options on board.
VM host software comes with such virtual NIC drivers. Challenge is, to properly configure it.
I have not tried that scenario before, so I do not have step by step instructions, outline is:
VM network point of view:
- You could try VM NAT network. But then you will have double NAT (some communications or file sharing apps might not like double NAT, but browser and mail will be fine with that). On the OpenWRT LAN side you need to either disable DHCP from the VM host net config or disable DHCP in OpenWRT for the OpenWRT LAN interface.
- you can also try bridged VM network, but then you will likely need to manually add a route in both Windows and OpenWRT. But this has the benefit of avoiding extra NAT. OpenWRT LAN side and the software NIC visible on your physical network need an IP range that differs from the hotel IP range, otherwise it will not work. Avoid to accidently advertise your OpenWRT LAN DHCP to the hotel WiFi network, to avoid affecting other users. (Unless you like a meet and greet with the hotel management)
in both VM network variants, the virtual machine used by OpenWRT will need 2 enabled virtual NICs in the VM host config (as you want a WAN and a LAN side for OpenWRT).
*your physical laptop will have the real WiFi NIC and a second software-based NIC managed by the VM host software
- your OpenWRT instance will see 2 software-based NICs managed by the VM host software. One being associated with the physical NIC, the other linked with the software NIC visible on your physical laptop.
app on physical laptop PoV:
the applications on your laptop will see 2 NICs being in different sub net IP ranges, the physical NIC being in the hotel WiFi IP range and the software defined one being in a sub net IP tange that you have defined.
To ensure that the apps running on your physical laptop send their Internet traffic to OpenWRT and not directly to the hotel gateway, you need the “route“ commandline tool of windows, to modify the metrics value of one of the 2 interfaces, such that the software NIC (of the subnet of the OpenWRT LAN side) has a lower metric value. Lower metric value=preferred route.
Virtual Box PoV:
Virtual Box network handler will receive traffic from OpenWRT WAN. The virtual NIC used by OpenWRT WAN side is associated with the physical NIC, so Virtual Box will not have to guess based on Windows route metrics, where to route Internet-destinated trafficcoming from OpenWRT (which would otherwise cause a loop).
Again: this was just a quick rough idea, have not tried that. You might need to fiddle with configs, to get it up and running. Note that tutorials you might find for “OpenWRT in a VM“ might likely aim at other virtual machine clients using such a virtualized OpenWRT to access the Internet. Likely none of these tutorials aim at rerouting application traffic from the physical host via the virtual OpenWRT to the Internet. So the tutorials might not be wrong, but might miss the metrics part on the physical machine.
That would be usefull if you d be directly conneted to the Internet (aka have a public ip on your windows adapter) but as you most likely don't all sqm stuff is useless.
yeah, just what I offered in my first post: „ That should do fine for shaping your local app traffic.“
Concurrent traffic originating from your local laptop apps will be shaped against each other and nothing more. If the hotel WiFi controller sucks regarding shaping traffic of other guests, nothing you can do.
You might be better of with a smallish OpenWrt "travel" router running cake-autorate... (needs to have either WiFI to connect the hotel's WiFi or LTE/5G so you span your own network) and connect the windows laptop via ethernet cable or a secondary WiFi radio (so the router needs to use one radio as station to log into the hotel's network and another radio to serve your devices).
Seems like this would be the easiest in practice albeit the virtual machine solution @Pico very kindly went into in some detail seems ultimately superior owing to not having to have extra hardware.
I suppose OpenWrt on usb stick with one or two WiFi radios is out of the question? Else any good little device with two radios?