Stumped configuring qos / bandwidth limitations

I just began working for a company a few weeks ago and I’ve been given the task of working with this Microtik thing. Currently our routers are setup to use simple queues for upstream limitations and queue trees for downstream limitations. These queues are all attached to their respective ethernet interfaces.

The problem I’m having deals with creating a queue to prioritize different traffic. I’ve been told, some of our customers setup on pppoe are losing their connection because they’re maxing their pipe out with tcp traffic and the icmp pppoe packets aren’t making it in time.

The only way I see to accomplish this involves adding branches to the queue trees for each customer that assigns a higher priority to the pppoe traffic or by assigning a small fraction of their bandwidth to pppoe traffic.

This works fine, but involves a lot of work on the part of our configuration. My boss envisions being able to tie this functionality into our existing queue framework. I don’t see how it can work. Any feedback is appreciated.

While waking up this morning I came up with a brainstorm to alleviate the problem. I’ve been reading and noticed that mangling is done way before the qos stuff. If I create a seperate queue for the pppoe traffic and place the mangle rule at the bottom of the chain, it should work. Now I’m left to wonder how to effectively identify pppoe traffic. I think the tos bit is set to maximum reliability for ppoe traffic. Any suggestions?