Ultimate SQM settings: Layer_cake + DSCP marks (New Script!)

how do you get the url for dnsmasq ??

Hi,
I'm experimenting with this script. I'm using the non-veth method. Just wanted to verify if I set it up correctly. Here's what my interfaces look like:

My sqm settings:

config queue 'eth1'
	option debug_logging '0'
	option verbosity '5'
	option qdisc 'cake'
	option interface 'eth4'
	option linklayer 'ethernet'
	option overhead '26'
	option qdisc_advanced '1'
	option squash_dscp '0'
	option ingress_ecn 'ECN'
	option upload '15000'
	option download '85000'
	option enabled '1'
	option script 'layer_cake.qos'
	option egress_ecn 'ECN'
	option squash_ingress '0'
	option qdisc_really_really_advanced '1'

root@OpenWrt:~# tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc mq 0: dev eth0 root
 Sent 314836078540 bytes 291251158 pkt (dropped 0, overlimits 0 requeues 1262)
 backlog 0b 0p requeues 1262
qdisc fq_codel 0: dev eth0 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 510413 bytes 1544 pkt (dropped 0, overlimits 0 requeues 1)
 backlog 0b 0p requeues 1
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 45683292630 bytes 40747559 pkt (dropped 0, overlimits 0 requeues 76)
 backlog 0b 0p requeues 76
  maxpacket 1392 drop_overlimit 0 new_flow_count 5 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 51872476969 bytes 46000690 pkt (dropped 0, overlimits 0 requeues 64)
 backlog 0b 0p requeues 64
  maxpacket 1514 drop_overlimit 0 new_flow_count 7 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 51102475885 bytes 46774534 pkt (dropped 0, overlimits 0 requeues 95)
 backlog 0b 0p requeues 95
  maxpacket 1392 drop_overlimit 0 new_flow_count 9 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 48555566581 bytes 48044838 pkt (dropped 0, overlimits 0 requeues 925)
 backlog 0b 0p requeues 925
  maxpacket 1454 drop_overlimit 0 new_flow_count 5 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 43240690345 bytes 40525781 pkt (dropped 0, overlimits 0 requeues 42)
 backlog 0b 0p requeues 42
  maxpacket 2924 drop_overlimit 0 new_flow_count 19 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 38220117029 bytes 35317424 pkt (dropped 0, overlimits 0 requeues 28)
 backlog 0b 0p requeues 28
  maxpacket 1392 drop_overlimit 0 new_flow_count 3 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth0 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 36160948688 bytes 33838788 pkt (dropped 0, overlimits 0 requeues 31)
 backlog 0b 0p requeues 31
  maxpacket 1514 drop_overlimit 0 new_flow_count 10 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc mq 0: dev eth1 root
 Sent 33340576792 bytes 39677969 pkt (dropped 0, overlimits 0 requeues 50)
 backlog 0b 0p requeues 50
qdisc fq_codel 0: dev eth1 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 360473 bytes 2214 pkt (dropped 0, overlimits 0 requeues 1)
 backlog 0b 0p requeues 1
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 6187911566 bytes 7058870 pkt (dropped 0, overlimits 0 requeues 5)
 backlog 0b 0p requeues 5
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 4594355091 bytes 5069647 pkt (dropped 0, overlimits 0 requeues 4)
 backlog 0b 0p requeues 4
  maxpacket 1514 drop_overlimit 0 new_flow_count 2 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 5000053866 bytes 5451176 pkt (dropped 0, overlimits 0 requeues 7)
 backlog 0b 0p requeues 7
  maxpacket 3028 drop_overlimit 0 new_flow_count 2 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 3843807451 bytes 8184217 pkt (dropped 0, overlimits 0 requeues 22)
 backlog 0b 0p requeues 22
  maxpacket 60 drop_overlimit 0 new_flow_count 1 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 5102683792 bytes 4771349 pkt (dropped 0, overlimits 0 requeues 4)
 backlog 0b 0p requeues 4
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 4340117955 bytes 4505577 pkt (dropped 0, overlimits 0 requeues 3)
 backlog 0b 0p requeues 3
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 4271286598 bytes 4634919 pkt (dropped 0, overlimits 0 requeues 4)
 backlog 0b 0p requeues 4
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc mq 0: dev eth2 root
 Sent 125789867499 bytes 182426556 pkt (dropped 0, overlimits 0 requeues 313)
 backlog 0b 0p requeues 313
