I need some suggestions as to the best method for per user bandwidth limiting and gateway shaping. Right now, I'm using simple queues to limit Bandwidth by source IP. However, I need to also perform some traffic prioritization as well as shaping on the gateway interface. I would also like to shape based on the ratio of bandwidth allotted per user (customer with a 1Mb download service would get more bandwidth that someone with a 512K download service). Thus, I need do to the following:
1. Limit bandwidth by IP per user
2. Prioritize all trafic from all users (ftp, http, VoIP).
3. Shape the gateway interface.
What is the best implementation to achieve this?