it's nice to see applications elsewhere: https://ishitatsuyuki.github.io/post/latencyflex/
@Lynx, @moeller0, @openwrticon (and others): I note that there's no license on the sqm-autorate Github repo. I think there should be. Since you've all contributed to the project, would it be OK to pick GPLv3? Thanks.
I note I took enormous flack from several major corps for trying to use gplv3 licensing, and successfully got pete heist to relicense irtt to GPLv2 so that one of them could use it internally. I have had no involvement in this codebase so whatever license you pick is up to y'all, just that these days, for attempts to change the world, I use the most permissive license possible, such as apache or bsd.
For attempts to make just openwrt and independent development efforts, all the better, I can argue the other side, and suggest that gplv3 be the right thing.
As I said, not up to me.
I'm not going to pretend like I understood everything in that link, but from what I could grasp, that is pretty awesome! Thanks for sharing!
Dave, would you be able to elaborate on the differences between the two that make GPLv2 more attractive to major corps? I am not a licensing expert, so I'm genuinely interested in knowing some of these nuances.
Not that I'm suggesting it specifically for this project, but I've seen a lot of references to MIT licensing being one of the most open types. Not sure if you have experience with it vs Apache and/or BSD.
MIT is open enough that you can add closed source to it and relicense the whole product as your own commercial thing.
@malikshi and anyone else who experienced huge latency spikes in the v0.4.2 release, please grab v0.4.3 and see if your experience is improved.
It seems there was a "rollover" issue when reflector timestamps rolled over to zero at midnight GMT. Hopefully this release resolves that issue. More info is here: https://github.com/Fail-Safe/sqm-autorate/discussions/82
I would not say the GPLv2 is "attractive" to major corps, either, but the GPLv3 is outright banned within apple, and the GPLv2 - even stuff like wireshark - requires, like 5 layers of mgmt authority to sign off on. Google defaults to apache. The $260B app store market by and large also essentially bans GPLv3 and to a large extent GPLv2 code.
I would have liked to have seen more uptake for flent from chipmakers but its GPLv3 license has been a problem there.
It is the viralness of the "anti-tivoisation" GPLv3 clause that makes lawyers panic that some other proprietary portion of their infrastructure will have to be published. There is also some truth that the "Software as a service", rather than "code on your computer", market, now exists because the quality GPLv2 code-bases don't require you get the code if it's a "cloud service", and nobody has the energy to rewrite those from scratch to actually ship code that runs on your computer.
The rust world is very anti-gpl.
The IETF demands two clause BSD. Prplwrt also. The fact that these other licenses have a tendency to not attract quality devs that the GPL does does not stop them from mandating them. In the fq_codel process it was a bear to standardize because we couldn't refer to the codebase directly. Cake is dual GPLv2/BSD licensed due to this, and on both cases we tried also to publish a paper that would make it simpler to rewrite and embed the code into hardware.
Yet:
I think one of openwrt and linux's great strengths is the GPLv2 license, forcing companies leveraging the code to ultimately publish, in a feedback virtuous loop. Example: starlink put out their chaos calmer codebase a week after I talked to them. Didn't help that they were 10 years behind us, but perhaps their next product(s) will get it.
I am actually quite sad at how ebpf is destroying direct network innovation within linux, with so much code never getting compently published or, reviewed.
Here' y'all have had a wonderful back-and-forth process and not cared about the license til now, but imagine if you were to walk one-day into a telco and be told you'd have to recreate this code from scratch because the lawyers demanded it be compatible with their internal offload engine licenses.
The GPLv3 makes "open source" code essentially just as proprietary as proprietary code, but proprietary to the GPL codebases. The GPLv2 still has a mandatory publishing requirement to end users (more respected in the breach than in actuality, but it does work often enough to keep progress lurching along), and without it openwrt would not exist.
Other licenses have no such requirement, but to a fairly large extent a lot of stuff gets published and publicly managed anyway. The openwrt derived RDK-B (cablemodem) and prplwrt efforts are trying to rip out all the gplv2 code also from userspace, android already did, apple never had it. I don't agree with these processes at all, but the bigcos would rather ship crappier code than any gplvX code at all.
I do not know if the sqm-scripts would have been more or less popular had they been BSD rather than GPLv2 licensed. It's unclear as to whether they are used by anyone in a commercially shipping product. As for GPLv3-ing the sqm-autorate, accompanied by a paper (which would be great btw!), go for it if you like - just write off the idea that the codebase would be used in an offload engine or standardization effort more directly, and write off any thoughts of corporate financial support.
I'd go GPLv2 for it, like much of the rest of openwrt, and try to get a paper published. But it's your code, not mine!
wtbb will be apache licensed - IF I get corporate support for it. GPLv2 if not.
@dtaht Thank-you for this analysis
thank you for mentioned me. This feedback from version 0.4.2 running for 10-20hours. https://drive.google.com/drive/folders/1mu4-LMyr0Klxdg6ahRMJECku-vgrK3tL?usp=sharing
I thought that was already fixed?
Thanks for asking, I am pretty certain, that I did not contribute anything relevant for copyright/licensing, so all I can offer is an opinion on what might be suitable, but the decision is not mine to make. Personally, I both like GPL3's firm stance (e.g. in regards to patents) as well as the kernel's modified GPL 2, with the latter appearing more pragmatic while still principled too me. The older I get the more I tilt towards principled pragmatism instead of firmness....
I guess a simplet question worth considering might be, what kind of derivative work would you guys find acceptable and what not, then pick a license that 'enforces' that split.
P.S: I have not followed the thread for a few days and am only responding to your question, so this might not be as original a response as I might think.
This is a great point. For my part, I'd hate to give someone like Ubiquiti the right to distribute this on hardware with crypto locked bootloader, hence GPLv3.
@moeller0 thank you Your work is in the repository history and deserves recognition as a major part of our inspiration.
For me, if $evilcorp locks it up but this lets more people get a better network experience, I'm not as happy as I could be, but overall I'll feel that I made a contribution. GPLv3 is still completely acceptable to me and is preferred by the team mates that do far more of the work than me.
Using GPLv3 might protect the servers from getting too many requests, since it will prevent commercialization. If a company wants to use this, it should provide something back, either ping servers or code. Just my 2 cents..
Flattering ;), still I did not add much to the "historic" effort either as far as copy right is concerned (ideas, luckily are not copy rightable, IIUC, expression of ideas is, and for code I take that as the implementation that is afforded copy right, but then I am not a lawyer).
About $evilcorp, I would assume they would simply pay a programmer (for less than a week taking writing a spec from the lua code, and another one to code a solution according to that spec) and just code up something quite similar but in another language, if they really wanted to use that for their own proprietary purposes. But again, not a lawyer so I could be wrong.
This would be a somewhat stronger argument if we would operate our own servers, no?
(Before anybody proposes creating a new time/OWD protocol, NTP pretty much already allows the required OWD measurements and pool.ntp.org allows to create named "vendor" pools where a "cake-autorate" pool could be created with less strict polling frequency rules than normal pools, these would have the added benefit that would also allow higher precision time setting for routers)
As an aside, just to check that we are not hammering flash memory?
root@OpenWrt:/overlay/upper# du . -h
8.0K ./etc/opkg/keys
8.0K ./etc/opkg
0 ./etc/rc.d
4.0K ./etc/iproute2
4.0K ./etc/init.d
8.0K ./etc/dropbear
0 ./etc/luci-uploads
420.0K ./etc/samba
8.0K ./etc/nftables.d
0 ./etc/uci-defaults
72.0K ./etc/config
592.0K ./etc
0 ./root/.ssh
4.0K ./root/.config/htop
4.0K ./root/.config/rclone
8.0K ./root/.config
1.2M ./root/.cache/luarocks/https___luarocks.org
1.2M ./root/.cache/luarocks
1.2M ./root/.cache
1.2M ./root
1.8M .
The word 'cache' inside /overlay/upper is a little uncomfortable.
I only noticed this because I am trying to verify that my rclone script is not hammering my flash memory:
@_FailSafe anyone else who experienced huge latency spikes in the v0.4.2 release
here we go the feedback from version 0.4.3.


Wow! What do you think? Can you tell a difference in how your connection feels?
experiencing a glitch while watching the live stream. maybe because the downloads percentage setting is too low but it's most likely from the ISP used at night the quality is bad. i increased download_min_percent
to 50%.