OpenBSD is pretty good by default. Traffic with different TOS is separately queued with reasonable priority defaults. So you normally don't have to do anything.
I was a bit surprised that my VOIP stuff was just working when I moved my router from Linux to OpenBSD and had to go looking to figure out why.
state of the art is to put packets into separate queues based on the 4-tuple (src,dst,port) then dequeue them fairly based on packet- and queuesize