Knomax
December 10, 2021, 10:09am
347
elan:
Why when the autorate_ingress
option is enabled it doesn't add the autorate-ingress
parameter in the download qdisc? or are you using a different solution to automatically adjust bandwidth in CAKE?
I think it is added..download
ingress status:
qdisc cake 1: root refcnt 2 bandwidth 38693Kbit diffserv4 dual-dsthost nat nowash ingress no-ack-filter split-gso rtt 30ms noatm overhead 38
upload
egress status:
qdisc cake 1: root refcnt 2 bandwidth 4844Kbit diffserv4 dual-srchost nat nowash no-ack-filter split-gso rtt 30ms noatm overhead 38
Sent 156782 bytes 2580 pkt (dropped 0, overlimits 1723 requeues 0)
This is my config and i have a question...
config defaults
list defaults /etc/qosify/*.conf
option dscp_prio video
option dscp_icmp +besteffort
option dscp_bulk bulk
config class besteffort
option ingress CS0
option egress CS0
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
config class bulk
option ingress CS1
option egress CS1
config class video
option ingress AF41
option egress AF41
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
config class voice
option ingress CS6
option egress CS6
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
option dscp_bulk CS1
config interface wan
option name wan
option disabled 0
option bandwidth_up 4844kbit
option bandwidth_down 38693kbit
option overhead_type none
# defaults:
option ingress 1
option egress 1
option mode diffserv4
option nat 1
option host_isolate 1
option autorate_ingress 1
option ingress_options ""
option egress_options ""
option options ""
option options "overhead 38 rtt 30ms"
config device wandev
option disabled 1
option name wan
option bandwidth 100mbit
defaults..
# DNS
tcp:53 video
tcp:5353 video
udp:53 video
udp:5353 video
# NTP
udp:123 video
# SSH
tcp:22 +video
# HTTP/QUIC
tcp:80 +besteffort
tcp:443 +besteffort
udp:80 +besteffort
udp:443 +besteffort
#ipaddr 192.168.1.xxx CS6
ipaddr 192.168.1.xxx CS1
ipaddr 192.168.1.xxx CS1
ipaddr 192.168.1.xxx AF41
ipaddr 192.168.1.xxx CS1
udp:3074 to 3079 CS6
udp:3478 to 3479 CS6
# Console Downloading - set to Bulk
tcp --src:192.168.1.xxx --dport 80 CS1
tcp --src:192.168.1.xxx --dport 80 CS1
udp --src:192.168.1.xxx --dport 443 CS1
udp --src:192.168.1.xxx --dport 443 CS1
# Console Gaming - Set to highest
udp --src:192.168.1.xxx --dport 1024:65535 CS6
According to my config if i combine overhead value and rtt in the same "space" it is working.
option options "overhead 38 rtt 30ms"
If i separate them..
option options "rtt 30ms"
option options "overhead 38"
It doesnt change rtt value.
Second question..
These settings are configured right?They are working?How can i "check" if they are working?Etc when we create iptables rules we can check them in firewall overview..if we have something wrong in syntax they arent implemented at all...in any case we can figure out if they are working.With Qosify we can't figure out this.
#ipaddr 192.168.1.xxx CS6
ipaddr 192.168.1.xxx CS1
ipaddr 192.168.1.xxx CS1
ipaddr 192.168.1.xxx AF41
ipaddr 192.168.1.xxx CS1
udp:3074 to 3079 CS6
udp:3478 to 3479 CS6
# Console Downloading - set to Bulk
tcp --src:192.168.1.xxx --dport 80 CS1
tcp --src:192.168.1.xxx --dport 80 CS1
udp --src:192.168.1.xxx --dport 443 CS1
udp --src:192.168.1.xxx --dport 443 CS1
# Console Gaming - Set to highest
udp --src:192.168.1.xxx --dport 1024:65535 CS6
Hi knomax regarding the rtt you cannot add twice option hence the fact that rtt disappears
keep in mind that if you are in vdsl2 you can add several but on the same line I use for example overhead 44 ptm
then i think you have a lot of fake elan syntax can you confirm that
I suggest you modify like this
config defaults
list defaults /etc/qosify/*.conf
option dscp_prio video
option dscp_icmp +besteffort
option dscp_default_udp besteffort
option prio_max_avg_pkt_len 500
config class besteffort
option ingress CS0
option egress CS0
config class bulk
option ingress LE
option egress LE
config class video
option ingress AF41
option egress AF41
config class voice
option ingress CS6
option egress CS6
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
option dscp_bulk CS0
config class gaming
option ingress CS4 ## i has make a class for gaming with CS4
option egress CS4 ## for egress
config interface wan
option name wan
option disabled 0
option bandwidth_up 16mbit
option bandwidth_down 56mbit
option overhead_type none ### change of type your connection
# defaults:
option ingress 1
option egress 1
option mode diffserv4
option nat 1
option host_isolate 1
option autorate_ingress 1
option ingress_options "nowash"
option egress_options ""
option options "overhead 44 ptm" ##just one ligne
then add you prio port, for me work like this but not sure the graphic wireshark show well the cs4 traffic to destination of my playstation
# DNS
tcp:53 voice
tcp:5353 voice
udp:53 voice
udp:5353 voice
# NTP
udp:123 voice
# SSH
tcp:22 +video
# HTTP/QUIC
tcp:80 +besteffort
tcp:443 +besteffort
udp:80 +besteffort
udp:443 +besteffort
# PlayStation (TCP)
tcp:1935 gaming
tcp:3074 gaming
tcp:3478-3480 gaming
tcp:50000-65000 gaming
# PlayStation (UDP)
udp:3074-3079 gaming
udp:3478-3479 gaming
udp:3659 gaming
udp:30000-45000 gaming
the gaming correspond to my class of files before
Knomax
December 10, 2021, 10:51am
349
I dont understand that...explain please.
Post output of qosify-status if "gaming" class implement.
1 Like
root@OpenWrt:~# qosify-status
===== interface wan: active =====
egress status:
qdisc cake 1: root refcnt 2 bandwidth 16Mbit diffserv4 dual-srchost nat nowash no-ack-filter split-gso rtt 100ms ptm overhead 44
Sent 43976567 bytes 269990 pkt (dropped 9, overlimits 112023 requeues 0)
backlog 0b 0p requeues 0
memory used: 65280b of 4Mb
capacity estimate: 16Mbit
min/max network layer size: 28 / 1500
min/max overhead-adjusted size: 74 / 1569
average network hdr offset: 14
Bulk Best Effort Video Voice
thresh 1Mbit 16Mbit 8Mbit 4Mbit
target 18.2ms 5ms 5ms 5ms
interval 113ms 100ms 100ms 100ms
pk_delay 0us 825us 0us 2.77ms
av_delay 0us 69us 0us 1.43ms
sp_delay 0us 14us 0us 9us
backlog 0b 0b 0b 0b
pkts 0 142833 0 127166
bytes 0 20325113 0 23662694
way_inds 0 5383 0 82
way_miss 0 3412 0 1458
way_cols 0 0 0 0
drops 0 9 0 0
marks 0 0 0 0
ack_drop 0 0 0 0
sp_flows 0 1 0 1
bk_flows 0 1 0 0
un_flows 0 0 0 0
max_len 0 4937 0 4236
quantum 300 488 300 300
ingress status:
qdisc cake 1: root refcnt 2 bandwidth 56Mbit diffserv4 dual-dsthost nat nowash ingress no-ack-filter split-gso rtt 100ms ptm overhead 44
Sent 117599628 bytes 186525 pkt (dropped 22, overlimits 112884 requeues 0)
backlog 0b 0p requeues 0
memory used: 507008b of 4Mb
capacity estimate: 56Mbit
min/max network layer size: 46 / 1500
min/max overhead-adjusted size: 92 / 1569
average network hdr offset: 14
Bulk Best Effort Video Voice
thresh 3500Kbit 56Mbit 28Mbit 14Mbit
target 5.19ms 5ms 5ms 5ms
interval 100ms 100ms 100ms 100ms
pk_delay 0us 158us 0us 336us
av_delay 0us 24us 0us 107us
sp_delay 0us 6us 0us 7us
backlog 0b 0b 0b 0b
pkts 0 122308 0 64239
bytes 0 66558852 0 51070486
way_inds 0 4706 0 190
way_miss 0 3609 0 464
way_cols 0 0 0 0
drops 0 22 0 0
marks 0 0 0 0
ack_drop 0 0 0 0
sp_flows 0 2 0 1
bk_flows 0 1 0 0
un_flows 0 0 0 0
max_len 0 9084 0 3028
quantum 300 1514 854 427
root@OpenWrt:~#
my class gaming is implemented you can see the all traffic to the voice
you can use EF is you want
Knomax
December 10, 2021, 11:04am
351
I try to understand...my config
# HTTP/QUIC
tcp:80 +besteffort
tcp:443 +besteffort
udp:80 +besteffort
udp:443 +besteffort
#ipaddr 192.168.1.100 CS6
ipaddr 192.168.1.149 CS1
ipaddr 192.168.1.130 CS1
ipaddr 192.168.1.135 AF41
ipaddr 192.168.1.127 CS1
In this file the rules are implement in the order they are appear?
HTTP/QUIC ports implement first and these..
#ipaddr 192.168.1.100 CS6
ipaddr 192.168.1.149 CS1
ipaddr 192.168.1.130 CS1
ipaddr 192.168.1.135 AF41
ipaddr 192.168.1.127 CS1
Are tottaly ignored?Or doesnt work at all!!Because all traffic falls in Besteffort class according to HTTP/QUIC ports.
ingress status:
qdisc cake 1: root refcnt 2 bandwidth 38693Kbit diffserv4 dual-dsthost nat nowash ingress no-ack-filter split-gso rtt 30ms noatm overhead 38
Sent 1486676090 bytes 1062770 pkt (dropped 41678, overlimits 987606 requeues 0)
backlog 0b 0p requeues 0
memory used: 669760b of 4Mb
capacity estimate: 38693Kbit
min/max network layer size: 30 / 1492
min/max overhead-adjusted size: 68 / 1530
average network hdr offset: 0
Bulk Best Effort Video Voice
thresh 2418Kbit 38693Kbit 19346Kbit 9673Kbit
target 7.51ms 1.5ms 1.5ms 1.88ms
interval 36ms 30ms 30ms 30.4ms
pk_delay 0us 5.39ms 901us 0us
av_delay 0us 898us 60us 0us
sp_delay 0us 16us 27us 0us
backlog 0b 0b 0b 0b
pkts 0 1104231 217 0
bytes 0 1545794793 25129 0
way_inds 0 9277 0 0
way_miss 0 343 201 0
way_cols 0 0 0 0
drops 0 41678 0 0
marks 0 0 0 0
ack_drop 0 0 0 0
sp_flows 0 1 0 0
bk_flows 0 1 0 0
un_flows 0 0 0 0
max_len 0 1492 351 0
quantum 300 1180 590 300
root@OpenWrt:~#
Knomax
December 10, 2021, 11:14am
352
I change config to be in first order
ipaddr 192.168.1.100 CS6
ipaddr 192.168.1.149 CS1
ipaddr 192.168.1.130 CS1
ipaddr 192.168.1.135 AF41
ipaddr 192.168.1.127 CS1
Again all traffic falls in besteffort..so maybe syntax is wrong and doesnt implement or somehow ignored...dev must answer to this..i dont know.
diffserv4
: CS4 or EF or VA for game ports = Voice (Tin) = Highest priority.
no that and just a classification you see you have no traffic in voice for information i guide you for the diffserv4 that uses qosify the highest priority on voice
1 Like
I believe this to be a consequence of where qosify operates in regards to NAT; typically it is difficult for ingress packet processing to get the post-NAT internal IP addresses & ports of packets.
1 Like
And Iām assuming even on egress this is a problem because the masquerade has already happened from iptables before qosify sees the packet.
1 Like
Yes and no, for qosify you might be right, but for iptables we should be able to do the DSCP marking inside the LAN part of the network.
Knomax
December 10, 2021, 1:16pm
358
dave14305:
Two comments:
ipaddr
keyword is not valid. Only put the IP address and the DSCP value.
Local IPs will not work in the config because qosify expects the IP to be the remote IP (i.e. the source IP for download or the destination ip for upload).
So even i write etc
192.168.1.200 CS4
Will not work at all..right?
What about this config?The "logic" is that everything that is above 100 packets per second to fall in "bulk" class because it is not probably real time traffic but something like update download..video download etc.
config defaults
list defaults /etc/qosify/*.conf
option dscp_prio video
option dscp_icmp +besteffort
option dscp_default_udp besteffort
option prio_max_avg_pkt_len 500
option dscp_bulk bulk
config class besteffort
option ingress CS0
option egress CS0
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
option dscp_bulk bulk
config class bulk
option ingress CS1
option egress CS1
config class video
option ingress AF41
option egress AF41
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
option dscp_bulk bulk
config class voice
option ingress CS6
option egress CS6
option bulk_trigger_pps 100
option bulk_trigger_timeout 5
option dscp_bulk bulk
config class gaming
option ingress CS4 ## i has make a class for gaming with CS4
option egress CS4 ## for egress
config interface wan
option name wan
option disabled 0
option bandwidth_up 4844kbit
option bandwidth_down 38693kbit
option overhead_type none
# defaults:
option ingress 1
option egress 1
option mode diffserv4
option nat 1
option host_isolate 1
option autorate_ingress 1
option ingress_options "nowash"
option egress_options ""
option options "overhead 38 ptm rtt 30ms" ##just one ligne
config device wandev
option disabled 1
option name wan
option bandwidth 100mbit
It is right or wrong?
No, it doesn't work for now.
Knomax:
What about this config?
It's fine yes, but the bulk options in "defaults" tier doesn't do anything if you set everything to go to other class. You can remove them.
That's my config by the way, i see that no one uses diffserv8.
config defaults
list defaults /etc/qosify/*.conf
option dscp_icmp +tin2
option dscp_default_tcp tin2
option dscp_default_udp tin2
config class tin0
option ingress LE
option egress LE
config class tin1
option ingress AF11
option egress AF11
config class tin2
option ingress CS0
option egress CS0
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin0
option prio_max_avg_pkt_len 500
option dscp_prio tin3
config class tin3
option ingress CS3
option egress CS3
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin1
option prio_max_avg_pkt_len 500
option dscp_prio tin4
config class tin4
option ingress AF21
option egress AF21
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin2
option prio_max_avg_pkt_len 500
option dscp_prio tin5
config class tin5
option ingress CS2
option egress CS2
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin3
option prio_max_avg_pkt_len 500
option dscp_prio tin6
config class tin6
option ingress EF
option egress EF
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin4
config class tin7
option ingress CS6
option egress CS6
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin5
config device wandev
option disabled 0
option name eth0.1074
option bandwidth_up 600mbit
option bandwidth_down 600mbit
# defaults:
option mode diffserv8
option ingress 1
option egress 1
option nat 1
option host_isolate 1
option autorate_ingress 0
option ingress_options ""
option egress_options "ack-filter"
option options "overhead 42 mpu 64"
Knomax
December 10, 2021, 1:36pm
360
I think diffserv8 is broken.It works?
Knomax
December 10, 2021, 1:39pm
361
What is for?
And this etc ...
config class tin5
option ingress CS2
option egress CS2
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin3
option prio_max_avg_pkt_len 500
option dscp_prio tin6
You trigger above 100 packets to fall in bulk tin (tin3) and then you set dscp_prio tin6....it confuses me!!
Tin 0 Tin 1 Tin 2 Tin 3 Tin 4 Tin 5 Tin 6 Tin 7
thresh 600Mbit 525Mbit 459375Kbit 401953Kbit 351708Kbit 307745Kbit 269277Kbit 235617Kbit
target 5ms 5ms 5ms 5ms 5ms 5ms 5ms 5ms
interval 100ms 100ms 100ms 100ms 100ms 100ms 100ms 100ms
pk_delay 61us 4us 40us 40us 14us 66us 245us 10us
av_delay 6us 2us 13us 14us 5us 11us 9us 5us
sp_delay 1us 1us 3us 2us 2us 3us 1us 3us
backlog 0b 0b 0b 0b 0b 0b 0b 0b
pkts 44594374 560256527 3391230 12887820 553229 1117 90536 114877
bytes 42413846375 78628982096 4609674894 4309308394 108023948 461786 12711523 34929670
way_inds 667359 674967 114662 1299514 21413 0 0 0
way_miss 829 6399 6445 1639284 34935 181 827 625
way_cols 0 0 0 2 0 0 0 0
drops 1169 170 18 4 0 0 0 0
marks 0 0 0 0 0 0 0 0
ack_drop 0 0 0 0 0 0 0 0
sp_flows 1 0 1 18 1 3 2 2
bk_flows 0 1 0 0 0 0 0 0
un_flows 0 0 0 0 0 0 0 0
max_len 67616 67778 67792 66788 19778 3438 4870 3020
quantum 1514 1514 1514 1514 1514 1514 1514 1514
Knomax:
What is for?
My wan interface
Knomax
December 10, 2021, 1:47pm
363
EnfermeraSexy:
My wan interface
So without setting this we have only for upload?Not both directions?
No, i don't remember why i used device option instead of interface, i think it didn't work with interface option, so i swapped to the other one.
Knomax
December 10, 2021, 1:57pm
365
Knomax:
And this etc ...
config class tin5
option ingress CS2
option egress CS2
option bulk_trigger_timeout 5
option bulk_trigger_pps 100
option dscp_bulk tin3
option prio_max_avg_pkt_len 500
option dscp_prio tin6
You trigger above 100 packets to fall in bulk tin (tin3) and then you set dscp_prio tin6....it confuses me!!
And this i am confused!
You defaults config?To see the logic and maybe understand why this.
elan:
is still broken in config defaults , but it works in config class xxxx .
If you set a class in default then dscp_prio and bulk doesn't get triggered from default as you are referring to other class. Instead they have to be set in the class you refer to.