В реализации dummynet FreeBSD 8.0 есть недокументированная фича. Pipe работает до тех пор, пока внутри него одна очередь, если их больше и трафик начинает превышать bw, то шейпер перестает работать и в логи сыпятся сообщения:
dummynet: OUCH! pipe should have been idle!
В дереве исходных кодов FreeBSD на текущий момент нет решения этой проблемы (якобы починили в STABLE, но у меня не заработало), однако, Oleg Bulyzhin в рассылке freebsd-current предоставил патч. Его то мы и поставим:
cd /root
wget http://lists.freebsd.org/pipermail/freebsd-current/attachments/20091201/\
e05469c6/wf2q-fix.r80.bin
cd /usr/src/sys/netinet/ipfw/
patch < /root/wf2q-fix.r80.bin
cd /usr/src
make buildkernel
make installkernel
shutdown -r now