1 (edytowany przez Cezary 2017-09-26 08:46:42)

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.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

2

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

I właśnie dlatego TP-Link zaczyna blokować zmianę softu w swoich najnowszych routerach. By wykończyć tuning tańszych urządzeń. Wydajność i szersze zastosowanie musi więcej kosztować.

3 (edytowany przez DjPiotrus 2017-09-13 20:17:05)

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Chętnie przetestuje Qualcomm Shortcut Forwarding Engine na swoim mikrotiku RB2011UAS , jeśli ktoś będzie mógł mi skompilować obraz z łatami . Niestety sam tego nie potrafię sad Proszę o pomoc ( może Cezary będziesz mógł w wolnej chwili )

Pozdrawiam

4 (edytowany przez r43k3n 2017-09-13 20:28:06)

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

TranceEX napisał/a:

I właśnie dlatego TP-Link zaczyna blokować zmianę softu w swoich najnowszych routerach. By wykończyć tuning tańszych urządzeń. Wydajność i szersze zastosowanie musi więcej kosztować.

Przecież oryginalny firmware od TP-Link dla np.: WR1043ND v2-v4 posiada zaimplementowane rozwiązanie Hardware NAT (w switchu), gdzie prędkości 800 Mb/s wyciąga bez problemu. W LEDE natomiast Hardware NAT nie jest dostępne, tam właśnie wchodzi SFE/fastpath.

5

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

DjPiotrus napisał/a:

Chętnie przetestuje Qualcomm Shortcut Forwarding Engine na swoim mikrotiku RB2011UAS , jeśli ktoś będzie mógł mi skompilować obraz z łatami . Niestety sam tego nie potrafię sad Proszę o pomoc ( może Cezary będziesz mógł w wolnej chwili )

Pozdrawiam


Ja bym chętnie zobaczył zaimplementowane SFE/fastpath w następnych obrazach Cezarego dla wszystkich platform, nawet jeżeli miałoby być domyślnie wyłączone. Ewentualnie jakieś oddzielne buildy (nawet dla wybranych popularnych modeli), równoległe z normalnym wydaniem różniące się wyłącznie obecności SFE/fastpath. Pamiętam, że Cezary kiedyś wspominał, że nie jest gotowy na implementację SFE, bo boi się zasypu forum postami o problemach. Myślę, że domyślne wyłączone SFE lub równoległe wydanie dwóch wersji obrazów pozwoliło by przetestować fanom modyfikacji Cezarego nowe rozwiązanie.

@Cezary - Co ty na to?

6 (edytowany przez sty 2017-09-14 08:26:36)

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Co do testów to potwierdzają one moje informacje na ten temat (WNDR4300v1) i prędzej czy później developerzy Lede/OpenWRT na pewno tym się zajmą. Z tego co wiem, to mechanizm FP sprawia problemy z niektórymi wariantami SQM/Openvpn tak ogólnie/itd. i pewno dlatego tak ochoczo i wnikliwie do tej pory nikt tego nie zbadał , lub jeszcze nie zbadał/poprawił/dostosował.
Tak w ogóle jeżeli z czymś żenić FP, to z pewnym w działaniu i również przynoszącym poprawę transferów (WAN/LAN i odwrotnie) mechanizmem BBR (niestety w trunku, bo działa dopiero od jajka 4.8.*, a w Lede od obecnego jajka 4.9.*).
Ogólnie najprościej założyć łatę na trunk bo wchodzi na czysto i nic nie trzeba robić poza wybraniem modułów jądra (SFE) podczas konfiguracji w "make menuconfig", tj. :

git clone https://github.com/lede-project/source.git lede
cd lede
wget https://patch-diff.githubusercontent.com/raw/lede-project/source/pull/1269.patch
patch -p1 < 1269.patch

Jak sprawdzałem już osobiście na jednym z moich routerów (ar71xx), FP też przynosi poprawę transferów (niestety nie tak spektakularnie jak u Cezarego w teście - zaledwie 80-90 % szybciej), a dodatkowe 10-15 % przyspiesza samo BBR (szczególnie poprawia vpn).

7 (edytowany przez Cezary 2017-09-14 08:58:53)

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

