<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"> <refentry> <refmeta> <refentrytitle>shorewall-tcdevices</refentrytitle> <manvolnum>5</manvolnum> </refmeta> <refnamediv> <refname>tcdevices</refname> <refpurpose>Shorewall Traffic Shaping Devices file</refpurpose> </refnamediv> <refsynopsisdiv> <cmdsynopsis> <command>/etc/shorewall/tcdevices</command> </cmdsynopsis> </refsynopsisdiv> <refsect1> <title>Description</title> <para>Entries in this file define the bandwidth for interfaces on which you want traffic shaping to be enabled.</para> <para>If you do not plan to use traffic shaping for a device, don't put it in here as it limits the throughput of that device to the limits you set here.</para> <para>A note on the <emphasis>bandwidth</emphasis> definitions used in this file:</para> <itemizedlist> <listitem> <para>don't use a space between the integer value and the unit: 30kbit is valid while 30 kbit is not.</para> </listitem> <listitem> <para>you can use one of the following units:</para> <variablelist> <varlistentry> <term><emphasis role="bold">kbps</emphasis></term> <listitem> <para>Kilobytes per second.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">mbps</emphasis></term> <listitem> <para>Megabytes per second.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">kbit</emphasis></term> <listitem> <para>Kilobits per second.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">mbit</emphasis></term> <listitem> <para>Megabits per second.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">bps</emphasis> or <emphasis role="bold">number</emphasis></term> <listitem> <para>Bytes per second.</para> </listitem> </varlistentry> </variablelist> </listitem> <listitem> <para>Only whole integers are allowed.</para> </listitem> </itemizedlist> <para>The columns in the file are as follows.</para> <variablelist> <varlistentry> <term><emphasis role="bold">INTERFACE</emphasis> - [<emphasis>number</emphasis>:]<emphasis>interface</emphasis></term> <listitem> <para>Name of <emphasis>interface</emphasis>. Each interface may be listed only once in this file. You may NOT specify the name of an alias (e.g., eth0:0) here; see <ulink url="http://www.shorewall.net/FAQ.htm#faq18">http://www.shorewall.net/FAQ.htm#faq18</ulink></para> <para>You may NOT specify wildcards here, e.g. if you have multiple ppp interfaces, you need to put them all in here!</para> <para>If the device doesn't exist, a warning message will be issued during "shorewall [re]start" and "shorewall refresh" and traffic shaping configuration will be skipped for that device.</para> <para>Shorewall assigns a sequential <firstterm>interface number</firstterm> to each interface (the first entry in the file is interface 1, the second is interface 2 and so on) You can explicitly specify the interface number by prefixing the interface name with the number and a colon (":"). Example: 1:eth0.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">IN-BANDWIDTH</emphasis> - <emphasis>bandwidth</emphasis></term> <listitem> <para>The incoming <emphasis>bandwidth</emphasis> of that interface. Please note that you are not able to do traffic shaping on incoming traffic, as the traffic is already received before you could do so. But this allows you to define the maximum traffic allowed for this interface in total, if the rate is exceeded, the packets are dropped. You want this mainly if you have a DSL or Cable connection to avoid queuing at your providers side.</para> <para>If you don't want any traffic to be dropped, set this to a value to zero in which case Shorewall will not create an ingress qdisc.Must be set to zero if the REDIRECTED INTERFACES column is non-empty.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">OUT-BANDWIDTH</emphasis> - <emphasis>bandwidth</emphasis></term> <listitem> <para>The outgoing <emphasis>bandwidth</emphasis> of that interface. This is the maximum speed your connection can handle. It is also the speed you can refer as "full" if you define the tc classes in <ulink url="shorewall-tcclasses.html">shorewall-tcclasses</ulink>(5). Outgoing traffic above this rate will be dropped.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">OPTIONS</emphasis> - {<emphasis role="bold">-</emphasis>|<emphasis role="bold">{classify</emphasis>|hfsc} ,...}</term> <listitem> <para><option>classify</option> ― When specified, Shorewall will not generate tc or Netfilter rules to classify traffic based on packet marks. You must do all classification using CLASSIFY rules in <ulink url="shorewall-tcrules.html">shorewall-tcrules</ulink>(5).</para> <para><option>hfsc</option> - Shorewall normally uses the <firstterm>Hierarchical Token Bucket</firstterm> queuing discipline. When <option>hfsc</option> is specified, the <firstterm>Hierarchical Fair Service Curves</firstterm> discipline is used instead.</para> </listitem> </varlistentry> <varlistentry> <term><emphasis role="bold">REDIRECTED INTERFACES</emphasis> - [<emphasis>interface</emphasis>[,<emphasis>interface</emphasis>]...]</term> <listitem> <para>May only be specified if the interface in the INTERFACE column is an Intermediate Frame Block (IFB) device. Causes packets that enter each listed interface to be passed through the egress filters defined for this device, thus providing a form of incoming traffic shaping. When this column is non-empty, the <emphasis role="bold">classify</emphasis> option is assumed.</para> </listitem> </varlistentry> </variablelist> </refsect1> <refsect1> <title>Examples</title> <variablelist> <varlistentry> <term>Example 1:</term> <listitem> <para>Suppose you are using PPP over Ethernet (DSL) and ppp0 is the interface for this. The device has an outgoing bandwidth of 500kbit and an incoming bandwidth of 6000kbit</para> <programlisting> #INTERFACE IN-BANDWIDTH OUT-BANDWIDTH OPTIONS REDIRECTED # INTERFACES 1:ppp0 6000kbit 500kbit</programlisting> </listitem> </varlistentry> </variablelist> </refsect1> <refsect1> <title>FILES</title> <para>/etc/shorewall/tcdevices</para> </refsect1> <refsect1> <title>See ALSO</title> <para><ulink url="http://shorewall.net/traffic_shaping.htm">http://shorewall.net/traffic_shaping.htm</ulink></para> <para>shorewall(8), shorewall-accounting(5), shorewall-actions(5), shorewall-blacklist(5), shorewall-hosts(5), shorewall-interfaces(5), shorewall-maclist(5), shorewall-masq(5), shorewall-nat(5), shorewall-netmap(5), shorewall-params(5), shorewall-policy(5), shorewall-providers(5), shorewall-proxyarp(5), shorewall-route_rules(5), shorewall-routestopped(5), shorewall-rules(5), shorewall.conf(5), shorewall-tcclasses(5), shorewall-tcrules(5), shorewall-tos(5), shorewall-tunnels(5), shorewall-zones(5)</para> </refsect1> </refentry>