# advanced queue example. # give interactive ssh traffic priority over ssh bulk transfers (scp, sftp) ext_if="dc0" developerhosts="192.168.2.0/24" employeehosts="192.168.0.0/23" altq on $ext_if cbq bandwidth 5Mb queue { std, http, mail, ssh } queue std bandwidth 10% cbq(default) queue http bandwidth 60% priority 2 cbq(borrow red) { employees, developers } queue developers bandwidth 75% cbq(borrow) queue employees bandwidth 15% queue mail bandwidth 10% priority 0 cbq(borrow ecn) queue ssh bandwidth 20% cbq(borrow) { ssh_interactive, ssh_bulk } queue ssh_interactive 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 $developerhosts to any port 80 \ keep state queue developers pass out on $ext_if inet proto tcp from $employeehosts to any port 80 \ keep state queue employees pass out on $ext_if inet proto tcp from any to any port 22 \ keep state queue(ssh_bulk, ssh_interactive) pass out on $ext_if inet proto tcp from any to any port 25 \ keep state queue mail