You need the QSDK 11 NSS firmware if you want to test my master branch codes. @Ansuel QSDK 10 branch has the feature for the NSS shaper and also the WiFi offload as well, so there's no difference between both repos as far as feature is concerned.
@moeller0 the 'tc' commands are different when invoking the NSS shapers. Need to target the NSS specific shapers when configuring SQM via Luci instead of the regular in-built shapers, and also take care of the parameters quirks for the NSS shapres. Also, no cake support in the NSS shapers.
I forgot to add that there are quirks in which ethernet device to target for ingress shaping. The solution is also only for ethernet device only at the moment, but it should be enough for most real world use cases.
Just need a build environment to compile openWRT images.
You can pull from the git that you want to try.
Example:
create a directory (folder) for your build, run this command after you change in to that new directory using one of the git directories (quarky or Ansuel with the NSS changes):
compile an OpenWRT image with the standard commands. During make menuconfig add the three base packages in my post above (plus qdisc and any other optional packages you desire, luci, etc)
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
make
now you have a sysupgrade .bin file in the new bin folder.
The ansuel and quarky git repos already have everything you need to activate the NSS cores. During the make menuconfig you need to select at a minimum these three packages to get NSS acceleration:
You mean that's all that needs to be done? This is dead simple, and as moeller0 pointed out another script plus little mods if needed in the luci sqm or qos page should do. In fact once you put the script under /usr/lib/sqm it should show up in the drop down as queuing disciplines. The logic for it is not hardcoded. just look at the lua file.
Is this planned for eventual submission to the official OpenWRT git repository, or going (e.g. for licensing or whatever other reasons) to stay as a perpetual fork?
You need to change the source interface first before bringing up the 'nssifb' interface. Changing it after the interface is up will have no effect. You need to bring down the interface and bring it back up to have the changes take effect.
It only work on eth0 and eth1, I.e physical interface. But since pppoe are working on top of eth0, it’ll get shaped when traffic gets encapsulated and sent via the eth interfaces.
As mentioned by @Ansuel, it works for pppoe as well.
Thanks, will try it. I have already created the qos script, that can be selected in sqm page, it takes the vars and runs. Need to test pppoe do some flent test and add rules if needed, then I can submit it.