<div dir="ltr"><div><br></div><div>The config I posted had a few typos.</div><div>Here is the right one:</div><div><br></div><div>--- /etc/firehol/fireqos.conf BEGIN</div><div><br></div><div><div>DEVICE=dsl0</div><div>INPUT_SPEED="$((12200 * 85 / 100))kbit"</div>
<div>OUTPUT_SPEED="$((890  * 95 / 100))kbit"</div><div>LINKTYPE="adsl local pppoe-llc"</div><div><br></div><div># ------------- COPY & PASTE BELLOW THIS POINT -------------<br></div><div><br></div>
<div>server_rtp_ports="udp/10000:10100"</div><div>server_lol_ports="udp/5000:5500 tcp/8393:8400,2099,5223,5222,8088"</div><div>server_openvpn_ports="any/1195:1198"</div><div>server_mytorrent_ports="any/51414"</div>
<div><br></div><div>interface $DEVICE world bidirectional $LINKTYPE input rate $INPUT_SPEED output rate $OUTPUT_SPEED</div><div><br></div><div>        class voip commit 100kbit pfifo</div><div>                server sip</div>
<div>                client sip</div><div>                server rtp</div><div>                client stun</div><div><br></div><div>        class interactive input commit 20% output commit 10%</div><div>                server icmp</div>
<div><br></div><div>                server dns</div><div>                client dns</div><div><br></div><div>                server ssh</div><div>                client ssh</div><div><br></div><div>                client teamviewer</div>
<div>                client lol</div><div><br></div><div>        class chat input commit 1000kbit output commit 440kbit</div><div>                client facetime</div><div><br></div><div>                server hangouts</div>
<div>                client hangouts</div><div><br></div><div>                client gtalk</div><div>                client jabber</div><div><br></div><div>        class vpns input commit 20% output commit 10%</div><div>                server pptp</div>
<div>                server GRE</div><div>                server openvpn</div><div><br></div><div>        class servers</div><div>                server http</div><div><br></div><div>        class surfing prio keep commit 10%</div>
<div>                client surfing</div><div>                client rsync</div><div><br></div><div>        class synacks</div><div>                match tcp syn</div><div>                match tcp ack</div><div><br></div>
<div>        class default</div><div><br></div><div>        class torrents</div><div>                client torrents</div><div>                server mytorrent prio 1</div><div>                match sports 16384:65535 dports 16384:65535</div>
<div><br></div></div><div><div>--- /etc/firehol/fireqos.conf END</div></div><div><br></div><div>A few more notes:</div><div><br></div><div>4. input and output can also be given to 'match' statements. FireQOS will automatically revert the rule (src<->dst, sports<->dports) if the match statement is input and interface is output and vice versa.</div>
<div><br></div><div>5. when definining bidirectional interfaces, '-in' or '-out' is appended to the interface name. Thus to get status of interface 'world' input, you have to write 'fireqos status world-in'.</div>
<div><br></div><div>Costa</div><div><br></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Mar 15, 2014 at 4:26 PM, Tsaousis, Costa <span dir="ltr"><<a href="mailto:costa@tsaousis.gr" target="_blank">costa@tsaousis.gr</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>I think I did it!</div><div><br></div><div>FireQOS can now be exactly like FireHOL. server/client statements and full bi-directional interfaces.</div>
<div><br></div><div>Check this config:</div>
<div><br></div><div>--- /etc/firehol/fireqos.conf BEGIN</div><div><br></div><div><div>DEVICE=dsl0</div><div>INPUT_SPEED="$((12200 * 85 / 100))kbit"</div><div>OUTPUT_SPEED="$((890  * 95 / 100))kbit"</div>

<div>LINKTYPE="adsl local pppoe-llc"</div><div><br></div><div>server_rtp_ports="udp/10000:10100"<br></div><div>server_lol_ports="udp/5000:5500 tcp/8393:8400,2099,5223,5222,8088"</div><div>server_openvpn_ports="any/1195:1198"</div>

<div>server_mytorrent_ports="any/51414"</div><div><br></div><div>interface $DEVICE world-in bidirectional $LINKTYPE input rate $INPUT_SPEED output rate $OUTPUT_SPEED</div><div><br></div><div>        class voip commit 100kbit pfifo</div>

<div>                server sip</div><div>                client sip</div><div>                server rtp</div><div>                client stun</div><div><br></div><div>        class interactive input commit 20% output commit 10%</div>

<div>                server icmp</div><div><br></div><div>                server dns</div><div>                client dns</div><div><br></div><div>                server ssh</div><div>                client ssh</div><div>

<br></div><div>                client teamviewer</div><div>                client lol</div><div><br></div><div>        class chat input commit 1000kbit output commit 440kbit</div><div>                client facetime</div>

<div><br></div><div>                server hangouts</div><div>                client hangouts</div><div><br></div><div>                client gtalk</div><div>                client jabber</div><div><br></div><div>        class vpns input commit 20% output commit 10%</div>

<div>                server pptp</div><div>                server GRE</div><div>                server openvpn</div><div><br></div><div>        class servers</div><div>                server http</div><div><br></div><div>

        class surfing prio keep commit 10%</div><div>                client surfing</div><div>                client rsync</div><div><br></div><div>        class synacks</div><div>                match tcp syn</div><div>
                match tcp ack</div>
<div><br></div><div>        class default</div><div><br></div><div>        class torrents</div><div>                client torrents</div><div>                server mytorrent prio 1</div><div>                match ports 16384:65535</div>

<div><br></div></div><div><div>--- /etc/firehol/fireqos.conf END</div></div><div><br></div><div>Notes:</div><div><br></div><div>1. server and client should be given with the INPUT interface in mind. FireQOS will automatically invert it for the output interface.</div>

<div><br></div><div>2. services can be defined much like FireHOL. client ports are not needed though. Only server ports are used by FireQOS.</div><div><br></div><div>3. there are two special keywords in interfaces and classes: input and output. These are used to specify interface and class rates (commit, max, etc) for each direction. If no input or output is given the rates are applied in both directions.</div>

<div><br></div><div>I just committed it to github.</div><div><br></div><div>At last... a traffic shaper for humans!</div><div><br></div><div>Enjoy...</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Costa</div>
<div><br></div></font></span></div>
</blockquote></div><br></div>