slice and dice...

Hey all,
I’ve been browsing around the forums trying to find some info on traffic shaping but don’t seem to find anything that would pertain to my particular situation. Suppose I have 50-70 clients connected over three sectors. Further, assume all sectors are connected to three cards on a 433ah and all traffic is natted out eth1 to the internet gateway a couple more hops away.
Now most clients are tickled to just have something better than dial-up for casual web browsing , email , software updates, blah blah. But then comes the big bad app’s like you tube, hulu , netflicks , private webcam monitors, and countless other video streaming programs.
I’m no IT guru but it seems to me that sometimes these enormously long data transfers can sometimes virtually shut out the “little” guy in that it may take an inordinately long time for him to just get his email , not to mention the online gamer who gets bumped from a server due to packet timeout or whatever…in other words they tend to inject higher latency for everyone.
The kind of traffic shaping I’m looking for would look at all data coming in, recognize a destination (client ip) and segment all traffic to that destination while “shuffling” other data traffic equally throughout the stream. So Joe Email won’t get shutout by Bob Netflicks and Jimmy XBox doesn’t get dropped from his gameserver. Ever been on a traffic roundabout and had to go around it three time before you could get off of it due to traffic congestion. That’s kinda how I’ve visualized it. I’ve somehow got to slice and dice these streams for lower overall latency and haven’t a clue as how to do it. I’d rather a customer get their email quickly than worry about someones youtube video getting buffered, likewise higher priority for gamers (as they really don’t use that much compared to streaming video).

any ideas..examples? many thanks..

There have been examples of exactly this in the forums and wiki using the ‘connection-rate’ firewall rule. Look at http://wiki.mikrotik.com/wiki/Manual:Connection_Rate to see if that fits your requirement.

Very good and thank you…one other question.
The example shown has this line:

add name=upload parent=public max-limit=6M

In the queue tree this parent doesn’t exist how then should I proceed? These are the listed choices.

ether1
ether2
ether3
global-in
global-out
global-total
wlan1
wlan2
wlan3

This routerboard has 3 wlan cards with 3 different subnets driving 3 sectors and all are independently natted to ether1. Sorry for my lack of knowledge but this is quite new to me.

This is my queue config..
0 name=“upload” parent=ether1 limit-at=0 priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

1 name=“other_upload” parent=upload packet-mark=other_traffic limit-at=4M queue=default priority=1 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

2 name=“heavy_upload” parent=upload packet-mark=heavy_traffic limit-at=2M queue=default priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

3 name=“download1” parent=wlan1 limit-at=0 priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

4 name=“download2” parent=wlan2 limit-at=0 priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

5 name=“download3” parent=wlan3 limit-at=0 priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

6 name=“other_download1” parent=download1 packet-mark=other_traffic limit-at=4M queue=default priority=1 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

7 name=“other_download2” parent=download2 packet-mark=other_traffic limit-at=4M queue=default priority=1 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

8 name=“other_download3” parent=download3 packet-mark=other_traffic limit-at=4M queue=default priority=1 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

9 name=“heavy_download1” parent=download1 packet-mark=heavy_traffic limit-at=2M queue=default priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

10 name=“heavy_download2” parent=download2 packet-mark=heavy_traffic limit-at=2M queue=default priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

11 name=“heavy_download3” parent=download3 packet-mark=heavy_traffic limit-at=2M queue=default priority=8 max-limit=6M burst-limit=0 burst-threshold=0 burst-time=0s

reading further down the page it states…

“public” is interface where your ISP is connected, “local” where are your clients. If you have more than 1 “public” or more than 1 “local” you will need to mangle upload and download separately and place queue tree in global-out.

The “public interface” , the interface closest to the internet, would be ether1. The “local” of which there are 3 wireless cards/subnets, is how I interpreted this for my particular situation. This AP is buried 3 hops away from the actual internet gateway.
Capture.PNG

SFQ is easier to setup to equally divide bandwidth between customers

The intent is not to equally divide bandwidth but to “slow down” chronic heavy users to let casual usage continue unimpeded. Otherwise 8-10 netflix users could effectively shut out/delay all other traffic. Does this config accomplish that , or does it slow down everyone on that interface due to just one user on the interface being greedy?