Temat: Mesh 802.11s - jak poprawić wydajność?

Mam 5 routerów spiętcyh meshem 802.11s po 5 GHz na AC.

Generalnie wszystko działa, tylko czasami, a nawet dość często któryś klient ma bardzo powolny transfer, gdyż zamiast trasy przez punkty, gdzie jest dobry link wybiera trasę gdzie prawie nie ma połaczenia.

w pliku /etc/config/mesh11sd  mam wpis

config mesh11sd 'mesh_params'
    option mesh_fwding '1'
    option mesh_rssi_threshold '-70'


w /etc/config/wireless jest wpis:

config wifi-iface 'default_radio1'
    option device 'radio1'
    option network 'lan'
    option time_zone 'CET-1CEST,M3.5.0,M10.5.0/3'
    option mode 'mesh'
    option mesh_id 'XXXXX'
    option mesh_fwding '1'
    option mesh_rssi_threshold '-76'
    option disassoc_low_ack '0'



A niestety widać punkty mech, które mają nawet -86 dBi i pcha przez nie ruch, zamiast trasą pośrednią gdzie hopki mają -56 dBi.

Jakieś pomysły, jak go zmusić do unikania słabych tras?

2

Odp: Mesh 802.11s - jak poprawić wydajność?

Masz niewiele możliwości. Przez iw możesz

- mpath new dodać nową trasę
- mpath del do kasowania ścieżki
- station set XXX plink_action block do blokowania
- station del XXX do kasowania peera z listy

Ale to ręczna zabawa z całym meshem i na dodatek mało skuteczna jak się okaże że zaraz coś się zmienia w eterze i wszystkie ustawienia są już nieaktualne. W 802.11s jak się bawiłem nie znalazłem metody na określanie wagi łącza jakoś dynamicznie.

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

3

Odp: Mesh 802.11s - jak poprawić wydajność?

Czy w pliku wireless zadziała dla interfejsu MESH

    option macfilter 'deny'
    list maclist '60:A4:4C:66:04:76'

?


W LUCI opcja ta znika przy wybraniu mesha.

4

Odp: Mesh 802.11s - jak poprawić wydajność?

Nie wiem. Konfig od hostapd jakoś nie opisuje ograniczeń dla tej opcji.

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

5

Odp: Mesh 802.11s - jak poprawić wydajność?

Wygląda, że nie działa mi  serwis mesh11sd

Po włączeniu Debug 2 mam wpisy:

daemon.info mesh11sd[11494]: No mesh interfaces detected yet.... Attempting auto configure
daemon.err mesh11sd[11494]: auto_config is disabled. Please configure a mesh interface or enable auto_config....


ale mesh co do zasady działa. Ale serwis mesh11sd go nie wykrywa.

A autokonfiguracji nie chciałbym robić.

6

Odp: Mesh 802.11s - jak poprawić wydajność?

Okazało się, ze w kodzie skryptu mesh11sd jest błąd składniowy

Jest {printf "%s " $1} a powinno być {printf "%s ", $1} i się wywalał skrypt

Załozony issue na gicie.

u siebie poprawiłem i chyba działa.

7

Odp: Mesh 802.11s - jak poprawić wydajność?

kmaras77 napisał/a:

daemon.err mesh11sd[11494]: auto_config is disabled. Please configure a mesh interface or enable auto_config....

For auto configuration, the setup option auto_config must be set to 1:
service mesh11sd stop
uci set mesh11sd.setup.auto_config='1'
uci commit mesh11sd
service mesh11sd start

8

Odp: Mesh 802.11s - jak poprawić wydajność?

Focus napisał/a:
kmaras77 napisał/a:

daemon.err mesh11sd[11494]: auto_config is disabled. Please configure a mesh interface or enable auto_config....

For auto configuration, the setup option auto_config must be set to 1:
service mesh11sd stop
uci set mesh11sd.setup.auto_config='1'
uci commit mesh11sd
service mesh11sd start


A jaki ma sens to co piszesz, jeśli ja mam już skonfigurowane i nie potrzebuję autokonfiguracji?

