Yeah, I noticed it's kind of lame the single RGMII is bottlenecking the forwarding performance. I am using openwrt 19.07 and benchmarking the nat forwarding performance, it turns out for 1Gbps from wan to lan0, the eth0 has 1Gbps traffic on both RX and TX. So the 3 Nics are sharing single a 1Gbps on eth0, which is kind of slow for some use cases.
PRC | sys 4.15s | user 0.02s | | | #proc 63 | #trun 2 | #tslpi 34 | #tslpu 0 | #zombie 0 | clones 0 | | | no procacct |
CPU | sys 2% | user 0% | irq 149% | | idle 49% | wait 0% | steal 0% | guest 0% | | ipc notavail | cycl unknown | avgf 724MHz | avgscal 90% |
cpu | sys 1% | user 0% | irq 76% | | idle 23% | cpu000 w 0% | steal 0% | guest 0% | | ipc notavail | cycl unknown | avgf 724MHz | avgscal 90% |
cpu | sys 0% | user 0% | irq 74% | | idle 26% | cpu001 w 0% | steal 0% | guest 0% | | ipc notavail | cycl unknown | avgf 724MHz | avgscal 90% |
CPL | avg1 0.50 | | avg5 0.48 | avg15 0.39 | | | csw 32526 | | intr 513384 | | | numcpu 2 | |
MEM | tot 999.0M | free 944.9M | cache 11.3M | dirty 0.0M | buff 1.1M | slab 21.8M | slrec 12.4M | shmem 1.4M | shrss 0.0M | shswp 0.0M | vmbal 0.0M | hptot 0.0M | hpuse 0.0M |
SWP | tot 0.0M | free 0.0M | | | | | | | | | vmcom 11.9M | | vmlim 499.5M |
NET | eth0 85% | pcki 880470 | pcko 880566 | sp 1000 Mbps | si 852 Mbps | so 853 Mbps | | coll 0 | mlti 0 | erri 0 | erro 0 | drpi 0 | drpo 0 |
NET | lan0 81% | pcki 166027 | pcko 709256 | sp 1000 Mbps | si 29 Mbps | so 813 Mbps | | coll 0 | mlti 0 | erri 0 | erro 0 | drpi 0 | drpo 0 |
NET | wan 80% | pcki 712159 | pcko 168320 | sp 1000 Mbps | si 808 Mbps | so 31 Mbps | | coll 0 | mlti 0 | erri 0 | erro 0 | drpi 0 | drpo 0 |
NET | lan1 0% | pcki 2284 | pcko 2722 | sp 1000 Mbps | si 127 Kbps | so 2318 Kbps | | coll 0 | mlti 0 | erri 0 | erro 0 | drpi 1 | drpo 0 |