Here's the background. My cable ISP has this "turbo boost" thing where the first ~2 seconds of a connection download at 50Mbps, then it's throttled back to 20Mbps. I want to do this in pf (differentiate casual web browsing from long downloads).
My first thought is I need to set up two altq queues, one full speed and one half speed. Something like this: pass out queue fast pass out tagged download queue slow I suspect that will work, but I need to set the tags. Are tags attached to rules or states? It's not clear from the man page, probably because it doesn't make any difference right now. But then there's the question of whether the queue is attached to the state, or whether the queue is picked per packet. Basically, if I add an edit state ioctl, what do I need to change? The tag or the queue? (The plan was to have an external program monitor pf states and when a state passed a certain amount of traffic, it would be moved to another queue. I don't expect pf to do that for me.) Alternatively, any way to accomplish the same thing would be good.

