Media streaming and traffic shaping - is what i want possible?

  • Hello,
    I have attempted to shape traffic from one network (10/10Mbit) where a ccxstream server sits, out to several other locations on the WAN (varying connections).

    I used the traffic shaping wizzard and set it to shape for VOIP only. I then changed the rules by removing the LowDelay flag and identify the traffic by port.

    This works fabulously. It puts all the right traffic in the right queues.

    The thing is, it seems as though xbms streams are really sensitive. For example if i start a stream and there is no other traffic on the host network, everything works fine. The bandwidth required seems to vary beween 0.8Mbit and about 1.5Mbit.

    If i now start a bittorrent client on the host net, the XBMS stream seems to become interrupted and cache starts to drop. This even if the torrent client is only using 2Mbit up and down.

    The same is true if 4 or 5 users are just surfing and checking their mail (maybe 2.5Mbit being used). The WAN link has the bandwidth - 10Mbit total, but when only 4Mbit total is being used, but the XBMS stream is no longer constant, and the cache drops until the stream is unwatchable.

    My question is this: Is it possible to tell pfsense that ALL traffic in a certain cue goes before ALL other traffic.

    As it is now, it only drops and prioritizes traffic if the parent cue is full, or if a specific cue is using more bandwidth alotted to it.

    The parent cues are set to 9mbit, but as we never reach that capacity, i dont think any shaping is going on.

  • What system are you using for that task? Maybe it's not powerful enough? Also try bumping up the ack queues. Do you see drops in the ack queue or voip queue when the problem occurs?

  • Thanks for the super speedy reply!

    I am using a brand new VIA EPIA EK 10000G Dual LAN  mini-itx motherboard with a 1GHz processor and 256mb Kingson DDR400 ram. Its running pfsense 1.01 embedded on a 512mb Kingston Elite Pro compact flash card. I haven't seen the processor usage spike past 20%, but I have admittedly not kept a constant eye on it. Right now its sitting nicely at 14%, but there is not traffic in the voip queues right now.

    What do you mean by bumping the ACK queues? I have changed the bandwidth of the ACK queues to 10%

    No, i don't see any drops. I think this is because we aren't maxing out our connection (and pfsense doesn't see any need to drop any packets).

  • Your hardwarespecs should be more tha sufficient for what you try to do. The voipqueue gets a guaranteed bandwidth assigned (realtime). What value did you set for this? However, as you don't see drops and you don't max out your bandwidth it shouldn't be responsible for the issue you are seeing.

  • it gets 3Mbit which should be sufficient for 2 clients, but i've only been testing with one so far.

    As you said, this isn't the issue, because the b/w is never maxed out.

    I think i need to tell the firewall to prioritize the VOIP queues even when there is available bandwidth available to all queues.

    Yet I don't know how to do this even if it is possible.

    The VOIP queues have priority 7 whilst the default queues have priority 1. I would assume that the firewall would send the prio7 traffic first, but it also makes sense if it only starts shaping when there is no available b/w…

  • Besides the priority, what bandwidth is put in the fieldmatrix at the queue edit page?

  • Im not sure which one you mean. If its the first field at the top named "Bandwidth" it is set to 50%.

    I have experimented a little with it, but have been unable to determine what exactly that field controls.

    Currently its at 50% (i think it defaulted to a number considerably lower)

    Please see attached screenshot.

    edit: oh, fiedmatrix. m2 for realtime has been both 3000kb and 3Mb with the same results. ive considered increasing it, but i dont think it should matter since the queues dont seem to fill up past 1.5Mbit.

    ![Picture 30.jpg](/public/imported_attachments/1/Picture 30.jpg)
    ![Picture 30.jpg_thumb](/public/imported_attachments/1/Picture 30.jpg_thumb)
    ![Picture 30.jpg_thumb](/public/imported_attachments/1/Picture 30.jpg_thumb)

  • I've been experimenting with this for quite some time now, and it seems as though the streaming starts messing up qwandef hits 2Mbit. If i cap it here (realtime m2 at 2Mb) it works nicely.

    Now this is all good and shiny, but with the streaming using 1.5Mb and the rest of the network using 2Mb (all upstream values here), im not really using my 10Mbit pipe to its fullest now am I?

    Any ideas as to how i can use the rest of my bandwidth without botching the streaming?


Log in to reply