SQM fair bandwidth share. Does it possible? Help with settings

Yes, if you had used sqm as framework you would not have had to do that, but this is really not a big win, so I fully understand your approach to keep things independent.

By the way games was Apex and bf1, another games i will test tomorrow.
Apex usually eats very small amount of traffic, bf1 eats a lot of traffic, it's very depend on speed and latency game.

Also what about recording a video for you how it all works?
(I just wrote about it already, but suddenly you didn’t notice, sometimes I accidentally miss messages myself, so everything is fine)

I have no experience with modern FPS networked games, so I would not be able to detect whether thing go badly or well unless there is really obvious visual stutter, so not sure a "things are working well video" would help me (unless you can also share a "things are going badly" video without cake, but even then the differences need to be salient enough so that I would pick these up).

Actually I didn't know I could write loadable script? Could it be easily altered to make a loadable version? If so surely that would be good for this case?

Oh, without this script it will be noticeably.

Probably not well documented... the advantage is that you could use some of the helper functions and use the GUI for base configuration. However in your case many of the helpers would not be all that useful (well the hotplug integration might have saved you some time) and the GUI does not offer all the variables you would have liked (but it is possible to just take those variables that make sense and ignore the others in your script).
However ATM sqm only has helpers for iptables so all of your nftables stuff would need some special care to set up (could be integrated into your script).

Yes, and I do not know. Currently you have full freedom, with sqm integration you would propbaly get some constraints (and sqm would probably need a user-configurable sqm-stop function analog to the existing user configurable sqm-start function, but that is a feature that is easy to implement and only does not exist yet, because there was no use-case demanding it).

The cake-wg-pbr is super simple no nftables just a script that uses tc calls and corresponding hotplug.d so sounds like it could be readily altered to make it a loadable SQM script for cases where users want to put cake on wan and properly handle flows. All it does is rely on flow hash preservation for upload and creates an IFB for download and dependent on whether WireGuard peer present it will either mirror all flow from wan or mirror unencrypted flows from wan and unencrypted flow from vpn. So all I needed is the WireGuard interface name and the wan interface name.

The wan interface can come from the GUI, but the wg interface name would need to be coded in the script itself (or in defaults.sh for that matter).
For hotplug we would need to make sure sqm's hotplug runs after wg's hotplug, so the wg interface exists when we try to set up the IFBs in your script.

there is a twitch or bittorrent + gaming trick that I have not documented. IF you assign your pc more than one ipv4 or ipv6 address and bind twitch or torrent to that, cake will give it a whole host's worth of bandwidth.

As many clients get more than one ipv6 address automatically, this works for that, assuming your other application uses ipv6. It's also a way of giving a vm it's own "host" status. I tend not to talk about it because I'm kind of a fan of "one host per user", being fairer to the network than giving yourself 100 Ipv6 addresses, an over-leveraging that....


Yes, however are mere applications like a torrent client that are likely to use massive amounts of parallel flows also likely to inflate the number of IP addresses they use?

I already hear the next proposal, just use MAC addresses instead for fairness, but these can also be spoofed (or rather a single host with a single NIC can use multiple MACs in parallel.

In the end it is an arms race, however instantiating multiple addresses without first asking the user is clearly in the hostile territory, while using "too many" flows can still be explained by lack of knowledge of the consequences... (IIUC torrents use many flows not because they split a logically single connection into many flows, but because they connect with many up- and download entities, so using many flows/connections seems to be an intuitive approach, and not like an attempt to game the system for more aggregate throughput).

My work started with trying to deeply understand why bittorrent trashed networks.

We've fixed most of that, and torrent might make a comeback if the streaming movie market keeps fragmenting.

High on my todo list is to find some way to add packet subwindows to tcp cubic.

Hey-hey! You are talking about interesting things here! I had a question: is it possible to somehow circumvent a rigid restriction on, for example, 2 megabits on the device? Are there any attacks on this so that one device can take more than allowed?

And here I am trying to remove windows from my computers, only for you to add it back to every TCP flow; question, will I need to buy an individual copy in Redmond for each flow and will there be bulk pricing :wink:

https://dl.acm.org/doi/pdf/10.1145/3387514.3406591 has a successor that goes into packet subwindows better.

1 Like

Yes and no. as far as I know (so not very far) cake will do what it is told and either treat all flows equally of all all-IPs and flows, but this can be gamed if an application manages to use many more flows or IP addresses than the other flows. That is something inherently unfixable from a qdisc's perspective.

Will keep that in mind should I upgrade my home network from family-of-5-grade to "data-center" :wink:

1 Like

Even now I’m not talking about OpenWRT and “advanced” SQM/QOS, I'm talking about just a “stupid” restriction of up to 2 megabit (like Wondershaper). I was in one place where the Internet speed for each WiFi device was limited to 2 megabits, from which it was almost impossible to use the web. As I scanned the network, Mikrotik+Ubiq devices were used there.

I would like to know if it is possible to somehow get around the restrictions from the phone/laptop (Both Have Root and Linux).

The other day I was thinking about those WiFi access points where you hit pay wall and need to pay to access. Would it be possible to connect via lots of different intelligently guessed static IP addresses to gain connectivity or something along those lines?

I would guess the only way forward I can recommend would be to talk to the operator of that network. My assumption would be that there is a <= 2 Mbps policy in place and the best way to have that changed would be to convince the operator to change to something less restrictive.
I think a decent argument can be brought for equal capacity share for all active users, instead of a hard limit (but that requires unmetered internet access for the operator).

Unless you pay for more than 2 Mbps and hence the limit is against your contract I believe it to be the prerogative of someone sharing WiFi to set the rules, even if I agree that fixed low limits are not the best policy.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.