Coyote Linux & BrazilFW Add-ons - QOS and Bandwidth management Setup Documentation

QOS and Bandwidth Control setup Documentation

QoS and bandwidth management | QoS documentation | QoS tutorial

This section contains information on Coyote QOS init script and BrazilFW QOS init scripts. It also contains information how is QOS and bandwidth management implemented in Coyote Linux

QOS types

Coyote Linux & BrazilFW contains two versions of QOS init scripts. The first is Wondershaper init scripts based on Wondershaper and they are easy way how to setup some basic QOS on your internet line. If you want to have more control on what's happening and how bandwidth is distributed across computers in your local network, you can use Coyote(BrazilFW) init script. These scripts are based on my QOS init scripts i developed some time ago and they allow you to distribute bandwidth with defined priorities.

On top of these init scripts is build Web-based administration that allows you to configure QOS from your browser.

Coyote Linux & BrazilFW QOS init scripts implementation

Coyote(BrazilFW) init scripts us HTB (hierarchical token bucket) and SFQ (stochastic fair queing) algorithms for it's function. The traffic is categorized to three priority classes according to your own rules specified through Web-configuration.

The information how to setup QOS can be found in Coyote Linux & BrazilFW QOS Setup Tutorial

QOS init script provide the basic framework for building class hierarchy, using HTB and SFQ classes. You can setup various types of QOS classes.

Building class hierarchy

As mentioned before, there are various types of QOS classes you can define through framework provided by init scripts. There types are...

Basic class

This is a basic class without other defined subclasses. It can be used to specify bandwidth limit and bandwidth borrowing across multiple computers.

#  rootid    - id of parent class, root classes have parent id 1:1
#  clsid     - id of class, use class ids between 1:10-1:90
#  down_rate - minimal guaranteed downstream rate (kbit)
#  down_ceil - maximum downstream rate (kbit)
#  up_rate   - minimal guaranteed upstream rate (kbit)
#  up_ceil   - maximum upstream  rate (kbit)
#  matchip   - class filter ip specification 
define_class function
define_class rootid clsid down_rate down_ceil up_rate up_ceil matchip 

creates container HTB class without other subclasses, can by used to define upstream/downstream values for whole subnetwork, which can be further devided by it's child classes.

define_class "1:1" "1:10" 64 128 32 64 192.168.0.16/28

   creates HTB subclass 1:10 under root class, it has guaranteed 64kbit 
   downstream with borowing up to 128kbit. Guranteed 32kbit upstream 
   with borrowing up to 64kbit. This subclass is defined for network
   192.168.0.16/28.
Basic SFQ class

Creates simple SFQ subclass without any QOS capabilities other than bandwidth limiting.

define_class_sfq function
define_class_sfq rootid clsid down_rate down_ceil up_rate up_ceil matchip

creates simple htb leaf class with it's own sfq subclass without QOS.

define_class_sfq "1:1" "1:10" 64 128 32 64 192.168.0.16/32

   creates HTB subclass 1:10 under root class, it has guaranteed 64kbit 
   downstream with borowing up to 128kbit. Guranteed 32kbit upstream 
   with borrowing up to 64kbit. This subclass is defined for computer
   192.168.0.16/32. SFQ qdisc 10: is added to created subclass
Full QOS class

Creates full features QOS subclasses with traffic categorizatin to priorities.

define_class_qos function
define_class_qos rootid clsid down_rate down_ceil up_rate up_ceil matchip

creates htb subclass with full QOS support (3 htb child classes, each with own sfq subclass)

define_class_qos "1:1" "1:10" 64 128 32 64 192.168.0.16/32

   creates HTB subclass 1:10 under root class, it has guaranteed 64kbit 
   downstream with borowing up to 128kbit. Guranteed 32kbit upstream 
   with borrowing up to 64kbit. This subclass is defined for computer
   192.168.0.16/32. Three other subclasses are created 1:100, 1:101, 1:102
   with priorities 0,1,2. Traffic is clasified to there classes using filters
   specified in qos.filters. For each subclass SFQ qdisc is added with
   ids 100:, 101: 102:.
Created by Dolly 2004, hosted by CZI s.r.o.