Correct some TC issues

This commit is contained in:
Tom Eastep 2011-05-01 06:19:57 -07:00
parent f7b6ac690e
commit 61c654634b
3 changed files with 18 additions and 13 deletions

View File

@ -762,6 +762,7 @@ sub validate_tc_class( ) {
fatal_error "Invalid INTERFACE:CLASS ($devclass)" if defined $rest; fatal_error "Invalid INTERFACE:CLASS ($devclass)" if defined $rest;
if ( $device =~ /^(\d+|0x[\da-fA-F]+)$/ ) { if ( $device =~ /^(\d+|0x[\da-fA-F]+)$/ ) {
$device =~ s/^0x//;
( $number , $classnumber ) = ( hex_value $device, hex_value $number ); ( $number , $classnumber ) = ( hex_value $device, hex_value $number );
( $device , $devref) = dev_by_number( $number ); ( $device , $devref) = dev_by_number( $number );
} else { } else {
@ -778,6 +779,7 @@ sub validate_tc_class( ) {
} }
fatal_error "Invalid interface/class number ($devclass)" unless defined $classnumber && $classnumber; fatal_error "Invalid interface/class number ($devclass)" unless defined $classnumber && $classnumber;
fatal_error "Reserved class number (1)" if $classnumber == 1;
fatal_error "Duplicate interface:class number ($number:$classnumber}" if $tcclasses{$device}{$classnumber}; fatal_error "Duplicate interface:class number ($number:$classnumber}" if $tcclasses{$device}{$classnumber};
} else { } else {
fatal_error "Missing interface NUMBER"; fatal_error "Missing interface NUMBER";

View File

@ -134,7 +134,8 @@
classify option is not given, you may still specify a classify option is not given, you may still specify a
<emphasis>class</emphasis> or you may have Shorewall generate a <emphasis>class</emphasis> or you may have Shorewall generate a
class number from the MARK value. Interface numbers and class class number from the MARK value. Interface numbers and class
numbers are always assumed to be specified in hex.</para> numbers are always assumed to be specified in hex and class number 1
is reserved as the root class of the queuing discipline.</para>
<para>You may NOT specify wildcards here, e.g. if you have multiple <para>You may NOT specify wildcards here, e.g. if you have multiple
ppp interfaces, you need to put them all in here!</para> ppp interfaces, you need to put them all in here!</para>
@ -500,12 +501,13 @@
url="http://shorewall.net/traffic_shaping.htm">http://shorewall.net/traffic_shaping.htm</ulink></para> url="http://shorewall.net/traffic_shaping.htm">http://shorewall.net/traffic_shaping.htm</ulink></para>
<para>shorewall(8), shorewall-accounting(5), shorewall-actions(5), <para>shorewall(8), shorewall-accounting(5), shorewall-actions(5),
shorewall-blacklist(5), shorewall-hosts(5), shorewall_interfaces(5), shorewall-ipsets(5), shorewall-blacklist(5), shorewall-hosts(5), shorewall_interfaces(5),
shorewall-maclist(5), shorewall-masq(5), shorewall-nat(5), shorewall-ipsets(5), shorewall-maclist(5), shorewall-masq(5),
shorewall-netmap(5), shorewall-params(5), shorewall-policy(5), shorewall-nat(5), shorewall-netmap(5), shorewall-params(5),
shorewall-providers(5), shorewall-proxyarp(5), shorewall-route_rules(5), shorewall-policy(5), shorewall-providers(5), shorewall-proxyarp(5),
shorewall-routestopped(5), shorewall-rules(5), shorewall.conf(5), shorewall-secmarks(5), shorewall-route_rules(5), shorewall-routestopped(5), shorewall-rules(5),
shorewall-tcdevices(5), shorewall-tcrules(5), shorewall-tos(5), shorewall.conf(5), shorewall-secmarks(5), shorewall-tcdevices(5),
shorewall-tunnels(5), shorewall-zones(5)</para> shorewall-tcrules(5), shorewall-tos(5), shorewall-tunnels(5),
shorewall-zones(5)</para>
</refsect1> </refsect1>
</refentry> </refentry>

View File

@ -117,7 +117,7 @@
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term><emphasis role="bold">INTERFACE</emphasis> - <term><emphasis role="bold">INTERFACE</emphasis> -
<emphasis>interface</emphasis>[:<emphasis>class</emphasis>]</term> <emphasis>interface</emphasis>[[:<emphasis>parent</emphasis>]:<emphasis>class</emphasis>]</term>
<listitem> <listitem>
<para>Name of <emphasis>interface</emphasis>. Each interface may be <para>Name of <emphasis>interface</emphasis>. Each interface may be
@ -141,7 +141,8 @@
file.</para> file.</para>
<para>Normally, all classes defined here are sub-classes of a root <para>Normally, all classes defined here are sub-classes of a root
class that is implicitly defined from the entry in <ulink class (class number 1) that is implicitly defined from the entry in
<ulink
url="shorewall6-tcdevices.html">shorewall6-tcdevices</ulink>(5). You url="shorewall6-tcdevices.html">shorewall6-tcdevices</ulink>(5). You
can establish a class hierarchy by specifying a can establish a class hierarchy by specifying a
<emphasis>parent</emphasis> class -- the number of a class that you <emphasis>parent</emphasis> class -- the number of a class that you
@ -454,8 +455,8 @@
shorewall6-blacklist(5), shorewall6-hosts(5), shorewall6-interfaces(5), shorewall6-blacklist(5), shorewall6-hosts(5), shorewall6-interfaces(5),
shorewall6-maclist(5), shorewall6-params(5), shorewall6-policy(5), shorewall6-maclist(5), shorewall6-params(5), shorewall6-policy(5),
shorewall6-providers(5), shorewall6-route_rules(5), shorewall6-providers(5), shorewall6-route_rules(5),
shorewall6-routestopped(5), shorewall6-rules(5), shorewall6.conf(5), shorewall6-secmarks(5), shorewall6-routestopped(5), shorewall6-rules(5), shorewall6.conf(5),
shorewall6-tcdevices(5), shorewall6-tcrules(5), shorewall6-tos(5), shorewall6-secmarks(5), shorewall6-tcdevices(5), shorewall6-tcrules(5),
shorewall6-tunnels(5), shorewall6-zones(5)</para> shorewall6-tos(5), shorewall6-tunnels(5), shorewall6-zones(5)</para>
</refsect1> </refsect1>
</refentry> </refentry>