Help prioritizing games with alternative qdisc design

leave the script the way it was... and change this section, by adding your ips in the list of the "for" loop


## some examples to add your gaming devices to the realtime sets,
## allows you to have more than one console etc. Just add your ips
## into the list of ips in the for loop

for ip4 in 192.168.1.111 192.168.1.222; do
    ipset add realtimeset4 "$ip4"
done

for ip6 in fd01:0101::1 fd01:0101::2 ; do
    ipset add realtimeset6 "$ip6"
done

image

i believe something like this? both ip are for the same XBox One, one is ip4 and one is ip6

Yes, that's right, but the fd32:... address is a local only address. If you have ipv6 from your ISP you should put the address it has that starts with 2... that will be the public one.

if you don't have IPv6 from your ISP don't worry about it. just leave it.

1 Like

@dlakelan

got this error man

did you type "y" to allow it to continue?

Follow instructions....when prompt..type y

re everybody first impression the script is magic ^^

0 dropped packets the gameplay is fluid A+A+A+ i have changed too for my connection gameup and gamedown :slight_smile:

i have a simple question maybe stupid but is work for fifa Capture d’écran 2020-12-09 à 00.03.17

Capture d’écran 2020-12-08 à 23.49.23 Capture d’écran 2020-12-08 à 23.48.43 Capture d’écran 2020-12-08 à 22.50.09

For every game that uses udp traffic.

1 Like

Any game that uses UDP, doesn't exceed your game rates, that you play on one of the machines you put in the ipsets should work well. Looking online it indicates that FIFA 20 for example uses UDP for game play so it should work.

I have pushed a small change to the script so that the example ipv6 addresses are public addresses in the "reserved" documentation range 2001:db8:: because there's not much reason to put your ULA addresses (fdxx:xxx type addresses).

If you don't have IPv6 from your ISP don't worry about it, if you do have IPv6 from your ISP include the public address of your gaming machines which should start with 2xxx: not with fdxx:

it wont let me, it goes straight into the Abort screen

it says "do not execute commands that require user-input or data transfer"

you should be in the console and just type the command, not run that window where you enter a command, whatever it is

It looks like this script is very interesting,
at my place the internet speed is so slow that i have to subscribe to several ISPs.
With this condition I ended up doing load balancer with MWAN3 to get enough BW.

Reading from the initial post until now, according to my understanding, it looks like this script can be combined with the configuration on MWAN3, namely by separating and prioritizing game connections to one of the ISPs. Is that true?
thank you

@dlakelan

setqdisc () {
DEV=$1
RATE=$2
OH=18
MTU=1500
highrate=$((RATE*90/100))
lowrate=$((RATE*10/100))
gamerate=$3
useqdisc=$4

#!/bin/sh

## "atm" for old-school DSL or change to "DOCSIS" for cable modem, or
## "other" or anything else, for everything else

LINKTYPE="DOCSIS"

WAN=eth1.2 # change this to your WAN device name
UPRATE=5000 #change this to your kbps upload speed
LAN=eth0.1
DOWNRATE=70000 #change this to about 80% of your download speed (in kbps)

## how many kbps of UDP upload and download do you need for your games
## across all gaming machines? 

GAMEUP=800
GAMEDOWN=1600

the web browsing was super slow and the bufferbloat was terrible

How fast are the different lines you use in Mwan3? Are they all DSL?

my internet is Cable with 5 up and 100 down Mbps. the router is hooked to the modem and from router all the machines are hooked with Ethernet cable.

This script works for wired only routers do you have a router with wifi? Was anyone using the wifi? Can you show us a speedtest

I see we crossed... Ok so it is wired only can you show us a speedtest?

Wow something went very wrong in your setup. Can you show the output of

tc -s class show dev eth0.1 and also for eth1.2

root@OpenWrt:~# tc -s class show dev eth0.1
class hfsc 1:11 parent 1:1 leaf 10: rt m1 45Mbit d 25.0ms m2 1600Kbit
 Sent 19175 bytes 100 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 work 19175 bytes rtwork 19175 bytes level 0

class hfsc 1: root
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 level 2

class hfsc 1:1 parent 1: ls m1 0bit d 0us m2 50Mbit ul m1 0bit d 0us m2 50Mbit
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 2510 work 1889553 bytes level 1

class hfsc 1:13 parent 1:1 leaf 800b: ls m1 10Mbit d 25.0ms m2 25Mbit
 Sent 645702 bytes 1429 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 948 work 645702 bytes level 0

class hfsc 1:12 parent 1:1 leaf 800a: ls m1 37500Kbit d 25.0ms m2 15Mbit
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 level 0

class hfsc 1:15 parent 1:1 leaf 800d: ls m1 500Kbit d 25.0ms m2 2500Kbit
 Sent 1224676 bytes 1948 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 1565 work 1224676 bytes level 0

class hfsc 1:14 parent 1:1 leaf 800c: ls m1 2Mbit d 25.0ms m2 7500Kbit
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 level 0

class fq_codel 800b:112 parent 800b:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 2742 count 0 lastcount 0 ldelay 4us
class fq_codel 800d:1c0 parent 800d:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 1713 count 0 lastcount 0 ldelay 2us
class fq_codel 800d:235 parent 800d:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 4294966178 count 0 lastcount 0 ldelay 2us
class fq_codel 800d:360 parent 800d:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 1271 count 0 lastcount 0 ldelay 2us
class red 10:1 parent 10:

root@OpenWrt:~# tc -s class show dev eth1.2
class hfsc 1:11 parent 1:1 leaf 10: rt m1 4500Kbit d 25.0ms m2 800Kbit
 Sent 4759 bytes 31 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 work 4759 bytes rtwork 4759 bytes level 0

class hfsc 1: root
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 level 2

class hfsc 1:1 parent 1: ls m1 0bit d 0us m2 5Mbit ul m1 0bit d 0us m2 5Mbit
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 2018 work 1368349 bytes level 1

class hfsc 1:13 parent 1:1 leaf 8007: ls m1 1Mbit d 25.0ms m2 2500Kbit
 Sent 1360939 bytes 3717 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 1987 work 1360939 bytes level 0

class hfsc 1:12 parent 1:1 leaf 8006: ls m1 3750Kbit d 25.0ms m2 1500Kbit
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 level 0

class hfsc 1:15 parent 1:1 leaf 8009: ls m1 50Kbit d 25.0ms m2 250Kbit
 Sent 2651 bytes 33 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 32 work 2651 bytes level 0

class hfsc 1:14 parent 1:1 leaf 8008: ls m1 200Kbit d 25.0ms m2 750Kbit
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
 period 0 level 0

class fq_codel 8007:214 parent 8007:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 2556 count 0 lastcount 0 ldelay 492us
class fq_codel 8007:288 parent 8007:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 2714 count 0 lastcount 0 ldelay 1us
class fq_codel 8007:2ad parent 8007:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 2873 count 0 lastcount 0 ldelay 1us
class fq_codel 8009:2d9 parent 8009:
 (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  deficit 2877 count 0 lastcount 0 ldelay 2us
class red 10:1 parent 10:

ISP-1 sells special streaming internet packages with speeds of down = 2Mbps, Up = 2Mbps
ISP-2 sells game-specific internet packages with speeds of DL = 1Mbps, Up = 756 Kbps