Solved Setting up queuing on an interface: pf+ipfw

I am trying to set up queuing on my interface. It seems I can't use only PF for it because of ALTQ (altq not being implemented for USB ethernet adapters?).

So it seems like I need to set up a dummynet+ipfw for queuing first with fq_codel, and then PF will process normally.

Can I order the processing with pfilctl so it goes ethernet <-> ipfw <-> pf? Has anyone chained up and re-ordered packet processing that way before? [what a confusion that pfilctl is NOT related to PF firewall]

Seems also that that order of hooks needs to be set manually because otherwise it just puts it in the order that kernel modules are loaded. So what's the way to order them up on boot via rc.conf?
 
I am now considering switching to ipfw becuase it just lets me do queuing without some extra hardware driver hooks implemented....but it's so nice you can queue up ipfw with pf without any mess.
 
Can I add weight to sched 1 config pipe 1 type fq_codel in /etc/dnctl.conf so that I can do priority in PF?

AFAIK, weight must be placed in queue parameters. I'm playing with
Code:
...
# vlan 1 upload
pipe 2 config bw 95Mbit/s
sched 2 config pipe 2 type fq_codel
queue 2 config sched 2 weight 50
...
in my lan.
Dont forget place shaper before NAT.
 
A thing of beauty!

Please note: Dummynet queue support directly in /etc/pf.conf only appeared starting FreeBSD 14.x, it's a fairly new feature.
 
Back
Top