qdisc fq_codel 0: dev eth2 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 12277347 bytes 85880 pkt (dropped 0, overlimits 0 requeues 3)
 backlog 0b 0p requeues 3
  maxpacket 3028 drop_overlimit 0 new_flow_count 2 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth2 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 27841332727 bytes 32039269 pkt (dropped 0, overlimits 0 requeues 50)
 backlog 0b 0p requeues 50
  maxpacket 4894 drop_overlimit 0 new_flow_count 16 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth2 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 30160681239 bytes 33620926 pkt (dropped 0, overlimits 0 requeues 24)
 backlog 0b 0p requeues 24
  maxpacket 3028 drop_overlimit 0 new_flow_count 3 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth2 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 23085917457 bytes 30195316 pkt (dropped 0, overlimits 0 requeues 21)
 backlog 0b 0p requeues 21
  maxpacket 429 drop_overlimit 0 new_flow_count 2 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth2 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 17675737002 bytes 28029617 pkt (dropped 0, overlimits 0 requeues 116)
 backlog 0b 0p requeues 116
  maxpacket 118 drop_overlimit 0 new_flow_count 4 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth2 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 11453431221 bytes 21313103 pkt (dropped 0, overlimits 0 requeues 53)
 backlog 0b 0p requeues 53
  maxpacket 7570 drop_overlimit 0 new_flow_count 6 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth2 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 9985821919 bytes 19225591 pkt (dropped 0, overlimits 0 requeues 17)
 backlog 0b 0p requeues 17
  maxpacket 36336 drop_overlimit 0 new_flow_count 4 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth2 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 5574668587 bytes 17916854 pkt (dropped 0, overlimits 0 requeues 29)
 backlog 0b 0p requeues 29
  maxpacket 3028 drop_overlimit 0 new_flow_count 6 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc mq 0: dev eth3 root
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 0: dev eth3 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth3 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth3 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth3 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth3 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth3 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth3 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth3 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc htb 1: dev eth4 root refcnt 2 r2q 10 default 0x8000 direct_packets_stat 33 direct_qlen 1000
 Sent 14042669150 bytes 11276413 pkt (dropped 86, overlimits 12225669 requeues 3)
 backlog 0b 0p requeues 3
