Temat: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath
Na moim biurku leży "dziadek" TP-LINK TL-WR1043ND v1, dokładnie w wersji v1.6. To chyba jeden z pierwszych routerów "SOHO" z dostępnym switchem gigabitowym, który miał też swój wkład w wolnym (w sensie otwartym) oprogramowaniu. Dla przypomnienia - wyposażony był w procesor Atherosa taktowny "zaledwie" 400MHz, z 32MB pamięci RAM. Ponieważ ostatnio dość gorącym tematem jest potocznie nazywane rozwiązanie "Fast Path" oferujące lepszą wydajność routingu, postanowiłem przybliżyć Wam co można dzięki temu uzyskać.
Środowisko testowe
Dwa laptopy z procesorami Intel Core i3 mają wystarczającą wydajność żeby wysycić łącze gigabitowe. Zostały one połączone bezpośrednio kablem cat5 utp, na jednym z nim został ustawiony na stałe adres IP na 192.168.1.10/24, na drugim 192.168.1.20/24. Oba laptopy wyposażone były w system Windows 10 64bit, a do testów został użyty program iPerf3 w wersji 3.1.3. Ponieważ chodziło o zaprezentowanie możliwości wspomnianego routera a nie śrubowanie wyników to program iperf3 został uruchomiony ot tak po prostu aby pracował na domyślnych parametrach - czyli na jednym z komputerów z opcją "-s" (praca jako serwer), na drugim z opcją "-c 192.168.1.10" - praca jako klient. Wyniki testu połączenia pomiędzy laptopami:
C:\Users\User\Desktop>iperf3.exe -c 192.168.1.10
Connecting to host 192.168.1.10, port 5201
[ 4] local 192.168.1.20 port 50220 connected to 192.168.1.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 112 MBytes 941 Mbits/sec
[ 4] 1.00-2.00 sec 112 MBytes 940 Mbits/sec
[ 4] 2.00-3.00 sec 112 MBytes 941 Mbits/sec
[ 4] 3.00-4.00 sec 112 MBytes 941 Mbits/sec
[ 4] 4.00-5.00 sec 112 MBytes 940 Mbits/sec
[ 4] 5.00-6.00 sec 112 MBytes 940 Mbits/sec
[ 4] 6.00-7.00 sec 112 MBytes 941 Mbits/sec
[ 4] 7.00-8.00 sec 112 MBytes 941 Mbits/sec
[ 4] 8.00-9.00 sec 112 MBytes 941 Mbits/sec
[ 4] 9.00-10.00 sec 112 MBytes 941 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec sender
[ 4] 0.00-10.00 sec 1.09 GBytes 940 Mbits/sec receiver
iperf Done.
Czyli w praktyce mamy uzyskany transfer na poziomie 112MB/s, co przy standardowej wielkości ramki ethernetowej jest jak najbardziej oczekiwanym wynikiem dla łącza gigabitowego.
Czas na testy. Lekko zmieniłem środowisko testowe - jeden laptop ma adres 192.168.1.10, został dołączony do portu LAN routera TL-WR1043ND, od portu WAN routera identyczny kabel podłączyłem do drugiego laptopa, który dostał adres IP 192.168.2.10. Przy takiej konfiguracji testujemy więc wydajność NAT wan->lan, czyli w praktyce odpowiadamy na pytanie "ile ruchu udźwignie nasz router" - jedno z często zadawanych pytań na forum.
Oryginalne oprogramowanie TP-LINK
Na routerze zainstalowałem oryginalne oprogramowanie TP-LINKa oznaczone jako 3.13.15 Build 140319 Rel.41339n (ostatnie dostępne na polskiej stronie tego producenta). Zostały przywrócone ustawienia domyślnie i poza typem połączenia WAN zmienionym na "Statyczne IP" (192.168.2.1/24) nie zostało zmienione nic innego. Wyniki pomiarów:
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50406 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 17.9 MBytes 150 Mbits/sec
[ 4] 1.00-2.00 sec 17.8 MBytes 149 Mbits/sec
[ 4] 2.00-3.00 sec 17.9 MBytes 150 Mbits/sec
[ 4] 3.00-4.00 sec 17.9 MBytes 150 Mbits/sec
[ 4] 4.00-5.00 sec 18.4 MBytes 154 Mbits/sec
[ 4] 5.00-6.00 sec 18.2 MBytes 153 Mbits/sec
[ 4] 6.00-7.00 sec 18.0 MBytes 151 Mbits/sec
[ 4] 7.00-8.00 sec 18.2 MBytes 153 Mbits/sec
[ 4] 8.00-9.00 sec 18.4 MBytes 154 Mbits/sec
[ 4] 9.00-10.00 sec 18.4 MBytes 154 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 181 MBytes 152 Mbits/sec sender
[ 4] 0.00-10.00 sec 181 MBytes 152 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50415 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 18.2 MBytes 152 Mbits/sec
[ 4] 1.00-2.00 sec 18.0 MBytes 151 Mbits/sec
[ 4] 2.00-3.00 sec 17.9 MBytes 150 Mbits/sec
[ 4] 3.00-4.00 sec 18.0 MBytes 151 Mbits/sec
[ 4] 4.00-5.00 sec 17.9 MBytes 150 Mbits/sec
[ 4] 5.00-6.00 sec 18.1 MBytes 152 Mbits/sec
[ 4] 6.00-7.00 sec 18.0 MBytes 151 Mbits/sec
[ 4] 7.00-8.00 sec 18.0 MBytes 151 Mbits/sec
[ 4] 8.00-9.01 sec 18.2 MBytes 153 Mbits/sec
[ 4] 9.01-10.01 sec 18.4 MBytes 154 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.01 sec 181 MBytes 152 Mbits/sec sender
[ 4] 0.00-10.01 sec 181 MBytes 151 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50423 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 18.2 MBytes 153 Mbits/sec
[ 4] 1.00-2.00 sec 18.0 MBytes 151 Mbits/sec
[ 4] 2.00-3.00 sec 18.4 MBytes 154 Mbits/sec
[ 4] 3.00-4.00 sec 18.5 MBytes 155 Mbits/sec
[ 4] 4.00-5.00 sec 18.5 MBytes 155 Mbits/sec
[ 4] 5.00-6.00 sec 18.4 MBytes 154 Mbits/sec
[ 4] 6.00-7.00 sec 18.5 MBytes 155 Mbits/sec
[ 4] 7.00-8.00 sec 18.5 MBytes 155 Mbits/sec
[ 4] 8.00-9.00 sec 18.5 MBytes 155 Mbits/sec
[ 4] 9.00-10.00 sec 18.5 MBytes 155 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 184 MBytes 154 Mbits/sec sender
[ 4] 0.00-10.00 sec 184 MBytes 154 Mbits/sec receiver
iperf Done.
Wyżej zostały zaprezentowane tylko trzy serie pomiarów, choć wykonałem ich o wiele więcej i za każdym razem wychodziło w okolicach 150 - 155Mbps, czyli mamy tu granicę wydajności tego routera. Czy aby na pewno?
LEDE 17.01, czysty obraz
Skompilowałem LEDE 17.01-SNAPSHOT, konkretnie:
_________
/ /\ _ ___ ___ ___
/ LE / \ | | | __| \| __|
/ DE / \ | |__| _|| |) | _|
/________/ LE \ |___|___|___/|___| lede-project.org
\ \ DE /
\ LE \ / -----------------------------------------------------------
\ DE \ / Reboot (17.01-SNAPSHOT, r3511-4151752)
\________\/ -----------------------------------------------------------
Czysty obraz, kernel 4.4.87, bez gui, bez dodatkowych pakietów, o identycznej zawartości jak te dostępne u mnie na stronie http://dl.eko.one.pl. Wyniki pomiarów:
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50232 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 28.1 MBytes 236 Mbits/sec
[ 4] 1.00-2.00 sec 27.9 MBytes 234 Mbits/sec
[ 4] 2.00-3.00 sec 27.8 MBytes 233 Mbits/sec
[ 4] 3.00-4.00 sec 27.9 MBytes 234 Mbits/sec
[ 4] 4.00-5.00 sec 27.9 MBytes 234 Mbits/sec
[ 4] 5.00-6.00 sec 27.9 MBytes 234 Mbits/sec
[ 4] 6.00-7.00 sec 27.6 MBytes 231 Mbits/sec
[ 4] 7.00-8.00 sec 28.0 MBytes 235 Mbits/sec
[ 4] 8.00-9.00 sec 27.9 MBytes 235 Mbits/sec
[ 4] 9.00-10.01 sec 28.0 MBytes 234 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.01 sec 279 MBytes 234 Mbits/sec sender
[ 4] 0.00-10.01 sec 279 MBytes 234 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50247 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 28.5 MBytes 239 Mbits/sec
[ 4] 1.00-2.00 sec 28.2 MBytes 237 Mbits/sec
[ 4] 2.00-3.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 3.00-4.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 4.00-5.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 5.00-6.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 6.00-7.00 sec 28.4 MBytes 239 Mbits/sec
[ 4] 7.00-8.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 8.00-9.00 sec 28.1 MBytes 235 Mbits/sec
[ 4] 9.00-10.00 sec 28.1 MBytes 237 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 283 MBytes 238 Mbits/sec sender
[ 4] 0.00-10.00 sec 283 MBytes 238 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50253 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 1.00-2.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 2.00-3.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 3.00-4.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 4.00-5.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 5.00-6.00 sec 28.4 MBytes 238 Mbits/sec
[ 4] 6.00-7.00 sec 28.5 MBytes 240 Mbits/sec
[ 4] 7.00-8.00 sec 27.8 MBytes 232 Mbits/sec
[ 4] 8.00-9.00 sec 27.2 MBytes 229 Mbits/sec
[ 4] 9.00-10.00 sec 27.2 MBytes 228 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 281 MBytes 236 Mbits/sec sender
[ 4] 0.00-10.00 sec 281 MBytes 236 Mbits/sec receiver
iperf Done.
I tu mała uwaga: ten router pod LEDE osiąga wydajność natowania na poziomie 230Mbps, bez żadnych dodatkowych ustawień, po kablu, na domyślnych ustawieniach. Jeżeli ktoś ma mniej to albo ma problem ze swoim łączem, albo używa kiepskiej jakości kabli/wtyczek albo problem leży po stronie sterowników karty sieciowej czy testowaniu przez wifi. Pisanie "bo ja sprawdzałem i mam 50Mbps, dlaczego tak mało" jest bez sensu - mogę sprawdzać do woli i za każdym razem wychodzi te 220 - 240Mbps dla mojego obrazu.
LEDE 17.01, czysty obraz ze wsparciem dla GRO (generic receive offload)
W repozytorium LEDE pojawiła pojawiła się łatka dodająca wsparcie dla GRO dla Atherosów. Ponoć miała ona przynieść większą wydajność:
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50258 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.01 sec 22.1 MBytes 185 Mbits/sec
[ 4] 1.01-2.00 sec 21.6 MBytes 182 Mbits/sec
[ 4] 2.00-3.00 sec 22.0 MBytes 184 Mbits/sec
[ 4] 3.00-4.00 sec 21.8 MBytes 182 Mbits/sec
[ 4] 4.00-5.00 sec 21.9 MBytes 183 Mbits/sec
[ 4] 5.00-6.00 sec 22.0 MBytes 184 Mbits/sec
[ 4] 6.00-7.00 sec 21.6 MBytes 182 Mbits/sec
[ 4] 7.00-8.00 sec 21.9 MBytes 183 Mbits/sec
[ 4] 8.00-9.01 sec 22.1 MBytes 184 Mbits/sec
[ 4] 9.01-10.00 sec 21.8 MBytes 184 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 219 MBytes 183 Mbits/sec sender
[ 4] 0.00-10.00 sec 219 MBytes 183 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50260 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.01 sec 22.2 MBytes 185 Mbits/sec
[ 4] 1.01-2.00 sec 21.6 MBytes 183 Mbits/sec
[ 4] 2.00-3.00 sec 21.9 MBytes 183 Mbits/sec
[ 4] 3.00-4.00 sec 22.1 MBytes 185 Mbits/sec
[ 4] 4.00-5.00 sec 21.8 MBytes 182 Mbits/sec
[ 4] 5.00-6.00 sec 22.0 MBytes 185 Mbits/sec
[ 4] 6.00-7.00 sec 21.9 MBytes 184 Mbits/sec
[ 4] 7.00-8.00 sec 22.0 MBytes 184 Mbits/sec
[ 4] 8.00-9.00 sec 22.0 MBytes 184 Mbits/sec
[ 4] 9.00-10.01 sec 21.9 MBytes 183 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.01 sec 219 MBytes 184 Mbits/sec sender
[ 4] 0.00-10.01 sec 219 MBytes 184 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50262 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 22.1 MBytes 186 Mbits/sec
[ 4] 1.00-2.00 sec 21.8 MBytes 182 Mbits/sec
[ 4] 2.00-3.00 sec 21.6 MBytes 181 Mbits/sec
[ 4] 3.00-4.00 sec 21.8 MBytes 182 Mbits/sec
[ 4] 4.00-5.00 sec 21.6 MBytes 181 Mbits/sec
[ 4] 5.00-6.00 sec 21.6 MBytes 182 Mbits/sec
[ 4] 6.00-7.00 sec 21.8 MBytes 182 Mbits/sec
[ 4] 7.00-8.01 sec 21.8 MBytes 182 Mbits/sec
[ 4] 8.01-9.00 sec 21.6 MBytes 182 Mbits/sec
[ 4] 9.00-10.01 sec 21.8 MBytes 182 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.01 sec 217 MBytes 182 Mbits/sec sender
[ 4] 0.00-10.01 sec 217 MBytes 182 Mbits/sec receiver
iperf Done.
Niestety nie mogę tego potwierdzić. Może to kwestia starszego kernela (w 17.01 jest 4.4 a w wersji rozwojowej 4.9) ale włączenie GRO spowodowało spadek wydajności natowania aż o ~20% w moim przypadku. Nie zajmowałem się dłużej tą łatką bo nie ona była celem testów.
LEDE 17.01, czysty obraz z Qualcomm Shortcut Forwarding Engine
Coś, co zmroziło w wielu krew - czysto programowe rozwiązanie pobranie z repozytoriów CodeAurora (QSDK oraz chromeos-3.18), które umożliwia zwiększenie wydajności NAT. Temat śliski, bo i łatka skomplikowana i trudna do sprawdzania czy działa wszystko i ze wszystkim. Aktualnie czeka na włączenie do wersji rozwojowej LEDE, choć trudno powiedzieć czy się tego doczeka. Łatkę można łatwo pobrać i zaadoptować do gałęzi stabilnej LEDE, więc tak też zrobiłem. Sprawdziłem czy w działającym obrazie są faktycznie załadowane moduły:
root@LEDE:~# lsmod | grep short
shortcut_fe 51385 1 fast_classifier
shortcut_fe_ipv6 52377 1 fast_classifier
root@LEDE:~# logread | grep fast
Mon Sep 11 19:48:34 2017 kern.alert kernel: [ 11.024525] fast-classifier: starting up
Mon Sep 11 19:48:34 2017 kern.alert kernel: [ 11.028694] fast-classifier: registered
Więc można sprawdzić jak działa wydajność tego rozwiązania:
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50266 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 61.9 MBytes 519 Mbits/sec
[ 4] 1.00-2.00 sec 62.5 MBytes 524 Mbits/sec
[ 4] 2.00-3.00 sec 62.5 MBytes 523 Mbits/sec
[ 4] 3.00-4.00 sec 62.5 MBytes 525 Mbits/sec
[ 4] 4.00-5.00 sec 62.4 MBytes 524 Mbits/sec
[ 4] 5.00-6.00 sec 62.5 MBytes 524 Mbits/sec
[ 4] 6.00-7.00 sec 62.8 MBytes 526 Mbits/sec
[ 4] 7.00-8.00 sec 62.8 MBytes 525 Mbits/sec
[ 4] 8.00-9.00 sec 62.2 MBytes 524 Mbits/sec
[ 4] 9.00-10.00 sec 62.5 MBytes 523 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 624 MBytes 524 Mbits/sec sender
[ 4] 0.00-10.00 sec 624 MBytes 524 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50268 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 62.4 MBytes 522 Mbits/sec
[ 4] 1.00-2.00 sec 62.4 MBytes 524 Mbits/sec
[ 4] 2.00-3.00 sec 62.8 MBytes 525 Mbits/sec
[ 4] 3.00-4.00 sec 62.2 MBytes 524 Mbits/sec
[ 4] 4.00-5.00 sec 62.5 MBytes 524 Mbits/sec
[ 4] 5.00-6.00 sec 62.5 MBytes 525 Mbits/sec
[ 4] 6.00-7.00 sec 62.8 MBytes 525 Mbits/sec
[ 4] 7.00-8.00 sec 62.5 MBytes 525 Mbits/sec
[ 4] 8.00-9.00 sec 62.4 MBytes 524 Mbits/sec
[ 4] 9.00-10.00 sec 62.5 MBytes 524 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 625 MBytes 524 Mbits/sec sender
[ 4] 0.00-10.00 sec 625 MBytes 524 Mbits/sec receiver
iperf Done.
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50270 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 62.2 MBytes 521 Mbits/sec
[ 4] 1.00-2.00 sec 62.8 MBytes 525 Mbits/sec
[ 4] 2.00-3.00 sec 62.4 MBytes 523 Mbits/sec
[ 4] 3.00-4.00 sec 62.6 MBytes 525 Mbits/sec
[ 4] 4.00-5.00 sec 62.4 MBytes 524 Mbits/sec
[ 4] 5.00-6.00 sec 62.1 MBytes 522 Mbits/sec
[ 4] 6.00-7.00 sec 62.5 MBytes 525 Mbits/sec
[ 4] 7.00-8.00 sec 62.6 MBytes 525 Mbits/sec
[ 4] 8.00-9.00 sec 62.6 MBytes 524 Mbits/sec
[ 4] 9.00-10.00 sec 62.2 MBytes 524 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 624 MBytes 524 Mbits/sec sender
[ 4] 0.00-10.00 sec 624 MBytes 524 Mbits/sec receiver
iperf Done.
Staruszek 1043v1 jest w stanie uzyskać ponad 500Mbps przepustowości przy natowaniu! Należy pamiętać że to były tylko testy, w rzeczywistym środowisku (wiele różnego ruchu, wielu klientów, wiele połączeń, różne rzeczy uruchomione na routerze) może być trochę mniej. Ale to i tak daje przyrost wydajności o ok 130%, co jest bardzo dobrym wynikiem.
Dla czysto kronikarskiej ciekawości skompilowałem też obraz 17.01 wsparciem dla SFE i GRO (obie łatki razem). Jak można było się spodziewać po przednich wynikach wydajność spadła i to znacznie:
C:\Users\User\Desktop>iperf3.exe -c 192.168.2.10
Connecting to host 192.168.2.10, port 5201
[ 4] local 192.168.1.20 port 50287 connected to 192.168.2.10 port 5201
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-1.00 sec 26.0 MBytes 217 Mbits/sec
[ 4] 1.00-2.01 sec 25.9 MBytes 217 Mbits/sec
[ 4] 2.01-3.00 sec 26.1 MBytes 220 Mbits/sec
[ 4] 3.00-4.00 sec 26.2 MBytes 220 Mbits/sec
[ 4] 4.00-5.00 sec 26.2 MBytes 220 Mbits/sec
[ 4] 5.00-6.00 sec 26.2 MBytes 220 Mbits/sec
[ 4] 6.00-7.00 sec 26.2 MBytes 220 Mbits/sec
[ 4] 7.00-8.00 sec 26.1 MBytes 220 Mbits/sec
[ 4] 8.00-9.00 sec 26.2 MBytes 220 Mbits/sec
[ 4] 9.00-10.00 sec 26.2 MBytes 220 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.00 sec 262 MBytes 219 Mbits/sec sender
[ 4] 0.00-10.00 sec 262 MBytes 219 Mbits/sec receiver
iperf Done.
Gra jest warta świeczki bo wielu użytkowników ma jeszcze routery przed kilku lat, a łatka SFE może dać im drugie życie (zwłaszcza że domowe łącza na teoretycznym poziomie 200 - 600Mbps wcale nie są już rzadkością).
EDYCJA 1
Od wydania r3514-97ebdf9 z dnia 2017-09-16 odpowiednie pakiety są dostępne dla moich obrazów wydania LEDE. Aby samodzielnie sprawdzić działanie mechanizmu SFE należy wykonać:
# opkg update
# opkg install kmod-fast-classifier kmod-shortcut-fe
EDYCJA 2
SFE/fashpath nigdy nie weszło oficjalnie do źródeł OpenWrt. W aktualnych wydaniach OpenWrt korzysta z własnego rozwiązania o nazwie flow offload.