Ultimate SQM settings: Layer_cake + DSCP marks

won't route a gigabit but you don't actually need the gigabit speed you just need something that isn't semi-broken using a USB based ethernet.

The Orange Pi PC would be a good platform for testing and even as a router. Orange Pi PC works with OpenWrt and Orange Pi PC2 works with snapshot.

You'd want a managed switch since it's just got one port.

but what about that hp t620 ?
x16 port managed switch will cost 72$
Can you please look at mikrotek products and recommend something for me?!
cause this is what available here.
this board is nice and cheap

HPt620 looks like a decent piece of hardware, but I don't know about installing other operating systems on it, in terms of whether the (probably EFI) bootloader will like it. Some of those devices are locked with secure boot that can't be turned off... they're designed for use in stores and offices where the user shouldn't be able to modify things.

On the other hand, if you can afford it, it's going to be much better than the Mikrotik device. The Mikrotik device might be nice, but I don't know about running anything other than "router OS" on it. Do you know if it can be flashed with OpenWrt or Armbian or something else?

If you do go the orange pi route it looks like the PC2 is the one with gigE. But I know online is not best for you.

It comes with windows 8 embed, and yeah the windows request admin password to open device manger, right
click was not working!

It will be very nice if i can get it to work, but not sure if it will accept installing at least ubuntu, when i opened
computer, i saw only ramdrive with z as driver letter, it was something like vm or what ever.
that windows was useless, you can't do anything!
Yeah, sure it's better than mikrotek, but i don't know how will the mikrotek give a good performance with just
1 core 600 mhz cpu(mips 74kc)?, my old router is 2 core @450mhz(mips 24kc).
Maube openwrt will run on it, but there's a few problems when you install it, it's possible to use OpenWrt as metarouter inside router os(vm).

Sadly yes!

@dlakelan
You can see DSCP tags on both ways when you duplicate the same rule but on POSTROUTING, and let the
tcpdump capture on br-lan(lan bridge).
also remember that router will send NTP,DNS,TCP(ACK,SYN) packets to the internet so those need to prioritized
and can be done on POSTROUTING.
You can use software OFFLOADING on none tagged packets(CS0), this will speed your internet.

1 Like

@hisham2630 @dlakelan

This is such a useful thread. I want to test this system and collecting your guy's collective wisdom from threads

Thead 2: Ultimate SQM settings: Layer_cake + DSCP marks
Thread 3: QoS on Luci LeDe

have left me with a few questions

  1. So far the implementation (this thread and thread 3) is a basic br-lan veth. From my understanding, it seems like a 1:1 veth to interface ratio. From this thread, this doesn't work with vlan? I tried following another member's adventure (Thread 2) but I got lost following dlakelan solution. However the old school thread as a reference mentioned multiple veth, albeit under fireqos, is that the solution (multiple veth) applicable to openwrt?
  2. Appreciate if you can do a sample vlan configuration, call it br-vlan.

VLANs are at a slightly different network layer. You can for example bridge several vlans into one bridge:

br-network { eth0.1, eth0.2, eth0.3} is a bridge over 3 tagged vlan interfaces for example. Now all three vlans are part of ONE network.

I think your question is something like if you have a LAN and a guest network, how do you QoS both of these simultaneously?

The problem is for download from internet direction. Suppose you have 100Mbps download, now you could put maximum of 100Mbps on LAN and 100Mbps on guest... but you don't actually have 200Mbps which is the max bandwidth that could go outward across all the veths. So this solution will not properly QoS your downloads.

One solution is to put an SQM on the WAN with an ingress shaper with 100Mbps, and then also have the veth solutions on br-lan and br-guest... This has extra overhead CPU wise, but it will bottleneck the total download to 100Mbps while simultaneously using DSCP tags to prioritize the packets on both LAN and guest...

It's not ideal, because there's no way to prioritize relative to the two separate networks (ie. to prioritize downloads to LAN more than to GUEST). If you want to do that you have to do something not enabled on standard OpenWrt which is use network namespaces to put a "pre-wan" namespace where you can bridge together your real interface and a veth. for example

namespace prewan { br-prewan {eth0.2, veth0} }

In that scenario you can do bridge netfilters to enable dscp tagging, and then put an egress shaper on veth0 and place packets destined to guest into lower priority than for LAN for example.