EDIT: od następnego wydania moich obrazów SFE będzie dostępne w postaci modułów. Jak ktoś będzie chciał używać to po prostu zainstaluje sobie dwa dodatkowe modułu i tyle.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Cezary napisał/a:

EDIT: od następnego wydania moich obrazów SFE będzie dostępne w postaci modułów. Jak ktoś będzie chciał używać to po prostu zainstaluje sobie dwa dodatkowe modułu i tyle.

Doskonała wiadomość, Cezary !!
W takim razie czekam aby mój wndr3700v2 rozwinął skrzydła !!

Xiaomi 3G Cezarego (!), Xiaomi 4 i 4A z Openwrt by Obsy i Pandorabox 19.2, modem fiber ZTE 660, NAS Qnap 453mini, net 250/25Mb/s, hackintosh

9

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

I zaraz się okaże że coś innego nie działa z powodu włączenia SFE...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

10

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Ja i tak używam raczej podstawowy system, więc nie ma obaw smile

Xiaomi 3G Cezarego (!), Xiaomi 4 i 4A z Openwrt by Obsy i Pandorabox 19.2, modem fiber ZTE 660, NAS Qnap 453mini, net 250/25Mb/s, hackintosh

11

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

A na miniPC x86 będzie to też możliwe ?

12

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Cezary napisał/a:

I zaraz się okaże że coś innego nie działa z powodu włączenia SFE...

I bardzo dobrze, dzięki temu patch zostanie dodatkowo przetestowany w różnych nietypowych konfiguracjach.
Dzięki Cezary, dodatkowe opcjonalne moduły to doskonały pomysł.

13

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

onken napisał/a:

A na miniPC x86 będzie to też możliwe ?

W jakim celu? Ten x86 nie wysyca Ci gigabita?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

A czy można skądeś pobrać tę podrasowaną wersję LEDE - obok stoi i się kurzy 1043v1 a prawdopodobnie jak go podrasować będzie można podarować ku radości akademikowych panien/pociechy, które mają 1 GB na kablu w pokoju wink

15

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

cunio napisał/a:

A czy można skądeś pobrać tę podrasowaną wersję LEDE - obok stoi i się kurzy 1043v1 a prawdopodobnie jak go podrasować będzie można podarować ku radości akademikowych panien/pociechy, które mają 1 GB na kablu w pokoju wink

Przeczytaj post #7.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Kiedy wspominasz o modułach, masz na myśli kmod-y, takie do zainstalowania?
Teraz tylko poczekać do soboty (mam nadzieję) na nowe wydanie. Fajnie by było jakby pojawił się opis jak to włączyć. Wiem, że na forum.lede-project.org dostępne są dwie różne instrukcje. Pierwsza nakazuje instalację wszystkich trzech modułów, druga nakazuje instalację pierwszego i albo drugiego albo trzeciego.

Zakładam, że ty testowałeś patch od dissent1? U niego właśnie obowiązuje druga instrukcja.

17

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

opkg update
opkg install kmod-fast-classifier kmod-shortcut-fe

I tyle. Tak, łatka pochodzi od dissent1, jest link do tego w pierwszym poście.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18 (edytowany przez sty 2017-09-14 20:56:27)

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

r43k3n napisał/a:

(...)Wiem, że na forum.lede-project.org dostępne są dwie różne instrukcje. Pierwsza nakazuje instalację wszystkich trzech modułów, druga nakazuje instalację pierwszego i albo drugiego albo trzeciego.

Zakładam, że ty testowałeś patch od dissent1? U niego właśnie obowiązuje druga instrukcja.

W tej chwili obowiązuje już tylko jedna instrukcja (gwlim wycofał się w swoich łatach z 3-go modułu ze wzgldu np. na SQM) - tak jak podał
Cezary - tylko te 2 moduły. I nie ma również znaczenia czy na trunk, czy na 17.01-snapshot - działa identycznie. Ogólnie jak na jakimś modelu routera ma to coś poprawić/polepszyć, to tak zadziała, a jak nie lub mało, to tak się stanie. Tak na prawdę to jedna wielka niewiadoma i na każdym modelu routera trzeba osobno weryfikować przydatność tego hacka.

