Upper and Lower Bounds, with Bursts

queue rootq on $ext_if bandwidth 20M
        queue main parent rootq bandwidth 20479K min 1M max 20479K qlimit 100
             queue qdef parent main bandwidth 9600K min 6000K max 18M default
             queue qweb parent main bandwidth 9600K min 6000K max 18M
             queue qpri parent main bandwidth 700K min 100K max 1200K
             queue qdns parent main bandwidth 200K min 12K burst 600K for 3000ms
        queue spamd parent rootq bandwidth 1K min 0K max 1K qlimit 300
match out on $ext_if proto tcp to port { www https } \
	set queue (qweb, qpri) set prio (5,6)
match out on $ext_if proto { tcp udp } to port domain \
	set queue (qdns, qpri) set prio (6,7)
match out on $ext_if proto icmp \
	set queue (qdns, qpri) set prio (6,7)
pass in log on egress proto tcp to port smtp \
	rdr-to 127.0.0.1 port spamd set queue spamd set prio 0