9

Odp: Mesh 802.11s - jak poprawić wydajność?

kmaras77 napisał/a:
Focus napisał/a:
kmaras77 napisał/a:

daemon.err mesh11sd[11494]: auto_config is disabled. Please configure a mesh interface or enable auto_config....

For auto configuration, the setup option auto_config must be set to 1:
service mesh11sd stop
uci set mesh11sd.setup.auto_config='1'
uci commit mesh11sd
service mesh11sd start


A jaki ma sens to co piszesz, jeśli ja mam już skonfigurowane i nie potrzebuję autokonfiguracji?

Masz napisane, że nie masz skonfigurowane "Please configure a mesh interface".

10

Odp: Mesh 802.11s - jak poprawić wydajność?

Focus napisał/a:

Masz napisane, że nie masz skonfigurowane "Please configure a mesh interface".

Ale mam skonfigurowany i działa.

Poza tym, już pisałem, że w skrypcie mesh11sd zrobili błędy w parametrach printf i się wywala.

Jest w tej funkcji wykrywającej interfejs mesh taka komenda, która ma zwrócić który to interfejs w UCI.

uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s " $1}'

Niestety - z błędem nie zadziała tylko zwróci, że nie ma tego interfejsu

Powinno byc:
uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s ", $1}'   

i taka komenda działa i zwraca interfejs.

Po poprawieniu już nie pisze, że nie mam interfejsu.

Niestety to nie jedyne błędy w składni printf - jest jeszcze masa błędów w innych miejscach, więc generalnie skrypt nie działa.

11

Odp: Mesh 802.11s - jak poprawić wydajność?

kmaras77 napisał/a:
Focus napisał/a:

Masz napisane, że nie masz skonfigurowane "Please configure a mesh interface".

Ale mam skonfigurowany i działa.

Poza tym, już pisałem, że w skrypcie mesh11sd zrobili błędy w parametrach printf i się wywala.

Jest w tej funkcji wykrywającej interfejs mesh taka komenda, która ma zwrócić który to interfejs w UCI.

uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s " $1}'

Niestety - z błędem nie zadziała tylko zwróci, że nie ma tego interfejsu

Powinno byc:
uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s ", $1}'   

i taka komenda działa i zwraca interfejs.

Po poprawieniu już nie pisze, że nie mam interfejsu.

Niestety to nie jedyne błędy w składni printf - jest jeszcze masa błędów w innych miejscach, więc generalnie skrypt nie działa.

No dobra ale to nie są komendy zmieniające.
Wcześniej napisałeś "Wygląda, że nie działa mi  serwis mesh11sd" i która z  tych komend według ciebie spowodowała, że mesh11sd nagle zaczęło działać?

12

Odp: Mesh 802.11s - jak poprawić wydajność?

Focus napisał/a:
kmaras77 napisał/a:
Focus napisał/a:

Masz napisane, że nie masz skonfigurowane "Please configure a mesh interface".

Ale mam skonfigurowany i działa.

Poza tym, już pisałem, że w skrypcie mesh11sd zrobili błędy w parametrach printf i się wywala.

Jest w tej funkcji wykrywającej interfejs mesh taka komenda, która ma zwrócić który to interfejs w UCI.

uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s " $1}'

Niestety - z błędem nie zadziała tylko zwróci, że nie ma tego interfejsu

Powinno byc:
uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s ", $1}'   

i taka komenda działa i zwraca interfejs.

Po poprawieniu już nie pisze, że nie mam interfejsu.

Niestety to nie jedyne błędy w składni printf - jest jeszcze masa błędów w innych miejscach, więc generalnie skrypt nie działa.

No dobra ale to nie są komendy zmieniające.
Wcześniej napisałeś "Wygląda, że nie działa mi  serwis mesh11sd" i która z  tych komend według ciebie spowodowała, że mesh11sd nagle zaczęło działać?


Zadna komenda nie sprawiła, że ten serwis zaczął działać. Poprawiłem widoczne błędy w skrypcie \usr\sbin\mesh11sd

