If anyone happens to have a BCM5823 or BCM5825 available I'd appreciate if they could test my changes to the ubsec(3) that add support for AES acceleration. Tests with older and the 586x cards are also welcome, of course.
If anyone can do more substantial tests then "openssl speed", e.g. actual IPsec, that'd be nice too. Below are a bunch of results from throughput tests that I am posting mainly so there is a publically documented baseline. System: HP ProLiant ML110 G6 cpu0 at mainbus0 apid 0: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz, id 0x106e5 cpu1 at mainbus0 apid 2: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz, id 0x106e5 cpu2 at mainbus0 apid 4: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz, id 0x106e5 cpu3 at mainbus0 apid 6: Intel(R) Xeon(R) CPU X3430 @ 2.40GHz, id 0x106e5 6.1.4/amd64 userland, 6.99.40 kernel with sources updated 2014-04-18 before the ubsec(4) changes.. openssl speed -engine cryptodev -evp des-ede3-cbc -elapsed OpenSSL 1.0.1g 7 Apr 2014 built on: NetBSD 6.1.4 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,2,int) aes(partial) idea(int) blowfish(idx) compiler: gcc version 4.5.3 (NetBSD nb2 20111202) The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes des-ede3-cbc 562.47k 2247.68k 7740.48k 24370.21k 76057.69k openssl speed -engine cryptodev -evp aes-128-cbc -elapsed OpenSSL 1.0.1g 7 Apr 2014 built on: NetBSD 6.1.4 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,2,int) aes(partial) idea(int) blowfish(idx) compiler: gcc version 4.5.3 (NetBSD nb2 20111202) The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-128-cbc 583.00k 2316.23k 7995.65k 25280.62k 80001.28 openssl speed -engine cryptodev -evp aes-192-cbc -elapsed OpenSSL 1.0.1g 7 Apr 2014 built on: NetBSD 6.1.4 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,2,int) aes(partial) idea(int) blowfish(idx) compiler: gcc version 4.5.3 (NetBSD nb2 20111202) The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-192-cbc 583.69k 2304.12k 7840.50k 24367.24k 73216.34k openssl speed -engine cryptodev -evp aes-256-cbc -elapsed OpenSSL 1.0.1g 7 Apr 2014 built on: NetBSD 6.1.4 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,2,int) aes(partial) idea(int) blowfish(idx) compiler: gcc version 4.5.3 (NetBSD nb2 20111202) The 'numbers' are in 1000s of bytes per second processed. type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes aes-256-cbc 586.60k 2223.53k 7567.24k 23016.65k 66662.74k And with multiple processes doing requests in parallel: openssl speed -engine cryptodev -evp aes-128-cbc -elapsed -multi 4 engine "cryptodev" set. OpenSSL 1.0.1g 7 Apr 2014 built on: NetBSD 6.1.4 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,2,int) aes(partial) idea(int) blowfish(idx) compiler: gcc version 4.5.3 (NetBSD nb2 20111202) evp 2128.38k 8704.95k 30407.37k 68008.22k 140479.50k openssl speed -engine cryptodev -evp aes-128-cbc -elapsed -multi 8 engine "cryptodev" set. OpenSSL 1.0.1g 7 Apr 2014 built on: NetBSD 6.1.4 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,2,int) aes(partial) idea(int) blowfish(idx) compiler: gcc version 4.5.3 (NetBSD nb2 20111202) evp 3030.23k 12113.82k 40796.43k 66674.68k 140332.70k openssl speed -engine cryptodev -evp aes-128-cbc -elapsed -multi 16 engine "cryptodev" set. OpenSSL 1.0.1g 7 Apr 2014 built on: NetBSD 6.1.4 options:bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,2,int) aes(partial) idea(int) blowfish(idx) compiler: gcc version 4.5.3 (NetBSD nb2 20111202) evp 3574.88k 14659.51k 44433.10k 81677.83k 138982.24k --chris
