diff --git a/Shorewall/Perl/Shorewall/Tc.pm b/Shorewall/Perl/Shorewall/Tc.pm index 1ca43949f..8f530956c 100644 --- a/Shorewall/Perl/Shorewall/Tc.pm +++ b/Shorewall/Perl/Shorewall/Tc.pm @@ -762,6 +762,7 @@ sub validate_tc_class( ) { fatal_error "Invalid INTERFACE:CLASS ($devclass)" if defined $rest; if ( $device =~ /^(\d+|0x[\da-fA-F]+)$/ ) { + $device =~ s/^0x//; ( $number , $classnumber ) = ( hex_value $device, hex_value $number ); ( $device , $devref) = dev_by_number( $number ); } else { @@ -778,6 +779,7 @@ sub validate_tc_class( ) { } 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}; } else { fatal_error "Missing interface NUMBER"; diff --git a/manpages/shorewall-tcclasses.xml b/manpages/shorewall-tcclasses.xml index ebc23e173..a6c1bc24c 100644 --- a/manpages/shorewall-tcclasses.xml +++ b/manpages/shorewall-tcclasses.xml @@ -134,7 +134,8 @@ classify option is not given, you may still specify a class or you may have Shorewall generate a class number from the MARK value. Interface numbers and class - numbers are always assumed to be specified in hex. + numbers are always assumed to be specified in hex and class number 1 + is reserved as the root class of the queuing discipline. You may NOT specify wildcards here, e.g. if you have multiple ppp interfaces, you need to put them all in here! @@ -500,12 +501,13 @@ url="http://shorewall.net/traffic_shaping.htm">http://shorewall.net/traffic_shaping.htm shorewall(8), shorewall-accounting(5), shorewall-actions(5), - shorewall-blacklist(5), shorewall-hosts(5), shorewall_interfaces(5), shorewall-ipsets(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-secmarks(5), - shorewall-tcdevices(5), shorewall-tcrules(5), shorewall-tos(5), - shorewall-tunnels(5), shorewall-zones(5) + shorewall-blacklist(5), shorewall-hosts(5), shorewall_interfaces(5), + shorewall-ipsets(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-secmarks(5), shorewall-tcdevices(5), + shorewall-tcrules(5), shorewall-tos(5), shorewall-tunnels(5), + shorewall-zones(5) diff --git a/manpages6/shorewall6-tcclasses.xml b/manpages6/shorewall6-tcclasses.xml index bc6105961..c7ead115c 100644 --- a/manpages6/shorewall6-tcclasses.xml +++ b/manpages6/shorewall6-tcclasses.xml @@ -117,7 +117,7 @@ INTERFACE - - interface[:class] + interface[[:parent]:class] Name of interface. Each interface may be @@ -141,7 +141,8 @@ file. Normally, all classes defined here are sub-classes of a root - class that is implicitly defined from the entry in shorewall6-tcdevices(5). You can establish a class hierarchy by specifying a parent class -- the number of a class that you @@ -454,8 +455,8 @@ shorewall6-blacklist(5), shorewall6-hosts(5), shorewall6-interfaces(5), shorewall6-maclist(5), shorewall6-params(5), shorewall6-policy(5), shorewall6-providers(5), shorewall6-route_rules(5), - shorewall6-routestopped(5), shorewall6-rules(5), shorewall6.conf(5), shorewall6-secmarks(5), - shorewall6-tcdevices(5), shorewall6-tcrules(5), shorewall6-tos(5), - shorewall6-tunnels(5), shorewall6-zones(5) + shorewall6-routestopped(5), shorewall6-rules(5), shorewall6.conf(5), + shorewall6-secmarks(5), shorewall6-tcdevices(5), shorewall6-tcrules(5), + shorewall6-tos(5), shorewall6-tunnels(5), shorewall6-zones(5)