Instructions how to create/copy/configure/run dlakelan Gamer QoS script (or any script)

We are making progress... I see I don't set the veth into up state... Also we have things left over from before. Can you reboot before next test?

Change the section in the script where I set up the veths to have this:


if [ $USEVETHDOWN = "yes" ] ; then

    ip link show lanveth || ip link add lanveth type veth peer name lanbrport
    LAN=lanveth
    ip link set lanbrport master $LANBR
    ip route flush table 100
    ip route add default via $LAN table 100
    ip rule add iif $WAN table 100
    ip link set lanveth up
    ip link set lanbrport up
    
fi

notice those two ip link set lanveth up and ip link set lanbrport up

also. can we move this thread over to the development thread for the script?

1 Like

Mr. dlakelan, is there a video tutorial on how to work on it step by step because I am not fluent in the English language and there is a high probability that I make mistakes and my router may be damaged or spoiled and it does not work well .

1 Like

As far as I know no video tutorial. Perhaps one of the other users might make one. I'm not able to at the moment.

1 Like

Thank you for your reply. I hope if the time allows you to make a video, I will be happy or one of the users. Sorry for asking many questions. Does the method work for fiber-optic internet? Thanks again

Yes the script works for any kind of internet connection with a fixed speed. It wouldn't work well with something like LTE that could change speeds all the time.

1 Like

Thank you Mr. dlakelan

1 Like

Any possible way to implement a sort of anti-jitter? WISP is the only available option I have right now, but gateway ping times range anywhere from 2ms to 80ms+ during heavy traffic times, super jittery. Average pings are 5-15ms with 30-40ms spikes every 3-10s. Being able to implement a synthetic delay, let's say 20ms during ONLY these average, less jittery pings(5-15ms), would average those pings out to 25-35ms. Then ideally when the jitter start coming on, have no delay. I assume that constant pings would have to be monitored to a server(Gateway, Google?) to dynamically switch this delay on and off when jitter is present. Something like this would theoretically raise the average latency, but reduce jitter, hopefully creating smoother gameplay.

Even though the queue works best and gives priority to voice traffic, there are times when the priority queue is empty and a packet of another class is served. Packets of guaranteed bandwidth classes should be processed according to their configured weight. If a priority voice packet arrives in the output queue while these packets are being processed, the VoIP packet may wait a considerable time before being sent. If we assume that a VoIP packet will have to wait behind a data packet, and the data packet can be, at most, equal in size to the MTU (1500 bytes for serial interfaces and 4470 bytes for high speed serial interfaces ), we can calculate the wait time based on the link speed.
For example, for a link speed of 64 kbps and an MTU size of 1500 bytes, we have:
Serialization delay = (1500 bytes * 8 bits / byte) / (64,000 bits / sec) = 187.5 ms

Therefore, a VoIP packet may need to wait up to 187.5 msec before it can be sent if it is delayed behind a single 1500 byte packet on a 64 kbit / s link. VoIP packets are typically sent every 20 ms. With an end-to-end delay budget of 150ms and strict jitter requirements, a deviation of more than 180ms is unacceptable.
You need a mechanism that ensures that the size of a transmission unit is less than 10ms. All packets with a serialization delay greater than 10 ms must be fragmented into 10 ms chunks. A 10ms chunk or chunk is the number of bytes that can be sent over the link in 10ms. You can calculate the size using the link speed:
Fragmentation size = (0.01 second * 64,000 bps) / (8 bits / byte) = 80 bytes

It takes 10 ms to send an 80 byte packet or fragment over a 64 kbit / s link.
On low speed links where a 10 ms packet is smaller than the MTU, fragmentation is required. Simple fragmentation is insufficient, because if the VoIP packet has to wait for all fragments of a single large data packet, the VoIP packet will still be delayed beyond the end-to-end time limit. The VoIP packet must be interleaved or inserted between the data packet fragments.

If you get the following error when manually run the script..

* Zone 'lan'
    - Using automatic conntrack helper attachment
  * Zone 'wan'
Warning: iptc_commit(): No chain/target/match by that name
* Populating IPv6 filter table

From system Log....

Sun Jul 11 11:43:18 2021 kern.info kernel: [ 9184.407896] xt_CT: No such helper "sip"

Install package kmod-nf-nathelper-extra

//////////////////////// After package installation.

* Zone 'lan'
     - Using automatic conntrack helper attachment
   * Zone 'wan'
 * Populating IPv6 filter table

Mr. Knomax
Can you apply the method via video?
I would like to apply it, but I find it difficult to apply it correctly

if you want i can make a video but i do'nt use the script now

https://www.youtube.com/watch?v=N_qnd0PPQxs if we can you help :slight_smile:

Oh thank you I'd like that's okay I'll be waiting for you to have time to do it :grinning:

1 Like

look at the top i have post the video :wink:

Thank you very much, I will apply the method and I hope to apply it correctly so as not to bother you with my mistakes :sweat_smile:

I put this in the command prompt opkg update
opkg install tc
opkg install kmod-sched
opkg install ipset
opkg install kmod-ipt-ipset
opkg install kmod-veth
opkg install ip-full
opkg install iptables-mod-conntrack-extra
opkg install iptables-mod-ipopt
opkg install kmod-netem
opkg install iptables-mod-hashlimit
opkg install ip6tables-extra
opkg install wget
opkg install ca-certificates

Can you put the rest of the commands here? :no_mouth:

hello, yes you make always on putty

cd /etc "enter"

then you copy wget https://raw.githubusercontent.com/dlakelan/routerperf/devel/SimpleHFSCgamerscript.sh

then always on cd /etc

wget https://raw.githubusercontent.com/dlakelan/routerperf/devel/dscptag.sh

then your change of repertory

cd /etc/hotplug.d/iface/

wget https://raw.githubusercontent.com/dlakelan/routerperf/devel/13-SimpleHFSCGamerScriptHotplug

then via winscp like the video change in fonction of your connexion internet

have a nice day

I put these two
cd /etc
wget https://raw.githubusercontent.com/dlakelan/routerperf/master/SimpleHFSCgamerscript.sh
wget https://raw.githubusercontent.com/dlakelan/routerperf/master/dscptag.sh

Am I giving up on these two now?
then you copy wget https://raw.githubusercontent.com/dlakelan/routerperf/devel/SimpleHFSCgamerscript.sh

then always on cd /etc

wget https://raw.githubusercontent.com/dlakelan/routerperf/devel/dscptag.sh

no first you will do make cd /etc and then simple hfsc then enter

then same things ans dscp tag

then change reportery

directly for cd hotplug (13simple...)

you are right cd /etc in for two simple hfsc ans dscptag

:wink:

Continuing the discussion from Instructions how to create/copy/configure/run dlakelan Gamer QoS script (or any script):

Thank you for your help Mr. Dopam-IT_1987 for the video, its explanation and its application in a simple way. I also thank Mr. dlakelan for the great effort he made to make the script and the help

1 Like