Если Вы попробуете настроить шейпинг или приоритезацию трафика на VLAN интерфейсе с помощью PF ALTQ, Вы увидете ошибку:pfctl: vlan0: driver does not support altq. Как же быть? Всё просто. Нужно просто ALTQ повесить на родительский интерфейс, создать нужные очереди, а затем раскладывать трафик по очередям правилами pf. Предположим, что на интерфейсе fxp0 у нас есть интерфейс vlan0 который смотрит в подсеть 192.168.0.0/24, тогда правила будут выглядеть примерно так:
# Queuing
# Создаем altq очередь и подочереди на интерфейсе fxp0
altq on fxp0 cbq bandwidth 100Mb queue { default, local }
queue default bandwidth 1Mb cbq(default)
queue local bandwidth 1Mb cbq(ecn)
Далее нужно разложить трафик по созданным очередям. Сделать это можно так:
# Filtering
# Добавляем подсеть в шейпер.
pass out quick on vlan0 from any to 192.168.0.0/24 queue local
# Filtering
# Добавляем трафик проходящий через vlan0 в шейпер.
pass out on vlan0 queue local
Или еще как будет угодно, но общий смысл тот же: в очереди трафик направляем правилами фильтрации.