Base
# Flush pipes & queues, then add pipe
ipfw -f pipe flush
ipfw pipe 10 config bw 250KByte/s
# Add queue's to pipe, they work as priorities
ipfw queue 99 config pipe 10 weight 99
ipfw queue 75 config pipe 10 weight 75
ipfw queue 50 config pipe 10 weight 50
ipfw queue 25 config pipe 10 weight 25
# Flush ipfw rules
ipfw -f flush
Now, time to sort or connection with queue’s(priorities)
# dns, http, https
ipfw add 100 queue 75 ip from me to any dst-port 53,80,8080,443
ipfw add 101 queue 75 ip from any to me src-port 53,80,8080,443
# ssh
ipfw add 150 queue 50 ip from me to any dst-port 22,9999
ipfw add 151 queue 50 ip from any to me src-port 22,9999
# ftp
ipfw add 200 queue 25 ip from me to any dst-port 21,2021
ipfw add 201 queue 25 ip from any to me src-port 21,2021
# pop.gmail.com
ipfw add 250 queue 50 ip from 74.125.43.109 to me
ipfw add 251 queue 50 ip from me to 74.125.43.109
# AOL / ICQ
ipfw add 300 queue 75 ip from me to any dst-port 5190
ipfw add 301 queue 75 ip from any to me src-port 5190
# Shoutcast
ipfw add 300 queue 50 ip from me to any dst-port 88
ipfw add 301 queue 50 ip from any to me src-port 88
# Battle.net
ipfw add 300 queue 99 ip from me to any dst-port 6112
ipfw add 301 queue 99 ip from any to me src-port 6112
# WC3 MakeMeHost
ipfw add 300 queue 99 ip from me to 62.75.159.192
ipfw add 301 queue 99 ip from 62.75.159.192 to me
# Output status, to check rules & pipes
ipfw list
ipfw pipe list