Linksys EA7500 v1 and OpenWrt?

Aha, that was quite straightforward. Thanks again for the clarification!

A quick question on the nss build. Does openssl use the nss core in that build, and if so, have you had a chance to test the improvement in performance due to the nss core, if any ?

e.g openssl speed -elapsed -evp aes-256-cbc -engine ???

Instead of building from source, your might prefer installing it straight from the sysupgrade binaries:

Through SSH:

cd /tmp
wget https://www.desipro.de/openwrt/trunk/ipq806x-nss/kong-ipq806x-generic-linksys_ea7500-v1-squashfs-sysupgrade.bin
sysupgrade /tmp/kong-ipq806x-generic-linksys_ea7500-v1-squashfs-sysupgrade.bin

Enjoy the new web GUI and awesome features from this builds!

PS: It includes Luci, there is no need to install it.

Thanks! I generally like to compile from source, but I agree that having @KONG build through sysupgrade is very convenient to have.

BTW, are you using the @Kong nss builds? If so, can check the performance of openssl on it (see my previous post) and post the results? Thanks.

$ openssl speed -elapsed -evp aes-256-cbc
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-256-cbc for 3s on 16 size blocks: 6506914 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 64 size blocks: 2050872 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 256 size blocks: 555666 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 1024 size blocks: 137048 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 8192 size blocks: 17085 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 16384 size blocks: 8502 aes-256-cbc's in 3.00s
OpenSSL 1.1.1j  16 Feb 2021
built on: Mon Mar 15 19:48:44 2021 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr)
compiler: arm-openwrt-linux-muslgnueabi-gcc -fPIC -pthread -Wa,--noexecstack -Wa                                                                                                      ll -O3 -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set                                                                                                      -variable -Wno-error=unused-result -mfloat-abi=hard -Wformat -Werror=format-secu                                                                                                      rity -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -O3 -fpic -ff                                                                                                      unction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_                                                                                                      PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -                                                                                                      DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DEC                                                                                                      P_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_PREFER_CHACHA_OVER_GCM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  1                                                                                                      6384 bytes
aes-256-cbc      34703.54k    43751.94k    47416.83k    46779.05k    46653.44k                                                                                                          46432.26k

Thanks! It seems from above result that openssl by default is not using the nss core in the nss build. Perhaps, you need to invoke some specific openssl engine. What do you get if you run "openssl engine -t -c" ?

Using dynamic:

$  openssl speed -elapsed -evp aes-256-cbc -engine dynamic
engine "dynamic" set.
You have chosen to measure elapsed time instead of user CPU time.
Doing aes-256-cbc for 3s on 16 size blocks: 6506834 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 64 size blocks: 2051837 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 256 size blocks: 560387 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 1024 size blocks: 142642 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 8192 size blocks: 17340 aes-256-cbc's in 3.00s
Doing aes-256-cbc for 3s on 16384 size blocks: 8656 aes-256-cbc's in 3.00s
OpenSSL 1.1.1j  16 Feb 2021
built on: Mon Mar 15 19:48:44 2021 UTC
options:bn(64,32) rc4(char) des(long) aes(partial) blowfish(ptr)
compiler: arm-openwrt-linux-muslgnueabi-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -pipe -fno-caller-saves -fno-plt -fhonour-copts -Wno-error=unused-but-set-variable -Wno-error=unused-result -mfloat-abi=hard -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -O3 -fpic -ffunction-sections -fdata-sections -znow -zrelro -DOPENSSL_USE_NODELETE -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DPOLY1305_ASM -DNDEBUG -DOPENSSL_PREFER_CHACHA_OVER_GCM
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes  16384 bytes
aes-256-cbc      34703.11k    43772.52k    47819.69k    48688.47k    47349.76k    47273.30k

I'm assuming that is odd enough, even through speedtest.net, using my ISP server, < 2 ms latency, I can't get more than half of my downstream speed:

Using the same ONT and ethernet cable, with an Intel x64 CPU runing opnsense, I get full speed, 510/120 mbps.

I'm not seeing any NSS benefits so far. :frowning:

@KONG , could you check this, please?

My EA7500 has the pin headers already there and I used a master communications ftdi board with the 3.3v jumper set, and just connected TX, RX, and GND.

@k3chb, i agree the wiki is a bit confusing. i also have a US version of the ea7500v1 and mine already comes with a soldered serial header. i surmise some board revs perhaps the 'worldwide' versions may not come with serial header hence the need to solder additional components to use 3.3 uart. i like to be careful so i don't fry anything in the process.

https://pl.aliexpress.com/item/4000216010101.html this one

1 Like

czesc m10, thanks for the url. i presume your ea7500 board didn't come soldered with the serial header? a board that comes soldered with a serial header can go ahead and use 3.3v uart, right?

sadly my board didn't have soldered serial but when i;ve send mine to @ CHKDSK88 to play with it, he soldered it for me and make it supported by openwrt :slight_smile: . i think You can go with 3.3v serial but to be sure it's not 1.8v i'd check it with multimeter.

1 Like

and to check with the multimeter, it's with pins 1 and 5, right? thanks again the feedback.

have You seen this ? https://openwrt.org/toh/linksys/linksys_ea7500_v1

yes i visited the wiki hence i mentioned pins 1 and 5. unless the appropriate way to measure is with pins 2 and 5; validate its maximum voltage is 3.3v. does either way work?

What's the router like with v21.02? Do the VLANs work with the new DSA and is the wireless performance working well?