cunio napisał/a:

A czy można skądeś pobrać tę podrasowaną wersję LEDE - obok stoi i się kurzy 1043v1 a prawdopodobnie jak go podrasować będzie można podarować ku radości akademikowych panien/pociechy, które mają 1 GB na kablu w pokoju wink

Tak na już, to np. stąd https://github.com/gwlim/Fast-Path-LEDE … h/Aug-2017 (tyle że to akurat na OpenWRT) lub poczekać, aż Cezary to spłodzi, tak jak zapowiedział...lub po prostu samemu sobie to skompilować (np. kilka postów temu podałem jak - na trunk).

19

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

sty napisał/a:
r43k3n napisał/a:

(...)Wiem, że na forum.lede-project.org dostępne są dwie różne instrukcje. Pierwsza nakazuje instalację wszystkich trzech modułów, druga nakazuje instalację pierwszego i albo drugiego albo trzeciego.

Zakładam, że ty testowałeś patch od dissent1? U niego właśnie obowiązuje druga instrukcja.

W tej chwili obowiązuje już tylko jedna instrukcja (gwlim wycofał się w swoich łatach z 3-go modułu ze wzgldu np. na SQM)

A to nie właśnie kmod-fast-classifier miał problemy z SQM?
Coś ostatnio mi się rzuciło w oczy, że do pełnego przyśpieszenia OpenVPN trzeba mieć oba moduły kmod-fast-classifier i kmod-shortcut-fe-cm (nie mylić z kmod-shortcut-fe). Prawda to czy coś pomieszałem?

20

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Spoko, trzeci też będzie w repo. Sami sobie sprawdzicie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

21 (edytowany przez sty 2017-09-15 19:23:56)

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

r43k3n napisał/a:

(...)
A to nie właśnie kmod-fast-classifier miał problemy z SQM?
Coś ostatnio mi się rzuciło w oczy, że do pełnego przyśpieszenia OpenVPN trzeba mieć oba moduły kmod-fast-classifier i kmod-shortcut-fe-cm (nie mylić z kmod-shortcut-fe). Prawda to czy coś pomieszałem?

No i tu jest właśnie ambaras - na każdym modelu routera prawidłowo działa inny zestaw modułów (lub działa słabo, lub wcale, lub wręcz zwalnia a nie przyspiesza transfer) i różny jest zakres funkcjonalności.
Z tego co sam zauważyłem - jak chociaż przyspieszy wifi to już jest postęp i należy się ogólnie cieszyć, że cokolwiek ta łata daje - przynajmniej na tą chwilę w takim stanie, w jakim to jest.
Czy będzie wszystko razem składnie działać i w jakim zakresie, to każdy musi sobie to sam przetestować - jak pisałem, na każdym modelu routera może być inaczej. Póki co ta łata to tylko punkt wyjścia do dalszych prac - o ile zostaną podjęte i w ogóle jak to trafi na stałe do master (o ile w ogóle trafi...).

22

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

czy  może to zadziałać  na lantiq   ? 
w makefile  jest że obraz  musi byc kompilowany z IPv6  ( a ja mam bez  )  i teraz  nie wiem  czy warto  to   spróbować   ?  musiałbym  wszystko od nowa  a mało  miejsca na dysku .

23

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Rozwiązanie jest podobno niezależne od architektury.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24 (edytowany przez r43k3n 2017-09-15 21:13:09)

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Tak naprawdę to odradzają korzystanie z kmod-shortcut-fe-cm (nawet zastanawiają się nad jego całkowitym usunięciem). Zalecane jest wykorzystanie tych dwóch modułów: kmod-fast-classifier i kmod-shortcut-fe.

Tak na marginesie.
@Cezary - Mógłbyś dorzucić do swojego repo DNSCrypt-Proxy w wersji z włączoną obsługą pluginów?

25

Odp: Test wydajności routera TP-LINK TL-WR1043NDv1 z GRO i SFE/fastpath

Tak, ale zmienię nazwę pakietu bo ta z 17.01 ma w makefile wyłączone pluginy, a w wersji rozwojowej jest nowsza.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.