Throttle Bandwidth / Bandwidth Sharing

General discussion about Gargoyle, OpenWrt or anything else even remotely related to the project

Moderator: Moderators

pbix
Developer
Posts: 1373
Joined: Fri Aug 21, 2009 5:09 pm

Re: Throttle Bandwidth / Bandwidth Sharing

Post by pbix »

Lets get the terminology unraveled a bit. Quota refers to a specific volume of data as in "I am only allowed 10GB a month by my ISP", bandwidth refers to a rate of data as in "I have 2Mbps service from my ISP". In my view unless you are interested in volume you should stay away from the Quota screen deleting all rules there.

QoS is made for bandwidth sharing and specifically for being "fair" between competing consumers of bandwidth. This sounds to me like your requirement so lets use QoS. On the upload screen just enable it with the default rules, we will deal with uploads if it becomes an issue.

For download, if you have a camp ground with 40 sites then you need to make 40 service classes on the download screen. For the service classes I would set each as follows. The name is the site (ie Site10), the percentage is 1/40 = 2.5%, the minimum is 0 and the maximum is unlimited. Then add one more "default class" which has percentage 5%, min 0 and max unlimited.

Moving on to the rules. Let's setup for 2 static IP at each site since campers these days may have multiple devices. Map IP addresses to sites, for example sites 1-40 use addresses 101-141 and 201-241. Now we have to add 80 rules. For each rule the destination address is one of your 80 IP addresses, and the class sent to the corresponding camp site.

Now on the DHCP screen you have to add your 80 static IP address, initially with random MAC addresses and check the "Block MAC address assigned ..." check box. Finally, set the DHCP range to 25-100.

As people check in you get their MAC addresses and enter them into the DHCP screen into the static IP addresses that corresponds to their camp site. If they have more than 2 they should give you the ones the want to work the best. There is no need to do anything when they check out.

Now how about people who fail to give you their MAC addresses or have more than 2 devices? These people get put in the default class and have to fight over what you allocated to the default class.

Finally I would enable the Active Congestion Control setting your download bandwidth on the QoS screen to the maximum your ISP delivers.

The above is complex I know but I think with the right router it could make for a good system for you. This design will ensure that all sites get the same bandwidth and it will adjust based on whats going on. For example if 10 sites are active then each will get 10%. If all 40 are active each will get 2.5%. You can observe whats going on on the Connections page and the QoS download page. You should definitely have a 32MB router for this.

As the designer of the QoS in Gargoyle I would be interested to know how it works for you. Please give us some feedback.

Addressing one thing 1aN said. Having a hotspot would not help you. A hotspot will restrict access to the network but once you are logged it does nothing about fairness. You need QoS to enforce fairness regardless.
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM

1an
Posts: 41
Joined: Wed Aug 11, 2010 7:18 am
Location: Australia

Re: Throttle Bandwidth / Bandwidth Sharing

Post by 1an »

pbix wrote: Addressing one thing 1aN said. Having a hotspot would not help you. A hotspot will restrict access to the network but once you are logged it does nothing about fairness. You need QoS to enforce fairness regardless.
Thanks for clarifying that!

The rest of your post makes it really clear how to set up QoS for this kind of application, which I must say had mystified me until now.

Ian
Buffalo WZR-HP-G300NH = Gargoyle 1.5.3
Linksys WRT54GL v1.2 = Gargoyle 1.3.13
SMC Barricade SMC2804WBRP-G = SMC firmware v2.08

Trailblazer
Posts: 113
Joined: Wed Mar 09, 2011 3:12 am

Re: Throttle Bandwidth / Bandwidth Sharing

Post by Trailblazer »

Wow pbix,

Now that's a really nice tutorial custom-made for my situation. Thanks so much!

I don't know that I can get the MAC addresses. I don't have anything to do with checking people in...anyway, so is there a way to do this w/o getting the MAC addresses?

I can see how QOS is really built for this type thing...is it possible to do something like:

As users connect change QOS percentage for all users to equal percentage.

I don't know, I'm just throwing stuff out right now...I'm going to have to read this again tomorrow when I'm awake!

Thanks again!
Netgear WNDR3700V2 Gargoyle 1.10.0
TP-LINK Archer C7 v4 Gargoyle 1.12

pbix
Developer
Posts: 1373
Joined: Fri Aug 21, 2009 5:09 pm

Re: Throttle Bandwidth / Bandwidth Sharing

Post by pbix »

Yes it is complex but what I describe is what can be done with Gargoyle today.

About your idea, it would be possible to make something that would make every IP have equivalent bandwidth. This is not the same as making every camp site equivalent. If every IP is equal then a site with 10 computers on it would have 10x the service as a site with only 1 computer.

If this is not a problem then perhaps I could make a script for you to try that would force each IP to share equally.

How are you at using WinSCP and putty?
Linksys WRT1900ACv2
Netgear WNDR3700v2
TP Link 1043ND v3
TP-Link TL-WDR3600 v1
Buffalo WZR-HP-G300NH2
WRT54G-TM

Trailblazer
Posts: 113
Joined: Wed Mar 09, 2011 3:12 am

