IPQ806x NSS Drivers

I assumed that the ingress shaping can be done directly on the interface. After more reading, it appears that ingress capability is limited to filtering. We still need the ifb virtual interface to redirect target interface ingress to ifb egress for shaping.

I'll see if the ifb virtual interface can be patched to register with the NSS driver.

@Pedro my repo is currently using QSDK 6.1r1 from the CodeAurora. The latest QSDK release appears to be 10.0 last I checked.

AFAIK, ipq40xx SoC does not have NSS CPU cores. Odd that it has NSS firmware. In any case, it doesn't hurt to have a look at it. If you can provide a link for me to download it, I'll take a look.

Thanks.

It has NHSS.QSDK.12.0.r2 already

I've found this if any help https://github.com/jollaman999/openwrt/commits/test

Well, without the latest NSS firmware, the latest QSDK drivers would not be useful. Both need to match or else the driver will not load.

@ratking it appears that it is using the NSS firmware from the R7800, which is using an even older version of the QSDK compared to what we're currently using.

I used to have a copy of many versions of the NSS firmwares that I've downloaded, but I lost it when my HDD had an issue and I didn't backed it up often enough. Now I can't remember where I downloaded those firmwares. Still trying to look for newer NSS firmwares at the moment. If anyone has any leads, do let me know.

Thanks.

is there any way to tell the version of the binaries themselves?

I've only seen this

Asus brt-ac828 Also has nss binaries in gpl

There is a version string at the end of the firmware blob. The one I extracted from the Synology RT-2600AC has the version string 'NSS.AK.E.CS-19'.

The Asus BRT-AC828 has the version string 'NSS.AK.1.0.c10-00024-R-1.59374.1.69702.1' and the Asus is using kernel 3.4.103.

The Netgear XR500, which is similar to the R7800 is using 'NSS.AK.1.0.c8-00014-R-1'. The Zyxel Z2 Armor (NBG6817) is also using the same NSS firmware version.

Looks like the Asus is running a newer build of the same version of the NSS firmware as the R7800. It also looks to me that 'NSS.AK.1.0.x' is for earlier QSDK version.

1 Like

are the IPQ807x devices similar?
I have found this one that seems to use openwrt 12.09, and it is a really recent device:

https://www.engeniusnetworks.eu/products/wireless/indoor-access-points/ews357ap/
https://pastebin.com/myj5NBD2

The ipq807x SoCs are 64-bit devices while the ipq806x are 32-bit devices. I’m not sure if their NSS cores are the same tho. I’ll try to have a look at it again. I remember trying the firmware from an ipq807x device previously and wasn’t successful. It was quite some time ago tho, when my experience with the NSS framework is not as much as now. Hopefully it can be used.

do you remember the extension ( zip, tar ) of firmware bundle that you had with all the firmware versions? any other detail. I would love to help more, but right now the only help I can provide is by searching.

I remember it’s in a .ZIP archive with multiple folders each with a different version of the NSS firmware, with the folder named according to the NSS firmware version. Can’t remember the archive name tho.

Really appreciate your help in searching tho.

1 Like

These are all the files I as able to find while searching around:

132,920 BIN-NSS.AK.E.CS-5-E.tar.bz2
147,746 BIN-NSS.AK.E.CS-5-R.tar.bz2
111,269 NSS.AK.1.0-00209.tar.bz2
68,773 NSS.AK.1.0.c4-00026.tar.bz2
108,349 NSS.AK.1.0.c4-00030.tar.bz2
133,130 NSS.AK.1.0.c8-00014.tar.bz2

all are dated from 2015 except the NSS.AK.E that is from 2017/04/21

@Pedro wow! This is exactly the archive that I was talking about. It took you no time to find it! This time I'll be sure to back it up properly!

Looking at those versions, it looks like the one we're already using is a newer version than those provided in the package.

I also found another version which I think is newer than the version we're using. I found it from Compex's website where they provide reference firmware image for their WPQ865 board. The version is NSS.AK.F.CS-x. I think this version is good for QSDK 8.x. It's an enterprise firmware blob, as compared to the retail version that we're currently using.

I'll be trying it out. So it's back to merging all the QSDK 8.x drivers code all over again :stuck_out_tongue:

2 Likes

Difference between enterprise and normal?
Anyway the Netgear opensource repo is full of this driver

If you could find a newer release than the nss.ak.f I'm sure @quarky would have some use for it.

If nss.ak.e are for 6v qsdk and nss.ak.f for 8v qdsk then maybe the versions for qsdk 10 and 12 are nss.ak.g and nss.ak.h...

I have absolutely no idea what’s the difference. :sweat_smile:

But from all the gears available in the market, enterprise offerings are mainly APs only, while retail are routers. So it may end up that the enterprise blob may have less features compared to the retail versions. Size wise, the retail version is larger.

I’ll look again at the Netgear repo. It’ll be great if they have the NSS firmware blobs, but I doubt it, as legally, AFAIK, they do not have to provide them.

Well a strings compare can show some magic like additional feature

I really would like to help out myself as well, but i just don't know how to compile the source for my router.
Although the R7800 is exactly the same as the NBG6817 i just can't do it right.
I had a compile and installed it but never got any connection out of it.

I would highly appreciate if someone with more experience then me could compile it for NBG6817 and i will gladly help out with testing.

If you're brave enough to test my builds, here you go:

https://app.box.com/s/ykyzhbsc8s87qw5dkunv3cv3lv43z0vs

Do note that the image for the nbg6817 has not been tested by me, as I do not have a unit to test with. If you know how to recover from a bad flash, do help test.

If you know how to test with the initramfs image, that'll be best.

Also, this build is based on lede-17.01, kernel v4.4.184. You should not use the sysupgrade image if you're onto openwrt-18.06/19.07/master.

Let me know if the images work for you. If confirm OK, I'll push the changes required to my GitHub repo.

Thanks.