[system]
# Log level
# 0 - Errors only
# 1 - Warnings and errors
# 2 - Notices, warnings, errors
# 3 - Info, notices, warnings, errors
# 4 - Debugging
#
# default:
# log_level=2


# Log file to write log messages to
#
# default:
# log_file=/var/log/opentrafficshaper/opentrafficshaper.log


# PID file to write our PID to
#
# default:
# pid_file=/var/run/opentrafficshaper/opentrafficshaper.pid


# State file, this file is used to store persistent information
#
# default:
# statefile=/var/lib/opentrafficshaper/configmanager.state



#
# Plugins
#
[plugins]
# Names of plugins to load, one per line
# NOTE: The ordering is very important

# Radius support
load=radius

# Statistics
# Must load before webserver if you want graphs
load=statistics

# Web interface
load=webserver
# Statistics live streaming snapin
# Must load after webserver
load=webserver/snapins/websockets/statistics

# Traffic shaper
load=tc
# Traffic shaper interface to statistics
# Must load after statistics
# Must load after tc
load=tcstats



#
# General shaping settings
#
[shaping]
# User group, this is the list of groups users can belong to
#
# The format of this option is:
# <ID>:<DESCRIPTION>
#
# * NOT IMPLEMENTED YET *
#
# default:
# none
group=1:Default


# Traffic classes ID's and short description of traffic classes to Setup. Traffic is priortized as the lowest number getting the
# highest priority
#
# The format of this option is:
# <ID>:<DESCRIPTION>
#
# default:
# none
class=1:High Priority
class=2:Platinum
class=3:Gold
class=4:Silver
class=5:Bronze
class=6:Best Effort


# Default pool for traffic not classified, we can send it to a specific traffic class. This is a pool ID.
#
# default:
# default_pool=no


# Interface groups that a pool is associated with
#
# The format of this option is:
# <TXIFACE>,<RXIFACE>:<DESCRIPTION>
#
# The txiface is always the interface the client traffic is transmitted on (downloaded)
# The rxiface is always the interface the client traffic is received on (uploaded)
#
# default:
# interface_group=eth1,eth0:Default
interface_group=eth1,eth0:LAN-side


#
# Interface setup
#
# Each interface comprises of a name, rate and a list of class rates for each class defined above. Each interface used in the
# interface_groups above must be defined below.
#

[shaping.interface eth0]
# This is the friendly name used when displaying this interface
name=WAN interface
# The rate is specified in Kbps
rate=100000

# Class rate specification
#
# format:
# <CLASSID>:<CIR>[/<LIMIT>]
#
# The CIR and Limit are specified in Kbps or percentage
# If Limit is not specified it defaults to CIR
# if the entire class definition is omitted, defaults to rate of interface
#
# default:
# --interface limit for each class--
class_rate=1:10000
class_rate=2:5%/5%
class_rate=3:5%
class_rate=4:5000/10000
class_rate=5:5%
class_rate=6:5%


[shaping.interface eth1]
name=LAN Interface
rate=100000

class_rate=1:70000
class_rate=2:5%/5%
class_rate=3:5%
class_rate=4:3000/5000
class_rate=5:5%


#
# Radius plugin
#
[plugin.radius]

# Path of the radius dictionary files
#
# default:
# none
dictionary_path=/etc/opentrafficshaper


# Dictionaries we need to load for radius attributes we use, these are paths relative to dicitonary_path=
#
# default:
# none
dictionary=dicts/dictionary
dictionary=dicts/dictionary.allworldit


# Expire traffic control entries from radius in this period of time if not updated, this is in seconds
#
# default:
# expiry_period=86400


# Pool name transform to apply to the username. We apply a regex to the username and grab the first returned group, this group is
# then used as the pool name instead of the full username.
#
#
# Example: To use user@POOL, try something like this...
# username_to_pool_transform=^[^@]+@(.*)
#
# Example: To use user.POOL@realm, try something like this...
# username_to_pool_transform=^[^\.]+\.([^@]+)
#
# default:
# none


# Interface group to use for users which don't have the attribute set
#
# default:
# default_interface_group=1


# Match priority to use for users which don't have the attribute set
#
# default:
# default_match_priority=2


# Traffic class to use for users which don't have the attribute set
#
# default:
# default_traffic_class=2


# NOT IMPLEMENTED: Default group to use for users which don't have the attribute set
#
# default:
# default_group=1


#
# TC Plugin
#
[plugin.tc]
# Protocol to filter on, 99% of the time it will be "ip". If however you're filtering VLAN Q-in-Q traffic, set this to 0x88a8
#
# default:
# protocol=ip


# IP Header offset, if the kernel offsets your IP packet with octets you need to specify the value here this most commonly happens
# when you shaping vlan traffic (as per above one would maybe set this value to 4)
#
# default:
# iphdr_offset=0


#
# Statistics Plugin
#
[plugin.statistics]

# Database credentials used for stats recording
#
# example:
# db_dsn=DBI:mysql:dbname=ots
# db_username=
# db_password=

