up to now I have been running only a PCQ queue tree for each subnet to allow equal bandwidth sharing. I am looking to implement QOS and looking at this wiki entry http://wiki.mikrotik.com/wiki/DSCP_based_QoS_with_HTB it would be what I need but I would lose the PCQ element…
Anyone have any ideas how I can run both? Would this be as simple as changing the queue type at the parent or would that mess up the bandwidth allocation of the subtrees?
The unofficial de-facto standard for learning QoS is Janis Megis’s MUM talks.
Here are the video and slides.
The basic theory he covers is apply a first pass of marking and prioritization using mangle pre-routing and global-in, then applying a second round of PCQ bandwidth shaping using Mangle Forward and Global-out / out-interface.
One issue I have found is when doing this on a NAT router, you can not use connection marking for the PCQ tracking. PCQ applied to the out-interface can not see the NAT’ed address, so you have to apply PCQ to Global-out instead. This means you have to mark ingress and egress packets independently rather than marking the connection as a whole and letting the out-interface determine which is which.
If you are not performing NAT on that router, just ignore global-out and use the example Janis posts. It is far cleaner and a fair bit faster.