Comparative Throughput Testing Including NAT, SQM, WireGuard, and OpenVPN

Back on topic...

These results are posted here rather than in the lead post as use of flow offload on master requires a patch to the sources, as well as that non-default compilation (-O2 vs. -Os) and settings (performance speed governor) were used. Multiple requests have been made to have OpenWrt adopt the "mainstream" -O2 optimization (or even the more aggressive -O3), though the project continues to use the -Os "Optimize for size" setting, even for devices that do not have image-size issues. It is my understanding that flow offload is available for many devices in the 18.06 builds.

As expected, the performance of the routing/NAT increases significantly for the devices tested (a key objective of the switch-core design) and there appears to be a slight increase in the performance of advanced features that require ongoing CPU use (SQM, VPN). The improvement in SQM and VPN performance may be due to CPU offload, the choice of -O2, that all cores on the IPQ4019 are running at the same speed, or some combination of the foregoing.

I don't have plans at this time to test the other two SoC-based devices with flow offload enabled, qualify the differences in performance due to the more-standard -O2 (or -O3) compiler optimizations, or the impact of changing the CPU-speed governor. The test scripts are linked in the first post for anyone interested in exploring these effects further.

(Notes from the lead post and its tables in relation to stream balance and SQM behavior likely apply here as well.)

Routing/NAT – Flow Offload Enabled, -O2

Target Clock Cores SoC / CPU Notes 8 Dn 8 Up RRUL 8 Dn / SQM 8 Up / SQM RRUL / SQM
ipq40xx 717 4 IPQ4019 Single RGMII 920
(6)
940
(5)
1280
(4)
240
(3)
340
(7)
270
(3)
ath79 775 1 QCA9563 Single MAC 870
(6)
640
(6)
660
(5)
230
(2)
260
(3)
260
(4)

WireGuard, Routing/NAT – Flow Offload Enabled, -O2

Target Clock Cores SoC / CPU Notes 8 Dn 8 Up RRUL 8 Dn / SQM 8 Up / SQM RRUL / SQM
ipq40xx 717 4 IPQ4019 Single RGMII 400
(18)
280
(57)
300
(45)
197
(8)
171
(7)
196
(9)
ath79 775 1 QCA9563 Single MAC 88
(33)
91
(39)
89
(33)
43
(10)
48
(9)
45   47
(10)  (12)

OpenVPN, Routing/NAT – Flow Offload Enabled, -O2

Target Clock Cores SoC / CPU Notes 8 Dn 8 Up RRUL 8 Dn / SQM 8 Up / SQM RRUL / SQM
ipq40xx 717 4 IPQ4019 Single RGMII 39
(68)
30
(24)
37
(66)
23   25
(9)  (59)
22
(4)
22
(5)
ath79 775 1 QCA9563 Single MAC 24
(167)
17
(55)
23
(155)
13   15
(9)  (66)
13   14
(8)  (40)
11   15
(10)  (64)

Edit History: 2019-09-20 -- Transcription error in WireGuard numbers for QCA9563 device corrected.

7 Likes