Yes, however I think i prefer tagging outbound with Windows QoS, sort of makes sense? Dont know if it will make a difference in overhead, or client side is 'double' prioritized to an extend.
I mean prioritizing / tagging based on executable looks much more granular to me, it can be a lot harder and less convinient trying to extrapolate port range, potentially different IP etc...
Imho upstream prioritizing still most important factor for gaming, this inbound prioritizing is like icing on the cake
That is true. However my only concern is maximum performance in the few select windows games I play, and I want them to have 100% priority over anything else on my network. Luckily I'm in full control of congestion (For the most part). The whole QoS for me is for 'incidents' for when lets say my iPhone is fetching data in the background, or some anomaly happening which can potentially throw off my game's networking even if its just slightly. Using 4G itself is really variable and sometimes I can get 60Mbps and other times I suspect it can just drop to <20Mbps for a few hundred milliseconds. As long as my UDP packets go through at these situations im satisfied.
I'm still using EF for them at this point and disabled WMM on my Wifi, as well as disallowing apps to use their own DSCP tags.
But in your situation, if the Android device or Xbox doesn't use any tags, or only low priority, the transmit DSCP i set on my Windows system still has priority over the others right? I can understand that you cant prioritize transmit packets from such devices without Windows QoS and then ur forced to use OpenWRT QoS indeed.
Yes, but if for example some over-zealous Android / iPhone app decides to tag its weather updates with CS7 your EF tags will not help you. This can be particularly true if some device gets compromised into a botnet that floods packets with very high DSCP priority. So it can be useful to rewrite the tags in your router anyway so as to squash other devices over-zealous attempts at prioritizing themselves.
Good point, havent thought of it that way. Is there any way to mark anything else other than the two rules i've already set to CS0? Or whatever lowest priority is? Or would I have to make specific rules for that too?
How would one go and setup something like mark all data except these two rules as low priority?
For SQM / cake lowest priority is CS1. CS0 is "regular" priority. You can easily add a rule that sets all traffic that isn't from your windows machine (give your windows machine a static IP reservation) to CS0, nullifying priorities put on the packets by anything else.
i prefer to tag port 80/443 with cs3, then put a connbytes rule that will tag port 80/443 with cs1 if the connbytes is
exceeded.
i think CS6 is better than EF,i read somewhere it's have problems with some kernels.
CS0 will go to best effort tin.so i's better to use CS0.
CS1 will go to bulk tin, which will add delay to packets and offer less bandwidth to them if network is loaded.
"untagged" is the same as CS0, so it's "best effort". CS1 will go in bulk and be delayed in favor of more important packets including "best effort" packets. CS1 is great for things like torrents or long-running downloads such as updates for games or Windows updates etc.
A word of warning, this is exactly the rabbit hole that fine-grained QoS rules will get you into*... Have you tried simply on relying on cake/fq_codel's sparse flow boosting and not create a specific rule? Especially the idea that ports above 1024 can actually be trusted to convey information about the content type seems a bit optimistic**.
*) This is not to say fine-grained rules are bad or in your specific case even avoidable, but maybe =or some things goog-enough might be acceptable instead of perfect
**) Again in reality the port mapping often is temporally stable enough that using port based schemes is acceptable as long as one does not forget to re-check all those port assumptions every now and then...