1 Like

It's possible to enable second namespace by compile your own OpenWrt image from kernel config!

Thank you guys so much! It's like a scene from one of those action movies where someone hijacks the Super Mega Pixel Spy Camera in space to track some dude/woman and the commander keeps saying "enhance" to get a clearer picture.

So if I'm understanding it right, the veth on multiple networks (ie named: br-lan, br-guest1, br-guest2) would be true "fairness" because no prioritzation? I'll just adopt a hypothetical 100Mbps down + 100Mbps up (w/ eth1 as a docsis "wan/internet") here and ask another question -- does the veth SQM instances need to total 100Mbps down < br-lan 30mb, br-guest1 40mb, br-guest2 30mb > or are they all "100mb"?

config queue 'wan'
	option ingress_ecn 'ECN'
	option egress_ecn 'ECN'
	option enabled '1'
	option debug_logging '0'
	option verbosity '5'
	option qdisc 'cake'
	option qdisc_advanced '1'
	option qdisc_really_really_advanced '1'
	option squash_dscp '0'
	option squash_ingress '0'
	option download '0'
	option script 'layer_cake.qos'
	option linklayer 'ethernet'
	option linklayer_advanced '1'
	option tcMTU '2047'
	option tcTSIZE '128'
	option interface 'eth1'
	option linklayer_adaptation_mechanism 'cake'
	option overhead '18'
	option tcMPU '64'
	option upload '95000'
	option iqdisc_opts 'diffserv8 dual-dsthost'
	option eqdisc_opts 'diffserv8 dual-srchost egress'

config queue
	option debug_logging '0'
	option verbosity '5'
	option ingress_ecn 'ECN'
	option tcMTU '2047'
	option tcTSIZE '128'
	option enabled '1'
	option download '0'
	option qdisc 'cake'
	option qdisc_advanced '1'
	option squash_dscp '0'
	option squash_ingress '0'
	option egress_ecn 'ECN'
	option qdisc_really_really_advanced '1'
	option linklayer 'ethernet'
	option linklayer_advanced '1'
	option linklayer_adaptation_mechanism 'cake'
	option script 'layer_cake.qos'
	option interface 'veth4'
	option upload '30000'
	option overhead '18'
	option tcMPU '64'
	option iqdisc_opts 'diffserv8 dual-srchost'
	option eqdisc_opts 'diffserv8 dual-dsthost ingress'

config queue
	option debug_logging '0'
	option verbosity '5'
	option ingress_ecn 'ECN'
	option tcMTU '2047'
	option tcTSIZE '128'
	option enabled '1'
	option download '0'
	option qdisc 'cake'
	option qdisc_advanced '1'
	option squash_dscp '0'
	option squash_ingress '0'
	option egress_ecn 'ECN'
	option qdisc_really_really_advanced '1'
	option linklayer 'ethernet'
	option linklayer_advanced '1'
	option linklayer_adaptation_mechanism 'cake'
	option script 'layer_cake.qos'
	option interface 'veth2'
	option upload '40000'
	option overhead '18'
	option tcMPU '64'
	option iqdisc_opts 'diffserv8 dual-srchost'
	option eqdisc_opts 'diffserv8 dual-dsthost ingress'

config queue
	option debug_logging '0'
	option verbosity '5'
	option ingress_ecn 'ECN'
	option tcMTU '2047'
	option tcTSIZE '128'
	option enabled '1'
	option download '0'
	option qdisc 'cake'
	option qdisc_advanced '1'
	option squash_dscp '0'
	option squash_ingress '0'
	option egress_ecn 'ECN'
	option qdisc_really_really_advanced '1'
	option linklayer 'ethernet'
	option linklayer_advanced '1'
	option linklayer_adaptation_mechanism 'cake'
	option script 'layer_cake.qos'
	option interface 'veth0'
	option upload '30000'
	option overhead '18'
	option tcMPU '64'
	option iqdisc_opts 'diffserv8 dual-srchost'
	option eqdisc_opts 'diffserv8 dual-dsthost ingress'

re: the namespace prewan prioritization -- > That's another great explanation. I can definitely envision a usage for that sort of prioritization but is there any tradeoffs? I'm thinking there are 8 priority packets (0-7) so if you have >8 VLANs, it doesn't work?

