kirk1
December 26, 2023, 6:53pm
1
Asking a question regarding the mesh speed. Looking for some ideas on the slow upload speed.
I have set up a mesh both running openwrt 23.05. The main router is rt3200 and the mesh node is rbs50. My download speed from rt3200 to rbs50 is strong, at around 500m. but the upload speed is much lower and less stable, fluctuating around 70-110m. I have attached the iperf3 results on both direction below.
My setup is fairly simple, as shown below. I run both mesh and actual wireless on channel 104. The interference is low. The negotiated transfer rate is normal at 1300 both up and down. hardware offloading is enabled on rt3200, my wired connection is good at the rated giga speed. software offloading is enabled on rbs50 node. The two device are about 10ft away with a interior wall between.
Any help is appreciated!
wireless setup, left is the node and right is the main
rbr as client
root@RBS50:~# iperf3 -c 192.168.1.1
Connecting to host 192.168.1.1, port 5201
[ 5] local 192.168.1.10 port 59928 connected to 192.168.1.1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 6.75 MBytes 56.6 Mbits/sec 50 31.1 KBytes
[ 5] 1.00-2.00 sec 3.75 MBytes 31.5 Mbits/sec 50 8.48 KBytes
[ 5] 2.00-3.00 sec 3.62 MBytes 30.4 Mbits/sec 39 18.4 KBytes
[ 5] 3.00-4.00 sec 10.1 MBytes 84.9 Mbits/sec 34 89.1 KBytes
[ 5] 4.00-5.00 sec 13.2 MBytes 111 Mbits/sec 44 36.8 KBytes
[ 5] 5.00-6.00 sec 11.2 MBytes 94.5 Mbits/sec 30 52.3 KBytes
[ 5] 6.00-7.00 sec 12.1 MBytes 102 Mbits/sec 43 62.2 KBytes
[ 5] 7.00-8.00 sec 12.9 MBytes 108 Mbits/sec 52 46.7 KBytes
[ 5] 8.00-9.00 sec 17.0 MBytes 143 Mbits/sec 74 48.1 KBytes
[ 5] 9.00-10.00 sec 15.0 MBytes 126 Mbits/sec 27 62.2 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 106 MBytes 88.7 Mbits/sec 443 sender
[ 5] 0.00-10.01 sec 105 MBytes 88.2 Mbits/sec receiver
iperf Done.
rt3200 as server
root@Belkin_RT3200:~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.1.10, port 59924
[ 5] local 192.168.1.1 port 5201 connected to 192.168.1.10 port 59928
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 6.38 MBytes 53.4 Mbits/sec
[ 5] 1.00-2.00 sec 3.75 MBytes 31.5 Mbits/sec
[ 5] 2.00-3.00 sec 3.50 MBytes 29.4 Mbits/sec
[ 5] 3.00-4.00 sec 10.2 MBytes 86.0 Mbits/sec
[ 5] 4.00-5.00 sec 13.1 MBytes 110 Mbits/sec
[ 5] 5.00-6.00 sec 11.1 MBytes 93.3 Mbits/sec
[ 5] 6.00-7.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 7.00-8.00 sec 12.8 MBytes 107 Mbits/sec
[ 5] 8.00-9.00 sec 17.0 MBytes 143 Mbits/sec
[ 5] 9.00-10.00 sec 14.9 MBytes 125 Mbits/sec
[ 5] 10.00-10.01 sec 128 KBytes 264 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 105 MBytes 88.2 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201 (test #2)
rbr as server
root@RBS50:~# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.1.1, port 45962
[ 5] local 192.168.1.10 port 5201 connected to 192.168.1.1 port 45976
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 43.2 MBytes 362 Mbits/sec
[ 5] 1.00-2.00 sec 51.5 MBytes 432 Mbits/sec
[ 5] 2.00-3.00 sec 51.9 MBytes 435 Mbits/sec
[ 5] 3.00-4.00 sec 50.9 MBytes 427 Mbits/sec
[ 5] 4.00-5.00 sec 50.9 MBytes 427 Mbits/sec
[ 5] 5.00-6.00 sec 51.0 MBytes 428 Mbits/sec
[ 5] 6.00-7.00 sec 51.1 MBytes 429 Mbits/sec
[ 5] 7.00-8.00 sec 51.2 MBytes 430 Mbits/sec
[ 5] 8.00-9.00 sec 51.4 MBytes 431 Mbits/sec
[ 5] 9.00-10.00 sec 50.9 MBytes 427 Mbits/sec
[ 5] 10.00-10.02 sec 1.25 MBytes 440 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.02 sec 505 MBytes 423 Mbits/sec receiver
-----------------------------------------------------------
Server listening on 5201 (test #2)
rt3200 as client
root@Belkin_RT3200:~# iperf3 -c 192.168.1.10
Connecting to host 192.168.1.10, port 5201
[ 5] local 192.168.1.1 port 45976 connected to 192.168.1.10 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 46.2 MBytes 388 Mbits/sec 0 1.96 MBytes
[ 5] 1.00-2.00 sec 51.8 MBytes 434 Mbits/sec 0 1.96 MBytes
[ 5] 2.00-3.00 sec 51.9 MBytes 435 Mbits/sec 0 1.96 MBytes
[ 5] 3.00-4.00 sec 50.1 MBytes 420 Mbits/sec 0 1.96 MBytes
[ 5] 4.00-5.00 sec 51.5 MBytes 432 Mbits/sec 0 1.96 MBytes
[ 5] 5.00-6.00 sec 51.0 MBytes 428 Mbits/sec 0 1.96 MBytes
[ 5] 6.00-7.00 sec 51.2 MBytes 430 Mbits/sec 0 1.96 MBytes
[ 5] 7.00-8.00 sec 49.9 MBytes 418 Mbits/sec 0 1.96 MBytes
[ 5] 8.00-9.00 sec 51.4 MBytes 431 Mbits/sec 0 1.96 MBytes
[ 5] 9.00-10.00 sec 51.6 MBytes 433 Mbits/sec 0 1.96 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 507 MBytes 425 Mbits/sec 0 sender
[ 5] 0.00-10.02 sec 505 MBytes 423 Mbits/sec receiver
iperf Done.
I have seen similar in 802.11s meshes between Mediatek and Qualcom devices. Qualcom as upstream. I have not bothered to start diving deep. Following.
I'm surprised it works at all: from the Orbi website for the RBS50
Only works with an Orbi Whole Home Mesh WiFi ac Router and Orbi ac WiFi Systems
I get it they are both running OpenWRT but the backhaul chip is still a brat. Please provide these infos for each device.
ubus call system board
cat /etc/config/network
cat /etc/config/dhcp
cat /etc/config/firewall
Highlight the pastes and use the greater than and less than icon ( </> )in your reply to post results
Also show the output of mesh11sd status
kirk1
January 8, 2024, 4:48pm
6
Thanks! Here are the results.
from main router
root@Belkin_RT3200:~# ubus call system board
{
"kernel": "5.15.134",
"hostname": "Belkin_RT3200",
"system": "ARMv8 Processor rev 4",
"model": "Linksys E8450 (UBI)",
"board_name": "linksys,e8450-ubi",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "23.05.0",
"revision": "r23497-6637af95aa",
"target": "mediatek/mt7622",
"description": "OpenWrt 23.05.0 r23497-6637af95aa"
}
}
root@Belkin_RT3200:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fd39:ecb1:7881::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ip6assign '60'
list ipaddr '192.168.1.1/24'
list dns '8.8.8.8'
list dns '8.8.4.4'
config interface 'wan'
option device 'wan'
option proto 'dhcp'
option peerdns '0'
list dns '8.8.8.8'
list dns '208.67.222.222'
list dns '8.8.4.4'
config interface 'wan6'
option device 'wan'
option proto 'dhcpv6'
root@Belkin_RT3200:~# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option cachesize '10000'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
option localservice '1'
option ednspacket_max '1232'
option logqueries '1'
option serversfile '/var/run/adblock-fast/dnsmasq.servers'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option dhcpv6 'server'
option ra 'server'
list ra_flags 'managed-config'
list ra_flags 'other-config'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
config host
option name 'RPi4'
option dns '1'
option mac 'DC:A6:32:A4:8D:4A'
option ip '192.168.1.2'
config host
option name 'RPi4Wireless'
option dns '1'
option mac '3E:88:36:90:0C:B3'
option ip '192.168.1.3'
config host
option name 'myNAS'
option dns '1'
option mac '24:5E:BE:1D:C6:E1'
option ip '192.168.1.5'
config host
option name 'AlienwareEthernet'
option dns '1'
option mac '2C:F0:5D:A1:C4:47'
option ip '192.168.1.7'
config host
option name 'AlienwareWireless'
option dns '1'
option mac '34:C9:3D:AF:39:A8'
option ip '192.168.1.8'
config host
option name 'RBR50'
option dns '1'
option mac '78:D2:94:C3:52:EC'
option ip '192.168.1.9'
config host
option name 'RBS50'
option dns '1'
option mac '78:D2:94:BF:EA:88'
option ip '192.168.1.10'
root@Belkin_RT3200:~# cat /etc/config/firewall
config defaults
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
option flow_offloading '1'
option flow_offloading_hw '1'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
config forwarding
option src 'lan'
option dest 'wan'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'fe80::/10'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'NAS 4443'
option src 'wan'
option src_dport '4443'
option dest_ip '192.168.1.5'
option dest_port '4443'
config redirect
option dest 'lan'
option target 'DNAT'
option name 'SSR 9978'
option src 'wan'
option src_dport '9978'
option dest_ip '192.168.1.2'
option dest_port '9978'
from node
root@RBS50:~# ubus call system board
{
"kernel": "5.15.137",
"hostname": "RBS50",
"system": "ARMv7 Processor rev 5 (v7l)",
"model": "NETGEAR RBR50",
"board_name": "netgear,rbr50",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "23.05.2",
"revision": "r23630-842932a63d",
"target": "ipq40xx/generic",
"description": "OpenWrt 23.05.2 r23630-842932a63d"
}
}
root@RBS50:~# cat /etc/config/network
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config globals 'globals'
option ula_prefix 'fdc2:1371:5e6a::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
config interface 'lan'
option device 'br-lan'
option proto 'dhcp'
config device
option name 'wan'
option macaddr '78:d2:94:bf:ea:89'
config interface 'wan'
option device 'wan'
option proto 'dhcp'
config interface 'wan6'
option device 'wan'
option proto 'dhcpv6'
root@RBS50:~# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_protection '1'
option rebind_localhost '1'
option local '/lan/'
option domain 'lan'
option expandhosts '1'
option nonegcache '0'
option cachesize '1000'
option authoritative '1'
option readethers '1'
option leasefile '/tmp/dhcp.leases'
option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
option nonwildcard '1'
option localservice '1'
option ednspacket_max '1232'
option filter_aaaa '0'
option filter_a '0'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option dhcpv6 'server'
option ra 'server'
list ra_flags 'managed-config'
list ra_flags 'other-config'
option ignore '1'
config dhcp 'wan'
option interface 'wan'
option ignore '1'
config odhcpd 'odhcpd'
option maindhcp '0'
option leasefile '/tmp/hosts/odhcpd'
option leasetrigger '/usr/sbin/odhcpd-update'
option loglevel '4'
root@RBS50:~# cat /etc/config/firewall
config defaults
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option synflood_protect '1'
option flow_offloading '1'
config zone
option name 'lan'
list network 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'wan'
list network 'wan'
list network 'wan6'
option input 'REJECT'
option output 'ACCEPT'
option forward 'REJECT'
option masq '1'
option mtu_fix '1'
config forwarding
option src 'lan'
option dest 'wan'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-DHCPv6'
option src 'wan'
option proto 'udp'
option dest_port '546'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-MLD'
option src 'wan'
option proto 'icmp'
option src_ip 'fe80::/10'
list icmp_type '130/0'
list icmp_type '131/0'
list icmp_type '132/0'
list icmp_type '143/0'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Input'
option src 'wan'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
list icmp_type 'router-solicitation'
list icmp_type 'neighbour-solicitation'
list icmp_type 'router-advertisement'
list icmp_type 'neighbour-advertisement'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-ICMPv6-Forward'
option src 'wan'
option dest '*'
option proto 'icmp'
list icmp_type 'echo-request'
list icmp_type 'echo-reply'
list icmp_type 'destination-unreachable'
list icmp_type 'packet-too-big'
list icmp_type 'time-exceeded'
list icmp_type 'bad-header'
list icmp_type 'unknown-header-type'
option limit '1000/sec'
option family 'ipv6'
option target 'ACCEPT'
config rule
option name 'Allow-IPSec-ESP'
option src 'wan'
option dest 'lan'
option proto 'esp'
option target 'ACCEPT'
config rule
option name 'Allow-ISAKMP'
option src 'wan'
option dest 'lan'
option dest_port '500'
option proto 'udp'
option target 'ACCEPT'
kirk1
January 8, 2024, 4:50pm
7
I assume this relates to Mesh11sd - Setting Parameters and Options . However, every time that I execute this part, the mesh fails. So to make it work, I skipped this step and the mesh has been working. So there is no response from this command.
kirk1
January 8, 2024, 4:52pm
8
I guess, may be if the main openwrt router can join the oem orbi mesh will be easier? Is this possible?
This way, the ORBIs will run the OEM and have their mesh, I somehow can find the mesh setting and reuse that in my openwrt routers.
Can you also show the wireless config?
kirk1:
Is this possible
No. Theirs is a proprietary "mesh" and incompatible with OpenWrt.
kirk1
January 11, 2024, 6:24pm
11
sure
main router
root@Belkin_RT3200:~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'platform/18000000.wmac'
option channel '6'
option band '2g'
option htmode 'HT40'
option cell_density '0'
option country 'US'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'OpenWrt 2.4'
option encryption 'psk2'
option key 'password'
config wifi-device 'radio1'
option type 'mac80211'
option path '1a143000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0'
option channel '104'
option band '5g'
option htmode 'VHT80'
option cell_density '0'
option country 'US'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'ORBI13-2'
option encryption 'psk2'
option key 'password'
option ieee80211r '1'
option ft_over_ds '0'
option ft_psk_generate_local '1'
option ieee80211k '1'
config wifi-iface 'mesh'
option network 'lan'
option device 'radio1'
option mode 'mesh'
option ifname 'mesh0'
option mesh_id 'home_mesh'
option encryption 'sae'
option key 'password'
option mesh_fwding '1'
option mesh_rssi_threshold '0'
option time_zone 'PST8PDT,M3.2.0,M11.1.0'
node
root@RBS50:~# cat /etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'soc/40000000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
option channel '104'
option band '5g'
option htmode 'VHT80'
option cell_density '0'
option country 'US'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'ORBI13-2'
option encryption 'psk2'
option key 'password'
option ieee80211r '1'
option ft_over_ds '0'
option ft_psk_generate_local '1'
option ieee80211k '1'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/soc/a000000.wifi'
option channel '1'
option band '2g'
option htmode 'HT20'
option cell_density '0'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'RBS50_2.4G'
option encryption 'psk2'
option key 'password'
config wifi-device 'radio2'
option type 'mac80211'
option path 'platform/soc/a800000.wifi'
option channel '36'
option band '5g'
option htmode 'VHT80'
option cell_density '0'
option txpower '23'
config wifi-iface 'default_radio2'
option device 'radio2'
option network 'lan'
option mode 'ap'
option ssid 'RBS50_5G'
option encryption 'psk2'
option key 'password'
config wifi-iface 'mesh'
option device 'radio0'
option mode 'mesh'
option encryption 'sae'
option mesh_id 'home_mesh'
option mesh_fwding '1'
option mesh_rssi_threshold '0'
option ifname 'mesh0'
option key 'password'
option time_zone 'PST8PDT,M3.2.0,M11.1.0'
option network 'lan'
Typically, a config like this, without mesh11sd, will result in slow or intermittent connectivity between the two mesh nodes (see your title).
Did you follow the mesh11sd documentation?
Did you upgrade the wpad package to the mesh or full version?
Lynx
January 11, 2024, 6:51pm
13
Just posting to present my usual suggestion responsive to posts about problems with 'mesh' configurations to try out 'WDS'. I have x3 RT3200's connected via WDS with 27/28dBm maximum transmit power and see circa 650-750MBit/s therebetween when measuring using iperf3. Roaming works just fine and range covers large house, surrounding garden and some of the surrounding woods.
Lynx:
WDS
Indeed, particularly when there are just a small number of point to point connections it can be advantageous to use WDS.