Re: Throttle Bandwidth / Bandwidth Sharing

Post by Trailblazer »

pbix,
Sorry...so long in getting back to you.

Yes, I am fine with using WinSCP and Putty. Yes, I would love a script to try out!

Thanks!
Netgear WNDR3700V2 Gargoyle 1.10.0
TP-LINK Archer C7 v4 Gargoyle 1.12

rfdude
Posts: 41
Joined: Sat May 08, 2010 2:16 pm

Re: Throttle Bandwidth / Bandwidth Sharing

Post by rfdude »

I've used Gargoyle to feed a CAMP WiFi system and it seems to work quite well. I've set Gargoyle enforces 200 Mb per IP per weekend, and another 300 Mb for weekdays. If anyone tries to watch TV they will blow through their quota within an hour and be throttled to dial up speeds. QoS ensures voice priority. And if more than a couple people are downloading at a time, streaming applications will become choppy. Hey... it is a free convenience service.

The regulars know about the quota's. Transient visitors do not, and this is where a simple splash page would help to propagate the rules and set expectations.

rfdude
rfdude
------------------
1.09.2 Buffalo WZR-HP-G300NH2 -> 8 OpenMesh AP's
1.10.0 Archer C7 -> Multiple Cisco 1702i Autonomous Mode

Trailblazer
Posts: 113
Joined: Wed Mar 09, 2011 3:12 am

Re: Throttle Bandwidth / Bandwidth Sharing

Post by Trailblazer »

Thanks for the ideas, rfguy!

So you set a quota for each IP in your DHCP pool for 200MB on the weekend and 500MB during the week?

How do you do the splashpage? Is there a redirect upon getting a DHCP address or something?

And you have QOS enabled on both Download (with active congestion control) and Upload I assume?
Netgear WNDR3700V2 Gargoyle 1.10.0
TP-LINK Archer C7 v4 Gargoyle 1.12

rfdude
Posts: 41
Joined: Sat May 08, 2010 2:16 pm

Re: Throttle Bandwidth / Bandwidth Sharing

Post by rfdude »

I'm WISHING for a simple splash page feature for Gargoyle... something that it doesn't YET have ;) I notify camp users the limitations of their free WiFi service the old fashioned way... a paper poster on a bulletin board next to a main washroom.

The camp is remote so the internet comes via a cellular HSPA modem. It has a 10 Gb per month limit before it starts getting metered and $ charged. The BW I mentioned per IP address is a swag based on total monthly traffic that results. I review the monthly totals and adjust it seasonally.

Yes, both DL and UP QoS... haven't tested it though.
rfdude
------------------
1.09.2 Buffalo WZR-HP-G300NH2 -> 8 OpenMesh AP's
1.10.0 Archer C7 -> Multiple Cisco 1702i Autonomous Mode

Trailblazer
Posts: 113
Joined: Wed Mar 09, 2011 3:12 am

Re: Throttle Bandwidth / Bandwidth Sharing

Post by Trailblazer »

I wholly agree, a splashpage would be a great feature addition to Gargoyle for setting expectations on a free courtesy service. It would be super awesome to be able to display their quota on the page (and if the MAC address is the same, keep the quota, otherwise reset it). So many ideas, so little time. I assume that the devs have real jobs-we need a rich benefactor to finance this thing-any takers? :lol:

I love how people think they are 'paying' for the service (by renting a campsite) and therefore think they can use it as they use their home service (ie stream Netflix movies). It's absolutely hilarious!

I use OpenDNS in order to do some content filtering, mainly restricting movies, tv and P2P sites. With Gargoyle I can force them to use the OpenDNS servers. They can't get around it by configuring their own. That's a HUGE help right there!

Gargoyle is great! Plus it reminds me of that really scary 70's movie http://www.imdb.com/title/tt0068622/. Well, it was scary back then...
Netgear WNDR3700V2 Gargoyle 1.10.0
TP-LINK Archer C7 v4 Gargoyle 1.12

sda
Posts: 9
Joined: Fri Mar 25, 2011 11:20 am
Location: Lesvos Greece

Re: Throttle Bandwidth / Bandwidth Sharing

Post by sda »

Hi,
You can easily install nocatsplash as a simple captive portal.

From the command line do:
opkg update
opkg install nocatsplash

Save the following script as "nocatsplash" in the /etc/init.d/
directory:
***********************************************
#!/bin/sh /etc/rc.common
START=49

start() {
echo -n "Starting NoCat splash server:"
echo -n " splashd" ;
/usr/sbin/splashd -D &
echo "."
}
restart() {
echo -n "Restarting NoCat splash server:"
echo -n " splashd"
killall splashd
/usr/sbin/splashd -D &
echo "."
}
stop() {
echo -n "Stopping NoCat splash server:"
echo -n " splashd" ;
killall splashd
echo "."
}
***********************************************
Run :
chmod +x /etc/init.d/nocatsplash
cd /etc/init.d/
./nocatsplash enable

It should get your captive portal up and running.

I don't know if it is the right way of doing it, but it certainly works for me, including all the goodies in gargoyle.

Cheers

Post Reply