Not really, no it's more that the maximum should be the same as the ingress limit, but you can also limit some to less than that.

If you have more than 8 classes of traffic it's problematic, but there's no need to have each network have its own class of traffic. It's much better to classify by function vs by network.

Very interesting thread, thanks for the illuminating discussion. But before I (and I'm sure many others reading) go spend hours trying to set up something along these lines, has there been a final resolution that delivers a proven benefit in a basic config?

In other words, which of the scripts and configs mentioned could be applied to enhance my Twitch broadcasting as well as ensure bulk traffic goes into the bulk Cake tin?

I love what Cake does, but due to DSCP stripping/blocking in windows and other OSs, things like software update downloads still land in the 'Best Effort' tin.

And now that I do Twitch broadcasts, I'd love for that traffic to land in the Videoconfercing tin of a Diffserv4 Cake config. Basically above Best Effort, but below VoIP.

Well, on output to WAN, this is easy provided you can identify the stream by various methods (ie. dest ip, dest port) or force DSCP onto the packets at the source.

If you're using Microsoft Windows, there's some way to set QoS policy so the program you're running puts an appropriate DSCP on packets. I think you'd want AF41 (Decimal value 34) which would put it in the Streaming Media tin. But you'd have to read up on the appropriate windows only incantation

http://support.voiceelements.com/index.php?title=How_do_I_setup_QoS_settings_in_Windows%3F

may be useful

2 Likes

@TopDog
Also i forget to share the final script, maybe i can share it today.

1 Like

This thread and the approaches seems to be very interesting. Hopefully there will be a DSCP SQM QoS solution for the basic user one day.
I'm using SQM with layercake myself on a decent VDSL line (75/26) and it works quite well out of the box but steam downloads or torrents are still making my pings unstable which isn't that great for gaming on my PS4 and for voip with my dedicated voip hardware.
So basicaly I would just need something that will put my steam downloads and torrents into a bulk class while my client gaming port (eg. 3074) and VoIP into a Voip/Gaming class.
I'll try to keep up with this thread, maybe I'll get it done somehow as their is a lot of valuable information here...

Thank you all for sharing your progress and solutions! :slight_smile:

1 Like

Here is the latest DSCP marking script, you can name it DSCP.sh place it in /root then mark it as executable using Winscp or via chmod 755 /root/DSCP.sh.

This script can detect bulk traffic for both tcp+udp on any port!, auto detect voip/gaming traffic and streaming+iptv:

#!/bin/sh
IPT="iptables"
CONNB="500000"     #Nmuber of bytes to consider connection as bulk, 500000=500KB
WANIF="pppoe-wan" #wan interface

tc qdisc add dev wlan0 root mq #enable multi queue on wlan0 #setup multi queue for wifi device
## set up a pair of veth devices to handle inbound and outbound traffic
ip link show | grep veth0 || ip link add type veth

## get new veth interfaces up
ip link set veth0 up
ip link set veth1 up

## trun on promisc mode,sometimes it's needed to make bridge work
ip link set veth1 promisc on

## add veth1 to bridge
brctl addif br-lan veth1

## just to make sure there's nothing inside those 2 tables
ip rule del priority 100
ip route flush table 100

##ipset for streming sites.they are bening filled by dnsmasq
ipset create vidstream hash:ip
ipset create usrcdn hash:ip
ipset create bulk hash:ip
ipset create latsens hash:ip

## flush mangle table
$IPT -t mangle -F PREROUTING

## add routing for veth0 this will handle all slow traffic
ip route add default dev veth0 table 100
ip rule add iif $WANIF table 100 priority 100

########################################
# Latency Sensitive (gaming/voip)
########################################
##ICMP, to prioritize pings
$IPT -t mangle -A PREROUTING -p icmp -j DSCP --set-dscp-class CS5 -m comment --comment "ICMP-pings"
$IPT -t mangle -A POSTROUTING -p icmp -j DSCP --set-dscp-class CS5

#DNS traffic both udp and tcp
$IPT -t mangle -A PREROUTING -p udp -m multiport --port 53,123,5353 -j DSCP --set-dscp-class CS5 -m comment --comment "DNS udp and NTP"
$IPT -t mangle -A POSTROUTING -p udp -m multiport --port 53,123,5353 -j DSCP --set-dscp-class CS5 -m comment --comment "DNS udp and NTP by router"
$IPT -t mangle -A PREROUTING -p tcp -m multiport --port 53,5353 -j DSCP --set-dscp-class CS5 -m comment --comment "DNS tcp"
$IPT -t mangle -A POSTROUTING -p tcp -m multiport --port 53,5353 -j DSCP --set-dscp-class CS5 -m comment --comment "DNS tcp by router"

#give a high priority for PS4 and xbox
#$IPT -t mangle -A PREROUTING -p tcp -m conntrack --ctorigsrc 192.168.1.150 -m multiport ! --ports 80,443,8080 -j DSCP --set-dscp-class CS6 -m comment --comment "PS4" #for PS4 or xbox etc, change the ip according to your ip setting.
#$IPT -t mangle -A PREROUTING -p udp -m conntrack --ctorigsrc 192.168.1.150 -m multiport ! --ports 80,443,8080 -j DSCP --set-dscp-class CS6 -m comment --comment "PS4"

#High priority ipset, i use it for pubgM
$IPT -t mangle -A PREROUTING ! -p tcp -m set --match-set latsens src,dst -j DSCP --set-dscp-class CS6 -m comment --comment "latency sensitive ipset" ## set dscp tag for Latency Sensitive (latsens) ipset
$IPT -t mangle -A POSTROUTING ! -p tcp -m set --match-set latsens src,dst -j DSCP --set-dscp-class CS6 -m comment --comment "latency sensitive ipset" ## set dscp tag for Latency Sensitive (latsens) ipset

$IPT -t mangle -A PREROUTING -p tcp -m set --match-set latsens src,dst -j DSCP --set-dscp-class CS3 -m comment --comment "latency sensitive ipset" ## set dscp tag for Latency Sensitive (latsens) ipset
$IPT -t mangle -A POSTROUTING -p tcp -m set --match-set latsens src,dst -j DSCP --set-dscp-class CS3 -m comment --comment "latency sensitive ipset" ## set dscp tag for Latency Sensitive (latsens) ipset

#A robust 2 rules to detect realtime traffic like voip/games
$IPT -t mangle -A PREROUTING -p udp -m hashlimit --hashlimit-name udp_high_prio --hashlimit-above 120/sec --hashlimit-burst 50 --hashlimit-mode srcip,srcport,dstip,dstport -j CONNMARK --set-mark 0x55 -m comment --comment "connmark for udp"
$IPT -t mangle -A PREROUTING -p udp -m connmark ! --mark 0x55 -m conntrack --ctorigsrc 192.168.1.0/24 -m multiport ! --ports 53,5353,80,443,8080,60887 -m connbytes --connbytes 0:700 --connbytes-dir both --connbytes-mode avgpkt -j DSCP --set-dscp-class CS6 -m comment --comment "small udp connection"

$IPT -t mangle -A POSTROUTING -p udp -m hashlimit --hashlimit-name udp_high_prio --hashlimit-above 120/sec --hashlimit-burst 50 --hashlimit-mode srcip,srcport,dstip,dstport -j CONNMARK --set-mark 0x55 -m comment --comment "connmark for udp"
$IPT -t mangle -A POSTROUTING -p udp -m connmark ! --mark 0x55 -m conntrack --ctorigsrc 192.168.1.0/24 -m multiport ! --ports 53,5353,80,443,8080,60887 -m connbytes --connbytes 0:700 --connbytes-dir both --connbytes-mode avgpkt -j DSCP --set-dscp-class CS6 -m comment --comment "small udp connection"
###############################
##################
#TCP SYN,ACK flows
##################
#Note in some cases can cause tcp reordering, if you faced a problems please comment those SYN,ACK 
#Make sure ACK packets get priority (to avoid upload speed limiting our download speed)
$IPT -t mangle -A PREROUTING -p tcp --tcp-flags ALL ACK -m length --length :128 -j DSCP --set-dscp-class CS3
$IPT -t mangle -A POSTROUTING -p tcp --tcp-flags ALL ACK -m length --length :128 -j DSCP --set-dscp-class CS3
$IPT -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN -m length --length :666 -j DSCP --set-dscp-class CS3
$IPT -t mangle -A POSTROUTING -p tcp --tcp-flags ALL SYN -m length --length :666 -j DSCP --set-dscp-class CS3

#mid size ACK
$IPT -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags ALL ACK -m length --length 90:159 -j DSCP --set-dscp-class CS2
$IPT -t mangle -A POSTROUTING -p tcp -m tcp --tcp-flags ALL ACK -m length --length 90:159 -j DSCP --set-dscp-class CS2

$IPT -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags ALL ACK -m length --length 160:255 -j DSCP --set-dscp-class CS2
$IPT -t mangle -A POSTROUTING -p tcp -m tcp --tcp-flags ALL ACK -m length --length 160:255 -j DSCP --set-dscp-class CS2

# large ack pkts carry data and dont need the same priority
$IPT -t mangle -A PREROUTING -p tcp -m tcp --tcp-flags ALL ACK -m length --length 256:511 -j DSCP --set-dscp-class CS2
$IPT -t mangle -A POSTROUTING -p tcp -m tcp --tcp-flags ALL ACK -m length --length 256:511 -j DSCP --set-dscp-class CS2
##################################

########################################
# Streaming Media (videos/audios)
########################################
#Known video streams sites like youtube,netflix
$IPT -t mangle -A PREROUTING -m set --match-set vidstream src,dst -j DSCP --set-dscp-class AF41 -m comment --comment "vidstream ipset"
$IPT -t mangle -A POSTROUTING -m set --match-set vidstream src,dst -j DSCP --set-dscp-class AF41 -m comment --comment "vidstream ipset"

# some iptv provider's use this port
$IPT -t mangle -A PREROUTING -p tcp -m multiport --port 1935 -j DSCP --set-dscp-class AF41 -m comment --comment "some iptv streaming service"
$IPT -t mangle -A POSTROUTING -p tcp -m multiport --port 1935 -j DSCP --set-dscp-class AF41 -m comment --comment "some iptv streaming service"

##set dscp tag for our ipset usrcdn #those cdn's have an isolated speeds by my ISP
$IPT -t mangle -A PREROUTING -m set --match-set usrcdn src,dst -j DSCP --set-dscp-class AF21 -m comment --comment "usrcdn ipset"
$IPT -t mangle -A POSTROUTING -m set --match-set usrcdn src,dst -j DSCP --set-dscp-class AF21 -m comment --comment "usrcdn ipset"

########################################
# Best Effort (browsing/services)
########################################
#Small packet is probably interactive or flow control
$IPT -t mangle -A PREROUTING -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m length --length 0:500 -j DSCP --set-dscp-class CS3
$IPT -t mangle -A POSTROUTING -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m length --length 0:500 -j DSCP --set-dscp-class CS3

#Small packet connections: multi purpose (don't harm since not maxed out)
$IPT -t mangle -A PREROUTING -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m connbytes --connbytes 0:250 --connbytes-dir both --connbytes-mode avgpkt -j DSCP --set-dscp-class CS3
$IPT -t mangle -A POSTROUTING -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m connbytes --connbytes 0:250 --connbytes-dir both --connbytes-mode avgpkt -j DSCP --set-dscp-class CS3

#########################################
# Background Traffic (Bulk/file transfer)
#########################################
#bulk traffic ipset, like windows udates and steam updates/downloads
$IPT -t mangle -A PREROUTING -m set --match-set bulk src,dst -j DSCP --set-dscp-class CS1 -m comment --comment "bulk traffic ipset"
$IPT -t mangle -A POSTROUTING -m set --match-set bulk src,dst -j DSCP --set-dscp-class CS1 -m comment --comment "bulk traffic ipset"

#A robust rule to detect downloads/uploads and torrents!

$IPT -t mangle -A PREROUTING -p tcp -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m connbytes --connbytes $CONNB: --connbytes-dir both --connbytes-mode bytes -j DSCP --set-dscp-class CS1
$IPT -t mangle -A POSTROUTING -p tcp -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m connbytes --connbytes $CONNB: --connbytes-dir both --connbytes-mode bytes -j DSCP --set-dscp-class CS1

$IPT -t mangle -A PREROUTING -p udp -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m connbytes --connbytes $CONNB: --connbytes-dir both --connbytes-mode bytes -j DSCP --set-dscp-class CS1
$IPT -t mangle -A POSTROUTING -p udp -m dscp ! --dscp  16 -m dscp ! --dscp  24 -m dscp ! --dscp  18 -m dscp ! --dscp  34 -m dscp ! --dscp  40 -m dscp ! --dscp  48 -m connbytes --connbytes $CONNB: --connbytes-dir both --connbytes-mode bytes -j DSCP --set-dscp-class CS1

#tcpdump rule, copy and paste this rule into terminal, this rule is used to capture realtime traffic, you can change ip to what you like
#tcpdump -i br-lan host 192.168.1.126 and udp and portrange 1-65535 and !port 53 and ! port 80 and ! port 443 -vv -X -w /root/cap-name.pcap

Add the following lines at the end of
/etc/dnsmasq.conf :

##Latency Sensitive (gaming/voip)
ipset=/igamecj.com/gcloudcs.com/qos.gcloud.qq.com/latsens

##video/audio streams
# Youtube is also isolated by my isp
ipset=/googlevideo.com/*.googlevideo.com/vidstream
# NetFlix
ipset=/nflxvideo.net/vidstream
# AmazonVideo
ipset=/s3.ll.dash.row.aiv-cdn.net/d25xi40x97liuc.cloudfront.net/aiv-delivery.net/vidstream
# Facebook
ipset=/fbcdn.net/vidstream
# Twitch
ipset=/ttvnw.net/vidstream
# VeVo
ipset=/vevo.com/vidstream
# Spotify
ipset=/audio-fa.scdn.cot/vidstream
# Deezer
ipset=/deezer.com/vidstream
# SoundCloud
ipset=/sndcdn.com/vidstream
# last.fm
ipset=/last.fm/vidstream
#reddit videos
ipset=/v.redd.it/vidstream
#twitch.tv
ipset=/ttvnw.net/vidstream

##i have isolated speed for those cdn's 
ipset=/googletagmanager.com/googleusercontent.com/*.googleusercontent.com/google.com/fbcdn.net/*.fbcdn.net/akamaihd.net/*.akamaihd.net/whatsapp.net/*.whatsapp.net/whatsapp.com/*.whatsapp.com/www-cdn.whatsapp.net/googleapis.com/*.googleapis.com/ucy.ac.cy/1e100.net/hwcdn.net/usrcdn

## Bulk downloads
#qq download
ipset=/download.qq.com/bulk
# Steam Download
ipset=/steamcontent.com/bulk
# PSN Download
ipset=/gs2.ww.prod.dl.playstation.net/bulk
# DropBox
ipset=/dropbox.com/dropboxstatic.com/dropbox-dns.com/log.getdropbox.com/bulk
# Google Drive
ipset=/drive.google.com/drive-thirdparty.googleusercontent.com/bulk
# Google Docs
ipset=/docs.google.com/docs.googleusercontent.com/bulk
# PlayStore Download
ipset=/gvt1.com/bulk
# WhatsApp Files
ipset=/mmg-fna.whatsapp.net/bulk
# Youtube Upload
ipset=/upload.youtube.com/upload.video.google.com/bulk
# WindowsUpdate
ipset=/windowsupdate.com/update.microsoft.com/bulk

This script can work with both DIFFSERV4 and DIFFSERV8, but i prefer DIFFSERV8.

4 Likes

hi,

please what is ADDON you use for make this ghrapics ?

thanks for help and sorry my poor inglish

Flent! https://flent.org/ if the correct tools are installed flent will allow you to measure data and create nice plots.

1 Like

when using this script (post 538), my internet works great (Fiber, 20mb/8mb) but my smartphones (nexus 6p and pixel 2 xl) keeps disconnecting and recommecting to wifi..

I'm using a laptop with yesterday's (04/13/2019) snapshot as main router and a dlink DGL-5500 just for wifi, it has odhcp, firewall, sqm and dnsmasq services disabled.

Any idea of why just the smartphones drop? I have a NSwitch, PS4, laptop, smart tv and they work great.

Btw I'm only using 5Ghz wifi I don't have 2Ghz enabled.

create a new thread and edit your post with a link to it :slight_smile: if it turns out to be QoS... you can come back and post your findings....

Hmm, did you used the latest script or the old one?
Post #538