altq merge and a CBQ example (adopted from /usr/share/pf/queue2): altq on $ext_if cbq bandwidth 5Mb queue { std, http, ssh } queue std bandwidth 10% cbq(default) queue http bandwidth 60% cbq(borrow red) { staff, hackers } queue hackers bandwidth 75% cbq(borrow) queue staff bandwidth 15% queue ssh bandwidth 20% cbq(borrow) { ssh_prio, ssh_bulk } queue ssh_prio priority 7 queue ssh_bulk priority 0 block return out on $ext_if inet all queue std pass out on $ext_if inet proto tcp from $hackersnet to any port www keep state queue hackers pass out on $ext_if inet proto tcp from $staffnet to any port www keep state queue staff pass out on $ext_if inet proto tcp to any port ssh keep state queue(ssh_bulk, ssh_prio)