Если Вы попробуете настроить шейпинг или приоритезацию трафика на 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

Или еще как будет угодно, но общий смысл тот же: в очереди трафик направляем правилами фильтрации.