qdisc fq_codel 15: dev eth4 parent 1:8000 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 238874928 bytes 519547 pkt (dropped 9, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 20863 drop_overlimit 0 new_flow_count 60220 ecn_mark 0
  new_flows_len 0 old_flows_len 1
qdisc fq_codel 14: dev eth4 parent 1:14 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 12963098121 bytes 9531235 pkt (dropped 77, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 27252 drop_overlimit 0 new_flow_count 137514 ecn_mark 0
  new_flows_len 0 old_flows_len 1
qdisc fq_codel 12: dev eth4 parent 1:12 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 2523655 bytes 24111 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 590 drop_overlimit 0 new_flow_count 18309 ecn_mark 0
  new_flows_len 1 old_flows_len 21
qdisc fq_codel 11: dev eth4 parent 1:11 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 344959 bytes 1825 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 2988 drop_overlimit 0 new_flow_count 492 ecn_mark 0
  new_flows_len 1 old_flows_len 9
qdisc fq_codel 13: dev eth4 parent 1:13 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 837817364 bytes 1199660 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 1342 drop_overlimit 0 new_flow_count 26916 ecn_mark 0
  new_flows_len 1 old_flows_len 3
qdisc ingress ffff: dev eth4 parent ffff:fff1 ----------------
 Sent 3985698885 bytes 8938294 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-lan root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc htb 1: dev eth4-ifb root refcnt 2 r2q 70 default 0x8000 direct_packets_stat 42 direct_qlen 32
 Sent 4119657079 bytes 8938284 pkt (dropped 7, overlimits 2369890 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 15: dev eth4-ifb parent 1:8000 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 1557651314 bytes 1523911 pkt (dropped 2, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 10598 drop_overlimit 0 new_flow_count 120768 ecn_mark 0
  new_flows_len 0 old_flows_len 1
qdisc fq_codel 14: dev eth4-ifb parent 1:14 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 969703619 bytes 5211271 pkt (dropped 5, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 22710 drop_overlimit 0 new_flow_count 133989 ecn_mark 0
  new_flows_len 0 old_flows_len 1
qdisc fq_codel 12: dev eth4-ifb parent 1:12 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 3254917 bytes 18811 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 479 drop_overlimit 0 new_flow_count 18624 ecn_mark 0
  new_flows_len 1 old_flows_len 0
qdisc fq_codel 11: dev eth4-ifb parent 1:11 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 2267440 bytes 2295 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 9084 drop_overlimit 0 new_flow_count 430 ecn_mark 0
  new_flows_len 1 old_flows_len 9
qdisc fq_codel 13: dev eth4-ifb parent 1:13 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
 Sent 1586750040 bytes 2181944 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 1449 drop_overlimit 0 new_flow_count 218042 ecn_mark 0
  new_flows_len 1 old_flows_len 7
qdisc cake 8029: dev ifb4eth4 root refcnt 2 bandwidth 85Mbit diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100.0ms noatm overhead 26
 Sent 1091 bytes 11 pkt (dropped 0, overlimits 4 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 2176b of 4250000b
 capacity estimate: 85Mbit
 min/max network layer size:           46 /     309
 min/max overhead-adjusted size:       72 /     335
 average network hdr offset:            1

                   Bulk  Best Effort        Voice
  thresh       5312Kbit       85Mbit    21250Kbit
  target          5.0ms        5.0ms        5.0ms
  interval      100.0ms      100.0ms      100.0ms
  pk_delay          0us         15us          0us
  av_delay          0us          0us          0us
  sp_delay          0us          0us          0us
  backlog            0b           0b           0b
  pkts                0           11            0
  bytes               0         1091            0
  way_inds            0            0            0
  way_miss            0            4            0
  way_cols            0            0            0
  drops               0            0            0
  marks               0            0            0
  ack_drop            0            0            0
  sp_flows            0            4            0
  bk_flows            0            0            0
  un_flows            0            0            0
  max_len             0          323            0
  quantum           300         1514          648

I'm not an expert in any of this, but I'll try to provide any more info if needed.

Something doesn’t look right with your WAN and WAN6. Why does your WAN6 indicate it’s set up for IPv4 and have the same IP as WAN? You might want to validate that to start.

I was trying to figure out how to get ipv4 and ipv6 on the same interface similar to that of post #22, but I lose my internet connection when I change WAN6 to DHCP ipv6. I just removed WAN6 in the meantime. Maybe you can point me in the right direction on a side note. Here's my current network config:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option ula_prefix 'fd43:5253:2ee8::/48'

config interface 'lan'
	option proto 'static'
	option netmask '255.255.255.0'
	option ipaddr '192.168.3.1'
	option ip6assign '64'
	list dns '192.168.3.1'
	list dns '8.8.8.8'
	option type 'bridge'
	option ifname 'eth0 eth1 eth2 eth3'

config interface 'wan'
	option proto 'dhcp'
	option ifname 'eth4'

If I can move forward, I'd like to continue on with the testing the script.

As an example, here is my current config:

config interface 'loopback'
	option ifname 'lo'
	option proto 'static'
	option ipaddr '127.0.0.1'
	option netmask '255.0.0.0'

config globals 'globals'
	option packet_steering '1'

config interface 'lan'
	option ifname 'eth1'
	option proto 'static'
	option netmask '255.255.255.0'
	option ip6assign '64'
	option ipaddr '192.168.45.5'
	list dns '192.168.45.5'
	option ip6ifaceid '::5'
	option ip6hint '45'

config interface 'WAN'
	option proto 'dhcp'
	option ifname 'eth0'
	option broadcast '1'
	option peerdns '0'

config interface 'WAN6'
	option proto 'dhcpv6'
	option ifname 'eth0'
	option reqprefix '56'
	option reqaddress 'force'
	option peerdns '0'

...

Your configuration will likely differ because mine is on a dedicated OpenWrt host (x86_64 VM) and I have all my WAP functionality offloaded to an R7800 (hence no bridging in my config). Also, I have Spectrum cable, so a DHCPv6 PD /56 is available to me so I can provide each of my internal VLANs their own /64 from that delegated prefix.

But perhaps this gives you some ideas to try and investigate more.

My configuration is:

AT&T (DSL) -> Arris router -> x86 openwrt box -> LAN

I got a unifi lite AP connected after the x86 box. Actually, looking in the Arris router configurations, I don't have a DHCPv6.

Question how do you make this script for a network with multiple segments?

Hi there quick question for you, I am missing the command iptmark with my openwrt at present and I have been unable to figure out which packge provides this. Do you know I should install so I can run your script?

A post was split to a new topic: Intranet lan traffic has too many ping spikes

Hello everyone,

I have been searching this forum to find a way to play cs:go with no lag and I have created a post asking for help (SQM qos for cs:go)
Users of the forum was very helpfull, and told me to check this post to set DSCP on my router.

I use a wrt3200ACM and I have installed the David custom firmware : openwrt-mvebu-cortexa9-linksys_wrt3200acm-squashfs-factory.img
Firmware Version : OpenWrt SNAPSHOT r13342-e35e40ad82 / LuCI Master git-20.144.63033-62ed4e6

I have downloaded the package on github : https://github.com/hisham2630/Ultimate-SQM-settings-Layer_cake-DSCP-marks-New-Script

And I was following the old post to check the setup step before doing anything.

My first question is: is it mandatory to have the extroot ? Because if I'm right I then need to install the version 14.07 of OpenWrt ?

After that I will follow the different step and my second and last question will be concerning the /etc/config/sqm

What should I exactly add on it

This is mine :

config queue 'eth1'
        option ingress_ecn 'ECN'
        option debug_logging '0'
        option verbosity '5'
        option script 'piece_of_cake.qos' **> change to : option script 'layer_cake.qos'**
        option qdisc_advanced '1'
        option squash_dscp '1' **> change to 0**
        option squash_ingress '1' **> change to 0**
        option linklayer 'atm'
        option overhead '44'
        option interface 'eth1.2'
        option qdisc 'cake'
        option enabled '1'
        option download '7480'
        option upload '705'
        option egress_ecn 'NOECN'
        option qdisc_really_really_advanced '1'
        option iqdisc_opts 'nat dual-dsthost ingress' **> change to : option iqdisc_opts 'diffserv4 nat dual-srchost'**
        option eqdisc_opts 'nat dual-srchost ack-filter' **> change to : option eqdisc_opts 'diffserv4 nat dual-dsthost '**

Is that correct ?

Thanks

uhurujam

3 Likes

Hello everyone

Awesome work with this script! @hisham2630

Would this work together with vpn-policy-routing, 2 different wireguard clients etc?

Thank you

Just wondering, is something like this needed for a fibre connection? I'm new to openwrt and this all seems alien to me. Running the regular cake sqm I can max out my downloads and my ping is a stable 8-9ms while doing so. Would trying to set this up benefit me at all? I play FPS a lot and would like to learn more how to tweak my connection to give me a better gaming experience

2 Likes

upstream... ( learn lan-ips 6and4 via mac ) payload rules are up to you...

addconsoledynamicipsets() {

ipset create consoles4 hash:ip family inet 2>/dev/null
ipset create consoles6 hash:ip family inet6 2>/dev/null
ipset create consoles list:set 2>/dev/null
ipset add consoles consoles4 2>/dev/null
ipset add consoles consoles6 2>/dev/null

if [ ! -z "$DSCPCONSOLEMACS" ]; then
	for cMAC in $DSCPCONSOLEMACS; do
		echo "consolemac: $cMAC [learnips>dcsp5-6]"; sleep 1

#learndeviceaddresses>ipsets
echo "console $cMAC rule4"
iptables -t mangle -D PREROUTING -m conntrack --ctstate NEW -m mac --mac-source ${cMAC} -j SET --add-set consoles src --exist 2>/dev/null
iptables -t mangle -I PREROUTING -m conntrack --ctstate NEW -m mac --mac-source ${cMAC} -j SET --add-set consoles src --exist

echo "console $cMAC rule6"
ip6tables -t mangle -D PREROUTING -m conntrack --ctstate NEW -m mac --mac-source ${cMAC} -j SET --add-set consoles src --exist 2>/dev/null
ip6tables -t mangle -I PREROUTING -m conntrack --ctstate NEW -m mac --mac-source ${cMAC} -j SET --add-set consoles src --exist


############################ payload rules
#>ip4console4toCSbyproto
iptmark -p tcp -m set --match-set consoles4 src,dst -m multiport ! --ports 80,591,8008,8080,443 -j DSCP --set-dscp-class CS5 -m comment --comment "ConsolesCS5-TCPfrom4"
iptmark -p udp -m set --match-set consoles4 src,dst -m multiport ! --ports 80,591,8008,8080,443 -j DSCP --set-dscp-class CS6 -m comment --comment "ConsolesCS6-UDPfrom4"
#>ip6console6toCSbyproto
ipt6mark -p tcp -m set --match-set consoles6 src,dst -m multiport ! --ports 80,591,8008,8080,443 -j DSCP --set-dscp-class CS5 -m comment --comment "ConsolesCS5-TCPfrom6"
ipt6mark -p udp -m set --match-set consoles6 src,dst -m multiport ! --ports 80,591,8008,8080,443 -j DSCP --set-dscp-class CS6 -m comment --comment "ConsolesCS6-UDPfrom6"

	done
else
		echo "specialmac: CMACS [none]"; sleep 1
fi

}

#DSCPCONSOLEMACS="bb:bb:bb:bb:bb:bb cc:cc:cc:cc:cc:cc"
#addconsoledynamicipsets

1 Like

what is non veth method for mikrotik rb750gr3 please my wan is eth0.2

thanks in advance

At the risk of sounding like a complete idiot, I need to ask what is this all about? isn't SQM supposed to work out of the box with minimal configurations? I mean I configured SQM with cake and I managed to beat bufferbloat, +A in dslreports test, so what are those scripts offering? what I'm missing here?

If you also want to use dedicated priority tiers to have important traffic bypass background traffic, you need to propetly assign dscp marks before sqm gets hold of the packets, and especially for ingress traffic that is a bit of a challenge. A challenge this thread accepted and found a solution for.

1 Like

Ah I see, that's interesting! Actually I asked the question in the first place as I have a problem when playing some P2P games on Dolphin Emu, I get a high packet loss percentage while talking with my friends over any VoIP services, that lead the emulator to desync or worst disconnect completely.

I don't suffer from these symptoms if I don't use VoIP, so I thought that these scripts could help me in this situation.

Hi

I am using this configuration.

I have done it in my Rpi4. eth1 is my wan and eth0 is my lan. Do I need to change any value in the script? And how do I check this script is working?

Thanks
Badri M

I try to run this command - tc -s qdisc - and I see packet loss. Am I doing any mistake?

qdisc noqueue 0: dev lo root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc cake 800d: dev eth0 root refcnt 6 bandwidth 680960Kbit besteffort dual-srchost nat nowash no-ack-filter split-gso rtt 100ms noatm overhead 44
 Sent 13692257243 bytes 10536822 pkt (dropped 2, overlimits 2102947 requeues 957)
 backlog 0b 0p requeues 957
 memory used: 666454b of 15140Kb
 capacity estimate: 680960Kbit
 min/max network layer size:           28 /    1500
 min/max overhead-adjusted size:       72 /    1544
 average network hdr offset:           14

                  Tin 0
  thresh     680960Kbit
  target            5ms
  interval        100ms
  pk_delay         11us
  av_delay          2us
  sp_delay          1us
  backlog            0b
  pkts         10536824
  bytes     13692260219
  way_inds       393121
  way_miss        44393
  way_cols            0
  drops               2
  marks               0
  ack_drop            0
  sp_flows            2
  bk_flows            1
  un_flows            0
  max_len         15140
  quantum          1514

qdisc ingress ffff: dev eth0 parent ffff:fff1 ----------------
 Sent 514871764 bytes 4031393 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc cake 8011: dev eth1 root refcnt 2 bandwidth 35840Kbit besteffort dual-srchost nat nowash no-ack-filter split-gso rtt 100ms noatm overhead 44
 Sent 563488435 bytes 3974790 pkt (dropped 0, overlimits 696989 requeues 5)
 backlog 0b 0p requeues 5
 memory used: 77056b of 4Mb
 capacity estimate: 35840Kbit
 min/max network layer size:           28 /    1500
 min/max overhead-adjusted size:       72 /    1544
 average network hdr offset:           14

                  Tin 0
  thresh      35840Kbit
  target            5ms
  interval        100ms
  pk_delay         27us
  av_delay          3us
  sp_delay          2us
  backlog            0b
  pkts          3974790
  bytes       563488435
  way_inds       166811
  way_miss        41609
  way_cols            0
  drops               0
  marks               0
  ack_drop            0
  sp_flows            2
  bk_flows            1
  un_flows            0
  max_len          1514
  quantum          1093

qdisc ingress ffff: dev eth1 parent ffff:fff1 ----------------
 Sent 13128931977 bytes 10478376 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc cake 800e: dev ifb4eth0 root refcnt 2 bandwidth 35840Kbit besteffort dual-dsthost nat wash ingress no-ack-filter split-gso rtt 100ms noatm overhead 44
 Sent 571631446 bytes 4031386 pkt (dropped 7, overlimits 592111 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 327488b of 4Mb
 capacity estimate: 35840Kbit
 min/max network layer size:           46 /    1500
 min/max overhead-adjusted size:       90 /    1544
 average network hdr offset:           14

                  Tin 0
  thresh      35840Kbit
  target            5ms
  interval        100ms
  pk_delay        173us
  av_delay          9us
  sp_delay          5us
  backlog            0b
  pkts          4031393
  bytes       571638602
  way_inds       165738
  way_miss        68883
  way_cols            0
  drops               7
  marks               0
  ack_drop            0
  sp_flows            3
  bk_flows            1
  un_flows            0
  max_len          8964
  quantum          1093

qdisc cake 8012: dev ifb4eth1 root refcnt 2 bandwidth 680960Kbit besteffort dual-dsthost nat wash ingress no-ack-filter split-gso rtt 100ms noatm overhead 44
 Sent 13633185655 bytes 10478296 pkt (dropped 80, overlimits 2155173 requeues 0)
 backlog 0b 0p requeues 0
 memory used: 1782984b of 15140Kb
 capacity estimate: 680960Kbit
 min/max network layer size:           46 /    1500
 min/max overhead-adjusted size:       90 /    1544
 average network hdr offset:           14

                  Tin 0
  thresh     680960Kbit
  target            5ms
  interval        100ms
  pk_delay        258us
  av_delay        101us
  sp_delay          5us
  backlog            0b
  pkts         10478376
  bytes     13633304009
  way_inds       226773
  way_miss        40821
  way_cols            0
  drops              80
  marks               0
  ack_drop            0
  sp_flows            1
  bk_flows            1
  un_flows            0
  max_len         68130
  quantum          1514

Thanks
Badri M

Nope packet drops are normal, that is how congested links behave and hence what TCP waits for... That is TCP will slowly increase its transmission rate until it encounters packet drops, at which point it will scale back to classically 50% transmission rate and again slowly ramp up. The goal is that TCP will adapt to a link's capacity. AQMs like cake or fq_codel now selectively drop a few packets to signal individual flows to slow down with the aim to give each flow its fair share of the capacity.
This is a bit simplified, but in short a few drops are not only benign but essential for TCP to function.

1 Like