1 QoSify is simple daemon for setting up and managing CAKE along with a custom
2 eBPF based classifier that sets DSCP fields of packets.
4 It supports the following features:
5 - simple TCP/UDP port based mapping
6 - IP address based mapping
7 - priority boosting based on average packet size
8 - bulk flow detection based on number of packets per second
9 - dynamically add IP entries with timeout
11 It con be configured via ubus call qosify config.
13 This call supports the following parameters:
15 Reset the config to defaults instead of only updating supplied values
17 - "files": ARRAY of STRING
18 List of files with port/IP mappings
21 Default timeout for dynamically added entries
23 - "dscp_default_udp": STRING
24 Default DSCP value for UDP packets
26 - "dscp_default_tcp": STRING
27 Default DSCP value for TCP packets
30 DSCP value for priority-marked packets
33 DSCP value for bulk-marked packets
36 DSCP value for ICMP packets
38 - "bulk_trigger_pps": INT32
39 Number of packets per second to trigger bulk flow detection
41 - "bulk_trigger_timeout": INT32
42 Time below bulk_trigger_pps threshold until a bulk flow mark is removed
44 - "prio_max_avg_pkt_len": INT32
45 Maximum average packet length for marking a flow as priority
47 - "interfaces": TABLE of TABLE
48 netifd interfaces to enable QoS on
50 - "devices": TABLE of TABLE
51 netdevs to enable QoS on
54 interface/device properties:
55 - "bandwidth_up": STRING
56 Uplink bandwidth (same format as tc)
58 - "bandwidth_down": STRING
59 Downlink bandwidth (same format as tc)
62 Enable ingress shaping
71 Enable CAKE NAT host detection via conntrack
73 - "host_isolate": BOOL
74 Enable CAKE host isolation
76 - "autorate_ingress": BOOL
77 Enable CAKE automatic rate estimation for ingress
79 - "ingress_options": STRING
82 - "egress_options": STRING
86 CAKE options for ingress + egress
90 - Integration with dnsmasq to support hostname pattern based DSCP marking
91 - Support for LAN host based priority