Queue Tree Traffic Control - Low priority to unknown traffic

Hi Guys,

I am trying to setup 2 prioritys for traffic.

Priority 1 - Known traffic that I want to give priority to. Generally these will be games. In this example Ill use WoW.
Priority 2 - Unknown traffic.

I have recently had to split my Onedrive archive due to Microsoft removing unlimited storage. Now I have 1Tb of data being uploaded to dropbox, this causes Lag on my network connection.

Wow uses TCP 3724 for gameplay.

My goal is to mark connections and packets for wow to then match them in a queue tree.
I then want to mark all other traffic and stick that in the queue tree with lower priority.

The goal is that Dropbox will use all its bandwidth when i’m not playing, but if i am playing, it will leave room for WoW to do its thing.

Can anyone help me acheive this? I have been having no luck successfully marking and queueing the unknown traffic.

Hey Guys,

I have sort of made it work by simply packet marking the desired packets, however, I would like to use a connection mark then a packet mark to reduce the work load on the router.

Currently when I try to use a connection then a packet mark, everything seems to get queued in the Low Priority Upload queue… I really don’t know why this is happening or what I am doing wrong.

If anyone can help me, i will be super grateful.

Thanks guys.


Successful Packet Marks. Keeps wow priority high and everything else low.

;;; All unknown traffic leaving WAN interface
      chain=postrouting action=mark-packet new-packet-mark=unknown_upload passthrough=no out-interface=WAN 
      packet-mark=no-mark log=no log-prefix="" 
	  
;;; All unknown traffic entering WAN interface
      chain=prerouting action=mark-packet new-packet-mark=unknown_download passthrough=no in-interface=WAN 
      packet-mark=no-mark log=no log-prefix="" 
	  
;;; WoW Upload
      chain=postrouting action=mark-packet new-packet-mark=WoW_Upload passthrough=no protocol=tcp 
      out-interface=WAN port=3724 log=no log-prefix="" 
	  
;;; WoW Download
      chain=prerouting action=mark-packet new-packet-mark=WoW_Download passthrough=no protocol=tcp 
      in-interface=WAN port=3724 log=no log-prefix=""

Failed Connection Marks - Currently this is specifically only for unknown traffic. I haven’t gotten to the tests for specific applications.

;;; Connection Mark all unknown traffic leaving WAN interface
      chain=postrouting action=mark-connection new-connection-mark=unknown_connection passthrough=yes 
      out-interface=WAN packet-mark=no-mark log=no log-prefix="" 

 ;;; Connection mark all unknown traffic entering WAN interface
      chain=prerouting action=mark-connection new-connection-mark=unknown_connection passthrough=yes 
      in-interface=WAN packet-mark=no-mark log=no log-prefix="" 

     

 ;;; Packet mark all unknown traffic leaving WAN interface
      chain=postrouting action=mark-packet new-packet-mark=unknown_upload passthrough=no 
      connection-mark=unknown_connection log=no log-prefix="" 

     

 ;;; Packet mark all unknown traffic entering WAN interface
      chain=prerouting action=mark-packet new-packet-mark=unknown_download passthrough=no 
      connection-mark=unknown_connection log=no log-prefix=""

I have my queue trees laid out as detailed here

 0   name="1 - High Priority Download" parent=Download packet-mark="" limit-at=0 queue=default-small priority=1 max-limit=200M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 

 1   name="Download" parent=global packet-mark="" limit-at=0 queue=default-small priority=8 max-limit=200M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 

 2   name="2 - Low Priority Download" parent=Download packet-mark=unknown_download limit-at=0 queue=default-small priority=8 max-limit=20M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 

 3   name="Upload" parent=global packet-mark="" limit-at=0 queue=default-small priority=8 max-limit=9M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 

 4   name="1 - High Priority Upload" parent=Upload packet-mark="" limit-at=0 queue=default-small priority=1 max-limit=9M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 

 5   name="2 - Low Priority Upload" parent=Upload packet-mark=unknown_upload limit-at=0 queue=default-small priority=8 max-limit=5M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 

 6   name="World of Warcraft upload" parent=1 - High Priority Upload packet-mark=WoW_Upload limit-at=0 queue=default-small priority=1 max-limit=9M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1 

 7   name="World of Warcraft download" parent=1 - High Priority Download packet-mark=WoW_Download limit-at=0 queue=default-small priority=1 max-limit=200M burst-limit=0 burst-threshold=0 burst-time=0s bucket-size=0.1

I don’t have one to hand to confirm but I’m sure in queue trees you can create a queue tree with packet mark = no-Mark which should satisfy your need for deprioritised traffic.

I have created a packet mark with no-mark. This works as expected. The problem arises when I create a connection mark.

My goal is to create a connection mark, then packet mark based on the connection mark, however, this is breaking things.

Without the connection mark and only using packet marks, it works brilliantly.

I want to add the connection mark to give better performance, rather than simply marking every single packet individually.

I think you mis-understood. You don’t need to create a mangle rule to mark packets “no-mark”. There is already an option to do this in queue tree, when you hit the dropdown for packet mark there is an option “no-mark”. This would mean you don’t have to mark traffic you don’t want specifically and can shape accordingly.