Hi,
I use moonlight to stream games from my PC to my tablet. The PC is connected to a wired ethernet port and the tablet to WiFi. I would like to make the connection to these devices as performant as possible (I get stutters when someone is watching netflix). Is it possible to bridge these devices using a VLAN or something? I can use the guest WiFi and only connect the tablet to this. Any ideas? I just want to check I'm barking up the right tree. Thanks
Most likely, a VLAN will not solve the issue you're experiencing. You can certainly setup a guest network, but I doubt it will solve the problem.
https://openwrt.org/docs/guide-user/network/wifi/guestwifi/configuration_webinterface
Perhaps describe your setup in a bit more detail: which devices you have, how's your Wi-Fi set up, which channels you're connecting over and what's the width, which encryption options are set, etc.
Thanks for the reply. I basically want to prioritise the connection between 2 devices, do you have any suggestions as to how I could do this? Thanks again
Basically I have a GL inet mt6000 with the pc connected to a LAN port. I have other devices connected over WiFi, one of which is my tablet. I'm not sure what other information I can provide?
Well:
That is, is your tablet, and other device, modern enough to communicate with your GT-MT6000 and not create interference for each other. Speaking of which, what's the firmware version you're running on the router?
What is the source of the stream? Is it wifi or wired?
Let's take a look at the config files to see if there are any obvious issues:
Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </>
" button:
Remember to redact passwords, MAC addresses and any public IP addresses you may have:
ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall
Thanks for the responses, I can get this information tomorrow. For now though I just want to know if a mechanism exists for achieving what I'm after, QoS maybe? Don't know if that can work internal to a LAN though? I guess VLANs are not the answer?
Source of the stream is the PC which is wired
root@GL-MT6000:~# ubus call system board
{
"kernel": "5.4.238",
"hostname": "GL-MT6000",
"system": "ARMv8 Processor rev 4",
"model": "GL.iNet GL-MT6000",
"board_name": "glinet,gl-mt6000",
"release": {
"distribution": "OpenWrt",
"version": "21.02-SNAPSHOT",
"revision": "r15812+1082-46b6ee7ffc",
"target": "mediatek/mt7986",
"description": "OpenWrt 21.02-SNAPSHOT r15812+1082-46b6ee7ffc"
}
}
root@GL-MT6000:~# 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 'fd0f:ae48:154f::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan1'
list ports 'lan2'
list ports 'lan3'
list ports 'lan4'
list ports 'lan5'
option macaddr '94:83:c4:a4:1f:a4'
config device
option name 'lan1'
option macaddr '94:83:c4:a4:1f:a4'
config device
option name 'lan2'
option macaddr '94:83:c4:a4:1f:a4'
config device
option name 'lan3'
option macaddr '94:83:c4:a4:1f:a4'
config device
option name 'lan4'
option macaddr '94:83:c4:a4:1f:a4'
config device
option name 'lan5'
option macaddr '94:83:c4:a4:1f:a4'
config interface 'lan'
option device 'br-lan'
option proto 'static'
option netmask '255.255.255.0'
option ip6assign '60'
option isolate '0'
option ipaddr '192.168.1.1'
config device
option name 'eth1'
option macaddr '94:83:c4:a4:1f:a2'
config interface 'wan'
option device 'eth1'
option proto 'dhcp'
option force_link '0'
option ipv6 '0'
option metric '10'
option classlessroute '0'
config interface 'wan6'
option proto 'dhcpv6'
option device '@wan'
option disabled '1'
config interface 'tethering6'
option device '@tethering'
option proto 'dhcpv6'
option disabled '1'
config interface 'wwan6'
option device '@wwan'
option proto 'dhcpv6'
option disabled '1'
config interface 'guest'
option force_link '1'
option type 'bridge'
option proto 'static'
option ipaddr '192.168.9.1'
option netmask '255.255.255.0'
option ip6assign '60'
option multicast_querier '1'
option igmp_snooping '0'
option isolate '0'
option bridge_empty '1'
option disabled '0'
config interface 'wwan'
option proto 'dhcp'
option metric '20'
option classlessroute '0'
config interface 'secondwan'
option ipv6 '0'
option proto 'dhcp'
option metric '15'
option force_link '0'
option classlessroute '0'
config interface 'secondwan6'
option proto 'dhcpv6'
option device '@secondwan'
option disabled '1'
option metric '15'
config rule 'policy_direct_rt'
option lookup 'main'
option suppress_prefixlength '0'
option priority '1100'
config rule 'policy_default_rt_vpn'
option mark '0x8000/0xc000'
option lookup '8000'
option priority '1101'
option invert '1'
config rule6 'policy_direct_rt6'
option lookup 'main'
option suppress_prefixlength '0'
option priority '1100'
config rule6 'policy_default_rt_vpn6'
option mark '0x8000/0xc000'
option lookup '8000'
option priority '1101'
option invert '1'
config rule 'policy_default_rt_vpn_ts'
option lookup 'main'
option priority '1099'
option mark '0x80000/0xc0000'
option invert '0'
config interface 'tethering'
option proto 'dhcp'
option metric '30'
option classlessroute '0'
config rule 'policy_relay_lo_rt_lan'
option lookup '16800'
option in 'loopback'
option priority '1'
config interface 'modem_2_1_6'
option proto 'dhcpv6'
option disabled '1'
option device '@modem_2_1'
option ifname '@modem_2_1'
root@GL-MT6000:~# cat /etc/config/wireless
config wifi-device 'mt798611'
option type 'mtk'
option band '2g'
option htmode 'HE40'
option channel 'auto'
option txpower '100'
option country 'DE'
option disabled '0'
option legacy_rates '0'
option hwmode '11g'
option random_bssid '1'
config wifi-iface 'wifi2g'
option device 'mt798611'
option mode 'ap'
option network 'lan'
option ifname 'ra0'
option wds '1'
option isolate '0'
option ieee80211k '1'
option bss_transition '1'
option ssid 'hide_your_kids_hide_your_wifi24'
option hidden '0'
option key '****'
option encryption 'psk-mixed'
option macaddr 'CA:BC:60:96:0A:97'
config wifi-device 'mt798612'
option type 'mtk'
option band '5g'
option txpower '100'
option country 'DE'
option disabled '0'
option legacy_rates '0'
option hwmode '11a'
option require_mode 'ac'
option channel '64'
option random_bssid '1'
option htmode 'HE160'
config wifi-iface 'wifi5g'
option device 'mt798612'
option mode 'ap'
option network 'lan'
option ifname 'rax0'
option encryption 'psk2'
option wds '1'
option isolate '0'
option ieee80211k '1'
option bss_transition '1'
option ssid 'hide_your_kids_hide_your_wifi'
option hidden '0'
option key '****'
option macaddr 'F2:33:8E:4F:7E:BA'
config wifi-iface 'guest2g'
option device 'mt798611'
option network 'guest'
option mode 'ap'
option ifname 'ra1'
option encryption 'psk2'
option key 'goodlife'
option ssid 'GL-MT6000-fa2-Guest'
option guest '1'
option disabled '1'
option wds '1'
option isolate '1'
option macaddr '66:55:5F:89:B8:B7'
config wifi-iface 'guest5g'
option device 'mt798612'
option network 'guest'
option mode 'ap'
option ifname 'rax1'
option encryption 'psk2'
option guest '1'
option wds '1'
option isolate '1'
option hidden '0'
option key '****'
option disabled '0'
option ssid 'streamingWifi'
option macaddr 'FE:27:C2:46:8A:96'
root@GL-MT6000:~# cat /etc/config/dhcp
config dnsmasq
option domainneeded '1'
option boguspriv '1'
option filterwin2k '0'
option localise_queries '1'
option rebind_localhost '1'
option local '/lan/'
option expandhosts '1'
option nonegcache '0'
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 rebind_protection '0'
option domain 'ts.net lan'
option filter_aaaa '1'
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv4 'server'
option ra_slaac '1'
option force '1'
option dhcpv6 'disabled'
option ra 'disabled'
option ignore '0'
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 domain
option name 'console.gl-inet.com'
option ip '192.168.1.1'
config domain
option name 'console.gl-inet.com'
option ip '::ffff:192.168.1.1'
config dhcp 'guest'
option interface 'guest'
option start '100'
option limit '150'
option leasetime '12h'
option dhcpv6 'disabled'
option ra 'disabled'
config dhcp 'secondwan'
option interface 'secondwan'
option ignore '1'
config host
option mac 'BC:33:29:66:19:94'
option ip '192.168.1.110'
option tag 'PS5'
config host
option mac '10:7C:61:47:DD:28'
option ip '192.168.1.119'
option tag 'Gaming PC'
config host
option mac 'A2:FD:FC:D1:5E:DC'
option ip '192.168.1.118'
option tag 'Quest 3'
config host
option mac 'D6:9A:66:EF:0E:C6'
option ip '192.168.1.116'
option tag 'Unknown'
config host
option mac '5C:3A:45:D2:34:7F'
option ip '192.168.1.113'
option tag 'LaserJetPro'
config host
option mac 'D8:3A:DD:35:CC:EE'
option ip '192.168.1.101'
option tag 'homeassistant'
config host
option mac 'EC:0B:AE:FF:2F:88'
option ip '192.168.1.156'
option tag 'Air Conditioner'
config host
option mac 'E2:CA:D9:19:1A:E1'
option ip '192.168.1.111'
option tag 'Galaxy-Tab-S5e'
root@GL-MT6000:~# cat /etc/config/firewall
config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'REJECT'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
list network 'lan'
config zone
option name 'wan'
option output 'ACCEPT'
option forward 'REJECT'
option mtu_fix '1'
option input 'DROP'
option masq '1'
list network 'wan'
list network 'wan6'
list network 'wwan'
list network 'secondwan'
list network 'tethering'
config forwarding
option src 'lan'
option dest 'wan'
option enabled '1'
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-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 rule
option name 'Support-UDP-Traceroute'
option src 'wan'
option dest_port '33434:33689'
option proto 'udp'
option family 'ipv4'
option target 'REJECT'
option enabled 'false'
config include
option path '/etc/firewall.user'
config include 'nat6'
option path '/etc/firewall.nat6'
option reload '1'
config rule 'process_mark'
option name 'process_mark'
option dest '*'
option proto 'all'
option extra '-m owner --gid-owner 65533'
option target 'MARK'
option set_xmark '0x8000/0xc000'
config rule 'wan_in_conn_mark'
option name 'wan_in_conn_mark'
option src 'wan'
option dest '*'
option set_xmark '0x8000/0xc000'
option target 'MARK'
option enabled '0'
option extra '-m mark --mark 0x0/0x3f00 -j CONNMARK --set-xmark 0x8000/0xc000'
config rule 'lan_in_conn_mark_restore'
option name 'lan_in_conn_mark_restore'
option src 'lan'
option dest '*'
option set_xmark '0x8000/0xc000'
option target 'MARK'
option enabled '0'
option extra '-m connmark --mark 0x8000/0xc000 -j CONNMARK --restore-mark --nfmask 0xc000 --ctmask 0xc000'
config rule 'out_conn_mark_restore'
option name 'out_conn_mark_restore'
option dest '*'
option set_xmark '0x8000/0xc000'
option target 'MARK'
option enabled '0'
option extra '-m connmark --mark 0x8000/0xc000 -j CONNMARK --restore-mark --nfmask 0xc000 --ctmask 0xc000'
config include 'swap_wan_in_conn_mark'
option type 'script'
option reload '1'
option path '/etc/firewall.swap_wan_in_conn_mark.sh'
option enabled '0'
config zone
option name 'guest'
option forward 'REJECT'
option output 'ACCEPT'
option input 'REJECT'
list network 'guest'
config forwarding
option src 'guest'
option dest 'wan'
option enabled '1'
config rule
option name 'Allow-DHCP'
option src 'guest'
option target 'ACCEPT'
option proto 'udp'
option dest_port '67-68'
config rule
option name 'Allow-DNS'
option src 'guest'
option target 'ACCEPT'
option proto 'tcp udp'
option dest_port '53'
config include 'vpn_server_policy'
option type 'script'
option path '/etc/firewall.vpn_server_policy.sh'
option reload '1'
option enabled '1'
config rule 'ssh_wan'
option src 'wan'
option proto 'tcp'
option dest_port '22'
option target 'ACCEPT'
config rule 'sambasharewan'
option src 'wan'
option dest_port '137 138 139 445'
option dest_proto 'tcpudp'
option target 'DROP'
config rule 'sambasharelan'
option src 'lan'
option dest_port '137 138 139 445'
option dest_proto 'tcpudp'
option target 'ACCEPT'
config rule 'glnas_ser'
option src 'wan'
option dest_port '6000-6002'
option dest_proto 'tcp'
option target 'DROP'
config rule 'webdav_wan'
option src 'wan'
option dest_port '6008'
option dest_proto 'tcp'
option target 'DROP'
config rule 'process_mark_dns'
option name 'process_mark_dns'
option dest '*'
option proto 'all'
option extra '-m owner --gid-owner 453'
option target 'MARK'
option set_xmark '0x8000/0xc000'
config rule 'process_mark_stubby'
option name 'process_mark_stubby'
option dest '*'
option proto 'all'
option extra '-m owner --gid-owner 410'
option target 'MARK'
option set_xmark '0x8000/0xc000'
config rule 'process_explict_vpn'
option name 'process_explict_vpn'
option dest '*'
option proto 'all'
option extra '-m owner --gid-owner 20000'
option target 'MARK'
option set_xmark '0x20000/0x20000'
config include 'vpn_client_deal_leak'
option type 'script'
option reload '1'
option path '/etc/firewall.vpn_client_deal_leak.sh'
option enabled '1'
config include 'glblock'
option type 'script'
option path '/usr/bin/gl_block.sh'
option reload '1'
config redirect
option dest_ip '192.168.1.119'
option proto 'udp'
option dest_port '47998'
option src 'lan'
option name 'GL-Moonlight1'
option dest 'lan'
option src_dport '47998'
option idx '1'
option enabled '0'
config redirect
option dest_ip '192.168.1.119'
option proto 'udp'
option dest_port '47999'
option src 'lan'
option name 'GL-Moonlight2'
option dest 'lan'
option src_dport '47999'
option idx '2'
option enabled '0'
config redirect
option src 'lan'
option dest_ip '192.168.1.119'
option dest_port '48000'
option src_dport '48000'
option name 'GL-Moonlight3'
option dest 'lan'
option proto 'udp'
option idx '3'
option enabled '0'
config redirect
option proto 'tcp'
option src 'lan'
option dest_ip '192.168.1.119'
option dest_port '47984'
option src_dport '47984'
option name 'GL-MoonlightTCP'
option dest 'lan'
option idx '4'
option enabled '0'
config redirect
option proto 'udp'
option src 'lan'
option dest_ip '192.168.1.119'
option dest_port '5353'
option src_dport '5353'
option name 'GL-Moonlight4'
option dest 'lan'
option idx '5'
option enabled '0'
Looks like you're running Gl.Inet firmware. If so, you should ask them for support, since we don't know what changes they made to the vanilla OpenWrt.
Right but my point still stands, is there some mechanism that exists that I could pursue to improve the connection between 2 devices? Static route, QoS, SQM? Any tiny hint would be much appreciated
I think the problem is the router running an outdated kernel with unknown firmware and modifications on one side. And on the other, a tablet (that you didn't tell us anything about), might no be capable of dealing with a congested radio spectrum, or having an old radio, that doesn't play well with others. Same goes for whatever devices are streaming at the same time. Your scenario shouldn't create any issues on a much less capable router. Our suggestions would be conjectures, due to the first point.
As a side note, multiple people reported similar issues with MT6000 on stock firmware, so again, try to ask Gl.Inet for support, or try their public forums. At the very least, this might encourage them to improve their firmware.
If anyone else could chip in that would be much appreciated
It looks like a Wi-Fi channel tuning issue, not a QoS issue.
Setting the widest channel width for 2.4G(HE40) & 5G(HE160) does not guarantee the best Wi-Fi performance.
Set 2.4G to 20 Mhz(HE20) choose one of these non overlapping channel 1, 6, 11
Set 5G to 40 Mhz(HE40) and use a non DFS channel
What is the model number of your Tablet?
Thanks for the reply, it's a Samsung S5e. The router is set to 160Mhz on 5Ghz because I ideally wanted the highest bandwidth for VR streaming, I can try this though thanks.
According to the Tech Spec the Samsung S5e only supports Wi-Fi 5G 80 Mhz max.
Ok interesting it worked at 160 before then! I've set to 40Mhz so I'll try that abit later. Thanks again
I would recommend installing official OpenWrt. Your device is well supported by the official project.
However, if you are more comfortable using the GL-Inet vendor firmware, you need to ask on their forums. As others have correctly stated, the GL-Inet firmware is not the same as what comes from the official project, and we are not in a position to know what changes they have made, what to expect, and how to properly configure/tune it for best performance when their firmware is being used.
A few comments: you are wired to PC which is good for low latency. Try playing with hardware flow offloading or sqm (not both at same time of course), packet steering, and irqbalance to improve latency performance there.
For wireless it's more difficult. Obviously be on wifi 6, 5GHz bands, 80MHz width. To reduce wifi latency tweak your AQL limits, you will reduce a bit of peak bandiwdth but for lower latency. For that you need to turn hardware acceleration off (WED off). On mine this helped quite a bit. The AQL settings info for your router (I use the same) is on the MT6000 page. Start with like 2000/5000. This is well covered in other threads including those dedicated to reducing wifi latency.
Also start with official OpenWrt 24.10.x, or pesas build. That build you are running looks very old with a very old kernel.