Ale finalnie i tak nie działa, gdyż np komenda
mesh11sd status
zwraca błąd z printf.


# mesh11sd status
awk: cmd. line:1: (FILENAME=- FNR=2) fatal: not enough arguments to satisfy format string
        `%s phy1-mesh0'
         ^ ran out for this one


skrypt jest popsuty i zgłosiłem issue na githubie

13

Odp: Mesh 802.11s - jak poprawić wydajność?

kmaras77 napisał/a:

skrypt jest popsuty i zgłosiłem issue na githubie

A podasz linka gdzie to dokładnie zgłosiłeś?

14 (edytowany przez kmaras77 2024-09-09 23:52:53)

Odp: Mesh 802.11s - jak poprawić wydajność?

https://github.com/openNDS/mesh11sd/issues/90

Ciekawa sprawa wyszła.
serwis mesh11sd nie działał nigdy na buildach Cezarego,, gdyż w buildach Cezarego jest pakiet gawk, będący zależnością dla adblocka.

gawk nie parsował składni z błedem w printf:
meshconfigs=$(uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s " $1}')

Brakuje wymaganego w printf przecinka po między parametrami.
meshconfigs=$(uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s ", $1}')

Więc skrypt mesh11sd na wczesnym początku wchodził w pętle szukania mescha, którego nie mógł znaleźć i nic nie robił.

ale awk z busybox już parsował bez błędu.

Tak było od lat.

I teraz ciekawostka nr 2 - jak juz skrypt mesh11sd zaczał poprawnie się wykonywać, to mój mesh przestał działać.
A dokładnie mesh działa, moge sobie chodzić po APkach, ale AP nie przyjmuje klientow po wifi. Działa tylko połączenie do AP po kablu lub meshem.

I to niezależnie czy mam poprawiony skrypt, czy stary z awkiem tolerującym błędy w printf.
Po prostu jak mest11sd działa, to AP nie przyjmuje klientów. A gdy dodam serwis w czasie, gdy sa klienci - to po uruchomieniu ich zrzuca i nie przyjmuje.

15

Odp: Mesh 802.11s - jak poprawić wydajność?

kmaras77 napisał/a:

https://github.com/openNDS/mesh11sd/issues/90

Ciekawa sprawa wyszła.
serwis mesh11sd nie działał nigdy na buildach Cezarego,, gdyż w buildach Cezarego jest pakiet gawk, będący zależnością dla adblocka.

gawk nie parsował składni z błedem w printf:
meshconfigs=$(uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s " $1}')

Brakuje wymaganego w printf przecinka po między parametrami.
meshconfigs=$(uci show wireless 2> /dev/null | grep "mode='mesh'" | awk -F ".mode='mesh'" '{printf "%s ", $1}')

Więc skrypt mesh11sd na wczesnym początku wchodził w pętle szukania mescha, którego nie mógł znaleźć i nic nie robił.

ale awk z busybox już parsował bez błędu.

Tak było od lat.

I teraz ciekawostka nr 2 - jak juz skrypt mesh11sd zaczał poprawnie się wykonywać, to mój mesh przestał działać.
A dokładnie mesh działa, moge sobie chodzić po APkach, ale AP nie przyjmuje klientow po wifi. Działa tylko połączenie do AP po kablu lub meshem.

I to niezależnie czy mam poprawiony skrypt, czy stary z awkiem tolerującym błędy w printf.
Po prostu jak mest11sd działa, to AP nie przyjmuje klientów. A gdy dodam serwis w czasie, gdy sa klienci - to po uruchomieniu ich zrzuca i nie przyjmuje.

Zacytuję to, bo znając życie do rana post może zniknąć.

16

Odp: Mesh 802.11s - jak poprawić wydajność?

coraz lepsze ananasy są na tym forum. jeden cytuje, żeby tylko zacytować.

@Focus
A co by się stało jakby post zniknął, skoro Cezary dopuszcza taką możliwość na swoim forum?
Świat by się skończył?
Akurat w cytowanym wpisie @kmaras(-a)77 nie było personalnych "wycieczek", żeby trzymać takie dowody "zbrodni" smile

PS. Taką ramkę z tekstem można sobie dowolnie wygenerować i jaki to będzie dowód na rozprawie w Sądzie Okręgowym dla Warszawy Ursynowa?
Czy Cezary też będzie wezwany jako świadek z plikiem logów?

Cytuj mnie bo post jutro zniknie big_smile

Xiaomi AX3000T @ Netgear R6220
* DVBT2 - T230C *

17

Odp: Mesh 802.11s - jak poprawić wydajność?

mar_w napisał/a:

coraz lepsze ananasy są na tym forum. jeden cytuje, żeby tylko zacytować.

@Focus
A co by się stało jakby post zniknął, skoro Cezary dopuszcza taką możliwość na swoim forum?
Świat by się skończył?
Akurat w cytowanym wpisie @kmaras(-a)77 nie było personalnych "wycieczek", żeby trzymać takie dowody "zbrodni" smile

PS. Taką ramkę z tekstem można sobie dowolnie wygenerować i jaki to będzie dowód na rozprawie w Sądzie Okręgowym dla Warszawy Ursynowa?
Czy Cezary też będzie wezwany jako świadek z plikiem logów?

Cytuj mnie bo post jutro zniknie big_smile

No żeby było na pamiątkę.

Ostatnio walczyli dużo z awk, bo wprowadzili możliwość wyłączenia awk w busyboxie i zastąpienie go innym awk (np gawk). Wiele rzeczy (m.in adblock i adblock-fast) zostało zmienione żeby korzystać z gawk (bo jest szybsze) ale wprowadza to zależności (o czym pisałem przy opisie wydania). Tylko że:

PS1. gawk nie robi linka do awk i nadal domyślnym jest awk - gawk leży oddzielnie

root@OpenWrt:~# awk -h
awk: unrecognized option: h
BusyBox v1.36.1 (2023-11-11 17:18:29 UTC) multi-call binary.

Usage: awk [OPTIONS] [AWK_PROGRAM] [FILE]...

    -v VAR=VAL    Set variable
    -F SEP        Use SEP as field separator
    -f FILE        Read program from FILE
    -e AWK_PROGRAM
root@OpenWrt:~# gawk -h
Usage: gawk [POSIX or GNU style options] -f progfile [--] file ...
Usage: gawk [POSIX or GNU style options] [--] 'program' file ...
POSIX options:        GNU long options: (standard)
    -f progfile        --file=progfile
    -F fs            --field-separator=fs
    -v var=val        --assign=var=val
Short options:        GNU long options: (extensions)
    -b            --characters-as-bytes
    -c            --traditional
    -C            --copyright
    -d[file]        --dump-variables[=file]
    -D[file]        --debug[=file]
    -e 'program-text'    --source='program-text'
    -E file            --exec=file
    -g            --gen-pot
    -h            --help
    -i includefile        --include=includefile
    -I            --trace
    -l library        --load=library
    -L[fatal|invalid|no-ext]    --lint[=fatal|invalid|no-ext]
    -M            --bignum
    -N            --use-lc-numeric
    -n            --non-decimal-data
    -o[file]        --pretty-print[=file]
    -O            --optimize
    -p[file]        --profile[=file]
    -P            --posix
    -r            --re-interval
    -s            --no-optimize
    -S            --sandbox
    -t            --lint-old
    -V            --version

To report bugs, use the `gawkbug' program.
For full instructions, see the node `Bugs' in `gawk.info'
which is section `Reporting Problems and Bugs' in the
printed version.  This same information may be found at
https://www.gnu.org/software/gawk/manual/html_node/Bugs.html.
PLEASE do NOT try to report bugs by posting in comp.lang.awk,
or by using a web forum such as Stack Overflow.

gawk is a pattern scanning and processing language.
By default it reads standard input and writes standard output.

Examples:
    gawk '{ sum += $1 }; END { print sum }' file
    gawk -F: '{ print $1 }' /etc/passwd
root@OpenWrt:~# 

Więc nie wiem skąd nagle skrypt parsuje ci przez gawk bo musiał by być jawnie gawk wywołany.

PS2. Oczywiście skrypt musi być poprawiony żeby przewidział taką sytuację ale poradzić sobie z tym można prosto - zamiast wołać w skrypcie awk to wołajcie busybox awk - wtedy jest pewność że będzie awk z busyboxa a nie cokolwiek innego co ew. może się ukrywać pod awk.

PS3. Cytujcie, bo nie wiadomo co jutro przyniesie.

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

18 (edytowany przez kmaras77 2024-09-10 06:54:08)

Odp: Mesh 802.11s - jak poprawić wydajność?

Sprawa awka nigdy mnie nie zajmowała, do wczoraj nawet nie wiedziałem, że jakikolwiek awk jest zainstalowany i dodatkowo każdy działa inaczej.

Po prostu autor mesh11sd uświadomił sobie, że ma źle napisany skrypt i nie uruchamia się z gawk i poprawił wszystkie miejsca w źródłach - i to jest ok.

A ja uświadomiłem sobie, że ostatnie dwa lata żyłem w przekonaniu, że serwis mesh11sd u mnie działał - a faktycznie nie uruchamiał się. Mesch 802.11s działał tak, jakby serwisu mesch11sd  nie było - i prawie wszystko było funkcjonalnie poprawnie, oprócz tego, co opisałem w pierwszym poście - zestawiały się nieoptymalne trasy a cały config dla mesh11sd nie był prany pod uwagę.

A po trzecie - jak zaczął się serwis mesh11sd uruchamiać - to AP przestały przyjmować klientów na interfejsie WiFi, który jest AP.

I w sumie tylko ten trzeci temat w tej chwili jest istotny, a dwa pierwsze - pisze jako ciekawostkę i nie ma powodu aby to roztrząsać.

Przetestowałem różne opcje konfiguracyjne i efekt jest taki, że jak działa mesh11sd - to AP nie działa, a jak go nie ma, lub się w pełni nie uruchamia - to AP działa poprawnie.


PS. Ciekawe, czy jak teraz jest poprawiony, działający skrypt, to pojawią się wpisy, że są problemy z Meshem, których wcześniej nie było.

19

Odp: Mesh 802.11s - jak poprawić wydajność?

mar_w napisał/a:

coraz lepsze ananasy są na tym forum. jeden cytuje, żeby tylko zacytować.

@Focus
A co by się stało jakby post zniknął, skoro Cezary dopuszcza taką możliwość na swoim forum?
Świat by się skończył?
Akurat w cytowanym wpisie @kmaras(-a)77 nie było personalnych "wycieczek", żeby trzymać takie dowody "zbrodni" smile

PS. Taką ramkę z tekstem można sobie dowolnie wygenerować i jaki to będzie dowód na rozprawie w Sądzie Okręgowym dla Warszawy Ursynowa?
Czy Cezary też będzie wezwany jako świadek z plikiem logów?

Cytuj mnie bo post jutro zniknie big_smile

Bredzisz i nie będę zniżał się do twojego poziomu.

20

Odp: Mesh 802.11s - jak poprawić wydajność?

Cezary napisał/a:

Więc nie wiem skąd nagle skrypt parsuje ci przez gawk bo musiał by być jawnie gawk wywołany.

PS2. Oczywiście skrypt musi być poprawiony żeby przewidział taką sytuację ale poradzić sobie z tym można prosto - zamiast wołać w skrypcie awk to wołajcie busybox awk - wtedy jest pewność że będzie awk z busyboxa a nie cokolwiek innego co ew. może się ukrywać pod awk.

PS3. Cytujcie, bo nie wiadomo co jutro przyniesie.

Nigdy się nie zastanawiałem, czy jest gawk, czy awk z busyboxa.
Analogicznie - skrypt mesh11sd jest jako pakiet w openwrt i zmianę, aby wołać awk z busyboxa a nie inny awk trzeba wprowadzić w tym repozytorium.

W każdym razie - na poziomie repo już jest poprawione i to jest na plus.